def code_element_struct(self, value): element_type, identifier, code_block = value return CodeElementFunction( element_type=element_type.value, identifier=identifier, arguments=IdentifierList(identifiers=[], notes=[]), returns=None, code_block=code_block, )
def visit_CodeElementFunction(self, elm: CodeElementFunction): if elm.element_type == 'struct': return elm new_scope = self.current_scope + elm.name with self.scoped(new_scope, parent=elm): return CodeElementFunction( element_type=elm.element_type, identifier=elm.identifier, arguments=elm.arguments, implicit_arguments=elm.implicit_arguments, returns=elm.returns, code_block=self.visit(elm.code_block), )
def code_element_function(self, value): identifier = value[0] arguments = value[1] if len(value) == 4: # Return values present. returns = value[2] code_block = value[3] elif len(value) == 3: # Return values not present. returns = None code_block = value[2] else: raise NotImplementedError(f'Unexpected argument: value={value}') return CodeElementFunction(element_type='func', identifier=identifier, arguments=arguments, returns=returns, code_block=code_block)
def code_element_function(self, value): decorators, identifier, implicit_arguments, arguments = value[:4] if len(value) == 6: # Return values present. returns = value[4] code_block = value[5] elif len(value) == 5: # Return values not present. returns = None code_block = value[4] else: raise NotImplementedError(f'Unexpected argument: value={value}') return CodeElementFunction( element_type='func', identifier=identifier, arguments=arguments, implicit_arguments=implicit_arguments, returns=returns, code_block=code_block, decorators=decorators, )