Source code for pycropml.transpiler.antlr_py.python.python_preprocessing



from pycropml.transpiler.pseudo_tree import Node
from pycropml.transpiler.antlr_py.api_declarations import Middleware

[docs] class RemDeclarations(Middleware): def __init__(self, localvar=[]): self.localvar = localvar Middleware.__init__(self)
[docs] def process(self, tree): return self.transform(tree,in_block=False)
[docs] def action_declaration(self, tree): return
[docs] class RemImplicit_return(Middleware): def __init__(self, localvar=[]): self.localvar = localvar Middleware.__init__(self)
[docs] def process(self, tree): return self.transform(tree,in_block=False)
[docs] def action_implicit_return(self, tree): return
[docs] class Declarations(Middleware): def __init__(self, inout): self.inout = inout self.declarations = [] Middleware.__init__(self)
[docs] def process(self, tree): return self.transform(tree,in_block=False)
[docs] def action_declaration(self, tree): res = [] for decl in tree.decl: if decl.name not in self.inout: if "value" in dir(decl) and decl.value: self.declarations.append(Node(type="declaration", decl=[Node(type=decl.type, name=decl.name, pseudo_type=decl.pseudo_type)], comments=tree.comments)) if not("elements" in dir(decl.value) and decl.value.elements==[]): decl = Node(type ="assignment", target = Node(type="local", name=decl.name, pseudo_type=decl.pseudo_type), op = "=", value = decl.value, comments = tree.comments) res.append(self.transform_default(decl)) else:self.declarations.append(Node(type="declaration", decl=[decl], comments=tree.comments)) return res