Skip to content
Snippets Groups Projects

Tim bgc

Merged Sven Gundlach requested to merge Tim_bgc into main
26 files
+ 198
503
Compare changes
  • Side-by-side
  • Inline

Files

@@ -31,36 +31,35 @@ class SymbolTableVisitor( BgcDslVisitor, Generic[T] ):
@@ -31,36 +31,35 @@ class SymbolTableVisitor( BgcDslVisitor, Generic[T] ):
def defaultResult(self) -> SymbolTable:
def defaultResult(self) -> SymbolTable:
return self._symbolTable
return self._symbolTable
# 5 mal das gleiche; kann man das kürzer/eleganter schreiben?
# Visit a parse tree produced by BgcDslParser#substanceDeclaration.
def visitSubstanceDeclaration(self, ctx:BgcDslParser.SubstanceDeclarationContext):
def visitSubstanceDeclaration(self, ctx:BgcDslParser.SubstanceDeclarationContext):
# TODO
# TODO
# save name, type
# save type
# save unit as node
# save unit as node
self._symbolTable.addNewSymbolOfType( VariableSymbol, self._scope, ctx.name.text, ctx )
self._symbolTable.addNewSymbolOfType( VariableSymbol, self._scope, ctx.name.text, ctx )
return self.visitChildren( ctx )
return self.visitChildren( ctx )
def visitParameterDeclaration(self, ctx:BgcDslParser.ParameterDeclarationContext):
def visitParameterDeclaration(self, ctx:BgcDslParser.ParameterDeclarationContext):
# TODO
# TODO
# save name, type
# save type
# save unit, expression as node
# save unit, expression as node
self._symbolTable.addNewSymbolOfType( VariableSymbol, self._scope, ctx.name.text, ctx )
self._symbolTable.addNewSymbolOfType( VariableSymbol, self._scope, ctx.name.text, ctx )
return self.visitChildren( ctx )
return self.visitChildren( ctx )
def visitEnvironmentVariableDeclaration(self, ctx:BgcDslParser.EnvironmentVariableDeclarationContext):
def visitEnvironmentVariableDeclaration(self, ctx:BgcDslParser.EnvironmentVariableDeclarationContext):
# TODO
# TODO
# save name, type
# save type
# save unit, expression as node
# save unit, expression as node
self._symbolTable.addNewSymbolOfType( VariableSymbol, self._scope, ctx.name.text, ctx )
self._symbolTable.addNewSymbolOfType( VariableSymbol, self._scope, ctx.name.text, ctx )
return self.visitChildren( ctx )
return self.visitChildren( ctx )
# Visit a parse tree produced by BgcDslParser#compartment.
# Visit a parse tree produced by BgcDslParser#compartment.
def visitCompartment(self, ctx:BgcDslParser.CompartmentContext):
def visitCompartment(self, ctx:BgcDslParser.CompartmentContext):
# TODO
# TODO
# save name
# save node as expression
# save node as expression
self._symbolTable.addNewSymbolOfType( VariableSymbol, self._scope, ctx.name.text, ctx )
self._symbolTable.addNewSymbolOfType( VariableSymbol, self._scope, ctx.name.text, ctx )
return self.visitChildren(ctx)
return self.visitChildren(ctx)
# Visit a parse tree produced by BgcDslParser#connection.
# Visit a parse tree produced by BgcDslParser#connection.
def visitConnection(self, ctx:BgcDslParser.ConnectionContext):
def visitConnection(self, ctx:BgcDslParser.ConnectionContext):
# TODO
# TODO
Loading