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" )
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 )