Report EParseUndefined at the identifier causing it.
It was being reported at the next token in some cases, due to needing to resolve the scope.
This commit is contained in:
@@ -893,6 +893,7 @@ class parser(object):
|
|||||||
raise EParseUEOF(self)
|
raise EParseUEOF(self)
|
||||||
raise EParseSyntax(self)
|
raise EParseSyntax(self)
|
||||||
name = val
|
name = val
|
||||||
|
idpos = self.errorpos
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
|
|
||||||
# Course of action decided here.
|
# Course of action decided here.
|
||||||
@@ -904,9 +905,11 @@ class parser(object):
|
|||||||
# Functions are looked up in the global scope only.
|
# Functions are looked up in the global scope only.
|
||||||
sym = self.FindSymbolFull(val, 0)
|
sym = self.FindSymbolFull(val, 0)
|
||||||
if sym is None:
|
if sym is None:
|
||||||
|
self.errorpos = idpos
|
||||||
raise EParseUndefined(self)
|
raise EParseUndefined(self)
|
||||||
|
|
||||||
if sym['Kind'] != 'f':
|
if sym['Kind'] != 'f':
|
||||||
|
self.errorpos = idpos
|
||||||
raise EParseUndefined(self)
|
raise EParseUndefined(self)
|
||||||
args = self.Parse_optional_expression_list(sym['ParamTypes'])
|
args = self.Parse_optional_expression_list(sym['ParamTypes'])
|
||||||
self.expect(')')
|
self.expect(')')
|
||||||
@@ -915,6 +918,7 @@ class parser(object):
|
|||||||
|
|
||||||
sym = self.FindSymbolFull(val)
|
sym = self.FindSymbolFull(val)
|
||||||
if sym is None or sym['Kind'] != 'v':
|
if sym is None or sym['Kind'] != 'v':
|
||||||
|
self.errorpos = idpos
|
||||||
raise EParseUndefined(self)
|
raise EParseUndefined(self)
|
||||||
|
|
||||||
typ = sym['Type']
|
typ = sym['Type']
|
||||||
|
|||||||
Reference in New Issue
Block a user