@@ -390,4 +390,44 @@ class LexerTests: XCTestCase {
390390 XCTAssert ( lexer. getNextToken ( ) == . assign)
391391 XCTAssert ( lexer. getNextToken ( ) == . constant( . integer( 8 ) ) )
392392 }
393+
394+ func testComparisons( ) {
395+ let lexer = Lexer ( " x = 5; a <4; 5 > 8 " )
396+ XCTAssert ( lexer. getNextToken ( ) == . id( " x " ) )
397+ XCTAssert ( lexer. getNextToken ( ) == . equals)
398+ XCTAssert ( lexer. getNextToken ( ) == . constant( . integer( 5 ) ) )
399+ XCTAssert ( lexer. getNextToken ( ) == . semi)
400+ XCTAssert ( lexer. getNextToken ( ) == . id( " a " ) )
401+ XCTAssert ( lexer. getNextToken ( ) == . lessThan)
402+ XCTAssert ( lexer. getNextToken ( ) == . constant( . integer( 4 ) ) )
403+ XCTAssert ( lexer. getNextToken ( ) == . semi)
404+ XCTAssert ( lexer. getNextToken ( ) == . constant( . integer( 5 ) ) )
405+ XCTAssert ( lexer. getNextToken ( ) == . greaterThan)
406+ XCTAssert ( lexer. getNextToken ( ) == . constant( . integer( 8 ) ) )
407+ XCTAssert ( lexer. getNextToken ( ) == . eof)
408+ }
409+
410+ func testDataTypes( ) {
411+ let lexer = Lexer ( " a: Integer; b: Real; c: Boolean; c:= true; c:=false " )
412+ XCTAssert ( lexer. getNextToken ( ) == . id( " a " ) )
413+ XCTAssert ( lexer. getNextToken ( ) == . colon)
414+ XCTAssert ( lexer. getNextToken ( ) == . type( . integer) )
415+ XCTAssert ( lexer. getNextToken ( ) == . semi)
416+ XCTAssert ( lexer. getNextToken ( ) == . id( " b " ) )
417+ XCTAssert ( lexer. getNextToken ( ) == . colon)
418+ XCTAssert ( lexer. getNextToken ( ) == . type( . real) )
419+ XCTAssert ( lexer. getNextToken ( ) == . semi)
420+ XCTAssert ( lexer. getNextToken ( ) == . id( " c " ) )
421+ XCTAssert ( lexer. getNextToken ( ) == . colon)
422+ XCTAssert ( lexer. getNextToken ( ) == . type( . boolean) )
423+ XCTAssert ( lexer. getNextToken ( ) == . semi)
424+ XCTAssert ( lexer. getNextToken ( ) == . id( " c " ) )
425+ XCTAssert ( lexer. getNextToken ( ) == . assign)
426+ XCTAssert ( lexer. getNextToken ( ) == . constant( . boolean( true ) ) )
427+ XCTAssert ( lexer. getNextToken ( ) == . semi)
428+ XCTAssert ( lexer. getNextToken ( ) == . id( " c " ) )
429+ XCTAssert ( lexer. getNextToken ( ) == . assign)
430+ XCTAssert ( lexer. getNextToken ( ) == . constant( . boolean( false ) ) )
431+ XCTAssert ( lexer. getNextToken ( ) == . eof)
432+ }
393433}
0 commit comments