Exemplo n.º 1
0
    def _trace_from_string(cls, s):
        parser = ply.yacc.yacc( tabmodule='tracestring_parsetab', 
                                outputdir=LocMgr.EnsureMakeDirs('/tmp/parsetabs/'),
                                debug=SettingsMgr.getPLYYaccDebugFlag() )

        unit, tracePrototypes = parser.parse( t, lexer=l )

        # Copy accross the start values:
        v=0
        for prototype in tracePrototypes:
            prototype.start_value = v
            piece = prototype.toTracePiece()
            v = piece.getEndValue()


        # Convert to pieces
        pieces = [ tracePrototype.toTracePiece()  for tracePrototype in tracePrototypes]
        tr = Trace_Piecewise(pieces=pieces)
        tr = tr * (1.0*unit)
        return tr
Exemplo n.º 2
0
    
def p_unit_simple(p):
    'unit : ID'
    p[0] = unit_from_string( p[1] )
    

def p_unit_simplenumber(p):
    'unit : ID NUMBER'
    u = unit_from_string( p[1] )
    p[0] = np.power(u, p[2] )


def p_error(p):
    print "Syntax error in input!"
    assert False
    


parser = yacc.yacc(tabmodule = 'unitsparser_parsetab.py', outputdir=LocMgr.getPLYParseTabLocation('unitsparser'), debug=SettingsMgr.getPLYYaccDebugFlag()  )


def parse(s):
    r = parser.parse(s, lexer=lexer, )
    return r