diff options
Diffstat (limited to 'gcc/m2/gm2-compiler')
-rw-r--r-- | gcc/m2/gm2-compiler/M2Quads.mod | 4 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/P3Build.bnf | 20 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/P3SymBuild.def | 8 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/P3SymBuild.mod | 16 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/PCBuild.bnf | 25 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/PCSymBuild.def | 8 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/PCSymBuild.mod | 16 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/PHBuild.bnf | 20 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/SymbolTable.def | 2 | ||||
-rw-r--r-- | gcc/m2/gm2-compiler/SymbolTable.mod | 52 |
10 files changed, 94 insertions, 77 deletions
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod index c2be0ba..3bdf8c5 100644 --- a/gcc/m2/gm2-compiler/M2Quads.mod +++ b/gcc/m2/gm2-compiler/M2Quads.mod @@ -10712,7 +10712,7 @@ BEGIN ELSE resulttok := functok ; MetaErrorT1 (resulttok, - '{%E}SYSTEM procedure {%kSIZE} expects a variable as its parameter, seen {%1Ed}', + '{%E}SYSTEM procedure {%kSIZE} expects a variable or type as its parameter, seen {%1Ed}', OperandT (1)) ; ReturnVar := MakeConstLit (resulttok, MakeKey('0'), Cardinal) END ; @@ -10777,7 +10777,7 @@ BEGIN GenQuadO (resulttok, SizeOp, ReturnVar, NulSym, GetSType (OperandT (1)), FALSE) ELSE MetaErrorT1 (resulttok, - '{%E}SYSTEM procedure function {%kTSIZE} expects a variable as its first parameter, seen {%1Ed}', + '{%E}SYSTEM procedure function {%kTSIZE} expects a variable or type as its first parameter, seen {%1Ed}', OperandT (1)) ; ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal) END diff --git a/gcc/m2/gm2-compiler/P3Build.bnf b/gcc/m2/gm2-compiler/P3Build.bnf index ab4caae..959b5f6 100644 --- a/gcc/m2/gm2-compiler/P3Build.bnf +++ b/gcc/m2/gm2-compiler/P3Build.bnf @@ -655,7 +655,7 @@ FileUnit := % Pus ImplementationOrProgramModule ) % PopAuto % =: -ProgramModule := % VAR modulet, endt: CARDINAL ; % +ProgramModule := % VAR modulet, endt, namet: CARDINAL ; % % modulet := GetTokenNo () % "MODULE" % M2Error.DefaultProgramModule % % PushAutoOn % @@ -670,12 +670,13 @@ ProgramModule := % VAR { Import } Block % PushAutoOn % % endt := GetTokenNo () -1 % + % namet := GetTokenNo () % Ident % EndBuildFile (endt) % - % P3EndBuildProgModule % + % P3EndBuildProgModule (namet) % "." % PopAuto ; PopAuto % =: -ImplementationModule := % VAR modulet, endt: CARDINAL ; % +ImplementationModule := % VAR modulet, endt, namet: CARDINAL ; % % modulet := GetTokenNo () % "IMPLEMENTATION" % M2Error.DefaultImplementationModule % "MODULE" % PushAutoOn % @@ -689,8 +690,9 @@ ImplementationModule := % VAR { Import } Block % PushAutoOn % % endt := GetTokenNo () -1 % + % namet := GetTokenNo () % Ident % EndBuildFile (endt) % - % P3EndBuildImpModule % + % P3EndBuildImpModule (namet) % "." % PopAuto ; PopAuto ; PopAuto % =: @@ -1503,7 +1505,7 @@ DefOptArg := "[" Ident ":" FormalType "=" ConstExpression % Bui FormalType := { "ARRAY" "OF" } QualidentCheck =: -ModuleDeclaration := % VAR modulet: CARDINAL ; % +ModuleDeclaration := % VAR modulet, namet: CARDINAL ; % % modulet := GetTokenNo () % "MODULE" % M2Error.DefaultInnerModule % % PushAutoOn % @@ -1513,7 +1515,8 @@ ModuleDeclaration := % VAR [ Priority ] ";" { Import } [ Export ] Block % PushAutoOn % - Ident % EndBuildInnerModule % + % namet := GetTokenNo () % + Ident % EndBuildInnerModule (namet) % % PopAuto ; PopAuto ; PopAuto % =: @@ -1540,7 +1543,7 @@ WithoutFromImport := % Pus Import := FromImport | WithoutFromImport =: -DefinitionModule := % VAR deft, endt: CARDINAL ; % +DefinitionModule := % VAR deft, endt, namet: CARDINAL ; % % deft := GetTokenNo () % "DEFINITION" % M2Error.DefaultDefinitionModule % "MODULE" % PushAutoOn % @@ -1553,8 +1556,9 @@ DefinitionModule := % VAR ] { Definition } % endt := GetTokenNo () % "END" % PushAutoOn % + % namet := GetTokenNo () % Ident % EndBuildFile (endt) ; - P3EndBuildDefModule % + P3EndBuildDefModule (namet) % "." % PopAuto ; PopAuto ; PopAuto % =: diff --git a/gcc/m2/gm2-compiler/P3SymBuild.def b/gcc/m2/gm2-compiler/P3SymBuild.def index 824efd0..1bbf7ab 100644 --- a/gcc/m2/gm2-compiler/P3SymBuild.def +++ b/gcc/m2/gm2-compiler/P3SymBuild.def @@ -64,7 +64,7 @@ PROCEDURE P3StartBuildDefModule ; |------------| |-----------| *) -PROCEDURE P3EndBuildDefModule ; +PROCEDURE P3EndBuildDefModule (tokno: CARDINAL) ; (* @@ -101,7 +101,7 @@ PROCEDURE P3StartBuildImpModule ; |------------| |-----------| *) -PROCEDURE P3EndBuildImpModule ; +PROCEDURE P3EndBuildImpModule (tokno: CARDINAL) ; (* @@ -138,7 +138,7 @@ PROCEDURE P3StartBuildProgModule ; |------------| |-----------| *) -PROCEDURE P3EndBuildProgModule ; +PROCEDURE P3EndBuildProgModule (tokno: CARDINAL) ; (* @@ -182,7 +182,7 @@ PROCEDURE StartBuildInnerModule ; |------------| |-----------| *) -PROCEDURE EndBuildInnerModule ; +PROCEDURE EndBuildInnerModule (tokno: CARDINAL) ; (* diff --git a/gcc/m2/gm2-compiler/P3SymBuild.mod b/gcc/m2/gm2-compiler/P3SymBuild.mod index b0bb160..8d8e12f 100644 --- a/gcc/m2/gm2-compiler/P3SymBuild.mod +++ b/gcc/m2/gm2-compiler/P3SymBuild.mod @@ -117,13 +117,13 @@ END P3StartBuildDefModule ; |------------| |-----------| *) -PROCEDURE P3EndBuildDefModule ; +PROCEDURE P3EndBuildDefModule (tokno: CARDINAL) ; VAR NameStart, NameEnd : CARDINAL ; BEGIN Assert(CompilingDefinitionModule()) ; - CheckForUnknownInModule ; + CheckForUnknownInModule (tokno) ; EndScope ; M2StackSpell.Pop ; PopT(NameEnd) ; @@ -187,13 +187,13 @@ END P3StartBuildImpModule ; |------------| |-----------| *) -PROCEDURE P3EndBuildImpModule ; +PROCEDURE P3EndBuildImpModule (tokno: CARDINAL) ; VAR NameStart, NameEnd : Name ; BEGIN Assert(CompilingImplementationModule()) ; - CheckForUnknownInModule ; + CheckForUnknownInModule (tokno) ; EndScope ; M2StackSpell.Pop ; PopT(NameEnd) ; @@ -262,13 +262,13 @@ END P3StartBuildProgModule ; |------------| |-----------| *) -PROCEDURE P3EndBuildProgModule ; +PROCEDURE P3EndBuildProgModule (tokno: CARDINAL) ; VAR NameStart, NameEnd : Name ; BEGIN Assert(CompilingProgramModule()) ; - CheckForUnknownInModule ; + CheckForUnknownInModule (tokno) ; EndScope ; PopT(NameEnd) ; PopT(NameStart) ; @@ -334,12 +334,12 @@ END StartBuildInnerModule ; |------------| |-----------| *) -PROCEDURE EndBuildInnerModule ; +PROCEDURE EndBuildInnerModule (tokno: CARDINAL) ; VAR NameStart, NameEnd : Name ; BEGIN - CheckForUnknownInModule ; + CheckForUnknownInModule (tokno) ; EndScope ; PopT(NameEnd) ; PopT(NameStart) ; diff --git a/gcc/m2/gm2-compiler/PCBuild.bnf b/gcc/m2/gm2-compiler/PCBuild.bnf index ddbe2f1..d8ab7a6 100644 --- a/gcc/m2/gm2-compiler/PCBuild.bnf +++ b/gcc/m2/gm2-compiler/PCBuild.bnf @@ -598,7 +598,8 @@ FileUnit := % Pus ImplementationOrProgramModule ) % PopAuto % =: -ProgramModule := "MODULE" % M2Error.DefaultProgramModule % +ProgramModule := "MODULE" % VAR namet: CARDINAL ; % + % M2Error.DefaultProgramModule % % PushAutoOn % Ident % PCStartBuildProgModule % % PushAutoOff % @@ -608,11 +609,13 @@ ProgramModule := "MODULE" % M2E { Import % PCBuildImportOuterModule % } Block % PushAutoOn % - Ident % PCEndBuildProgModule % + % namet := GetTokenNo () % + Ident % PCEndBuildProgModule (namet) % "." % PopAuto ; PopAuto % =: -ImplementationModule := "IMPLEMENTATION" % M2Error.DefaultImplementationModule % +ImplementationModule := "IMPLEMENTATION" % VAR namet: CARDINAL ; % + % M2Error.DefaultImplementationModule % "MODULE" % PushAutoOn % Ident % PCStartBuildImpModule % % PushAutoOff % @@ -621,8 +624,8 @@ ImplementationModule := "IMPLEMENTATION" % M2E { Import % PCBuildImportOuterModule % } Block % PushAutoOn % - - Ident % PCEndBuildImpModule % + % namet := GetTokenNo () % + Ident % PCEndBuildImpModule (namet) % "." % PopAuto ; PopAuto ; PopAuto % =: @@ -1271,7 +1274,8 @@ DefOptArg := "[" Ident ":" FormalType "=" ConstExpression "]" =: FormalType := { "ARRAY" "OF" } Qualident =: -ModuleDeclaration := "MODULE" % M2Error.DefaultInnerModule % +ModuleDeclaration := "MODULE" % VAR namet: CARDINAL ; % + % M2Error.DefaultInnerModule % % PushAutoOn % Ident % PCStartBuildInnerModule % % PushAutoOff % @@ -1280,7 +1284,8 @@ ModuleDeclaration := "MODULE" % M2E } [ Export ] Block % PushAutoOn % - Ident % PCEndBuildInnerModule % + % namet := GetTokenNo () % + Ident % PCEndBuildInnerModule (namet) % % PopAuto ; PopAuto ; PopAuto % =: @@ -1299,7 +1304,8 @@ Import := % Pus IdentList ";" ) % PopAuto % =: -DefinitionModule := "DEFINITION" % M2Error.DefaultDefinitionModule % +DefinitionModule := "DEFINITION" % VAR namet: CARDINAL ; % + % M2Error.DefaultDefinitionModule % "MODULE" % PushAutoOn % [ "FOR" string ] Ident % PCStartBuildDefModule ; @@ -1310,7 +1316,8 @@ DefinitionModule := "DEFINITION" % M2E ] { Definition } "END" % PushAutoOn % - Ident % PCEndBuildDefModule % + % namet := GetTokenNo () % + Ident % PCEndBuildDefModule (namet) % "." % PopAuto ; PopAuto ; PopAuto % =: diff --git a/gcc/m2/gm2-compiler/PCSymBuild.def b/gcc/m2/gm2-compiler/PCSymBuild.def index a25ea87..1a1acf4 100644 --- a/gcc/m2/gm2-compiler/PCSymBuild.def +++ b/gcc/m2/gm2-compiler/PCSymBuild.def @@ -71,7 +71,7 @@ PROCEDURE PCStartBuildDefModule ; |------------| |-----------| *) -PROCEDURE PCEndBuildDefModule ; +PROCEDURE PCEndBuildDefModule (tokno: CARDINAL) ; (* @@ -108,7 +108,7 @@ PROCEDURE PCStartBuildImpModule ; |------------| |-----------| *) -PROCEDURE PCEndBuildImpModule ; +PROCEDURE PCEndBuildImpModule (tokno: CARDINAL) ; (* @@ -145,7 +145,7 @@ PROCEDURE PCStartBuildProgModule ; |------------| |-----------| *) -PROCEDURE PCEndBuildProgModule ; +PROCEDURE PCEndBuildProgModule (tokno: CARDINAL) ; (* @@ -182,7 +182,7 @@ PROCEDURE PCStartBuildInnerModule ; |------------| |-----------| *) -PROCEDURE PCEndBuildInnerModule ; +PROCEDURE PCEndBuildInnerModule (tokno: CARDINAL) ; (* diff --git a/gcc/m2/gm2-compiler/PCSymBuild.mod b/gcc/m2/gm2-compiler/PCSymBuild.mod index 4db2730..5e44997 100644 --- a/gcc/m2/gm2-compiler/PCSymBuild.mod +++ b/gcc/m2/gm2-compiler/PCSymBuild.mod @@ -257,13 +257,13 @@ END PCStartBuildDefModule ; |------------| |-----------| *) -PROCEDURE PCEndBuildDefModule ; +PROCEDURE PCEndBuildDefModule (tokno: CARDINAL) ; VAR NameStart, NameEnd : CARDINAL ; BEGIN Assert(CompilingDefinitionModule()) ; - CheckForUnknownInModule ; + CheckForUnknownInModule (tokno) ; EndScope ; PopT(NameEnd) ; PopT(NameStart) ; @@ -325,13 +325,13 @@ END PCStartBuildImpModule ; |------------| |-----------| *) -PROCEDURE PCEndBuildImpModule ; +PROCEDURE PCEndBuildImpModule (tokno: CARDINAL) ; VAR NameStart, NameEnd : Name ; BEGIN Assert(CompilingImplementationModule()) ; - CheckForUnknownInModule ; + CheckForUnknownInModule (tokno) ; EndScope ; PopT(NameEnd) ; PopT(NameStart) ; @@ -398,13 +398,13 @@ END PCStartBuildProgModule ; |------------| |-----------| *) -PROCEDURE PCEndBuildProgModule ; +PROCEDURE PCEndBuildProgModule (tokno: CARDINAL) ; VAR NameStart, NameEnd : Name ; BEGIN Assert(CompilingProgramModule()) ; - CheckForUnknownInModule ; + CheckForUnknownInModule (tokno) ; EndScope ; PopT(NameEnd) ; PopT(NameStart) ; @@ -468,12 +468,12 @@ END PCStartBuildInnerModule ; |------------| |-----------| *) -PROCEDURE PCEndBuildInnerModule ; +PROCEDURE PCEndBuildInnerModule (tokno: CARDINAL) ; VAR NameStart, NameEnd : Name ; BEGIN - CheckForUnknownInModule ; + CheckForUnknownInModule (tokno) ; EndScope ; PopT(NameEnd) ; PopT(NameStart) ; diff --git a/gcc/m2/gm2-compiler/PHBuild.bnf b/gcc/m2/gm2-compiler/PHBuild.bnf index 8153870..abb5f37 100644 --- a/gcc/m2/gm2-compiler/PHBuild.bnf +++ b/gcc/m2/gm2-compiler/PHBuild.bnf @@ -551,7 +551,7 @@ FileUnit := % Pus ImplementationOrProgramModule ) % PopAuto % =: -ProgramModule := % VAR begint, endt: CARDINAL ; % +ProgramModule := % VAR begint, endt, namet: CARDINAL ; % % begint := GetTokenNo () % "MODULE" % M2Error.DefaultProgramModule % % PushAutoOn % @@ -566,14 +566,15 @@ ProgramModule := % VAR % StartBuildInit (begint) % Block % PushAutoOn % % endt := GetTokenNo () -1 % + % namet := GetTokenNo () % Ident % EndBuildFile (endt) % - % P3EndBuildProgModule % + % P3EndBuildProgModule (namet) % "." % PopAuto ; EndBuildInit (endt) ; PopAuto % =: -ImplementationModule := % VAR begint, endt: CARDINAL ; % +ImplementationModule := % VAR begint, endt, namet: CARDINAL ; % % begint := GetTokenNo () % "IMPLEMENTATION" % M2Error.DefaultImplementationModule % "MODULE" % PushAutoOn % @@ -588,8 +589,9 @@ ImplementationModule := % VAR % StartBuildInit (begint) % Block % PushAutoOn % % endt := GetTokenNo () -1 % + % namet := GetTokenNo () % Ident % EndBuildFile (endt) % - % P3EndBuildImpModule % + % P3EndBuildImpModule (namet) % "." % PopAuto ; EndBuildInit (endt) ; PopAuto ; @@ -1229,7 +1231,7 @@ DefOptArg := "[" Ident ":" FormalType "=" SilentConstExpression "]" =: FormalType := { "ARRAY" "OF" } Qualident =: -ModuleDeclaration := % VAR begint: CARDINAL ; % +ModuleDeclaration := % VAR begint, namet: CARDINAL ; % % begint := GetTokenNo () % "MODULE" % M2Error.DefaultInnerModule % % PushAutoOn % @@ -1242,7 +1244,8 @@ ModuleDeclaration := % VAR } [ Export ] Block % PushAutoOn % - Ident % EndBuildInnerModule % + % namet := GetTokenNo () % + Ident % EndBuildInnerModule (namet) % % PopAuto ; PopAuto ; PopAuto % =: @@ -1258,7 +1261,7 @@ Import := "FROM" Ident "IMPORT" IdentList ";" | "IMPORT" IdentList ";" =: -DefinitionModule := % VAR begint, endt: CARDINAL ; % +DefinitionModule := % VAR begint, endt, namet: CARDINAL ; % % begint := GetTokenNo () % "DEFINITION" % M2Error.DefaultDefinitionModule % "MODULE" % PushAutoOn % @@ -1272,8 +1275,9 @@ DefinitionModule := % VAR ] { Definition } % endt := GetTokenNo () % "END" % PushAutoOn % + % namet := GetTokenNo () % Ident % EndBuildFile (endt) ; - P3EndBuildDefModule % + P3EndBuildDefModule (namet) % "." % PopAuto ; PopAuto ; PopAuto % =: diff --git a/gcc/m2/gm2-compiler/SymbolTable.def b/gcc/m2/gm2-compiler/SymbolTable.def index 12a3b3a..09a5590 100644 --- a/gcc/m2/gm2-compiler/SymbolTable.def +++ b/gcc/m2/gm2-compiler/SymbolTable.def @@ -2124,7 +2124,7 @@ PROCEDURE CheckForUndeclaredExports (ModSym: CARDINAL) ; an error message is displayed. *) -PROCEDURE CheckForUnknownInModule ; +PROCEDURE CheckForUnknownInModule (tokno: CARDINAL) ; (* diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod index e733cfd..023bd49 100644 --- a/gcc/m2/gm2-compiler/SymbolTable.mod +++ b/gcc/m2/gm2-compiler/SymbolTable.mod @@ -9585,29 +9585,29 @@ END ForeachParamSymDo ; an error message is displayed. *) -PROCEDURE CheckForUnknownInModule ; +PROCEDURE CheckForUnknownInModule (tokno: CARDINAL) ; VAR pSym: PtrToSymbol ; BEGIN - pSym := GetPsym(GetCurrentModuleScope()) ; + pSym := GetPsym (GetCurrentModuleScope ()) ; WITH pSym^ DO CASE SymbolType OF DefImpSym: WITH DefImp DO - CheckForUnknowns (name, ExportQualifiedTree, + CheckForUnknowns (tokno, name, ExportQualifiedTree, 'EXPORT QUALIFIED') ; - CheckForUnknowns (name, ExportUnQualifiedTree, + CheckForUnknowns (tokno, name, ExportUnQualifiedTree, 'EXPORT UNQUALIFIED') ; - CheckForSymbols (ExportRequest, - 'requested by another modules import (symbols have not been exported by the appropriate definition module)') ; - CheckForUnknowns (name, Unresolved, 'unresolved') ; - CheckForUnknowns (name, LocalSymbols, 'locally used') + CheckForSymbols (ExportRequest, + 'requested by another modules import (symbols have not been exported by the appropriate definition module)') ; + CheckForUnknowns (tokno, name, Unresolved, 'unresolved') ; + CheckForUnknowns (tokno, name, LocalSymbols, 'locally used') END | ModuleSym: WITH Module DO - CheckForUnknowns (name, Unresolved, 'unresolved') ; - CheckForUnknowns (name, ExportUndeclared, 'exported but undeclared') ; - CheckForUnknowns (name, ExportTree, 'exported but undeclared') ; - CheckForUnknowns (name, LocalSymbols, 'locally used') + CheckForUnknowns (tokno, name, Unresolved, 'unresolved') ; + CheckForUnknowns (tokno, name, ExportUndeclared, 'exported but undeclared') ; + CheckForUnknowns (tokno, name, ExportTree, 'exported but undeclared') ; + CheckForUnknowns (tokno, name, LocalSymbols, 'locally used') END ELSE @@ -9626,7 +9626,7 @@ BEGIN IF IsUnreportedUnknown (sym) THEN IncludeElementIntoSet (ReportedUnknowns, sym) ; - MetaErrorStringT1 (GetFirstUsed (sym), InitString ("unknown symbol {%1EUad}"), sym) + MetaErrorStringT1 (GetFirstUsed (sym), InitString ("unknown symbol {%1EUad} {%1&s}"), sym) END END UnknownSymbolError ; @@ -9705,22 +9705,24 @@ END Listify ; together with an error message. *) -PROCEDURE CheckForUnknowns (name: Name; Tree: SymbolTree; +PROCEDURE CheckForUnknowns (tokno: CARDINAL; name: Name; Tree: SymbolTree; a: ARRAY OF CHAR) ; VAR s: String ; BEGIN - IF DoesTreeContainAny(Tree, IsUnreportedUnknown) - THEN - CurrentError := NewError(GetTokenNo()) ; - s := InitString("{%E} the following unknown symbols in module %<") ; - s := ConCat(s, Mark(InitStringCharStar(KeyToCharStar(name)))) ; - s := ConCat(s, Mark(InitString('%> were '))) ; - s := ConCat(s, Mark(InitString(a))) ; - s := ConCat (s, Mark (InitString (': '))) ; - s := ConCat (s, Mark (Listify (Tree, IsUnreportedUnknown))) ; - MetaErrorStringT0(GetTokenNo(), s) ; - ForeachNodeDo(Tree, UnknownSymbolError) + IF DoesTreeContainAny (Tree, IsUnreportedUnknown) + THEN + ForeachNodeDo (Tree, UnknownSymbolError) ; + IF NoOfNodes (Tree, IsUnreportedUnknown) > 0 + THEN + s := InitString ("{%E} the following unknown symbols in module %<") ; + s := ConCat (s, Mark (InitStringCharStar (KeyToCharStar (name)))) ; + s := ConCat (s, Mark (InitString ('%> were '))) ; + s := ConCat (s, Mark (InitString (a))) ; + s := ConCat (s, Mark (InitString (': '))) ; + s := ConCat (s, Mark (Listify (Tree, IsUnreportedUnknown))) ; + MetaErrorStringT0 (tokno, s) + END END END CheckForUnknowns ; |