瀏覽代碼

Исправлена досадная ошибка - OR на &

Arthur Yefimov 2 年之前
父節點
當前提交
309f29aa39
共有 1 個文件被更改,包括 23 次插入25 次删除
  1. 23 25
      src/Autodoc/AutodocParser.Mod

+ 23 - 25
src/Autodoc/AutodocParser.Mod

@@ -235,7 +235,7 @@ PROCEDURE IsDec(x: CHAR): BOOLEAN;
 RETURN ('0' <= x) & (x <= '9') END IsDec;
 
 PROCEDURE IsHex(x: CHAR): BOOLEAN;
-RETURN IsDec(x) OR ('a' <= x) & (x <= 'f') OR ('A' <= x) OR (x <= 'F')
+RETURN IsDec(x) OR ('a' <= x) & (x <= 'f') OR ('A' <= x) & (x <= 'F')
 END IsHex;
 
 PROCEDURE FromHex(x: CHAR): INTEGER;
@@ -248,27 +248,6 @@ BEGIN
   END
 RETURN n END FromHex;
 
-(** Identifies global var id and sets globar var sym. *)
-PROCEDURE IdentifyKeyword;
-BEGIN
-  IF    id = 'MODULE'  THEN sym := module
-  ELSIF id = 'IMPORT'  THEN sym := import
-  ELSIF id = 'CONST'   THEN sym := const
-  ELSIF id = 'TYPE'    THEN sym := type
-  ELSIF id = 'VAR'     THEN sym := var
-  ELSIF id = 'RECORD'  THEN sym := record
-  ELSIF id = 'ARRAY'   THEN sym := array
-  ELSIF id = 'POINTER' THEN sym := pointer
-  ELSIF id = 'TO'      THEN sym := to
-  ELSIF id = 'OF'      THEN sym := of
-  ELSIF id = 'BEGIN'   THEN sym := begin
-  ELSIF id = 'END'     THEN sym := end
-  ELSIF id = 'DIV'     THEN sym := div
-  ELSIF id = 'MOD'     THEN sym := mod
-  ELSE sym := ident
-  END
-END IdentifyKeyword;
-
 (** Reads a decimal or hexadecimal number (or a hexadecimal char literal),
     puts it in id, len, ival, sym. *)
 PROCEDURE ReadNumber;
@@ -285,13 +264,11 @@ BEGIN
   isChar := c = 'X';
   IF (c = 'H') OR (c = 'X') THEN hex := TRUE; Read ELSE hex := FALSE END;
 
-  ival := 0;
+  ival := 0; i := 0;
   IF hex THEN
-    i := 0;
     WHILE id[i] # 0X DO ival := ival * 16 + FromHex(id[i]); INC(i) END;
     IF isChar THEN sym := char ELSE sym := int END
   ELSE
-    i := 0;
     WHILE id[i] # 0X DO
       IF IsDec(id[i]) THEN ival := ival * 10 + ORD(id[i]) - ORD('0')
       ELSE Mark('Not a hexadecimal number')
@@ -348,6 +325,27 @@ BEGIN Read; closed := FALSE; writingDoc := FALSE;
   END
 END ReadComment;
 
+(** Identifies global var id and sets globar var sym. *)
+PROCEDURE IdentifyKeyword;
+BEGIN
+  IF    id = 'MODULE'  THEN sym := module
+  ELSIF id = 'IMPORT'  THEN sym := import
+  ELSIF id = 'CONST'   THEN sym := const
+  ELSIF id = 'TYPE'    THEN sym := type
+  ELSIF id = 'VAR'     THEN sym := var
+  ELSIF id = 'RECORD'  THEN sym := record
+  ELSIF id = 'ARRAY'   THEN sym := array
+  ELSIF id = 'POINTER' THEN sym := pointer
+  ELSIF id = 'TO'      THEN sym := to
+  ELSIF id = 'OF'      THEN sym := of
+  ELSIF id = 'BEGIN'   THEN sym := begin
+  ELSIF id = 'END'     THEN sym := end
+  ELSIF id = 'DIV'     THEN sym := div
+  ELSIF id = 'MOD'     THEN sym := mod
+  ELSE sym := ident
+  END
+END IdentifyKeyword;
+
 PROCEDURE GetSym;
 BEGIN
   sym := null;