def test_LexBuildStep_process(): step = LexBuildStep() values = list( step.process( StringIO( """ # Comment print( "Hello, world!" ) # comment 2 """ ) ) ) assert_equal( values[3].getType(), PepperLexer.SYMBOL ) assert_equal( values[3].getText(), "print" ) assert_equal( values[3].getLine(), 4 ) assert_equal( values[3].getColumn(), 1 ) assert_equal( values[4].getType(), PepperLexer.LPAREN ) assert_equal( values[4].getLine(), 4 ) assert_equal( values[4].getColumn(), 6 ) assert_equal( values[5].getType(), PepperLexer.STRING ) assert_equal( values[5].getText(), "Hello, world!" ) assert_equal( values[5].getLine(), 4 ) assert_equal( values[5].getColumn(), 8 ) assert_equal( values[6].getType(), PepperLexer.RPAREN ) assert_equal( values[6].getLine(), 4 ) assert_equal( values[6].getColumn(), 24 ) assert_equal( len( values ), 9 )
def test_LexBuildStep_read_from_file(): step = LexBuildStep() values = list( step.read_from_file( StringIO( """0001:0001 SYMBOL(print) 0001:0006 LPAREN 0001:0008 STRING(Hello, world!) 0001:0024 RPAREN """ ) ) ) assert_equal( values[0].getType(), PepperLexer.SYMBOL ) assert_equal( values[0].getText(), "print" ) assert_equal( values[0].getLine(), 1 ) assert_equal( values[0].getColumn(), 1 ) assert_equal( values[1].getType(), PepperLexer.LPAREN ) assert_equal( values[1].getLine(), 1 ) assert_equal( values[1].getColumn(), 6 ) assert_equal( values[2].getType(), PepperLexer.STRING ) assert_equal( values[2].getText(), "Hello, world!" ) assert_equal( values[2].getLine(), 1 ) assert_equal( values[2].getColumn(), 8 ) assert_equal( values[3].getType(), PepperLexer.RPAREN ) assert_equal( values[3].getLine(), 1 ) assert_equal( values[3].getColumn(), 24 ) assert_equal( len( values ), 4 )
def test_LexBuildStep_write_to_file(): tokens = [ FakeToken( PepperLexer.SYMBOL, "print", 4, 1 ), FakeToken( PepperLexer.LPAREN, None, 4, 6 ), FakeToken( PepperLexer.STRING, "Hello", 4, 8 ), FakeToken( PepperLexer.RPAREN, None, 4, 24 ), ] out_fl = StringIO() step = LexBuildStep() step.write_to_file( tokens, out_fl ) assert_equal( out_fl.getvalue().strip().split( "\n" ), [ "0004:0001 SYMBOL(print)", "0004:0006 LPAREN", "0004:0008 STRING(Hello)", "0004:0024 RPAREN", ] )