1,285 → 1,171 |
(* |
Copyright 2016, 2017 Anton Krotov |
(* |
BSD 2-Clause License |
|
This file is part of Compiler. |
|
Compiler is free software: you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation, either version 3 of the License, or |
(at your option) any later version. |
|
Compiler is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
You should have received a copy of the GNU General Public License |
along with Compiler. If not, see <http://www.gnu.org/licenses/>. |
Copyright (c) 2018, 2019, Anton Krotov |
All rights reserved. |
*) |
|
MODULE ERRORS; |
|
IMPORT H := HOST; |
IMPORT C := CONSOLE, UTILS; |
|
TYPE |
|
STRING = ARRAY 1024 OF CHAR; |
PROCEDURE hintmsg* (name: ARRAY OF CHAR; line, col, hint: INTEGER); |
BEGIN |
IF hint = 0 THEN |
C.String(" hint ("); C.Int(line); C.String(":"); C.Int(col); C.String(")"); |
C.String(" variable '"); C.String(name); C.StringLn("' never used") |
END |
END hintmsg; |
|
CP = ARRAY 256 OF INTEGER; |
|
PROCEDURE errormsg* (fname: ARRAY OF CHAR; line, col, errno: INTEGER); |
VAR |
str: ARRAY 80 OF CHAR; |
|
cp: CP; |
|
|
PROCEDURE utf8(code: INTEGER; VAR uchar: STRING); |
BEGIN |
uchar[0] := 0X; |
IF code < 80H THEN |
uchar[0] := CHR(code); |
uchar[1] := 0X |
ELSIF code < 800H THEN |
uchar[1] := CHR(ROR(LSL(code, 26), 26) + 80H); |
uchar[0] := CHR(ASR(code, 6) + 0C0H); |
uchar[2] := 0X |
ELSIF code < 10000H THEN |
uchar[2] := CHR(ROR(LSL(code, 26), 26) + 80H); |
code := ASR(code, 6); |
uchar[1] := CHR(ROR(LSL(code, 26), 26) + 80H); |
uchar[0] := CHR(ASR(code, 6) + 0E0H); |
uchar[3] := 0X |
(* |
ELSIF code < 200000H THEN |
ELSIF code < 4000000H THEN |
ELSE *) |
END |
END utf8; |
C.Ln; |
C.String(" error ("); C.Int(line); C.String(":"); C.Int(col); C.String(") "); |
|
PROCEDURE InitCP(VAR cp: CP); |
VAR i: INTEGER; |
BEGIN |
FOR i := 0H TO 7FH DO |
cp[i] := i |
END |
END InitCP; |
CASE errno OF |
| 1: str := "missing 'H' or 'X'" |
| 2: str := "missing scale" |
| 3: str := "unclosed string" |
| 4: str := "illegal character" |
| 5: str := "string too long" |
| 6: str := "identifier too long" |
| 7: str := "number too long" |
| 8..12: str := "number too large" |
|
PROCEDURE Init8(VAR cp: CP; VAR n: INTEGER; a, b, c, d, e, f, g, h: INTEGER); |
BEGIN |
cp[n] := a; INC(n); |
cp[n] := b; INC(n); |
cp[n] := c; INC(n); |
cp[n] := d; INC(n); |
cp[n] := e; INC(n); |
cp[n] := f; INC(n); |
cp[n] := g; INC(n); |
cp[n] := h; INC(n); |
END Init8; |
|
PROCEDURE InitCP866(VAR cp: CP); |
VAR n, i: INTEGER; |
BEGIN |
FOR i := 0410H TO 043FH DO |
cp[i - 0410H + 80H] := i |
| 21: str := "'MODULE' expected" |
| 22: str := "identifier expected" |
| 23: str := "module name does not match file name" |
| 24: str := "';' expected" |
| 25: str := "identifier does not match module name" |
| 26: str := "'.' expected" |
| 27: str := "'END' expected" |
| 28: str := "',', ';' or ':=' expected" |
| 29: str := "module not found" |
| 30: str := "multiply defined identifier" |
| 31: str := "recursive import" |
| 32: str := "'=' expected" |
| 33: str := "')' expected" |
| 34: str := "syntax error in expression" |
| 35: str := "'}' expected" |
| 36: str := "incompatible operand" |
| 37: str := "incompatible operands" |
| 38: str := "'RETURN' expected" |
| 39: str := "integer overflow" |
| 40: str := "floating point overflow" |
| 41: str := "not enough floating point registers; simplify expression" |
| 42: str := "out of range 0..255" |
| 43: str := "expression is not an integer" |
| 44: str := "out of range 0..MAXSET" |
| 45: str := "division by zero" |
| 46: str := "integer division by zero" |
| 47: str := "'OF' or ',' expected" |
| 48: str := "undeclared identifier" |
| 49: str := "type expected" |
| 50: str := "recursive type definition" |
| 51: str := "illegal value of constant" |
| 52: str := "not a record type" |
| 53: str := "':' expected" |
| 54: str := "need to import SYSTEM" |
| 55: str := "pointer type not defined" |
| 56: str := "out of range 0..MAXSET" |
| 57: str := "'TO' expected" |
| 58: str := "not a record type" |
| 59: str := "this expression cannot be a procedure" |
| 60: str := "identifier does not match procedure name" |
| 61: str := "illegally marked identifier" |
| 62: str := "expression should be constant" |
| 63: str := "'stdcall', 'ccall', 'ccall16', 'windows' or 'linux' expected" |
| 64: str := "'(' expected" |
| 65: str := "',' expected" |
| 66: str := "incompatible parameter" |
| 67: str := "'OF' expected" |
| 68: str := "type expected" |
| 69: str := "result type of procedure is not a basic type" |
| 70: str := "import not supported" |
| 71: str := "']' expected" |
| 72: str := "expression is not BOOLEAN" |
| 73: str := "not a record" |
| 74: str := "undefined record field" |
| 75: str := "not an array" |
| 76: str := "expression is not an integer" |
| 77: str := "not a pointer" |
| 78: str := "type guard not allowed" |
| 79: str := "not a type" |
| 80: str := "not a record type" |
| 81: str := "not a pointer type" |
| 82: str := "type guard not allowed" |
| 83: str := "index out of range" |
| 84: str := "dimension too large" |
| 85: str := "procedure must have level 0" |
| 86: str := "not a procedure" |
| 87: str := "incompatible expression (RETURN)" |
| 88: str := "'THEN' expected" |
| 89: str := "'DO' expected" |
| 90: str := "'UNTIL' expected" |
| 91: str := "incompatible assignment" |
| 92: str := "procedure call of a function" |
| 93: str := "not a variable" |
| 94: str := "read only variable" |
| 95: str := "invalid type of expression (CASE)" |
| 96: str := "':=' expected" |
| 97: str := "not INTEGER variable" |
| 98: str := "illegal value of constant (0)" |
| 99: str := "incompatible label" |
|100: str := "multiply defined label" |
|101: str := "too large parameter of WCHR" |
|102: str := "label expected" |
|103: str := "illegal value of constant" |
|104: str := "type too large" |
|105: str := "access to intermediate variables not allowed" |
|106: str := "qualified identifier expected" |
|107: str := "too large parameter of CHR" |
|108: str := "a variable or a procedure expected" |
|109: str := "expression should be constant" |
|110: str := "'noalign' expected" |
|111: str := "record [noalign] cannot have a base type" |
|112: str := "record [noalign] cannot be a base type" |
|113: str := "result type of procedure should not be REAL" |
|114: str := "identifiers 'lib_init' and 'version' are reserved" |
|115: str := "recursive constant definition" |
|116: str := "procedure too deep nested" |
|117: str := "'stdcall64', 'win64', 'systemv', 'windows' or 'linux' expected" |
|118: str := "this flag for Windows only" |
|119: str := "this flag for Linux only" |
|120: str := "too many formal parameters" |
END; |
FOR i := 0440H TO 044FH DO |
cp[i - 0440H + 0E0H] := i |
END; |
C.StringLn(str); |
C.String(" file: "); C.StringLn(fname); |
UTILS.Exit(1) |
END errormsg; |
|
n := 0B0H; |
Init8(cp, n, 2591H, 2592H, 2593H, 2502H, 2524H, 2561H, 2562H, 2556H); |
Init8(cp, n, 2555H, 2563H, 2551H, 2557H, 255DH, 255CH, 255BH, 2510H); |
Init8(cp, n, 2514H, 2534H, 252CH, 251CH, 2500H, 253CH, 255EH, 255FH); |
Init8(cp, n, 255AH, 2554H, 2569H, 2566H, 2560H, 2550H, 256CH, 2567H); |
Init8(cp, n, 2568H, 2564H, 2565H, 2559H, 2558H, 2552H, 2553H, 256BH); |
Init8(cp, n, 256AH, 2518H, 250CH, 2588H, 2584H, 258CH, 2590H, 2580H); |
|
n := 0F0H; |
Init8(cp, n, 0401H, 0451H, 0404H, 0454H, 0407H, 0457H, 040EH, 045EH); |
Init8(cp, n, 00B0H, 2219H, 00B7H, 221AH, 2116H, 00A4H, 25A0H, 00A0H); |
PROCEDURE error1* (s1: ARRAY OF CHAR); |
BEGIN |
C.Ln; |
C.StringLn(s1); |
UTILS.Exit(1) |
END error1; |
|
InitCP(cp) |
END InitCP866; |
|
PROCEDURE concat(VAR L: STRING; R: STRING); |
VAR i, n, pos: INTEGER; |
PROCEDURE error3* (s1, s2, s3: ARRAY OF CHAR); |
BEGIN |
n := LENGTH(R); |
i := 0; |
pos := LENGTH(L); |
WHILE (i <= n) & (pos < LEN(L)) DO |
L[pos] := R[i]; |
INC(pos); |
INC(i) |
END |
END concat; |
C.Ln; |
C.String(s1); C.String(s2); C.StringLn(s3); |
UTILS.Exit(1) |
END error3; |
|
PROCEDURE Utf8(VAR str: STRING); |
VAR i: INTEGER; in, out, u: STRING; |
BEGIN |
in := str; |
out := ""; |
FOR i := 0 TO LENGTH(in) - 1 DO |
utf8(cp[ORD(in[i])], u); |
concat(out, u) |
END; |
str := out |
END Utf8; |
|
PROCEDURE ErrorMsg*(code: INTEGER; VAR msg: ARRAY OF CHAR); |
VAR str: STRING; |
PROCEDURE error5* (s1, s2, s3, s4, s5: ARRAY OF CHAR); |
BEGIN |
CASE code OF |
| 1: str := "®¦¨¤ « áì 'H' ¨«¨ 'X'" |
| 2: str := "®¦¨¤ « áì æ¨äà " |
| 3: str := "áâப ¥ ᮤ¥à¦¨â § ªàë¢ î饩 ª ¢ë窨" |
| 4: str := "¥¤®¯ãáâ¨¬ë© á¨¬¢®«" |
| 5: str := "楫®ç¨á«¥®¥ ¯¥à¥¯®«¥¨¥" |
| 6: str := "᫨誮¬ ¡®«ì讥 § 票¥ ᨬ¢®«ì®© ª®áâ âë" |
| 7: str := "¢¥é¥á⢥®¥ ¯¥à¥¯®«¥¨¥" |
| 8: str := "¯¥à¥¯®«¥¨¥ ¯®à浪 ¢¥é¥á⢥®£® ç¨á« " |
| 9: str := "¢¥é¥á⢥®¥ ⨯¥à¥¯®«¥¨¥" |
| 10: str := "᫨誮¬ ¤«¨ë© ¨¤¥â¨ä¨ª â®à" |
| 11: str := "᫨誮¬ ¤«¨ ï áâப®¢ ï ª®áâ â " |
C.Ln; |
C.String(s1); C.String(s2); C.String(s3); C.String(s4); C.StringLn(s5); |
UTILS.Exit(1) |
END error5; |
|
| 21: str := "®¦¨¤ «®áì 'MODULE'" |
| 22: str := "®¦¨¤ «áï ¨¤¥â¨ä¨ª â®à" |
| 23: str := "®¦¨¤ « áì ';'" |
| 24: str := "®¦¨¤ «®áì 'END'" |
| 25: str := "®¦¨¤ « áì '.'" |
| 26: str := "¨¤¥â¨ä¨ª â®à ¥ ᮢ¯ ¤ ¥â á ¨¬¥¥¬ ¬®¤ã«ï" |
| 27: str := "¥®¦¨¤ ë© ª®¥æ ä ©« " |
| 28: str := "®¦¨¤ « áì ',', ';' ¨«¨ ':='" |
| 29: str := "®¦¨¤ « áì ',' ¨«¨ ';'" |
| 30: str := "¨¤¥â¨ä¨ª â®à ¯¥à¥®¯à¥¤¥«¥" |
| 31: str := "横«¨ç¥áª¨© ¨¬¯®àâ" |
| 32: str := "¬®¤ã«ì ¥ ©¤¥ ¨«¨ ®è¨¡ª ¤®áâ㯠" |
| 33: str := "¨¬ï ¬®¤ã«ï ¥ ᮢ¯ ¤ ¥â á ¨¬¥¥¬ ä ©« ¬®¤ã«ï" |
| 34: str := "¥¯à ¢¨«ìë© ä®à¬ â áâப¨ ¬ è¨ëå ª®¤®¢" |
| 35: str := "®¦¨¤ «®áì '='" |
| 36: str := "á¨â ªá¨ç¥áª ï ®è¨¡ª ¢ ¢ëà ¦¥¨¨" |
| 37: str := "®¯¥à æ¨ï ¥ ¯à¨¬¥¨¬ " |
| 38: str := "®¦¨¤ « áì ')'" |
| 39: str := "®¦¨¤ «oáì 'ARRAY', 'RECORD', 'POINTER' ¨«¨ 'PROCEDURE'" |
| 40: str := "®¦¨¤ «oáì 'TO'" |
| 41: str := "®¦¨¤ «oáì 'OF'" |
| 42: str := "¥®¯à¥¤¥«¥ë© ¨¤¥â¨ä¨ª â®à" |
| 43: str := "âॡã¥âáï ¯¥à¥¬¥ ï, ¯à®æ¥¤ãà ¨«¨ áâப®¢ ï ª®áâ â " |
| 44: str := "®¦¨¤ «oáì 'cdecl', 'stdcall' ¨«¨ 'winapi'" |
| 45: str := "ä« £ ¢ë§®¢ ¥¤®¯ã᪠¥âáï ¤«ï «®ª «ìëå ¯à®æ¥¤ãà" |
| 46: str := "¤¥«¥¨¥ ã«ì" |
| 47: str := "âॡã¥âáï ¨¤¥â¨ä¨ª â®à ⨯ -§ ¯¨á¨ ¨«¨ ⨯ -㪠§ ⥫ï" |
| 48: str := "楫®ç¨á«¥®¥ ¤¥«¥¨¥ ã«ì" |
| 49: str := "§ 票¥ «¥¢®£® ®¯¥à ¤ ¢¥ ¤¨ ¯ §® 0..31" |
| 50: str := "ä« £ [winapi] ¤®áâ㯥 ⮫쪮 ¤«ï ¯« âä®à¬ë Windows" |
| 51: str := "®¦¨¤ « áì '}'" |
| 52: str := "âॡã¥âáï ¢ëà ¦¥¨¥ ⨯ INTEGER" |
| 53: str := "§ 票¥ ¢ëà ¦¥¨ï ¢¥ ¤¨ ¯ §® 0..31" |
| 54: str := "«¥¢ ï £à ¨æ ¤¨ ¯ §® ¡®«ìè¥ ¯à ¢®©" |
| 55: str := "âॡã¥âáï ª®áâ â ⨯ CHAR" |
| 56: str := "®¦¨¤ « áì '('" |
| 57: str := "âॡã¥âáï ¢ëà ¦¥¨¥ ç¨á«®¢®£® ⨯ " |
|
| 59: str := "¥¤®áâ â®ç® ¯ à ¬¥â஢" |
| 60: str := "¥¤®¯ãáâ¨¬ë© ¯ à ¬¥âà" |
| 61: str := "®¦¨¤ « áì ','" |
| 62: str := "âॡã¥âáï ª®áâ ⮥ ¢ëà ¦¥¨¥" |
| 63: str := "âॡã¥âáï ¯¥à¥¬¥ ï" |
| 64: str := "ä ©« ¥ ©¤¥ ¨«¨ ®è¨¡ª ¤®áâ㯠" |
| 65: str := "¬®¤ã«ì RTL ¥ ©¤¥" |
| 66: str := "âॡã¥âáï ¢ëà ¦¥¨¥ ⨯ REAL ¨«¨ LONGREAL" |
| 67: str := "¥¢®§¬®¦® ᮧ¤ âì ä ©«, ¢®§¬®¦® ä ©« ®âªàëâ ¨«¨ ¤¨áª § é¨é¥ ®â § ¯¨á¨" |
| 68: str := "âॡã¥âáï ¢ëà ¦¥¨¥ ⨯ CHAR, SET ¨«¨ BOOLEAN" |
| 69: str := "¥¢®§¬®¦® § ¯¨á âì ä ©«" |
| 70: str := "âॡã¥âáï ¢ëà ¦¥¨¥ ⨯ LONGREAL" |
| 71: str := "âॡã¥âáï ¢ëà ¦¥¨¥ ⨯ REAL" |
| 72: str := "¥¤®áâ â®ç® ¯ ¬ï⨠¤«ï § ¢¥àè¥¨ï ª®¬¯¨«ï樨" |
| 73: str := "¯à®æ¥¤ãà ¥ ¢®§¢à é îé ï १ã«ìâ â ¥¤®¯ãá⨬ ¢ ¢ëà ¦¥¨ïå" |
| 74: str := "§ 票¥ ¢ëà ¦¥¨ï ¢¥ 楫®ç¨á«¥®£® ¤¨ ¯ §® " |
| 75: str := "४ãàᨢ®¥ ®¯à¥¤¥«¥¨¥ ª®áâ âë" |
| 76: str := "§ 票¥ ¢ëà ¦¥¨ï ¢¥ ¤¨ ¯ §® 0..255" |
| 77: str := "®¦¨¤ «áï ¨¤¥â¨ä¨ª â®à ⨯ " |
| 78: str := "¤«¨ ⨯ -¬ áᨢ ¤®«¦ ¡ëâì ¡®«ìè¥ ã«ï" |
| 79: str := "®¦¨¤ «®áì 'OF' ¨«¨ ','" |
| 80: str := "®¦¨¤ «áï ¨¤¥â¨ä¨ª â®à ⨯ -§ ¯¨á¨ ¨«¨ ⨯ -㪠§ ⥫ï" |
| 81: str := "¡ §®¢ë© ⨯ ⨯ -㪠§ â¥«ï ¤®«¦¥ ¡ëâì § ¯¨áìî" |
| 82: str := "⨯ १ã«ìâ â ¯à®æ¥¤ãàë ¥ ¬®¦¥â ¡ëâì § ¯¨áìî ¨«¨ ¬ áᨢ®¬" |
| 83: str := "à §¬¥à ⨯ ᫨誮¬ ¢¥«¨ª" |
| 84: str := "®¦¨¤ «áï ¨¤¥â¨ä¨ª â®à ¨«¨ 'VAR'" |
| 85: str := "®¦¨¤ « áì ',' ¨«¨ ':'" |
| 86: str := "®¦¨¤ «®áì 'END' ¨«¨ ';'" |
| 87: str := "¨¤¥â¨ä¨ª â®à ¥ ᮢ¯ ¤ ¥â á ¨¬¥¥¬ ¯à®æ¥¤ãàë" |
|
| 89: str := "íªá¯®àâ «®ª «ì®£® ¨¤¥â¨ä¨ª â®à ¥¤®¯ãá⨬" |
| 90: str := "⨯ ARRAY ¨«¨ RECORD ¥¤®¯ãá⨬" |
| 91: str := "âॡã¥âáï ¨¤¥â¨ä¨ª â®à ¢¥é¥á⢥®£® ⨯ " |
|
| 93: str := "à §¬¥à ¤ ëå ᫨誮¬ ¢¥«¨ª" |
| 94: str := "áâப ¤«¨ë, ®â«¨ç®© ®â 1 ¥¤®¯ãá⨬ " |
| 95: str := "§ 票¥ ¢ëà ¦¥¨ï ¤®«¦® ¡ëâì ¢ ¤¨ ¯ §®¥ 0..127" |
| 96: str := "¥¤®¯ãá⨬®¥ ४ãàᨢ®¥ ®¯à¥¤¥«¥¨¥ ⨯ " |
| 97: str := "¥¤®áâ â®ç® ¢¥é¥á⢥ëå ॣ¨áâ஢, ã¯à®áâ¨â¥ ¢ëà ¦¥¨¥" |
| 98: str := "®¦¨¤ «®áì 'THEN'" |
| 99: str := "¯®«¥ § ¯¨á¨ ¥ ©¤¥®" |
|100: str := "¬¥âª ¤ã¡«¨à®¢ " |
|101: str := "¨¤¥â¨ä¨ª â®à ⨯ ¥¤®¯ãá⨬ ¢ ¢ëà ¦¥¨ïå" |
|102: str := "âॡã¥âáï ¬ áᨢ" |
|103: str := "®¦¨¤ «oáì 'union' ¨«¨ 'noalign'" |
|104: str := "âॡã¥âáï 㪠§ ⥫ì" |
|105: str := "âॡã¥âáï § ¯¨áì" |
|106: str := "âॡã¥âáï ¨¤¥â¨ä¨ª â®à ⨯ -§ ¯¨á¨" |
|107: str := "âॡã¥âáï ¨¤¥â¨ä¨ª â®à ⨯ -㪠§ ⥫ï" |
|108: str := "¥¤®¯ãá⨬ ï ®åà ⨯ " |
|109: str := "®¦¨¤ « áì ']'" |
|110: str := "à §¬¥à®áâì ®âªàë⮣® ¬ áᨢ ᫨誮¬ ¢¥«¨ª " |
|111: str := "á¨áâ¥¬ë¥ ä« £¨ âॡãîâ ¨¬¯®àâ ¬®¤ã«ï SYSTEM" |
|112: str := "à áè¨à¥¨¥ § ¯¨á¨ ¥ ¬®¦¥â ¡ëâì [noalign] ¨«¨ [union]" |
|113: str := "¡ §®¢ë© ⨯ § ¯¨á¨ ¥ ¬®¦¥â ¡ëâì [noalign] ¨«¨ [union]" |
|114: str := "¥á®¢¬¥áâ¨¬ë© ¯ à ¬¥âà" |
|115: str := "¯¥à¥¬¥ ï ¤®áâ㯠⮫쪮 ¤«ï ç⥨ï" |
|116: str := "¥«ì§ï ¨á¯®«ì§®¢ âì «®ª «ìãî ¯à®æ¥¤ãàã" |
|117: str := "âॡã¥âáï ¢ëà ¦¥¨¥ ⨯ BOOLEAN" |
|118: str := "®¦¨¤ «®áì 'DO'" |
|119: str := "®¦¨¤ «®áì 'UNTIL'" |
|120: str := "®¦¨¤ «®áì ':='" |
|121: str := "à áè¨à¥¨¥ ¨¬¥¨ ä ©« £« ¢®£® ¬®¤ã«ï ¤®«¦® ¡ëâì 'ob07'" |
|122: str := "§ 票¥ ¢ëà ¦¥¨ï ¥ ¬®¦¥â ¡ëâì à ¢ë¬ ã«î" |
|123: str := "'RETURN' ¥¤®¯ãá⨬ ¢ ¯à®æ¥¤ãà¥, ¥ ¢®§¢à é î饩 १ã«ìâ â" |
|124: str := "®¦¨¤ «®áì 'RETURN'" |
|125: str := "⨯ ¢ëà ¦¥¨ï ¥ ᮮ⢥âáâ¢ã¥â ⨯ã १ã«ìâ â ¯à®æ¥¤ãàë" |
|126: str := "âॡã¥âáï ¨¤¥â¨ä¨ª â®à ¯¥à¥¬¥®©" |
|127: str := "áç¥â稪 横« FOR ¥ ¤®«¦¥ ¡ëâì ¯ à ¬¥â஬" |
|128: str := "⨯ ¯¥à¥¬¥®© ¤®«¦¥ ¡ëâì INTEGER" |
|129: str := "¯¥à¥¬¥ ï ¤®«¦ ¡ëâì «®ª «ì®©" |
|130: str := "¥«ì§ï ¨á¯®«ì§®¢ âì ª®áâ âã" |
|131: str := "¥á®¢¬¥á⨬®áâì ¯® ¯à¨á¢ ¨¢ ¨î" |
|132: str := "¢ë§®¢ ¯à®æ¥¤ãàë-äãªæ¨¨ ¤®¯ã᪠¥âáï ⮫쪮 ¢ á®áâ ¢¥ ¢ëà ¦¥¨ï" |
|133: str := "¨¤¥â¨ä¨ª â®àë 'lib_init' ¨ 'version' § १¥à¢¨à®¢ ë" |
|
|138: str := "⨯ ¯¥à¥¬¥®© ¤®«¦¥ ¡ëâì SET" |
|
|141: str := "âॡã¥âáï áâப ¨«¨ ᨬ¢®«ìë© ¬ áᨢ" |
|
|143: str := "âॡã¥âáï ᨬ¢®«ìë© ¬ áᨢ" |
|
|145: str := "⨯ ¯¥à¥¬¥®© ¤®«¦¥ ¡ëâì POINTER" |
|
|149: str := "⨯ ¯¥à¥¬¥®© ¤®«¦¥ ¡ëâì REAL ¨«¨ LONGREAL" |
|150: str := "âॡã¥âáï áâப®¢ ï ª®áâ â " |
|
|155: str := "®¦¨¤ « áì '(' ¨«¨ ':='" |
|156: str := "âॡã¥âáï ¢ëà ¦¥¨¥ ⨯ INTEGER ¨«¨ CHAR" |
|157: str := "®¦¨¤ « áì ':'" |
|158: str := "¥ ©¤¥ ¯à®æ¥¤ãà ¢ ¬®¤ã«¥ RTL" |
|159: str := " àã襨¥ £à ¨æ ¬ áᨢ " |
|160: str := "®¦¨¤ «áï ¨¤¥â¨ä¨ª â®à ª®áâ âë" |
|161: str := "âॡã¥âáï ª®áâ â ⨯ INTEGER" |
END; |
IF H.OS = "LNX" THEN |
Utf8(str) |
END; |
COPY(str, msg) |
END ErrorMsg; |
|
BEGIN |
InitCP866(cp) |
END ERRORS. |