Exemple #1
0
def p_interface(p):
    '''interface : INTERFACE name extendsList LBRACE invariants methods RBRACE'''
    no_comma(p[7])

    # Every interface implicitly inherits from BaseInterface
    if p[3]:
        exts = p[3]
    else:
        if p[2] <> 'BaseInterface':
            exts = [
                sidlir.Extends(sidlir.Scoped_id(['sidl'], 'BaseInterface', ''))
            ]
        else:
            exts = []

    p[0] = sidlir.Interface(p[2], exts, (p[5]), (p[6]),
                            scanner.last_doc_comment())
Exemple #2
0
def p_class(p):
    '''class : CLASS name maybeExtendsOne implementsSomeAllLists LBRACE invariants methods RBRACE'''
    no_comma(p[8])
    # Every class implicitly inherits from BaseClass
    if not p[3]:
        if p[2] <> 'BaseClass':
            ext = [sidlir.Extends(sidlir.Scoped_id(['sidl'], 'BaseClass', ''))]
        else:
            ext = []
    else:
        ext = p[3]

    if p[4]:
        impl = list(itertools.chain.from_iterable(p[4]))
    else:
        impl = p[4]

    p[0] = sidlir.Class(p[2], ext, impl, (p[6]), (p[7]),
                        scanner.last_doc_comment())
Exemple #3
0
def p_method(p):
    '''method : methodAttrs typeVoid methodName LPAREN maybeArgList RPAREN maybeExceptClause maybeFromClause  SEMICOLON requireAssertions ensureAssertions'''
    p[0] = sidlir.Method(p[2], p[3], (p[1]), (p[5]), p[7], p[8], (p[10]),
                         (p[11]), scanner.last_doc_comment())
Exemple #4
0
def p_struct(p):
    '''struct : STRUCT name LBRACE structItems RBRACE'''
    no_comma(p[5])
    p[0] = sidlir.Struct(p[2], (p[4]), scanner.last_doc_comment())
Exemple #5
0
def p_enum(p):
    '''enum : ENUM name LBRACE enumerators RBRACE'''
    p[0] = sidlir.Enum(p[2], (p[4]), scanner.last_doc_comment())
Exemple #6
0
def p_package_2(p):
    '''package : PACKAGE name version LBRACE userTypes RBRACE'''
    no_comma(p[6])
    p[0] = (sidlir.package, p[2], p[3], (p[5]), scanner.last_doc_comment())
Exemple #7
0
def p_package_1(p):
    '''package : PACKAGE name LBRACE userTypes RBRACE'''
    no_comma(p[5])
    p[0] = (sidlir.package, p[2], 'no version', (p[4]),
            scanner.last_doc_comment())