|
| __init__ (self, types) |
|
| hsensvars (self, tree) |
|
| modportsiglist (self, tree) |
|
| stmt (self, tree) |
|
| hprocess (self, tree) |
|
| hfunction (self, tree) |
|
| hfunctionparams (self, tree) |
|
| hmethodcall (self, tree) |
|
| vardecl (self, tree) |
|
| hfunctionlocalvars (self, tree) |
|
| hmodinitblock (self, tree) |
|
| portbindinglist (self, tree) |
|
| hsenslist (self, tree) |
|
| hmodule (self, tree) |
|
| __default__ (self, t) |
|
|
| __expand_htype (self, htype) |
|
| __expand_typeinfo (self, typeinfo) |
|
| __expand_helper (self, portdecl, typeinfo) |
|
| __expand_portdecltype (self, tree) |
|
| __expand_vardecltype (self, tree) |
|
| __expand_sigdecltype (self, tree) |
|
| __get_expandable_type_from_htype (self, htype) |
|
| __get_expandable_var_from_tree (self, tree) |
|
| __append_to_expandable_var_to_tree (self, tree, field_name) |
|
| __is_all_none (self, v) |
|
| __expand_blkassign (self, tree) |
|
| __expanded_type (self, var_name) |
|
| __set_expanded (self, var_name, var_type) |
|
| __expand_decl_in_tree_children (self, tree, expand_data=None) |
|
Expands block assignment of custom types into primitive types
Definition at line 12 of file typedef_expansion.py.
◆ __init__()
parselib.transforms.typedef_expansion.TypedefExpansion.__init__ |
( |
| self, |
|
|
| types ) |
◆ __append_to_expandable_var_to_tree()
parselib.transforms.typedef_expansion.TypedefExpansion.__append_to_expandable_var_to_tree |
( |
| self, |
|
|
| tree, |
|
|
| field_name ) |
|
private |
◆ __expand_blkassign()
parselib.transforms.typedef_expansion.TypedefExpansion.__expand_blkassign |
( |
| self, |
|
|
| tree ) |
|
private |
detects the expandable variable on lhs and rhs and
expand them with the fields
Definition at line 319 of file typedef_expansion.py.
◆ __expand_decl_in_tree_children()
parselib.transforms.typedef_expansion.TypedefExpansion.__expand_decl_in_tree_children |
( |
| self, |
|
|
| tree, |
|
|
| expand_data = None ) |
|
private |
◆ __expand_helper()
parselib.transforms.typedef_expansion.TypedefExpansion.__expand_helper |
( |
| self, |
|
|
| portdecl, |
|
|
| typeinfo ) |
|
private |
portdecl is the name:
Tree(outportdecl, [Token(ID, 'dout')])
typeinfo is the real type info:
Tree(htypeinfo, [Tree(htype, [Token(TYPESTR, 'sc_out'), Tree(htype, [Token(TYPESTR, 'fp_t'), 52, 11])])])
Definition at line 71 of file typedef_expansion.py.
◆ __expand_htype()
parselib.transforms.typedef_expansion.TypedefExpansion.__expand_htype |
( |
| self, |
|
|
| htype ) |
|
private |
◆ __expand_portdecltype()
parselib.transforms.typedef_expansion.TypedefExpansion.__expand_portdecltype |
( |
| self, |
|
|
| tree ) |
|
private |
The expansion is achieved by first traverse the type subtree to detect the expandable type,
then, any parent path is duplicated
An example of tree:
Tree(portdecltype, [Tree(inportdecl, [Token(ID, 'clk')]), Tree(htypeinfo,
[Tree(htype, [Token(TYPESTR, 'sc_in'), Tree(htype, [Token(TYPESTR, '_Bool')])])])])
Definition at line 90 of file typedef_expansion.py.
◆ __expand_sigdecltype()
parselib.transforms.typedef_expansion.TypedefExpansion.__expand_sigdecltype |
( |
| self, |
|
|
| tree ) |
|
private |
◆ __expand_typeinfo()
parselib.transforms.typedef_expansion.TypedefExpansion.__expand_typeinfo |
( |
| self, |
|
|
| typeinfo ) |
|
private |
◆ __expand_vardecltype()
parselib.transforms.typedef_expansion.TypedefExpansion.__expand_vardecltype |
( |
| self, |
|
|
| tree ) |
|
private |
◆ __expanded_type()
parselib.transforms.typedef_expansion.TypedefExpansion.__expanded_type |
( |
| self, |
|
|
| var_name ) |
|
private |
◆ __get_expandable_type_from_htype()
parselib.transforms.typedef_expansion.TypedefExpansion.__get_expandable_type_from_htype |
( |
| self, |
|
|
| htype ) |
|
private |
◆ __get_expandable_var_from_tree()
parselib.transforms.typedef_expansion.TypedefExpansion.__get_expandable_var_from_tree |
( |
| self, |
|
|
| tree ) |
|
private |
◆ __is_all_none()
parselib.transforms.typedef_expansion.TypedefExpansion.__is_all_none |
( |
| self, |
|
|
| v ) |
|
private |
checks if v is None or is a (nested) list containing only none
Definition at line 310 of file typedef_expansion.py.
◆ __set_expanded()
parselib.transforms.typedef_expansion.TypedefExpansion.__set_expanded |
( |
| self, |
|
|
| var_name, |
|
|
| var_type ) |
|
private |
◆ hfunction()
parselib.transforms.typedef_expansion.TypedefExpansion.hfunction |
( |
| self, |
|
|
| tree ) |
◆ hfunctionlocalvars()
parselib.transforms.typedef_expansion.TypedefExpansion.hfunctionlocalvars |
( |
| self, |
|
|
| tree ) |
◆ hfunctionparams()
parselib.transforms.typedef_expansion.TypedefExpansion.hfunctionparams |
( |
| self, |
|
|
| tree ) |
◆ hmethodcall()
parselib.transforms.typedef_expansion.TypedefExpansion.hmethodcall |
( |
| self, |
|
|
| tree ) |
◆ hmodinitblock()
parselib.transforms.typedef_expansion.TypedefExpansion.hmodinitblock |
( |
| self, |
|
|
| tree ) |
expands the hmodinitblock
hmodinitblock includes a initialization block and portdecl block, both of which can include
aggregated types
Definition at line 487 of file typedef_expansion.py.
◆ hmodule()
parselib.transforms.typedef_expansion.TypedefExpansion.hmodule |
( |
| self, |
|
|
| tree ) |
◆ hprocess()
parselib.transforms.typedef_expansion.TypedefExpansion.hprocess |
( |
| self, |
|
|
| tree ) |
◆ hsenslist()
parselib.transforms.typedef_expansion.TypedefExpansion.hsenslist |
( |
| self, |
|
|
| tree ) |
◆ hsensvars()
parselib.transforms.typedef_expansion.TypedefExpansion.hsensvars |
( |
| self, |
|
|
| tree ) |
◆ modportsiglist()
parselib.transforms.typedef_expansion.TypedefExpansion.modportsiglist |
( |
| self, |
|
|
| tree ) |
◆ portbindinglist()
parselib.transforms.typedef_expansion.TypedefExpansion.portbindinglist |
( |
| self, |
|
|
| tree ) |
◆ stmt()
parselib.transforms.typedef_expansion.TypedefExpansion.stmt |
( |
| self, |
|
|
| tree ) |
◆ vardecl()
parselib.transforms.typedef_expansion.TypedefExpansion.vardecl |
( |
| self, |
|
|
| tree ) |
◆ current_module
parselib.transforms.typedef_expansion.TypedefExpansion.current_module |
◆ expanded
parselib.transforms.typedef_expansion.TypedefExpansion.expanded |
◆ types
parselib.transforms.typedef_expansion.TypedefExpansion.types |
The documentation for this class was generated from the following file: