class Annotation(ModelicaBase): def __init__(self, modification): self.modification = modification def dump(self): return "annotation %s" % (self.modification) class ClassModification(ModelicaBase): __ebnf__ = Literal("1") ### B.2.1 Stored Definition StoredDefinition.ebnf(syntax=(Optional( hasLiteral('within') + Optional(Name.name('within_name')) + Suppress(';')) + Optional( hasLiteral('final') + ClassDefinition.name('definition') + Suppress(';'))), action=lambda s, l, t: StoredDefinition(**dict(t))) ### B.2.2 Class Definition ClassDefinition.ebnf(syntax=(Class.name('definition'))) Class.ebnf(syntax=(Optional(hasLiteral('encapsulated')) + Optional(hasLiteral('partial')) + Suppress('class') + ClassSpecifier.name('specification'))) Model.ebnf(syntax=(Optional(hasLiteral('encapsulated')) + Optional(hasLiteral('partial')) + Suppress('model') +
class Annotation(ModelicaBase): def __init__(self, modification): self.modification = modification def dump(self): return "annotation %s" % (self.modification) class ClassModification(ModelicaBase): __ebnf__ = Literal("1") ### B.2.1 Stored Definition StoredDefinition.ebnf( syntax = ( Optional(hasLiteral('within') + Optional(Name.name('within_name')) + Suppress(';')) + Optional(hasLiteral('final') + ClassDefinition.name('definition') + Suppress(';')) ), action = lambda s,l,t: StoredDefinition(**dict(t)) ) ### B.2.2 Class Definition ClassDefinition.ebnf( syntax = ( Class.name('definition') ) ) Class.ebnf( syntax = (
self.else_expression = else_expression self.else_equations = else_equations def dump(self, indent): msg = " " * indent + "when %s then\n"%(self.expression) msg += "\n".join(map(lambda x: " " * (indent + 2) + str(x) + ";", self.equations)) msg += " " * indent + "end when" return msg class ConnectClause(ModelicaBase): pass EquationSection.ebnf( syntax = Optional(hasLiteral("initial")) + Suppress("equation") + ZeroOrMore(Equation.ebnf() + Suppress(";"))('equations'), action = lambda s,l,t: EquationSection(**dict(t)) ) AlgorithmSection.ebnf( syntax = Optional(hasLiteral("initial")) + Literal("algorithm") + ZeroOrMore(Statement.ebnf() + Suppress(";"))('statements'), action = lambda s,l,t: AlgorithmSection(**dict(t)) ) Equation.ebnf( ) Statement.ebnf( ) EquationArray.ebnf(