opnsense-ports/devel/py-plex/files/patch-2to3
Franco Fichtner 39e521def0 */*: sync with upstream
Taken from: FreeBSD
2022-03-28 12:42:29 +02:00

517 lines
16 KiB
Text

--- Plex/Lexicons.py.orig 2003-07-08 08:35:31 UTC
+++ Plex/Lexicons.py
@@ -8,11 +8,11 @@
import types
-import Actions
-import DFA
-import Errors
-import Machines
-import Regexps
+from . import Actions
+from . import DFA
+from . import Errors
+from . import Machines
+from . import Regexps
# debug_flags for Lexicon constructor
DUMP_NFA = 1
@@ -111,10 +111,10 @@ class Lexicon:
tables = None # StateTableMachine
def __init__(self, specifications, debug = None, debug_flags = 7, timings = None):
- if type(specifications) <> types.ListType:
+ if type(specifications) != list:
raise Errors.InvalidScanner("Scanner definition is not a list")
if timings:
- from Timing import time
+ from .Timing import time
total_time = 0.0
time1 = time()
nfa = Machines.Machine()
@@ -127,7 +127,7 @@ class Lexicon:
self.add_token_to_machine(
nfa, user_initial_state, token, token_number)
token_number = token_number + 1
- elif type(spec) == types.TupleType:
+ elif type(spec) == tuple:
self.add_token_to_machine(
nfa, default_initial_state, spec, token_number)
token_number = token_number + 1
@@ -172,13 +172,13 @@ class Lexicon:
re.build_machine(machine, initial_state, final_state,
match_bol = 1, nocase = 0)
final_state.set_action(action, priority = -token_number)
- except Errors.PlexError, e:
+ except Errors.PlexError as e:
raise e.__class__("Token number %d: %s" % (token_number, e))
def parse_token_definition(self, token_spec):
- if type(token_spec) <> types.TupleType:
+ if type(token_spec) != tuple:
raise Errors.InvalidToken("Token definition is not a tuple")
- if len(token_spec) <> 2:
+ if len(token_spec) != 2:
raise Errors.InvalidToken("Wrong number of items in token definition")
pattern, action = token_spec
if not isinstance(pattern, Regexps.RE):
--- Plex/Machines.py.orig 2003-07-08 08:35:31 UTC
+++ Plex/Machines.py
@@ -8,12 +8,12 @@
import string
import sys
-from sys import maxint
+from sys import maxsize
from types import TupleType
-from Transitions import TransitionMap
+from .Transitions import TransitionMap
-LOWEST_PRIORITY = -sys.maxint
+LOWEST_PRIORITY = -sys.maxsize
class Machine:
"""A collection of Nodes representing an NFA or DFA."""
@@ -54,7 +54,7 @@ class Machine:
file.write("Plex.Machine:\n")
if self.initial_states is not None:
file.write(" Initial states:\n")
- for (name, state) in self.initial_states.items():
+ for (name, state) in list(self.initial_states.items()):
file.write(" '%s': %d\n" % (name, state.number))
for s in self.states:
s.dump(file)
@@ -150,13 +150,13 @@ class FastMachine:
for old_state in old_machine.states:
new_state = self.new_state()
old_to_new[old_state] = new_state
- for name, old_state in old_machine.initial_states.items():
+ for name, old_state in list(old_machine.initial_states.items()):
initial_states[name] = old_to_new[old_state]
for old_state in old_machine.states:
new_state = old_to_new[old_state]
- for event, old_state_set in old_state.transitions.items():
+ for event, old_state_set in list(old_state.transitions.items()):
if old_state_set:
- new_state[event] = old_to_new[old_state_set.keys()[0]]
+ new_state[event] = old_to_new[list(old_state_set.keys())[0]]
else:
new_state[event] = None
new_state['action'] = old_state.action
@@ -182,7 +182,7 @@ class FastMachine:
code0, code1 = event
if code0 == -maxint:
state['else'] = new_state
- elif code1 <> maxint:
+ elif code1 != maxint:
while code0 < code1:
state[chr(code0)] = new_state
code0 = code0 + 1
@@ -195,7 +195,7 @@ class FastMachine:
def dump(self, file):
file.write("Plex.FastMachine:\n")
file.write(" Initial states:\n")
- for name, state in self.initial_states.items():
+ for name, state in list(self.initial_states.items()):
file.write(" %s: %s\n" % (repr(name), state['number']))
for state in self.states:
self.dump_state(state, file)
@@ -214,7 +214,7 @@ class FastMachine:
def dump_transitions(self, state, file):
chars_leading_to_state = {}
special_to_state = {}
- for (c, s) in state.items():
+ for (c, s) in list(state.items()):
if len(c) == 1:
chars = chars_leading_to_state.get(id(s), None)
if chars is None:
@@ -229,7 +229,7 @@ class FastMachine:
if char_list:
ranges = self.chars_to_ranges(char_list)
ranges_to_state[ranges] = state
- ranges_list = ranges_to_state.keys()
+ ranges_list = list(ranges_to_state.keys())
ranges_list.sort()
for ranges in ranges_list:
key = self.ranges_to_string(ranges)
@@ -256,9 +256,10 @@ class FastMachine:
return tuple(result)
def ranges_to_string(self, range_list):
- return string.join(map(self.range_to_string, range_list), ",")
+ return string.join(list(map(self.range_to_string, range_list)), ",")
- def range_to_string(self, (c1, c2)):
+ def range_to_string(self, xxx_todo_changeme):
+ (c1, c2) = xxx_todo_changeme
if c1 == c2:
return repr(c1)
else:
--- Plex/Regexps.py.orig 2003-07-08 08:35:31 UTC
+++ Plex/Regexps.py
@@ -9,9 +9,9 @@
import array
import string
import types
-from sys import maxint
+from sys import maxsize
-import Errors
+from . import Errors
#
# Constants
@@ -81,9 +81,9 @@ def CodeRanges(code_list):
an RE which will match a character in any of the ranges.
"""
re_list = []
- for i in xrange(0, len(code_list), 2):
+ for i in range(0, len(code_list), 2):
re_list.append(CodeRange(code_list[i], code_list[i + 1]))
- return apply(Alt, tuple(re_list))
+ return Alt(*tuple(re_list))
def CodeRange(code1, code2):
"""
@@ -152,12 +152,12 @@ class RE:
self.wrong_type(num, value, "Plex.RE instance")
def check_string(self, num, value):
- if type(value) <> type(''):
+ if type(value) != type(''):
self.wrong_type(num, value, "string")
def check_char(self, num, value):
self.check_string(num, value)
- if len(value) <> 1:
+ if len(value) != 1:
raise Errors.PlexValueError("Invalid value for argument %d of Plex.%s."
"Expected a string of length 1, got: %s" % (
num, self.__class__.__name__, repr(value)))
@@ -294,7 +294,7 @@ class Seq(RE):
def __init__(self, *re_list):
nullable = 1
- for i in xrange(len(re_list)):
+ for i in range(len(re_list)):
re = re_list[i]
self.check_re(i, re)
nullable = nullable and re.nullable
@@ -319,7 +319,7 @@ class Seq(RE):
else:
s1 = initial_state
n = len(re_list)
- for i in xrange(n):
+ for i in range(n):
if i < n - 1:
s2 = m.new_state()
else:
@@ -330,7 +330,7 @@ class Seq(RE):
match_bol = re.match_nl or (match_bol and re.nullable)
def calc_str(self):
- return "Seq(%s)" % string.join(map(str, self.re_list), ",")
+ return "Seq(%s)" % string.join(list(map(str, self.re_list)), ",")
class Alt(RE):
@@ -369,7 +369,7 @@ class Alt(RE):
re.build_machine(m, initial_state, final_state, 0, nocase)
def calc_str(self):
- return "Alt(%s)" % string.join(map(str, self.re_list), ",")
+ return "Alt(%s)" % string.join(list(map(str, self.re_list)), ",")
class Rep1(RE):
@@ -437,7 +437,7 @@ def Str1(s):
"""
Str1(s) is an RE which matches the literal string |s|.
"""
- result = apply(Seq, tuple(map(Char, s)))
+ result = Seq(*tuple(map(Char, s)))
result.str = "Str(%s)" % repr(s)
return result
@@ -449,8 +449,8 @@ def Str(*strs):
if len(strs) == 1:
return Str1(strs[0])
else:
- result = apply(Alt, tuple(map(Str1, strs)))
- result.str = "Str(%s)" % string.join(map(repr, strs), ",")
+ result = Alt(*tuple(map(Str1, strs)))
+ result.str = "Str(%s)" % string.join(list(map(repr, strs)), ",")
return result
def Any(s):
@@ -495,7 +495,7 @@ def Range(s1, s2 = None):
ranges = []
for i in range(0, len(s1), 2):
ranges.append(CodeRange(ord(s1[i]), ord(s1[i+1]) + 1))
- result = apply(Alt, tuple(ranges))
+ result = Alt(*tuple(ranges))
result.str = "Range(%s)" % repr(s1)
return result
--- Plex/Scanners.py.orig 2003-07-08 08:35:31 UTC
+++ Plex/Scanners.py
@@ -7,8 +7,8 @@
#
#=======================================================================
-import Errors
-from Regexps import BOL, EOL, EOF
+from . import Errors
+from .Regexps import BOL, EOL, EOF
class Scanner:
"""
@@ -122,8 +122,8 @@ class Scanner:
action = self.run_machine_inlined()
if action:
if self.trace:
- print "Scanner: read: Performing", action, "%d:%d" % (
- self.start_pos, self.cur_pos)
+ print("Scanner: read: Performing", action, "%d:%d" % (
+ self.start_pos, self.cur_pos))
base = self.buf_start_pos
text = self.buffer[self.start_pos - base : self.cur_pos - base]
return (text, action)
@@ -163,8 +163,8 @@ class Scanner:
trace = self.trace
while 1:
if trace: #TRACE#
- print "State %d, %d/%d:%s -->" % ( #TRACE#
- state['number'], input_state, cur_pos, repr(cur_char)), #TRACE#
+ print("State %d, %d/%d:%s -->" % ( #TRACE#
+ state['number'], input_state, cur_pos, repr(cur_char)), end=' ') #TRACE#
# Begin inlined self.save_for_backup()
#action = state.action #@slow
action = state['action'] #@fast
@@ -179,7 +179,7 @@ class Scanner:
new_state = c and state.get('else') #@fast
if new_state:
if trace: #TRACE#
- print "State %d" % new_state['number'] #TRACE#
+ print("State %d" % new_state['number']) #TRACE#
state = new_state
# Begin inlined: self.next_char()
if input_state == 1:
@@ -228,7 +228,7 @@ class Scanner:
# End inlined self.next_char()
else: # not new_state
if trace: #TRACE#
- print "blocked" #TRACE#
+ print("blocked") #TRACE#
# Begin inlined: action = self.back_up()
if backup_state:
(action, cur_pos, cur_line, cur_line_start,
@@ -245,7 +245,7 @@ class Scanner:
self.next_pos = next_pos
if trace: #TRACE#
if action: #TRACE#
- print "Doing", action #TRACE#
+ print("Doing", action) #TRACE#
return action
# def transition(self):
@@ -288,7 +288,7 @@ class Scanner:
def next_char(self):
input_state = self.input_state
if self.trace:
- print "Scanner: next:", " "*20, "[%d] %d" % (input_state, self.cur_pos),
+ print("Scanner: next:", " "*20, "[%d] %d" % (input_state, self.cur_pos), end=' ')
if input_state == 1:
self.cur_pos = self.next_pos
c = self.read_char()
@@ -314,7 +314,7 @@ class Scanner:
else: # input_state = 5
self.cur_char = ''
if self.trace:
- print "--> [%d] %d %s" % (input_state, self.cur_pos, repr(self.cur_char))
+ print("--> [%d] %d %s" % (input_state, self.cur_pos, repr(self.cur_char)))
# def read_char(self):
# """
--- Plex/test_tm.py.orig 2003-07-08 08:35:31 UTC
+++ Plex/test_tm.py
@@ -4,14 +4,14 @@ sys.stderr = sys.stdout
from TransitionMaps import TransitionMap
m = TransitionMap()
-print m
+print(m)
def add(c, s):
- print
- print "adding", repr(c), "-->", repr(s)
+ print()
+ print("adding", repr(c), "-->", repr(s))
m.add_transition(c, s)
- print m
- print "keys:", m.keys()
+ print(m)
+ print("keys:", list(m.keys()))
add('a','alpha')
add('e', 'eta')
--- Plex/Traditional.py.orig 2003-07-08 08:35:31 UTC
+++ Plex/Traditional.py
@@ -6,8 +6,8 @@
#
#=======================================================================
-from Regexps import *
-from Errors import PlexError
+from .Regexps import *
+from .Errors import PlexError
class RegexpSyntaxError(PlexError):
pass
@@ -25,7 +25,7 @@ class REParser:
self.s = s
self.i = -1
self.end = 0
- self.next()
+ next(self)
def parse_re(self):
re = self.parse_alt()
@@ -39,9 +39,9 @@ class REParser:
if self.c == '|':
re_list = [re]
while self.c == '|':
- self.next()
+ next(self)
re_list.append(self.parse_seq())
- re = apply(Alt, tuple(re_list))
+ re = Alt(*tuple(re_list))
return re
def parse_seq(self):
@@ -49,7 +49,7 @@ class REParser:
re_list = []
while not self.end and not self.c in "|)":
re_list.append(self.parse_mod())
- return apply(Seq, tuple(re_list))
+ return Seq(*tuple(re_list))
def parse_mod(self):
"""Parse a primitive regexp followed by *, +, ? modifiers."""
@@ -61,7 +61,7 @@ class REParser:
re = Rep1(re)
else: # self.c == '?'
re = Opt(re)
- self.next()
+ next(self)
return re
def parse_prim(self):
@@ -91,16 +91,16 @@ class REParser:
invert = 0
if self.c == '^':
invert = 1
- self.next()
+ next(self)
if self.c == ']':
char_list.append(']')
- self.next()
- while not self.end and self.c <> ']':
+ next(self)
+ while not self.end and self.c != ']':
c1 = self.get()
- if self.c == '-' and self.lookahead(1) <> ']':
- self.next()
+ if self.c == '-' and self.lookahead(1) != ']':
+ next(self)
c2 = self.get()
- for a in xrange(ord(c1), ord(c2) + 1):
+ for a in range(ord(c1), ord(c2) + 1):
char_list.append(chr(a))
else:
char_list.append(c1)
@@ -110,7 +110,7 @@ class REParser:
else:
return Any(chars)
- def next(self):
+ def __next__(self):
"""Advance to the next char."""
s = self.s
i = self.i = self.i + 1
@@ -124,7 +124,7 @@ class REParser:
if self.end:
self.error("Premature end of string")
c = self.c
- self.next()
+ next(self)
return c
def lookahead(self, n):
@@ -141,7 +141,7 @@ class REParser:
Raises an exception otherwise.
"""
if self.c == c:
- self.next()
+ next(self)
else:
self.error("Missing %s" % repr(c))
--- Plex/Transitions.py.orig 2007-01-27 02:58:25 UTC
+++ Plex/Transitions.py
@@ -7,7 +7,7 @@
from copy import copy
import string
-from sys import maxint
+from sys import maxsize
from types import TupleType
class TransitionMap:
@@ -107,7 +107,7 @@ class TransitionMap:
result.append(((code0, code1), set))
code0 = code1
i = i + 2
- for event, set in self.special.items():
+ for event, set in list(self.special.items()):
if set:
result.append((event, set))
return result
@@ -177,7 +177,7 @@ class TransitionMap:
map_strs.append(state_set_str(map[i]))
i = i + 1
special_strs = {}
- for event, set in self.special.items():
+ for event, set in list(self.special.items()):
special_strs[event] = state_set_str(set)
return "[%s]+%s" % (
string.join(map_strs, ","),
@@ -189,7 +189,7 @@ class TransitionMap:
def check(self):
"""Check data structure integrity."""
if not self.map[-3] < self.map[-1]:
- print self
+ print(self)
assert 0
def dump(self, file):
@@ -199,7 +199,7 @@ class TransitionMap:
while i < n:
self.dump_range(map[i], map[i + 2], map[i + 1], file)
i = i + 2
- for event, set in self.special.items():
+ for event, set in list(self.special.items()):
if set:
if not event:
event = 'empty'
@@ -242,7 +242,7 @@ class TransitionMap:
# set1[state] = 1
def state_set_str(set):
- state_list = set.keys()
+ state_list = list(set.keys())
str_list = []
for state in state_list:
str_list.append("S%d" % state.number)