aboutsummaryrefslogtreecommitdiff
path: root/gcc/m2/gm2-compiler
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/m2/gm2-compiler')
-rw-r--r--gcc/m2/gm2-compiler/M2Quads.mod4
-rw-r--r--gcc/m2/gm2-compiler/P3Build.bnf20
-rw-r--r--gcc/m2/gm2-compiler/P3SymBuild.def8
-rw-r--r--gcc/m2/gm2-compiler/P3SymBuild.mod16
-rw-r--r--gcc/m2/gm2-compiler/PCBuild.bnf25
-rw-r--r--gcc/m2/gm2-compiler/PCSymBuild.def8
-rw-r--r--gcc/m2/gm2-compiler/PCSymBuild.mod16
-rw-r--r--gcc/m2/gm2-compiler/PHBuild.bnf20
-rw-r--r--gcc/m2/gm2-compiler/SymbolTable.def2
-rw-r--r--gcc/m2/gm2-compiler/SymbolTable.mod52
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 ;