From 14a7bd68c933546279863cb33625b9b5cf6fc08a Mon Sep 17 00:00:00 2001 From: Riley Smith Date: Wed, 20 Nov 2024 23:28:17 -0800 Subject: [PATCH] make all tests pass --- .github/workflows/run_tests.yml | 2 +- scanner.flex | 2 ++ scanner_test.c | 53 ++++++++++++++++----------------- 3 files changed, 29 insertions(+), 28 deletions(-) diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index 708de47..737fc12 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -8,7 +8,7 @@ on: jobs: build: - runs-on: ubuntu + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 # setup build-essentials & flex & bison diff --git a/scanner.flex b/scanner.flex index 99bf6c4..c36f28d 100644 --- a/scanner.flex +++ b/scanner.flex @@ -66,6 +66,8 @@ COMP-3 { return TOKEN_COMPUTATION_LEVEL_3; } {NAME} { return TOKEN_IDENT; } {DIGIT} { return TOKEN_INTEGER; } +<> { return TOKEN_EOF; } + \. { return TOKEN_DOT; } %% int yywrap() { return 1; } diff --git a/scanner_test.c b/scanner_test.c index 4cec799..011decf 100644 --- a/scanner_test.c +++ b/scanner_test.c @@ -31,7 +31,7 @@ UTEST(scanner, hello) { {TOKEN_KEYWORD_DIVISION, "DIVISION"}, {TOKEN_DOT, "."}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "'Hello World!'"}, + {TOKEN_STRING, "Hello World!"}, {TOKEN_STOP, "STOP"}, {TOKEN_RUN, "RUN"}, {TOKEN_DOT, "."}, @@ -178,7 +178,7 @@ UTEST(scanner, quadratic) { {TOKEN_KEYWORD_DIVISION, "DIVISION"}, {TOKEN_DOT, "."}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"EQUATION: (1x^2) + 5x + 6 = 0\""}, + {TOKEN_STRING, "EQUATION: (1x^2) + 5x + 6 = 0"}, {TOKEN_KEYWORD_COMPUTE, "COMPUTE"}, {TOKEN_IDENT, "discriminant"}, {TOKEN_EQUAL, "="}, @@ -246,14 +246,14 @@ UTEST(scanner, quadratic) { {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"The equation has two distinct real roots: \""}, + {TOKEN_STRING, "The equation has two distinct real roots: "}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"Root 1: \""}, + {TOKEN_STRING, "Root 1: "}, {TOKEN_IDENT, "root1"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"Root 2: \""}, + {TOKEN_STRING, "Root 2: "}, {TOKEN_IDENT, "root2"}, // {TOKEN_EOF, ""}, @@ -278,17 +278,17 @@ UTEST(scanner, quadratic) { {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"The equation has one real root: \""}, + {TOKEN_STRING, "The equation has one real root: "}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"Root: \""}, + {TOKEN_STRING, "Root: "}, {TOKEN_IDENT, "root1"}, {TOKEN_ELSE, "ELSE"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"The equation has no real roots.\""}, + {TOKEN_STRING, "The equation has no real roots."}, {TOKEN_END_IF, "END-IF"}, // {TOKEN_EOF, ""}, @@ -335,9 +335,9 @@ UTEST(scanner, sorting) { {TOKEN_INTEGER, "10"}, {TOKEN_IDENT, "WS-SORT-ROW"}, {TOKEN_PICTURE, "PIC"}, - {TOKEN_ALPHANUMERIC, "X"}, + {TOKEN_SIGNED_NUMERIC, "S9"}, {TOKEN_LEFT_PARENTHESIS, "("}, - {TOKEN_INTEGER, "10"}, + {TOKEN_INTEGER, "4"}, {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_KEYWORD_OCCURS, "OCCURS"}, {TOKEN_INTEGER, "100"}, @@ -345,9 +345,9 @@ UTEST(scanner, sorting) { {TOKEN_INTEGER, "05"}, {TOKEN_IDENT, "WS-TEMP-ROW"}, {TOKEN_PICTURE, "PIC"}, - {TOKEN_ALPHANUMERIC, "X"}, + {TOKEN_SIGNED_NUMERIC, "S9"}, {TOKEN_LEFT_PARENTHESIS, "("}, - {TOKEN_INTEGER, "10"}, + {TOKEN_INTEGER, "4"}, {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_DOT, "."}, {TOKEN_INTEGER, "05"}, @@ -401,35 +401,35 @@ UTEST(scanner, sorting) { {TOKEN_KEYWORD_DIVISION, "DIVISION"}, {TOKEN_DOT, "."}, {TOKEN_MOVE, "MOVE"}, - {TOKEN_STRING, "\"30\""}, + {TOKEN_INTEGER, "30"}, {TOKEN_KEYWORD_TO, "TO"}, {TOKEN_IDENT, "WS-SORT-ROW"}, {TOKEN_LEFT_PARENTHESIS, "("}, {TOKEN_INTEGER, "1"}, {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_MOVE, "MOVE"}, - {TOKEN_STRING, "\"10\""}, + {TOKEN_INTEGER, "10"}, {TOKEN_KEYWORD_TO, "TO"}, {TOKEN_IDENT, "WS-SORT-ROW"}, {TOKEN_LEFT_PARENTHESIS, "("}, {TOKEN_INTEGER, "2"}, {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_MOVE, "MOVE"}, - {TOKEN_STRING, "\"50\""}, + {TOKEN_INTEGER, "50"}, {TOKEN_KEYWORD_TO, "TO"}, {TOKEN_IDENT, "WS-SORT-ROW"}, {TOKEN_LEFT_PARENTHESIS, "("}, {TOKEN_INTEGER, "3"}, {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_MOVE, "MOVE"}, - {TOKEN_STRING, "\"20\""}, + {TOKEN_INTEGER, "20"}, {TOKEN_KEYWORD_TO, "TO"}, {TOKEN_IDENT, "WS-SORT-ROW"}, {TOKEN_LEFT_PARENTHESIS, "("}, {TOKEN_INTEGER, "4"}, {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_MOVE, "MOVE"}, - {TOKEN_STRING, "\"40\""}, + {TOKEN_INTEGER, "40"}, {TOKEN_KEYWORD_TO, "TO"}, {TOKEN_IDENT, "WS-SORT-ROW"}, {TOKEN_LEFT_PARENTHESIS, "("}, @@ -440,9 +440,9 @@ UTEST(scanner, sorting) { {TOKEN_KEYWORD_TO, "TO"}, {TOKEN_IDENT, "WS-SORT-MAX"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"Original Array Contents:\""}, + {TOKEN_STRING, "Original Array Contents:"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"---------------------\""}, + {TOKEN_STRING, "---------------------"}, {TOKEN_PERFORM, "PERFORM"}, {TOKEN_VARYING, "VARYING"}, {TOKEN_IDENT, "WS-INDEX"}, @@ -455,16 +455,16 @@ UTEST(scanner, sorting) { {TOKEN_GREATER_THAN, ">"}, {TOKEN_IDENT, "WS-SORT-MAX"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"Element \""}, + {TOKEN_STRING, "Element "}, {TOKEN_IDENT, "WS-INDEX"}, - {TOKEN_STRING, "\": \""}, + {TOKEN_STRING, ": "}, {TOKEN_IDENT, "WS-SORT-ROW"}, {TOKEN_LEFT_PARENTHESIS, "("}, {TOKEN_IDENT, "WS-INDEX"}, {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_END_PERFORM, "END-PERFORM"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_SPACE, "SPACE"}, + {TOKEN_STRING, ""}, {TOKEN_PERFORM, "PERFORM"}, {TOKEN_VARYING, "VARYING"}, {TOKEN_IDENT, "WS-I"}, @@ -535,9 +535,9 @@ UTEST(scanner, sorting) { {TOKEN_END_PERFORM, "END-PERFORM"}, {TOKEN_END_PERFORM, "END-PERFORM"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"Sorted Array Contents:\""}, + {TOKEN_STRING, "Sorted Array Contents:"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"--------------------\""}, + {TOKEN_STRING, "--------------------"}, {TOKEN_PERFORM, "PERFORM"}, {TOKEN_VARYING, "VARYING"}, {TOKEN_IDENT, "WS-INDEX"}, @@ -550,15 +550,14 @@ UTEST(scanner, sorting) { {TOKEN_GREATER_THAN, ">"}, {TOKEN_IDENT, "WS-SORT-MAX"}, {TOKEN_DISPLAY, "DISPLAY"}, - {TOKEN_STRING, "\"Element \""}, + {TOKEN_STRING, "Element "}, {TOKEN_IDENT, "WS-INDEX"}, - {TOKEN_STRING, "\": \""}, + {TOKEN_STRING, ": "}, {TOKEN_IDENT, "WS-SORT-ROW"}, {TOKEN_LEFT_PARENTHESIS, "("}, {TOKEN_IDENT, "WS-INDEX"}, {TOKEN_RIGHT_PARENTHESIS, ")"}, {TOKEN_END_PERFORM, "END-PERFORM"}, - {TOKEN_DOT, "."}, {TOKEN_STOP, "STOP"}, {TOKEN_RUN, "RUN"}, {TOKEN_DOT, "."},