Example #1
0
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 )
Example #2
0
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 )
Example #3
0
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",
        ] )