make all tests pass
This commit is contained in:
parent
5ee9afbcc1
commit
14a7bd68c9
|
|
@ -8,7 +8,7 @@ on:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
# setup build-essentials & flex & bison
|
# setup build-essentials & flex & bison
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,8 @@ COMP-3 { return TOKEN_COMPUTATION_LEVEL_3; }
|
||||||
{NAME} { return TOKEN_IDENT; }
|
{NAME} { return TOKEN_IDENT; }
|
||||||
{DIGIT} { return TOKEN_INTEGER; }
|
{DIGIT} { return TOKEN_INTEGER; }
|
||||||
|
|
||||||
|
<<EOF>> { return TOKEN_EOF; }
|
||||||
|
|
||||||
\. { return TOKEN_DOT; }
|
\. { return TOKEN_DOT; }
|
||||||
%%
|
%%
|
||||||
int yywrap() { return 1; }
|
int yywrap() { return 1; }
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ UTEST(scanner, hello) {
|
||||||
{TOKEN_KEYWORD_DIVISION, "DIVISION"},
|
{TOKEN_KEYWORD_DIVISION, "DIVISION"},
|
||||||
{TOKEN_DOT, "."},
|
{TOKEN_DOT, "."},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "'Hello World!'"},
|
{TOKEN_STRING, "Hello World!"},
|
||||||
{TOKEN_STOP, "STOP"},
|
{TOKEN_STOP, "STOP"},
|
||||||
{TOKEN_RUN, "RUN"},
|
{TOKEN_RUN, "RUN"},
|
||||||
{TOKEN_DOT, "."},
|
{TOKEN_DOT, "."},
|
||||||
|
|
@ -178,7 +178,7 @@ UTEST(scanner, quadratic) {
|
||||||
{TOKEN_KEYWORD_DIVISION, "DIVISION"},
|
{TOKEN_KEYWORD_DIVISION, "DIVISION"},
|
||||||
{TOKEN_DOT, "."},
|
{TOKEN_DOT, "."},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"EQUATION: (1x^2) + 5x + 6 = 0\""},
|
{TOKEN_STRING, "EQUATION: (1x^2) + 5x + 6 = 0"},
|
||||||
{TOKEN_KEYWORD_COMPUTE, "COMPUTE"},
|
{TOKEN_KEYWORD_COMPUTE, "COMPUTE"},
|
||||||
{TOKEN_IDENT, "discriminant"},
|
{TOKEN_IDENT, "discriminant"},
|
||||||
{TOKEN_EQUAL, "="},
|
{TOKEN_EQUAL, "="},
|
||||||
|
|
@ -246,14 +246,14 @@ UTEST(scanner, quadratic) {
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
|
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{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_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"Root 1: \""},
|
{TOKEN_STRING, "Root 1: "},
|
||||||
{TOKEN_IDENT, "root1"},
|
{TOKEN_IDENT, "root1"},
|
||||||
|
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"Root 2: \""},
|
{TOKEN_STRING, "Root 2: "},
|
||||||
{TOKEN_IDENT, "root2"},
|
{TOKEN_IDENT, "root2"},
|
||||||
|
|
||||||
// {TOKEN_EOF, ""},
|
// {TOKEN_EOF, ""},
|
||||||
|
|
@ -278,17 +278,17 @@ UTEST(scanner, quadratic) {
|
||||||
|
|
||||||
|
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"The equation has one real root: \""},
|
{TOKEN_STRING, "The equation has one real root: "},
|
||||||
|
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"Root: \""},
|
{TOKEN_STRING, "Root: "},
|
||||||
{TOKEN_IDENT, "root1"},
|
{TOKEN_IDENT, "root1"},
|
||||||
|
|
||||||
|
|
||||||
{TOKEN_ELSE, "ELSE"},
|
{TOKEN_ELSE, "ELSE"},
|
||||||
|
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{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_END_IF, "END-IF"},
|
||||||
|
|
||||||
// {TOKEN_EOF, ""},
|
// {TOKEN_EOF, ""},
|
||||||
|
|
@ -335,9 +335,9 @@ UTEST(scanner, sorting) {
|
||||||
{TOKEN_INTEGER, "10"},
|
{TOKEN_INTEGER, "10"},
|
||||||
{TOKEN_IDENT, "WS-SORT-ROW"},
|
{TOKEN_IDENT, "WS-SORT-ROW"},
|
||||||
{TOKEN_PICTURE, "PIC"},
|
{TOKEN_PICTURE, "PIC"},
|
||||||
{TOKEN_ALPHANUMERIC, "X"},
|
{TOKEN_SIGNED_NUMERIC, "S9"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
{TOKEN_INTEGER, "10"},
|
{TOKEN_INTEGER, "4"},
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
{TOKEN_KEYWORD_OCCURS, "OCCURS"},
|
{TOKEN_KEYWORD_OCCURS, "OCCURS"},
|
||||||
{TOKEN_INTEGER, "100"},
|
{TOKEN_INTEGER, "100"},
|
||||||
|
|
@ -345,9 +345,9 @@ UTEST(scanner, sorting) {
|
||||||
{TOKEN_INTEGER, "05"},
|
{TOKEN_INTEGER, "05"},
|
||||||
{TOKEN_IDENT, "WS-TEMP-ROW"},
|
{TOKEN_IDENT, "WS-TEMP-ROW"},
|
||||||
{TOKEN_PICTURE, "PIC"},
|
{TOKEN_PICTURE, "PIC"},
|
||||||
{TOKEN_ALPHANUMERIC, "X"},
|
{TOKEN_SIGNED_NUMERIC, "S9"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
{TOKEN_INTEGER, "10"},
|
{TOKEN_INTEGER, "4"},
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
{TOKEN_DOT, "."},
|
{TOKEN_DOT, "."},
|
||||||
{TOKEN_INTEGER, "05"},
|
{TOKEN_INTEGER, "05"},
|
||||||
|
|
@ -401,35 +401,35 @@ UTEST(scanner, sorting) {
|
||||||
{TOKEN_KEYWORD_DIVISION, "DIVISION"},
|
{TOKEN_KEYWORD_DIVISION, "DIVISION"},
|
||||||
{TOKEN_DOT, "."},
|
{TOKEN_DOT, "."},
|
||||||
{TOKEN_MOVE, "MOVE"},
|
{TOKEN_MOVE, "MOVE"},
|
||||||
{TOKEN_STRING, "\"30\""},
|
{TOKEN_INTEGER, "30"},
|
||||||
{TOKEN_KEYWORD_TO, "TO"},
|
{TOKEN_KEYWORD_TO, "TO"},
|
||||||
{TOKEN_IDENT, "WS-SORT-ROW"},
|
{TOKEN_IDENT, "WS-SORT-ROW"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
{TOKEN_INTEGER, "1"},
|
{TOKEN_INTEGER, "1"},
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
{TOKEN_MOVE, "MOVE"},
|
{TOKEN_MOVE, "MOVE"},
|
||||||
{TOKEN_STRING, "\"10\""},
|
{TOKEN_INTEGER, "10"},
|
||||||
{TOKEN_KEYWORD_TO, "TO"},
|
{TOKEN_KEYWORD_TO, "TO"},
|
||||||
{TOKEN_IDENT, "WS-SORT-ROW"},
|
{TOKEN_IDENT, "WS-SORT-ROW"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
{TOKEN_INTEGER, "2"},
|
{TOKEN_INTEGER, "2"},
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
{TOKEN_MOVE, "MOVE"},
|
{TOKEN_MOVE, "MOVE"},
|
||||||
{TOKEN_STRING, "\"50\""},
|
{TOKEN_INTEGER, "50"},
|
||||||
{TOKEN_KEYWORD_TO, "TO"},
|
{TOKEN_KEYWORD_TO, "TO"},
|
||||||
{TOKEN_IDENT, "WS-SORT-ROW"},
|
{TOKEN_IDENT, "WS-SORT-ROW"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
{TOKEN_INTEGER, "3"},
|
{TOKEN_INTEGER, "3"},
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
{TOKEN_MOVE, "MOVE"},
|
{TOKEN_MOVE, "MOVE"},
|
||||||
{TOKEN_STRING, "\"20\""},
|
{TOKEN_INTEGER, "20"},
|
||||||
{TOKEN_KEYWORD_TO, "TO"},
|
{TOKEN_KEYWORD_TO, "TO"},
|
||||||
{TOKEN_IDENT, "WS-SORT-ROW"},
|
{TOKEN_IDENT, "WS-SORT-ROW"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
{TOKEN_INTEGER, "4"},
|
{TOKEN_INTEGER, "4"},
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
{TOKEN_MOVE, "MOVE"},
|
{TOKEN_MOVE, "MOVE"},
|
||||||
{TOKEN_STRING, "\"40\""},
|
{TOKEN_INTEGER, "40"},
|
||||||
{TOKEN_KEYWORD_TO, "TO"},
|
{TOKEN_KEYWORD_TO, "TO"},
|
||||||
{TOKEN_IDENT, "WS-SORT-ROW"},
|
{TOKEN_IDENT, "WS-SORT-ROW"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
|
|
@ -440,9 +440,9 @@ UTEST(scanner, sorting) {
|
||||||
{TOKEN_KEYWORD_TO, "TO"},
|
{TOKEN_KEYWORD_TO, "TO"},
|
||||||
{TOKEN_IDENT, "WS-SORT-MAX"},
|
{TOKEN_IDENT, "WS-SORT-MAX"},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"Original Array Contents:\""},
|
{TOKEN_STRING, "Original Array Contents:"},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"---------------------\""},
|
{TOKEN_STRING, "---------------------"},
|
||||||
{TOKEN_PERFORM, "PERFORM"},
|
{TOKEN_PERFORM, "PERFORM"},
|
||||||
{TOKEN_VARYING, "VARYING"},
|
{TOKEN_VARYING, "VARYING"},
|
||||||
{TOKEN_IDENT, "WS-INDEX"},
|
{TOKEN_IDENT, "WS-INDEX"},
|
||||||
|
|
@ -455,16 +455,16 @@ UTEST(scanner, sorting) {
|
||||||
{TOKEN_GREATER_THAN, ">"},
|
{TOKEN_GREATER_THAN, ">"},
|
||||||
{TOKEN_IDENT, "WS-SORT-MAX"},
|
{TOKEN_IDENT, "WS-SORT-MAX"},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"Element \""},
|
{TOKEN_STRING, "Element "},
|
||||||
{TOKEN_IDENT, "WS-INDEX"},
|
{TOKEN_IDENT, "WS-INDEX"},
|
||||||
{TOKEN_STRING, "\": \""},
|
{TOKEN_STRING, ": "},
|
||||||
{TOKEN_IDENT, "WS-SORT-ROW"},
|
{TOKEN_IDENT, "WS-SORT-ROW"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
{TOKEN_IDENT, "WS-INDEX"},
|
{TOKEN_IDENT, "WS-INDEX"},
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
{TOKEN_END_PERFORM, "END-PERFORM"},
|
{TOKEN_END_PERFORM, "END-PERFORM"},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_SPACE, "SPACE"},
|
{TOKEN_STRING, ""},
|
||||||
{TOKEN_PERFORM, "PERFORM"},
|
{TOKEN_PERFORM, "PERFORM"},
|
||||||
{TOKEN_VARYING, "VARYING"},
|
{TOKEN_VARYING, "VARYING"},
|
||||||
{TOKEN_IDENT, "WS-I"},
|
{TOKEN_IDENT, "WS-I"},
|
||||||
|
|
@ -535,9 +535,9 @@ UTEST(scanner, sorting) {
|
||||||
{TOKEN_END_PERFORM, "END-PERFORM"},
|
{TOKEN_END_PERFORM, "END-PERFORM"},
|
||||||
{TOKEN_END_PERFORM, "END-PERFORM"},
|
{TOKEN_END_PERFORM, "END-PERFORM"},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"Sorted Array Contents:\""},
|
{TOKEN_STRING, "Sorted Array Contents:"},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"--------------------\""},
|
{TOKEN_STRING, "--------------------"},
|
||||||
{TOKEN_PERFORM, "PERFORM"},
|
{TOKEN_PERFORM, "PERFORM"},
|
||||||
{TOKEN_VARYING, "VARYING"},
|
{TOKEN_VARYING, "VARYING"},
|
||||||
{TOKEN_IDENT, "WS-INDEX"},
|
{TOKEN_IDENT, "WS-INDEX"},
|
||||||
|
|
@ -550,15 +550,14 @@ UTEST(scanner, sorting) {
|
||||||
{TOKEN_GREATER_THAN, ">"},
|
{TOKEN_GREATER_THAN, ">"},
|
||||||
{TOKEN_IDENT, "WS-SORT-MAX"},
|
{TOKEN_IDENT, "WS-SORT-MAX"},
|
||||||
{TOKEN_DISPLAY, "DISPLAY"},
|
{TOKEN_DISPLAY, "DISPLAY"},
|
||||||
{TOKEN_STRING, "\"Element \""},
|
{TOKEN_STRING, "Element "},
|
||||||
{TOKEN_IDENT, "WS-INDEX"},
|
{TOKEN_IDENT, "WS-INDEX"},
|
||||||
{TOKEN_STRING, "\": \""},
|
{TOKEN_STRING, ": "},
|
||||||
{TOKEN_IDENT, "WS-SORT-ROW"},
|
{TOKEN_IDENT, "WS-SORT-ROW"},
|
||||||
{TOKEN_LEFT_PARENTHESIS, "("},
|
{TOKEN_LEFT_PARENTHESIS, "("},
|
||||||
{TOKEN_IDENT, "WS-INDEX"},
|
{TOKEN_IDENT, "WS-INDEX"},
|
||||||
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
{TOKEN_RIGHT_PARENTHESIS, ")"},
|
||||||
{TOKEN_END_PERFORM, "END-PERFORM"},
|
{TOKEN_END_PERFORM, "END-PERFORM"},
|
||||||
{TOKEN_DOT, "."},
|
|
||||||
{TOKEN_STOP, "STOP"},
|
{TOKEN_STOP, "STOP"},
|
||||||
{TOKEN_RUN, "RUN"},
|
{TOKEN_RUN, "RUN"},
|
||||||
{TOKEN_DOT, "."},
|
{TOKEN_DOT, "."},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue