コード例 #1
0
 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,
     )
コード例 #2
0
    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),
            )
コード例 #3
0
    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)
コード例 #4
0
    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,
        )