Example #1
0
    def test_ident(self):

        self.assertTrue(isinstance(IDENT("algo"), IDENT))
        self.assertTrue(isinstance(IDENT("_algo"), IDENT))
        self.assertTrue(isinstance(IDENT("Algo"), IDENT))

        self.assertRaises(Exception, lambda: IDENT(" algo asi "))
Example #2
0
    def test_ident(self):
        self.assertTrue(IDENT.load("algo").value == "algo")
        self.assertTrue(IDENT.load("Algo").value == "Algo")
        self.assertTrue(IDENT.load("_algo").value == "_algo")
        self.assertTrue(IDENT.load("  _algo  ").value == "_algo")
        self.assertTrue(IDENT.load("  'algo'  ").value == QIDENT("algo"))

        self.assertRaises(ParseError, lambda: IDENT.load("1algo"))
Example #3
0
    def test_ident(self):
        self.assertTrue(IDENT.load("algo").value == "algo")
        self.assertTrue(IDENT.load("Algo").value == "Algo")
        self.assertTrue(IDENT.load("_algo").value == "_algo")
        self.assertTrue(IDENT.load("  _algo  ").value == "_algo")
        self.assertTrue(IDENT.load("  'algo'  ").value == QIDENT("algo"))

        self.assertRaises(ParseError, lambda: IDENT.load("1algo"))
Example #4
0
        Optional(hasLiteral('partial')) + 
        Suppress('function') + ClassSpecifier.name('specification')
        )
    )

Operator.ebnf(
    syntax = (
        Optional(hasLiteral('encapsulated')) +
        Optional(hasLiteral('partial')) + 
        Suppress('operator') + Optional(
            hasLiteral('function') ^ hasLiteral('record')
            ) + ClassSpecifier.name('specification')
        )
    )

class_name = IDENT.name('class_name')
ClassSpecifier.ebnf(
    syntax = Or(
        (
            class_name + StringComment.name('comment') + 
            Composition.name('composition') + 
            Suppress('end') + matchPreviousExpr(class_name)
            ),
        (
            IDENT.name('class_name') + Suppress('=') + 
            BasePrefix.name('base_prefix') + Name.name('base_name') + 
            Optional(ArraySubscripts.name('base_subscripts')) + 
            Optional(ClassModification.name('base_modification')) +
            Comment.name('comment')
            ),
        
Example #5
0
                  ClassSpecifier.name('specification')))

Package.ebnf(syntax=(Optional(hasLiteral('encapsulated')) +
                     Optional(hasLiteral('partial')) + Suppress('package') +
                     ClassSpecifier.name('specification')))

Function.ebnf(syntax=(Optional(hasLiteral('encapsulated')) +
                      Optional(hasLiteral('partial')) + Suppress('function') +
                      ClassSpecifier.name('specification')))

Operator.ebnf(syntax=(Optional(hasLiteral('encapsulated')) +
                      Optional(hasLiteral('partial')) + Suppress('operator') +
                      Optional(hasLiteral('function') ^ hasLiteral('record')) +
                      ClassSpecifier.name('specification')))

class_name = IDENT.name('class_name')
ClassSpecifier.ebnf(syntax=Or(
    (class_name + StringComment.name('comment') +
     Composition.name('composition') + Suppress('end') +
     matchPreviousExpr(class_name)),
    (IDENT.name('class_name') + Suppress('=') +
     BasePrefix.name('base_prefix') + Name.name('base_name') +
     Optional(ArraySubscripts.name('base_subscripts')) +
     Optional(ClassModification.name('base_modification')) +
     Comment.name('comment')),
))

### B.2.3 Extends

### B.2.4 Component Clause
Example #6
0
 def test_qident(self):
     self.assertTrue(IDENT.load("'algoas'").value == QIDENT("algoas"))
Example #7
0
 def test_ident(self):
     self.assertEqual(IDENT("algo").dump(), "algo")
Example #8
0
 def test_qident(self):
     self.assertTrue(IDENT.load("'algoas'").value == QIDENT("algoas"))
Example #9
0
    syntax = (
        Suppress("for") + ForIndices.name("indices") + Suppress("loop") + 
        ZeroOrMore( Statement.names('statements') + Suppress(";")) + 
        Suppress('end') + Suppress("for")
        ),

    action = lambda s, l, t: ForStatement(**dict(t))
    )

ForIndices.ebnf(
    syntax = delimitedList(ForIndex.names('indices'), delim=','),
    action = lambda s,l,t: ForIndices(**dict(t))
    )

ForIndex.ebnf(
    syntax = IDENT.name("identifier") + Optional(Suppress('in') + Expression.name('expression')),
    action = lambda s, l, t: ForIndex(**dict(t))
    )

WhileStatement.ebnf(
    syntax = (
        Suppress("while") + Expression.name("expression") + Suppress('loop') + 
        StatementArray.name('statements') +
        Suppress('end') + Suppress("while")
        ),
    action = lambda s,l,t: WhileStatement(**dict(t))
    )

WhenEquation.ebnf(
    syntax = (
        Suppress('when') + Expression.names('expressions') + Suppress('then') +