Adjust line number before/after #calc{} scanner for improved error messages.

This commit is contained in:
Mark Olesen
2010-01-03 21:45:32 +01:00
parent ebfdafad7f
commit e0ba4cbb02
4 changed files with 16 additions and 8 deletions

View File

@ -1,6 +1,6 @@
dictionaryTest.C
calcEntry/calcEntryParser.ATG
calcEntry/calcEntryParser.atg
calcEntry/calcEntryInternal.C
calcEntry/calcEntry.C

View File

@ -68,17 +68,23 @@ bool Foam::functionEntries::calcEntry::execute
myErrorHandler("calcEntryInternal::Parser");
calcEntryInternal::Scanner scanner(iss);
// set the starting line
scanner.Line(is.lineNumber());
calcEntryInternal::Parser parser(&scanner, &myErrorHandler);
// Attach dictionary context
parser.dict(parentDict);
// Attach scalar functions
// parser.functions(parentDict);
parser.Parse();
// make a small input list to contain the answer
// mostly have an extra newline in the lookahead token
// so subtract 1 to keep things vaguely in sync
// (this is still far from perfect)
is.lineNumber() = scanner.Line() - 1;
// a small input list to contain the answer
tokenList tokens(2);
tokens[0] = parser.Result();
tokens[1] = token::END_STATEMENT;

View File

@ -1,6 +1,8 @@
.SUFFIXES: .ATG
# handie Coco/R attributed grammars
ATGtoo = Coco -single -frames $(WM_THIRD_PARTY_DIR)/coco-r/src $$SOURCE -o $(OBJECTS_DIR) ; $(CC) $(c++FLAGS) -c $*.cpp -o $@
.SUFFIXES: .atg
.ATG.dep:
atgtoo = Coco -single -frames $(WM_THIRD_PARTY_DIR)/coco-cpp/src $$SOURCE -o $(OBJECTS_DIR) ; $(CC) $(c++FLAGS) -c $*.cpp -o $@
.atg.dep:
$(MAKE_DEP)