systemc-clang 2.0.0
Parsing SystemC constructs
|
Public Types | |
typedef # detect the first type that is in the typedef list | types = node.children[0] |
Public Member Functions | |
__init__ (self, types) | |
hsensvars (self, tree) | |
hnamedsensvar (self, tree) | |
modportsiglist (self, tree) | |
hprocess (self, tree) | |
hfunction (self, tree) | |
hfunctionparams (self, tree) | |
hmethodcall (self, tree) | |
vardecl (self, tree) | |
hfunctionlocalvars (self, tree) | |
hmodinitblock (self, tree) | |
stmts (self, tree) | |
forbody (self, tree) | |
stmt (self, tree) | |
portbinding (self, binding) | |
portbindinglist (self, tree) | |
hsenslist (self, tree) | |
hmodule (self, tree) | |
![]() | |
__default__ (self, t) | |
Public Attributes | |
# this is the only type that gets expanded | types = types |
list | expanded = [dict()] |
ctx = ContextManager() | |
int | types = 1 |
str | types = 'sigdecltype': |
bool | is_in_initblock = True |
list | is_in_initblock = [] |
Private Member Functions | |
__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) | |
__check_stmt_portbinding (self, stmt) | |
Expands block assignment of custom types into primitive types
Definition at line 12 of file typedef_expansion.py.
detect the first type that is in the typedef list parselib.transforms.typedef_expansion.TypedefExpansion.types = node.children[0] |
Definition at line 212 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.__init__ | ( | self, | |
types ) |
Reimplemented from parselib.transforms.top_down.TopDown.
Definition at line 14 of file typedef_expansion.py.
|
private |
append the field_name to the expandable variable in tree
Definition at line 316 of file typedef_expansion.py.
|
private |
Definition at line 585 of file typedef_expansion.py.
|
private |
detects the expandable variable on lhs and rhs and expand them with the fields
Definition at line 353 of file typedef_expansion.py.
|
private |
Definition at line 488 of file typedef_expansion.py.
|
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.
|
private |
expand non-primitive htype into primitive sub-field type
Definition at line 21 of file typedef_expansion.py.
|
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.
|
private |
Definition at line 138 of file typedef_expansion.py.
|
private |
Definition at line 64 of file typedef_expansion.py.
|
private |
Definition at line 102 of file typedef_expansion.py.
|
private |
Definition at line 415 of file typedef_expansion.py.
|
private |
Definition at line 268 of file typedef_expansion.py.
|
private |
Definition at line 275 of file typedef_expansion.py.
|
private |
checks if v is None or is a (nested) list containing only none
Definition at line 344 of file typedef_expansion.py.
|
private |
Definition at line 421 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.forbody | ( | self, | |
tree ) |
Definition at line 571 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hfunction | ( | self, | |
tree ) |
Definition at line 438 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hfunctionlocalvars | ( | self, | |
tree ) |
Definition at line 483 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hfunctionparams | ( | self, | |
tree ) |
Definition at line 444 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hmethodcall | ( | self, | |
tree ) |
Definition at line 451 of file typedef_expansion.py.
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 516 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hmodule | ( | self, | |
tree ) |
add another scope for a module
Definition at line 745 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hnamedsensvar | ( | self, | |
tree ) |
expand identifiers in sensitivity list with fields
Definition at line 161 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hprocess | ( | self, | |
tree ) |
add another scope for a process
Definition at line 426 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hsenslist | ( | self, | |
tree ) |
Definition at line 712 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.hsensvars | ( | self, | |
tree ) |
expand identifiers in sensitivity list with fields
Definition at line 141 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.modportsiglist | ( | self, | |
tree ) |
Definition at line 191 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.portbinding | ( | self, | |
binding ) |
Definition at line 626 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.portbindinglist | ( | self, | |
tree ) |
Definition at line 673 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.stmt | ( | self, | |
tree ) |
Definition at line 592 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.stmts | ( | self, | |
tree ) |
Definition at line 546 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.vardecl | ( | self, | |
tree ) |
for variable expansion in statement
Definition at line 477 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.ctx = ContextManager() |
Definition at line 19 of file typedef_expansion.py.
parselib.transforms.typedef_expansion.TypedefExpansion.expanded = [dict()] |
Definition at line 18 of file typedef_expansion.py.
bool parselib.transforms.typedef_expansion.TypedefExpansion.is_in_initblock = True |
Definition at line 522 of file typedef_expansion.py.
list parselib.transforms.typedef_expansion.TypedefExpansion.is_in_initblock = [] |
Definition at line 573 of file typedef_expansion.py.
# this is the only type that gets expanded parselib.transforms.typedef_expansion.TypedefExpansion.types = types |
Definition at line 16 of file typedef_expansion.py.
Definition at line 34 of file typedef_expansion.py.
str parselib.transforms.typedef_expansion.TypedefExpansion.types = 'sigdecltype': |
Definition at line 200 of file typedef_expansion.py.