]> git.mdlowis.com Git - proto/obnc.git/commitdiff
restructured parser for readability
authorMichael D. Lowis <mike.lowis@gentex.com>
Tue, 4 May 2021 20:49:38 +0000 (16:49 -0400)
committerMichael D. Lowis <mike.lowis@gentex.com>
Tue, 4 May 2021 20:49:38 +0000 (16:49 -0400)
cerise/oberon0/OSP.Mod

index 9f37943b1d66fb77b2fd78035aaed6b5014c78c2..5afc26cf47862b7b04f12c6f2150568aae401c03 100644 (file)
@@ -594,7 +594,8 @@ MODULE OSP; (* NW 23.9.93 / 9,5.2017   OSPX*)
 \r
   PROCEDURE ProcedureDecl;\r
     CONST marksize = 4;\r
-    VAR proc, obj: OSG.Object;\r
+    VAR\r
+      proc, obj: OSG.Object;\r
       procid: OSS.Ident;\r
       nofpar: INTEGER;\r
       locblksize, parblksize: LONGINT;\r
@@ -602,22 +603,40 @@ MODULE OSP; (* NW 23.9.93 / 9,5.2017   OSPX*)
     PROCEDURE FPSection(VAR adr: LONGINT; VAR nofpar: INTEGER);\r
       VAR obj, first: OSG.Object; tp: OSG.Type; parsize: LONGINT;\r
     BEGIN\r
-      IF sym = OSS.var THEN OSS.Get(sym); IdentList(OSG.Par, first)\r
-      ELSE IdentList(OSG.Var, first)\r
+      IF sym = OSS.var THEN\r
+        OSS.Get(sym);\r
+        IdentList(OSG.Par, first)\r
+      ELSE\r
+        IdentList(OSG.Var, first)\r
       END ;\r
       IF sym = OSS.ident THEN\r
-        find(obj); OSS.Get(sym);\r
-        IF obj.class = OSG.Typ THEN tp := obj.type ELSE OSS.Mark("type?"); tp := OSG.intType END\r
-      ELSE OSS.Mark("ident?"); tp := OSG.intType\r
+        find(obj);\r
+        OSS.Get(sym);\r
+        IF obj.class = OSG.Typ THEN\r
+          tp := obj.type\r
+        ELSE\r
+          OSS.Mark("type?");\r
+          tp := OSG.intType\r
+        END\r
+      ELSE\r
+        OSS.Mark("ident?");\r
+        tp := OSG.intType\r
       END ;\r
       IF first.class = OSG.Var THEN\r
         parsize := tp.size;\r
-        IF tp.form >= OSG.Array THEN OSS.Mark("no struct params") END ;\r
-      ELSE parsize := WordSize\r
+        IF tp.form >= OSG.Array THEN\r
+          OSS.Mark("no struct params")\r
+        END ;\r
+      ELSE\r
+        parsize := WordSize\r
       END ;\r
       obj := first;\r
       WHILE obj # NIL DO\r
-        INC(nofpar); obj.type := tp; obj.lev := level; obj.val := adr; adr := adr + parsize;\r
+        INC(nofpar);\r
+        obj.type := tp;\r
+        obj.lev := level;\r
+        obj.val := adr;\r
+        adr := adr + parsize;\r
         obj := obj.next\r
       END\r
     END FPSection;\r
@@ -673,6 +692,7 @@ MODULE OSP; (* NW 23.9.93 / 9,5.2017   OSPX*)
         ProcedureDecl;\r
         Check(OSS.semicolon, "; expected")\r
       END ;\r
+\r
       proc.val := OSG.pc * 4;\r
       OSG.Enter(parblksize, locblksize, proc.comd);\r
       IF sym = OSS.begin THEN\r