예제 #1
0
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') +
예제 #2
0
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 = (
예제 #3
0
        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(