]> git.mdlowis.com Git - proto/obnc.git/commitdiff
Removed PACK ROR and UNPK
authormike lowis <mike@mdlowis.com>
Sat, 10 Apr 2021 00:19:46 +0000 (20:19 -0400)
committermike lowis <mike@mdlowis.com>
Sat, 10 Apr 2021 00:19:46 +0000 (20:19 -0400)
.gitignore
src/Oberon.y
src/Table.c
src/y.tab.c
tests/obnc/passing/T4Expressions.obn
tests/obnc/passing/T5Statements.obn

index d58198e0e62d8ff2d0be9f9f70ff476a88ced97f..969780d9493e39990d0edaf8dc82a178f07f3803 100644 (file)
@@ -12,3 +12,4 @@ TableTest
 UtilTest
 lex.yyTest
 tags
+*.swp
index 76f82a682855f37480f34615435ef0fd7318d994..c25df75b944c152a81c16a9b728ab4aa4de6d99a 100644 (file)
@@ -3602,9 +3602,6 @@ static Trees_Node PredeclaredProcedureAST(const char procName[], Trees_Node expL
                {"Length", TREES_LEN_PROC},
                {"New", TREES_NEW_PROC},
                {"ORD", TREES_ORD_PROC},
-               {"PACK", TREES_PACK_PROC},
-               {"ROR", TREES_ROR_PROC},
-               {"UNPK", TREES_UNPK_PROC},
 
                {"ADR", TREES_ADR_PROC},
                {"SIZE", TREES_SIZE_PROC},
index 24145ecd0e1ac983f68db5fee95f88a9e0dbb97a..9280fed9bc78545753d02130e27fa25eea3ff127 100644 (file)
@@ -68,7 +68,7 @@ struct ScopeDesc {
 
 static int initialized = 0;
 
-static const char *predeclaredNames[23];
+static const char *predeclaredNames[20];
 static Trees_Node predeclaredNodes[LEN(predeclaredNames)];
 
 static Scope globalScope, currentScope;
@@ -78,30 +78,35 @@ static Maps_Map writtenSymbols;
 
 void Table_Init(void)
 {
+/* Type Conversions
+
+    FLOOR() -> AsInt()
+    FLT()   -> AsReal()
+    ORD()   -> AsInt()
+    CHR()   -> AsChar()
+
+*/
        static const struct { const char *name; int kind, type; } predecIdents[] = {
-               {"ABS", TREES_PROCEDURE_KIND, TREES_ABS_PROC},
-               {"ASR", TREES_PROCEDURE_KIND, TREES_ASR_PROC},
+               {"ABS", TREES_PROCEDURE_KIND, TREES_ABS_PROC},       /* Remove */
+               {"ASR", TREES_PROCEDURE_KIND, TREES_ASR_PROC},       /* Operator */
                {"Assert", TREES_PROCEDURE_KIND, TREES_ASSERT_PROC},
                {"Bool", TREES_TYPE_KIND, TREES_BOOLEAN_TYPE},
                {"Byte", TREES_TYPE_KIND, TREES_BYTE_TYPE},
                {"CHR", TREES_PROCEDURE_KIND, TREES_CHR_PROC},
                {"Char", TREES_TYPE_KIND, TREES_CHAR_TYPE},
-               {"DEC", TREES_PROCEDURE_KIND, TREES_DEC_PROC},
+               {"DEC", TREES_PROCEDURE_KIND, TREES_DEC_PROC},       /* Operator */
                {"EXCL", TREES_PROCEDURE_KIND, TREES_EXCL_PROC},
                {"FLOOR", TREES_PROCEDURE_KIND, TREES_FLOOR_PROC},
                {"FLT", TREES_PROCEDURE_KIND, TREES_FLT_PROC},
-               {"INC", TREES_PROCEDURE_KIND, TREES_INC_PROC},
+               {"INC", TREES_PROCEDURE_KIND, TREES_INC_PROC},       /* Operator */
                {"INCL", TREES_PROCEDURE_KIND, TREES_INCL_PROC},
                {"Int", TREES_TYPE_KIND, TREES_INTEGER_TYPE},
-               {"LSL", TREES_PROCEDURE_KIND, TREES_LSL_PROC},
+               {"LSL", TREES_PROCEDURE_KIND, TREES_LSL_PROC},       /* Operator */
                {"Length", TREES_PROCEDURE_KIND, TREES_LEN_PROC},
                {"New", TREES_PROCEDURE_KIND, TREES_NEW_PROC},
                {"ORD", TREES_PROCEDURE_KIND, TREES_ORD_PROC},
-               {"PACK", TREES_PROCEDURE_KIND, TREES_PACK_PROC},
-               {"ROR", TREES_PROCEDURE_KIND, TREES_ROR_PROC},
                {"Real", TREES_TYPE_KIND, TREES_REAL_TYPE},
                {"Set", TREES_TYPE_KIND, TREES_SET_TYPE},
-               {"UNPK", TREES_PROCEDURE_KIND, TREES_UNPK_PROC}
        };
 
        int i;
index f641effd8189ec277d37f872d930f414226e7127..86b5194101bfd6e2ecc839575ec6751bee9d83d6 100644 (file)
@@ -5580,9 +5580,6 @@ static Trees_Node PredeclaredProcedureAST(const char procName[], Trees_Node expL
                {"Length", TREES_LEN_PROC},
                {"New", TREES_NEW_PROC},
                {"ORD", TREES_ORD_PROC},
-               {"PACK", TREES_PACK_PROC},
-               {"ROR", TREES_ROR_PROC},
-               {"UNPK", TREES_UNPK_PROC},
 
                {"ADR", TREES_ADR_PROC},
                {"SIZE", TREES_SIZE_PROC},
index 74ff49293741a8ddd331c140dfd47a6a0deef028..88c45674b117785b525b9938e199f32877ddc652 100644 (file)
@@ -381,7 +381,6 @@ Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln;
                        absConst = ABS(0);
                        lslConst = LSL(0, 0);
                        asrConst = ASR(0, 0);
-                       rorConst = ROR(0, 1);
                        floorConst = FLOOR(eps);
                        fltConst = FLT(0);
                        ordConst = ORD(true);
@@ -390,7 +389,7 @@ Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln;
                var a: array 10 of Char;
                        b: Bool;
                        ch: Char;
-                       i, j, k: Int;
+                       i, j: Int;
                        r: Real;
                        x: Byte;
                        s: Set;
@@ -419,15 +418,6 @@ Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln;
                Assert(ASR(1, 0) = 1);
                Assert(ASR(1, 1) = 0);
 
-               Assert(ROR(0, 1) = 0);
-               Assert(ROR(2, 1) = 1);
-               i := 0;
-               j := 0;
-               k := ROR(IncReturnZero(i) + 2, IncReturnZero(j) + 1);
-               Assert(k = 1);
-               Assert(i = 1);
-               Assert(j = 1);
-
                Assert(FLOOR(-1.5) = -2);
                Assert(FLOOR(0.0) = 0);
                Assert(FLOOR(1.5) = 1);
@@ -475,7 +465,6 @@ Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln;
                i := absConst;
                i := lslConst;
                i := asrConst;
-               i := rorConst;
                i := floorConst;
                r := fltConst;
                i := ordConst;
index 3b89f4490198aeb60cf19cca745485e92c0651dd..12b3bafbd6d9d648c3fbacf3cf7abda6f3079b37 100644 (file)
@@ -294,20 +294,9 @@ module T5Statements;
 
 
        procedure TestPredeclaredProperProcedures;
-               const eps = 0.01;
-               var n, i, j: Int;
+               var n: Int;
                        A: Set;
-                       x: Real;
-                       a: array 1 of Real;
-                       b: array 1 of Int;
                        v: pointer to record f: Int end;
-
-               procedure IncReturnZero(var x: Int): Int;
-               begin
-                       INC(x)
-               return 0
-               end IncReturnZero;
-
        begin
                n := 0;
                INC(n);
@@ -337,34 +326,6 @@ module T5Statements;
                Assert(v # nil);
                v.f := 1;
                Assert(v.f = 1);
-
-               x := 1.0;
-               PACK(x, 2);
-               Assert(x >= 4.0 - eps);
-               Assert(x <= 4.0 + eps);
-               a[0] := 1.0;
-               i := 0;
-               j := 0;
-               PACK(a[IncReturnZero(i)], IncReturnZero(j) + 2);
-               Assert(a[0] >= 4.0 - eps);
-               Assert(a[0] <= 4.0 + eps);
-               Assert(i = 1);
-               Assert(j = 1);
-
-               x := 4.0;
-               UNPK(x, n);
-               Assert(x >= 1.0);
-               Assert(x < 2.0);
-               Assert(n = 2);
-               a[0] := 4.0;
-               i := 0;
-               j := 0;
-               UNPK(a[IncReturnZero(i)], b[IncReturnZero(j)]);
-               Assert(a[0] >= 1.0);
-               Assert(a[0] < 2.0);
-               Assert(b[0] = 2);
-               Assert(i = 1);
-               Assert(j = 1)
        end TestPredeclaredProperProcedures;