Пример #1
0
def test_ParseBuildStep_process():

    step = ParseBuildStep()

    tokens = Iterable2TokenStream( (
        make_token( "print", PepperLexer.SYMBOL, 4, 1 ),
        make_token( "(",     PepperLexer.LPAREN, 4, 6 ),
        make_token( "Hello", PepperLexer.STRING, 4, 8 ),
        make_token( ")",     PepperLexer.RPAREN, 4, 15 ),
        make_token( "\n",    PepperLexer.NEWLINE, 4, 16 ),
        ) )

    values = list( step.process( tokens ) )

    assert_equal( len( values ), 1 )

    fncall = values[0]
    assert_equal( fncall.__class__, PepFunctionCall )
    assert_equal( fncall.func_name, "print" )
    func = fncall.func
    assert_equal( func.__class__, PepSymbol )
    assert_equal( func.symbol_name, "print" )
    args = fncall.args
    assert_equal( len( args ), 1 )
    hwstr = args[0]
    assert_equal( hwstr.__class__, PepString )
    assert_equal( hwstr.value, "Hello" )
Пример #2
0
def test_2_lines():
    value = _parse( (
        make_token( "0002",          LexedLexer.NUMBER ),
        make_token( ":",             LexedLexer.COLON ),
        make_token( "0008",          LexedLexer.NUMBER ),
        make_token( "  ",            LexedLexer.SPACES ),
        make_token( "STRING",        LexedLexer.SYMBOL ),
        make_token( "Hello, world!", LexedLexer.CONTENT ),
        make_token( "0003",          LexedLexer.NUMBER ),
        make_token( ":",             LexedLexer.COLON ),
        make_token( "0001",          LexedLexer.NUMBER ),
        make_token( "  ",            LexedLexer.SPACES ),
        make_token( "RPAREN",        LexedLexer.SYMBOL ),
        make_token( "\n",            LexedLexer.NEWLINE ),
        ) )

    val = value.line()
    assert_equal( val.getText(),   "Hello, world!" )
    assert_equal( val.getType(),   PepperLexer.STRING )
    assert_equal( val.getLine(),   2 )
    assert_equal( val.getColumn(), 8 )

    val = value.line()
    assert_equal( val.getType(),   PepperLexer.RPAREN )
    assert_equal( val.getLine(),   3 )
    assert_equal( val.getColumn(), 1 )

    val = value.line()
    assert( val is None )