mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 02:52:24 +00:00
Merge branch 'master' of https://github.com/vishaps/voc
This commit is contained in:
commit
16c3f32484
7 changed files with 39 additions and 14 deletions
21
ReadMe.md
21
ReadMe.md
|
|
@ -101,6 +101,27 @@ executable binary.
|
||||||
|
|
||||||
Execute as usual on Linux ('./hello') or Windows ('hello').
|
Execute as usual on Linux ('./hello') or Windows ('hello').
|
||||||
|
|
||||||
|
In order to know module's interface, use "showdef" program.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ showdef Out.sym
|
||||||
|
DEFINITION Out;
|
||||||
|
|
||||||
|
VAR
|
||||||
|
IsConsole-: BOOLEAN;
|
||||||
|
|
||||||
|
PROCEDURE Char(ch: CHAR);
|
||||||
|
PROCEDURE Flush;
|
||||||
|
PROCEDURE Int(x: INT64; n: INT64);
|
||||||
|
PROCEDURE Ln;
|
||||||
|
PROCEDURE LongReal(x: LONGREAL; n: INT16);
|
||||||
|
PROCEDURE Open;
|
||||||
|
PROCEDURE Real(x: REAL; n: INT16);
|
||||||
|
PROCEDURE String(str: ARRAY OF CHAR);
|
||||||
|
PROCEDURE Ten(e: INT16): LONGREAL;
|
||||||
|
|
||||||
|
END Out.
|
||||||
|
```
|
||||||
|
|
||||||
Also see [**Compiling**](/doc/Compiling.md).
|
Also see [**Compiling**](/doc/Compiling.md).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1665,7 +1665,7 @@ static void OPP_Block (OPT_Node *procdec, OPT_Node *statseq)
|
||||||
obj->typ = OPT_undftyp;
|
obj->typ = OPT_undftyp;
|
||||||
OPP_CheckMark(&obj->vis);
|
OPP_CheckMark(&obj->vis);
|
||||||
if (OPP_sym == 9) {
|
if (OPP_sym == 9) {
|
||||||
if (((((((((__STRCMP(obj->name, "INTEGER") == 0 || __STRCMP(obj->name, "SHORTINT") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
if (((((((((__STRCMP(obj->name, "SHORTINT") == 0 || __STRCMP(obj->name, "INTEGER") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
||||||
OPM_Mark(-310, OPM_curpos);
|
OPM_Mark(-310, OPM_curpos);
|
||||||
}
|
}
|
||||||
OPS_Get(&OPP_sym);
|
OPS_Get(&OPP_sym);
|
||||||
|
|
|
||||||
|
|
@ -1665,7 +1665,7 @@ static void OPP_Block (OPT_Node *procdec, OPT_Node *statseq)
|
||||||
obj->typ = OPT_undftyp;
|
obj->typ = OPT_undftyp;
|
||||||
OPP_CheckMark(&obj->vis);
|
OPP_CheckMark(&obj->vis);
|
||||||
if (OPP_sym == 9) {
|
if (OPP_sym == 9) {
|
||||||
if (((((((((__STRCMP(obj->name, "INTEGER") == 0 || __STRCMP(obj->name, "SHORTINT") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
if (((((((((__STRCMP(obj->name, "SHORTINT") == 0 || __STRCMP(obj->name, "INTEGER") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
||||||
OPM_Mark(-310, OPM_curpos);
|
OPM_Mark(-310, OPM_curpos);
|
||||||
}
|
}
|
||||||
OPS_Get(&OPP_sym);
|
OPS_Get(&OPP_sym);
|
||||||
|
|
|
||||||
|
|
@ -1665,7 +1665,7 @@ static void OPP_Block (OPT_Node *procdec, OPT_Node *statseq)
|
||||||
obj->typ = OPT_undftyp;
|
obj->typ = OPT_undftyp;
|
||||||
OPP_CheckMark(&obj->vis);
|
OPP_CheckMark(&obj->vis);
|
||||||
if (OPP_sym == 9) {
|
if (OPP_sym == 9) {
|
||||||
if (((((((((__STRCMP(obj->name, "INTEGER") == 0 || __STRCMP(obj->name, "SHORTINT") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
if (((((((((__STRCMP(obj->name, "SHORTINT") == 0 || __STRCMP(obj->name, "INTEGER") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
||||||
OPM_Mark(-310, OPM_curpos);
|
OPM_Mark(-310, OPM_curpos);
|
||||||
}
|
}
|
||||||
OPS_Get(&OPP_sym);
|
OPS_Get(&OPP_sym);
|
||||||
|
|
|
||||||
|
|
@ -1665,7 +1665,7 @@ static void OPP_Block (OPT_Node *procdec, OPT_Node *statseq)
|
||||||
obj->typ = OPT_undftyp;
|
obj->typ = OPT_undftyp;
|
||||||
OPP_CheckMark(&obj->vis);
|
OPP_CheckMark(&obj->vis);
|
||||||
if (OPP_sym == 9) {
|
if (OPP_sym == 9) {
|
||||||
if (((((((((__STRCMP(obj->name, "INTEGER") == 0 || __STRCMP(obj->name, "SHORTINT") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
if (((((((((__STRCMP(obj->name, "SHORTINT") == 0 || __STRCMP(obj->name, "INTEGER") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
||||||
OPM_Mark(-310, OPM_curpos);
|
OPM_Mark(-310, OPM_curpos);
|
||||||
}
|
}
|
||||||
OPS_Get(&OPP_sym);
|
OPS_Get(&OPP_sym);
|
||||||
|
|
|
||||||
|
|
@ -1665,7 +1665,7 @@ static void OPP_Block (OPT_Node *procdec, OPT_Node *statseq)
|
||||||
obj->typ = OPT_undftyp;
|
obj->typ = OPT_undftyp;
|
||||||
OPP_CheckMark(&obj->vis);
|
OPP_CheckMark(&obj->vis);
|
||||||
if (OPP_sym == 9) {
|
if (OPP_sym == 9) {
|
||||||
if (((((((((__STRCMP(obj->name, "INTEGER") == 0 || __STRCMP(obj->name, "SHORTINT") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
if (((((((((__STRCMP(obj->name, "SHORTINT") == 0 || __STRCMP(obj->name, "INTEGER") == 0) || __STRCMP(obj->name, "LONGINT") == 0) || __STRCMP(obj->name, "HUGEINT") == 0) || __STRCMP(obj->name, "REAL") == 0) || __STRCMP(obj->name, "LONGREAL") == 0) || __STRCMP(obj->name, "SET") == 0) || __STRCMP(obj->name, "CHAR") == 0) || __STRCMP(obj->name, "TRUE") == 0) || __STRCMP(obj->name, "FALSE") == 0) {
|
||||||
OPM_Mark(-310, OPM_curpos);
|
OPM_Mark(-310, OPM_curpos);
|
||||||
}
|
}
|
||||||
OPS_Get(&OPP_sym);
|
OPS_Get(&OPP_sym);
|
||||||
|
|
|
||||||
|
|
@ -922,10 +922,14 @@ MODULE OPP; (* NW, RC 6.3.89 / 10.2.94 *) (* object model 4.12.93 *)
|
||||||
OPT.Insert(OPS.name, obj); obj^.mode := OPT.Typ; obj^.typ := OPT.undftyp;
|
OPT.Insert(OPS.name, obj); obj^.mode := OPT.Typ; obj^.typ := OPT.undftyp;
|
||||||
CheckMark(obj^.vis);
|
CheckMark(obj^.vis);
|
||||||
IF sym = OPS.eql THEN
|
IF sym = OPS.eql THEN
|
||||||
IF (obj^.name = "INTEGER") OR (obj^.name = "SHORTINT") OR
|
IF (obj^.name = "SHORTINT") OR
|
||||||
(obj^.name = "LONGINT") OR (obj^.name = "HUGEINT") OR
|
(obj^.name = "INTEGER") OR
|
||||||
(obj^.name = "LONGREAL") OR (obj^.name = "REAL") OR
|
(obj^.name = "LONGINT") OR
|
||||||
(obj^.name = "CHAR") OR (obj^.name = "SET") OR
|
(obj^.name = "HUGEINT") OR
|
||||||
|
(obj^.name = "REAL") OR
|
||||||
|
(obj^.name = "LONGREAL") OR
|
||||||
|
(obj^.name = "SET") OR
|
||||||
|
(obj^.name = "CHAR") OR
|
||||||
(obj^.name = "TRUE") OR (obj^.name = "FALSE") THEN
|
(obj^.name = "TRUE") OR (obj^.name = "FALSE") THEN
|
||||||
OPM.Mark(-310, OPM.curpos); (* notice about aliasing of predefined type *)
|
OPM.Mark(-310, OPM.curpos); (* notice about aliasing of predefined type *)
|
||||||
END;
|
END;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue