forked from Lainports/opnsense-ports
162 lines
7.6 KiB
Text
162 lines
7.6 KiB
Text
--- lib/yapps/grammar.py.orig 2005-09-15 07:55:16 UTC
|
|
+++ lib/yapps/grammar.py
|
|
@@ -35,7 +35,7 @@ def resolve_name(rule, tokens, id, args):
|
|
if id in [x[0] for x in tokens]:
|
|
# It's a token
|
|
if args:
|
|
- print 'Warning: ignoring parameters on TOKEN %s<<%s>>' % (id, args)
|
|
+ print('Warning: ignoring parameters on TOKEN %s<<%s>>' % (id, args))
|
|
return parsetree.Terminal(rule, id)
|
|
else:
|
|
# It's a name, so assume it's a nonterminal
|
|
--- lib/yapps/parsetree.py.orig 2005-09-15 07:55:40 UTC
|
|
+++ lib/yapps/parsetree.py
|
|
@@ -41,8 +41,8 @@ class Generator:
|
|
if n == '#ignore':
|
|
n = t
|
|
self.ignore.append(n)
|
|
- if n in self.tokens.keys() and self.tokens[n] != t:
|
|
- print >>sys.stderr, 'Warning: token %s defined more than once.' % n
|
|
+ if n in list(self.tokens.keys()) and self.tokens[n] != t:
|
|
+ print('Warning: token %s defined more than once.' % n, file=sys.stderr)
|
|
self.tokens[n] = t
|
|
self.terminals.append(n)
|
|
|
|
@@ -236,20 +236,20 @@ class Generator:
|
|
"""Display the grammar in somewhat human-readable form."""
|
|
self.calculate()
|
|
for r in self.goals:
|
|
- print ' _____' + '_'*len(r)
|
|
- print ('___/Rule '+r+'\\' + '_'*80)[:79]
|
|
+ print(' _____' + '_'*len(r))
|
|
+ print(('___/Rule '+r+'\\' + '_'*80)[:79])
|
|
queue = [self.rules[r]]
|
|
while queue:
|
|
top = queue[0]
|
|
del queue[0]
|
|
|
|
- print 'Rule', repr(top), 'of class', top.__class__.__name__
|
|
+ print('Rule', repr(top), 'of class', top.__class__.__name__)
|
|
top.first.sort()
|
|
top.follow.sort()
|
|
eps = []
|
|
if top.accepts_epsilon: eps = ['(null)']
|
|
- print ' FIRST:', ', '.join(top.first+eps)
|
|
- print ' FOLLOW:', ', '.join(top.follow)
|
|
+ print(' FIRST:', ', '.join(top.first+eps))
|
|
+ print(' FOLLOW:', ', '.join(top.follow))
|
|
for x in top.get_children(): queue.append(x)
|
|
|
|
def generate_output(self):
|
|
@@ -390,7 +390,7 @@ class NonTerminal(Node):
|
|
self.accepts_epsilon = self.target.accepts_epsilon
|
|
gen.changed()
|
|
except KeyError: # Oops, it's nonexistent
|
|
- print >>sys.stderr, 'Error: no rule <%s>' % self.name
|
|
+ print('Error: no rule <%s>' % self.name, file=sys.stderr)
|
|
self.target = self
|
|
|
|
def __str__(self):
|
|
@@ -518,12 +518,12 @@ class Choice(Node):
|
|
tokens_seen = tokens_seen + testset
|
|
if removed:
|
|
if not testset:
|
|
- print >>sys.stderr, 'Error in rule', self.rule+':'
|
|
+ print('Error in rule', self.rule+':', file=sys.stderr)
|
|
else:
|
|
- print >>sys.stderr, 'Warning in rule', self.rule+':'
|
|
- print >>sys.stderr, ' *', self
|
|
- print >>sys.stderr, ' * These tokens could be matched by more than one clause:'
|
|
- print >>sys.stderr, ' *', ' '.join(removed)
|
|
+ print('Warning in rule', self.rule+':', file=sys.stderr)
|
|
+ print(' *', self, file=sys.stderr)
|
|
+ print(' * These tokens could be matched by more than one clause:', file=sys.stderr)
|
|
+ print(' *', ' '.join(removed), file=sys.stderr)
|
|
|
|
if testset:
|
|
if not tokens_unseen: # context sensitive scanners only!
|
|
@@ -582,7 +582,7 @@ class Option(Wrapper):
|
|
|
|
def output(self, gen, indent):
|
|
if self.child.accepts_epsilon:
|
|
- print >>sys.stderr, 'Warning in rule', self.rule+': contents may be empty.'
|
|
+ print('Warning in rule', self.rule+': contents may be empty.', file=sys.stderr)
|
|
gen.write(indent, "if %s:\n" %
|
|
gen.peek_test(self.first, self.child.first))
|
|
self.child.output(gen, indent+INDENT)
|
|
@@ -604,8 +604,8 @@ class Plus(Wrapper):
|
|
|
|
def output(self, gen, indent):
|
|
if self.child.accepts_epsilon:
|
|
- print >>sys.stderr, 'Warning in rule', self.rule+':'
|
|
- print >>sys.stderr, ' * The repeated pattern could be empty. The resulting parser may not work properly.'
|
|
+ print('Warning in rule', self.rule+':', file=sys.stderr)
|
|
+ print(' * The repeated pattern could be empty. The resulting parser may not work properly.', file=sys.stderr)
|
|
gen.write(indent, "while 1:\n")
|
|
self.child.output(gen, indent+INDENT)
|
|
union = self.first[:]
|
|
@@ -630,8 +630,8 @@ class Star(Wrapper):
|
|
|
|
def output(self, gen, indent):
|
|
if self.child.accepts_epsilon:
|
|
- print >>sys.stderr, 'Warning in rule', self.rule+':'
|
|
- print >>sys.stderr, ' * The repeated pattern could be empty. The resulting parser probably will not work properly.'
|
|
+ print('Warning in rule', self.rule+':', file=sys.stderr)
|
|
+ print(' * The repeated pattern could be empty. The resulting parser probably will not work properly.', file=sys.stderr)
|
|
gen.write(indent, "while %s:\n" %
|
|
gen.peek_test(self.follow, self.child.first))
|
|
self.child.output(gen, indent+INDENT)
|
|
--- lib/yapps/yapps_grammar.py.orig 2005-09-15 07:56:02 UTC
|
|
+++ lib/yapps/yapps_grammar.py
|
|
@@ -35,7 +35,7 @@ def resolve_name(rule, tokens, id, args):
|
|
if id in [x[0] for x in tokens]:
|
|
# It's a token
|
|
if args:
|
|
- print 'Warning: ignoring parameters on TOKEN %s<<%s>>' % (id, args)
|
|
+ print('Warning: ignoring parameters on TOKEN %s<<%s>>' % (id, args))
|
|
return parsetree.Terminal(rule, id)
|
|
else:
|
|
# It's a name, so assume it's a nonterminal
|
|
--- lib/yapps/yappsrt.py.orig 2005-09-15 07:56:12 UTC
|
|
+++ lib/yapps/yappsrt.py
|
|
@@ -272,8 +272,8 @@ def print_line_with_pointer(text, p):
|
|
p = p - 7
|
|
|
|
# Now print the string, along with an indicator
|
|
- print >>sys.stderr, '> ',text
|
|
- print >>sys.stderr, '> ',' '*p + '^'
|
|
+ print('> ',text, file=sys.stderr)
|
|
+ print('> ',' '*p + '^', file=sys.stderr)
|
|
|
|
def print_error(input, err, scanner):
|
|
"""Print error messages, the parser stack, and the input text -- for human-readable error messages."""
|
|
@@ -281,7 +281,7 @@ def print_error(input, err, scanner):
|
|
# Figure out the line number
|
|
line_number = scanner.get_line_number()
|
|
column_number = scanner.get_column_number()
|
|
- print >>sys.stderr, '%d:%d: %s' % (line_number, column_number, err.msg)
|
|
+ print('%d:%d: %s' % (line_number, column_number, err.msg), file=sys.stderr)
|
|
|
|
context = err.context
|
|
if not context:
|
|
@@ -289,16 +289,16 @@ def print_error(input, err, scanner):
|
|
|
|
while context:
|
|
# TODO: add line number
|
|
- print >>sys.stderr, 'while parsing %s%s:' % (context.rule, tuple(context.args))
|
|
+ print('while parsing %s%s:' % (context.rule, tuple(context.args)), file=sys.stderr)
|
|
print_line_with_pointer(input, context.scanner.get_prev_char_pos(context.tokenpos))
|
|
context = context.parent
|
|
|
|
def wrap_error_reporter(parser, rule):
|
|
try:
|
|
return getattr(parser, rule)()
|
|
- except SyntaxError, e:
|
|
+ except SyntaxError as e:
|
|
input = parser._scanner.input
|
|
print_error(input, e, parser._scanner)
|
|
except NoMoreTokens:
|
|
- print >>sys.stderr, 'Could not complete parsing; stopped around here:'
|
|
- print >>sys.stderr, parser._scanner
|
|
+ print('Could not complete parsing; stopped around here:', file=sys.stderr)
|
|
+ print(parser._scanner, file=sys.stderr)
|