ClickHouse/utils/grammar-fuzzer/ClickHouseUnlexer.py

1772 lines
58 KiB
Python

# Generated by Grammarinator 19.3
from itertools import chain
from grammarinator.runtime import *
charset_0 = list(chain(*multirange_diff(printable_unicode_ranges, [(39, 40),(92, 93)])))
charset_1 = list(chain(range(97, 98), range(65, 66)))
charset_2 = list(chain(range(98, 99), range(66, 67)))
charset_3 = list(chain(range(99, 100), range(67, 68)))
charset_4 = list(chain(range(100, 101), range(68, 69)))
charset_5 = list(chain(range(101, 102), range(69, 70)))
charset_6 = list(chain(range(102, 103), range(70, 71)))
charset_7 = list(chain(range(103, 104), range(71, 72)))
charset_8 = list(chain(range(104, 105), range(72, 73)))
charset_9 = list(chain(range(105, 106), range(73, 74)))
charset_10 = list(chain(range(106, 107), range(74, 75)))
charset_11 = list(chain(range(107, 108), range(75, 76)))
charset_12 = list(chain(range(108, 109), range(76, 77)))
charset_13 = list(chain(range(109, 110), range(77, 78)))
charset_14 = list(chain(range(110, 111), range(78, 79)))
charset_15 = list(chain(range(111, 112), range(79, 80)))
charset_16 = list(chain(range(112, 113), range(80, 81)))
charset_17 = list(chain(range(113, 114), range(81, 82)))
charset_18 = list(chain(range(114, 115), range(82, 83)))
charset_19 = list(chain(range(115, 116), range(83, 84)))
charset_20 = list(chain(range(116, 117), range(84, 85)))
charset_21 = list(chain(range(117, 118), range(85, 86)))
charset_22 = list(chain(range(118, 119), range(86, 87)))
charset_23 = list(chain(range(119, 120), range(87, 88)))
charset_24 = list(chain(range(120, 121), range(88, 89)))
charset_25 = list(chain(range(121, 122), range(89, 90)))
charset_26 = list(chain(range(122, 123), range(90, 91)))
charset_27 = list(chain(range(97, 123), range(65, 91)))
charset_28 = list(chain(range(48, 58)))
charset_29 = list(chain(range(48, 58), range(97, 103), range(65, 71)))
charset_30 = list(chain(*multirange_diff(printable_unicode_ranges, [(92, 93),(92, 93)])))
charset_31 = list(chain(range(32, 33), range(11, 12), range(12, 13), range(9, 10), range(13, 14), range(10, 11)))
class ClickHouseUnlexer(Grammarinator):
def __init__(self, *, max_depth=float('inf'), weights=None, cooldown=1.0):
super(ClickHouseUnlexer, self).__init__()
self.unlexer = self
self.max_depth = max_depth
self.weights = weights or dict()
self.cooldown = cooldown
def EOF(self, *args, **kwargs):
pass
@depthcontrol
def INTERVAL_TYPE(self):
current = self.create_node(UnlexerRule(name='INTERVAL_TYPE'))
choice = self.choice([0 if [2, 2, 2, 2, 2, 2, 2, 2][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_0', i), 1) for i, w in enumerate([1, 1, 1, 1, 1, 1, 1, 1])])
self.unlexer.weights[('alt_0', choice)] = self.unlexer.weights.get(('alt_0', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.SECOND()
elif choice == 1:
current += self.unlexer.MINUTE()
elif choice == 2:
current += self.unlexer.HOUR()
elif choice == 3:
current += self.unlexer.DAY()
elif choice == 4:
current += self.unlexer.WEEK()
elif choice == 5:
current += self.unlexer.MONTH()
elif choice == 6:
current += self.unlexer.QUARTER()
elif choice == 7:
current += self.unlexer.YEAR()
return current
INTERVAL_TYPE.min_depth = 2
@depthcontrol
def ALIAS(self):
current = self.create_node(UnlexerRule(name='ALIAS'))
current += self.unlexer.A()
current += self.unlexer.L()
current += self.unlexer.I()
current += self.unlexer.A()
current += self.unlexer.S()
return current
ALIAS.min_depth = 1
@depthcontrol
def ALL(self):
current = self.create_node(UnlexerRule(name='ALL'))
current += self.unlexer.A()
current += self.unlexer.L()
current += self.unlexer.L()
return current
ALL.min_depth = 1
@depthcontrol
def AND(self):
current = self.create_node(UnlexerRule(name='AND'))
current += self.unlexer.A()
current += self.unlexer.N()
current += self.unlexer.D()
return current
AND.min_depth = 1
@depthcontrol
def ANTI(self):
current = self.create_node(UnlexerRule(name='ANTI'))
current += self.unlexer.A()
current += self.unlexer.N()
current += self.unlexer.T()
current += self.unlexer.I()
return current
ANTI.min_depth = 1
@depthcontrol
def ANY(self):
current = self.create_node(UnlexerRule(name='ANY'))
current += self.unlexer.A()
current += self.unlexer.N()
current += self.unlexer.Y()
return current
ANY.min_depth = 1
@depthcontrol
def ARRAY(self):
current = self.create_node(UnlexerRule(name='ARRAY'))
current += self.unlexer.A()
current += self.unlexer.R()
current += self.unlexer.R()
current += self.unlexer.A()
current += self.unlexer.Y()
return current
ARRAY.min_depth = 1
@depthcontrol
def AS(self):
current = self.create_node(UnlexerRule(name='AS'))
current += self.unlexer.A()
current += self.unlexer.S()
return current
AS.min_depth = 1
@depthcontrol
def ASCENDING(self):
current = self.create_node(UnlexerRule(name='ASCENDING'))
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_9', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_9', choice)] = self.unlexer.weights.get(('alt_9', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.A()
current += self.unlexer.S()
current += self.unlexer.C()
elif choice == 1:
current += self.unlexer.A()
current += self.unlexer.S()
current += self.unlexer.C()
current += self.unlexer.E()
current += self.unlexer.N()
current += self.unlexer.D()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.G()
return current
ASCENDING.min_depth = 1
@depthcontrol
def ASOF(self):
current = self.create_node(UnlexerRule(name='ASOF'))
current += self.unlexer.A()
current += self.unlexer.S()
current += self.unlexer.O()
current += self.unlexer.F()
return current
ASOF.min_depth = 1
@depthcontrol
def BETWEEN(self):
current = self.create_node(UnlexerRule(name='BETWEEN'))
current += self.unlexer.B()
current += self.unlexer.E()
current += self.unlexer.T()
current += self.unlexer.W()
current += self.unlexer.E()
current += self.unlexer.E()
current += self.unlexer.N()
return current
BETWEEN.min_depth = 1
@depthcontrol
def BOTH(self):
current = self.create_node(UnlexerRule(name='BOTH'))
current += self.unlexer.B()
current += self.unlexer.O()
current += self.unlexer.T()
current += self.unlexer.H()
return current
BOTH.min_depth = 1
@depthcontrol
def BY(self):
current = self.create_node(UnlexerRule(name='BY'))
current += self.unlexer.B()
current += self.unlexer.Y()
return current
BY.min_depth = 1
@depthcontrol
def CASE(self):
current = self.create_node(UnlexerRule(name='CASE'))
current += self.unlexer.C()
current += self.unlexer.A()
current += self.unlexer.S()
current += self.unlexer.E()
return current
CASE.min_depth = 1
@depthcontrol
def CAST(self):
current = self.create_node(UnlexerRule(name='CAST'))
current += self.unlexer.C()
current += self.unlexer.A()
current += self.unlexer.S()
current += self.unlexer.T()
return current
CAST.min_depth = 1
@depthcontrol
def CLUSTER(self):
current = self.create_node(UnlexerRule(name='CLUSTER'))
current += self.unlexer.C()
current += self.unlexer.L()
current += self.unlexer.U()
current += self.unlexer.S()
current += self.unlexer.T()
current += self.unlexer.E()
current += self.unlexer.R()
return current
CLUSTER.min_depth = 1
@depthcontrol
def COLLATE(self):
current = self.create_node(UnlexerRule(name='COLLATE'))
current += self.unlexer.C()
current += self.unlexer.O()
current += self.unlexer.L()
current += self.unlexer.L()
current += self.unlexer.A()
current += self.unlexer.T()
current += self.unlexer.E()
return current
COLLATE.min_depth = 1
@depthcontrol
def CREATE(self):
current = self.create_node(UnlexerRule(name='CREATE'))
current += self.unlexer.C()
current += self.unlexer.R()
current += self.unlexer.E()
current += self.unlexer.A()
current += self.unlexer.T()
current += self.unlexer.E()
return current
CREATE.min_depth = 1
@depthcontrol
def CROSS(self):
current = self.create_node(UnlexerRule(name='CROSS'))
current += self.unlexer.C()
current += self.unlexer.R()
current += self.unlexer.O()
current += self.unlexer.S()
current += self.unlexer.S()
return current
CROSS.min_depth = 1
@depthcontrol
def DATABASE(self):
current = self.create_node(UnlexerRule(name='DATABASE'))
current += self.unlexer.D()
current += self.unlexer.A()
current += self.unlexer.T()
current += self.unlexer.A()
current += self.unlexer.B()
current += self.unlexer.A()
current += self.unlexer.S()
current += self.unlexer.E()
return current
DATABASE.min_depth = 1
@depthcontrol
def DAY(self):
current = self.create_node(UnlexerRule(name='DAY'))
current += self.unlexer.D()
current += self.unlexer.A()
current += self.unlexer.Y()
return current
DAY.min_depth = 1
@depthcontrol
def DEFAULT(self):
current = self.create_node(UnlexerRule(name='DEFAULT'))
current += self.unlexer.D()
current += self.unlexer.E()
current += self.unlexer.F()
current += self.unlexer.A()
current += self.unlexer.U()
current += self.unlexer.L()
current += self.unlexer.T()
return current
DEFAULT.min_depth = 1
@depthcontrol
def DELETE(self):
current = self.create_node(UnlexerRule(name='DELETE'))
current += self.unlexer.D()
current += self.unlexer.E()
current += self.unlexer.L()
current += self.unlexer.E()
current += self.unlexer.T()
current += self.unlexer.E()
return current
DELETE.min_depth = 1
@depthcontrol
def DESCENDING(self):
current = self.create_node(UnlexerRule(name='DESCENDING'))
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_12', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_12', choice)] = self.unlexer.weights.get(('alt_12', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.D()
current += self.unlexer.E()
current += self.unlexer.S()
current += self.unlexer.C()
elif choice == 1:
current += self.unlexer.D()
current += self.unlexer.E()
current += self.unlexer.S()
current += self.unlexer.C()
current += self.unlexer.E()
current += self.unlexer.N()
current += self.unlexer.D()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.G()
return current
DESCENDING.min_depth = 1
@depthcontrol
def DISK(self):
current = self.create_node(UnlexerRule(name='DISK'))
current += self.unlexer.D()
current += self.unlexer.I()
current += self.unlexer.S()
current += self.unlexer.K()
return current
DISK.min_depth = 1
@depthcontrol
def DISTINCT(self):
current = self.create_node(UnlexerRule(name='DISTINCT'))
current += self.unlexer.D()
current += self.unlexer.I()
current += self.unlexer.S()
current += self.unlexer.T()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.C()
current += self.unlexer.T()
return current
DISTINCT.min_depth = 1
@depthcontrol
def DROP(self):
current = self.create_node(UnlexerRule(name='DROP'))
current += self.unlexer.D()
current += self.unlexer.R()
current += self.unlexer.O()
current += self.unlexer.P()
return current
DROP.min_depth = 1
@depthcontrol
def ELSE(self):
current = self.create_node(UnlexerRule(name='ELSE'))
current += self.unlexer.E()
current += self.unlexer.L()
current += self.unlexer.S()
current += self.unlexer.E()
return current
ELSE.min_depth = 1
@depthcontrol
def END(self):
current = self.create_node(UnlexerRule(name='END'))
current += self.unlexer.E()
current += self.unlexer.N()
current += self.unlexer.D()
return current
END.min_depth = 1
@depthcontrol
def ENGINE(self):
current = self.create_node(UnlexerRule(name='ENGINE'))
current += self.unlexer.E()
current += self.unlexer.N()
current += self.unlexer.G()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.E()
return current
ENGINE.min_depth = 1
@depthcontrol
def EXISTS(self):
current = self.create_node(UnlexerRule(name='EXISTS'))
current += self.unlexer.E()
current += self.unlexer.X()
current += self.unlexer.I()
current += self.unlexer.S()
current += self.unlexer.T()
current += self.unlexer.S()
return current
EXISTS.min_depth = 1
@depthcontrol
def EXTRACT(self):
current = self.create_node(UnlexerRule(name='EXTRACT'))
current += self.unlexer.E()
current += self.unlexer.X()
current += self.unlexer.T()
current += self.unlexer.R()
current += self.unlexer.A()
current += self.unlexer.C()
current += self.unlexer.T()
return current
EXTRACT.min_depth = 1
@depthcontrol
def FINAL(self):
current = self.create_node(UnlexerRule(name='FINAL'))
current += self.unlexer.F()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.A()
current += self.unlexer.L()
return current
FINAL.min_depth = 1
@depthcontrol
def FIRST(self):
current = self.create_node(UnlexerRule(name='FIRST'))
current += self.unlexer.F()
current += self.unlexer.I()
current += self.unlexer.R()
current += self.unlexer.S()
current += self.unlexer.T()
return current
FIRST.min_depth = 1
@depthcontrol
def FORMAT(self):
current = self.create_node(UnlexerRule(name='FORMAT'))
current += self.unlexer.F()
current += self.unlexer.O()
current += self.unlexer.R()
current += self.unlexer.M()
current += self.unlexer.A()
current += self.unlexer.T()
return current
FORMAT.min_depth = 1
@depthcontrol
def FROM(self):
current = self.create_node(UnlexerRule(name='FROM'))
current += self.unlexer.F()
current += self.unlexer.R()
current += self.unlexer.O()
current += self.unlexer.M()
return current
FROM.min_depth = 1
@depthcontrol
def FULL(self):
current = self.create_node(UnlexerRule(name='FULL'))
current += self.unlexer.F()
current += self.unlexer.U()
current += self.unlexer.L()
current += self.unlexer.L()
return current
FULL.min_depth = 1
@depthcontrol
def GLOBAL(self):
current = self.create_node(UnlexerRule(name='GLOBAL'))
current += self.unlexer.G()
current += self.unlexer.L()
current += self.unlexer.O()
current += self.unlexer.B()
current += self.unlexer.A()
current += self.unlexer.L()
return current
GLOBAL.min_depth = 1
@depthcontrol
def GROUP(self):
current = self.create_node(UnlexerRule(name='GROUP'))
current += self.unlexer.G()
current += self.unlexer.R()
current += self.unlexer.O()
current += self.unlexer.U()
current += self.unlexer.P()
return current
GROUP.min_depth = 1
@depthcontrol
def HAVING(self):
current = self.create_node(UnlexerRule(name='HAVING'))
current += self.unlexer.H()
current += self.unlexer.A()
current += self.unlexer.V()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.G()
return current
HAVING.min_depth = 1
@depthcontrol
def HOUR(self):
current = self.create_node(UnlexerRule(name='HOUR'))
current += self.unlexer.H()
current += self.unlexer.O()
current += self.unlexer.U()
current += self.unlexer.R()
return current
HOUR.min_depth = 1
@depthcontrol
def IF(self):
current = self.create_node(UnlexerRule(name='IF'))
current += self.unlexer.I()
current += self.unlexer.F()
return current
IF.min_depth = 1
@depthcontrol
def IN(self):
current = self.create_node(UnlexerRule(name='IN'))
current += self.unlexer.I()
current += self.unlexer.N()
return current
IN.min_depth = 1
@depthcontrol
def INF(self):
current = self.create_node(UnlexerRule(name='INF'))
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_15', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_15', choice)] = self.unlexer.weights.get(('alt_15', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.F()
elif choice == 1:
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.F()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.I()
current += self.unlexer.T()
current += self.unlexer.Y()
return current
INF.min_depth = 1
@depthcontrol
def INNER(self):
current = self.create_node(UnlexerRule(name='INNER'))
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.N()
current += self.unlexer.E()
current += self.unlexer.R()
return current
INNER.min_depth = 1
@depthcontrol
def INSERT(self):
current = self.create_node(UnlexerRule(name='INSERT'))
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.S()
current += self.unlexer.E()
current += self.unlexer.R()
current += self.unlexer.T()
return current
INSERT.min_depth = 1
@depthcontrol
def INTERVAL(self):
current = self.create_node(UnlexerRule(name='INTERVAL'))
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.T()
current += self.unlexer.E()
current += self.unlexer.R()
current += self.unlexer.V()
current += self.unlexer.A()
current += self.unlexer.L()
return current
INTERVAL.min_depth = 1
@depthcontrol
def INTO(self):
current = self.create_node(UnlexerRule(name='INTO'))
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.T()
current += self.unlexer.O()
return current
INTO.min_depth = 1
@depthcontrol
def IS(self):
current = self.create_node(UnlexerRule(name='IS'))
current += self.unlexer.I()
current += self.unlexer.S()
return current
IS.min_depth = 1
@depthcontrol
def JOIN(self):
current = self.create_node(UnlexerRule(name='JOIN'))
current += self.unlexer.J()
current += self.unlexer.O()
current += self.unlexer.I()
current += self.unlexer.N()
return current
JOIN.min_depth = 1
@depthcontrol
def KEY(self):
current = self.create_node(UnlexerRule(name='KEY'))
current += self.unlexer.K()
current += self.unlexer.E()
current += self.unlexer.Y()
return current
KEY.min_depth = 1
@depthcontrol
def LAST(self):
current = self.create_node(UnlexerRule(name='LAST'))
current += self.unlexer.L()
current += self.unlexer.A()
current += self.unlexer.S()
current += self.unlexer.T()
return current
LAST.min_depth = 1
@depthcontrol
def LEADING(self):
current = self.create_node(UnlexerRule(name='LEADING'))
current += self.unlexer.L()
current += self.unlexer.E()
current += self.unlexer.A()
current += self.unlexer.D()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.G()
return current
LEADING.min_depth = 1
@depthcontrol
def LEFT(self):
current = self.create_node(UnlexerRule(name='LEFT'))
current += self.unlexer.L()
current += self.unlexer.E()
current += self.unlexer.F()
current += self.unlexer.T()
return current
LEFT.min_depth = 1
@depthcontrol
def LIKE(self):
current = self.create_node(UnlexerRule(name='LIKE'))
current += self.unlexer.L()
current += self.unlexer.I()
current += self.unlexer.K()
current += self.unlexer.E()
return current
LIKE.min_depth = 1
@depthcontrol
def LIMIT(self):
current = self.create_node(UnlexerRule(name='LIMIT'))
current += self.unlexer.L()
current += self.unlexer.I()
current += self.unlexer.M()
current += self.unlexer.I()
current += self.unlexer.T()
return current
LIMIT.min_depth = 1
@depthcontrol
def LOCAL(self):
current = self.create_node(UnlexerRule(name='LOCAL'))
current += self.unlexer.L()
current += self.unlexer.O()
current += self.unlexer.C()
current += self.unlexer.A()
current += self.unlexer.L()
return current
LOCAL.min_depth = 1
@depthcontrol
def MATERIALIZED(self):
current = self.create_node(UnlexerRule(name='MATERIALIZED'))
current += self.unlexer.M()
current += self.unlexer.A()
current += self.unlexer.T()
current += self.unlexer.E()
current += self.unlexer.R()
current += self.unlexer.I()
current += self.unlexer.A()
current += self.unlexer.L()
current += self.unlexer.I()
current += self.unlexer.Z()
current += self.unlexer.E()
current += self.unlexer.D()
return current
MATERIALIZED.min_depth = 1
@depthcontrol
def MINUTE(self):
current = self.create_node(UnlexerRule(name='MINUTE'))
current += self.unlexer.M()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.U()
current += self.unlexer.T()
current += self.unlexer.E()
return current
MINUTE.min_depth = 1
@depthcontrol
def MONTH(self):
current = self.create_node(UnlexerRule(name='MONTH'))
current += self.unlexer.M()
current += self.unlexer.O()
current += self.unlexer.N()
current += self.unlexer.T()
current += self.unlexer.H()
return current
MONTH.min_depth = 1
@depthcontrol
def NAN_SQL(self):
current = self.create_node(UnlexerRule(name='NAN_SQL'))
current += self.unlexer.N()
current += self.unlexer.A()
current += self.unlexer.N()
return current
NAN_SQL.min_depth = 1
@depthcontrol
def NOT(self):
current = self.create_node(UnlexerRule(name='NOT'))
current += self.unlexer.N()
current += self.unlexer.O()
current += self.unlexer.T()
return current
NOT.min_depth = 1
@depthcontrol
def NULL_SQL(self):
current = self.create_node(UnlexerRule(name='NULL_SQL'))
current += self.unlexer.N()
current += self.unlexer.U()
current += self.unlexer.L()
current += self.unlexer.L()
return current
NULL_SQL.min_depth = 1
@depthcontrol
def NULLS(self):
current = self.create_node(UnlexerRule(name='NULLS'))
current += self.unlexer.N()
current += self.unlexer.U()
current += self.unlexer.L()
current += self.unlexer.L()
current += self.unlexer.S()
return current
NULLS.min_depth = 1
@depthcontrol
def OFFSET(self):
current = self.create_node(UnlexerRule(name='OFFSET'))
current += self.unlexer.O()
current += self.unlexer.F()
current += self.unlexer.F()
current += self.unlexer.S()
current += self.unlexer.E()
current += self.unlexer.T()
return current
OFFSET.min_depth = 1
@depthcontrol
def ON(self):
current = self.create_node(UnlexerRule(name='ON'))
current += self.unlexer.O()
current += self.unlexer.N()
return current
ON.min_depth = 1
@depthcontrol
def OR(self):
current = self.create_node(UnlexerRule(name='OR'))
current += self.unlexer.O()
current += self.unlexer.R()
return current
OR.min_depth = 1
@depthcontrol
def ORDER(self):
current = self.create_node(UnlexerRule(name='ORDER'))
current += self.unlexer.O()
current += self.unlexer.R()
current += self.unlexer.D()
current += self.unlexer.E()
current += self.unlexer.R()
return current
ORDER.min_depth = 1
@depthcontrol
def OUTER(self):
current = self.create_node(UnlexerRule(name='OUTER'))
current += self.unlexer.O()
current += self.unlexer.U()
current += self.unlexer.T()
current += self.unlexer.E()
current += self.unlexer.R()
return current
OUTER.min_depth = 1
@depthcontrol
def OUTFILE(self):
current = self.create_node(UnlexerRule(name='OUTFILE'))
current += self.unlexer.O()
current += self.unlexer.U()
current += self.unlexer.T()
current += self.unlexer.F()
current += self.unlexer.I()
current += self.unlexer.L()
current += self.unlexer.E()
return current
OUTFILE.min_depth = 1
@depthcontrol
def PARTITION(self):
current = self.create_node(UnlexerRule(name='PARTITION'))
current += self.unlexer.P()
current += self.unlexer.A()
current += self.unlexer.R()
current += self.unlexer.T()
current += self.unlexer.I()
current += self.unlexer.T()
current += self.unlexer.I()
current += self.unlexer.O()
current += self.unlexer.N()
return current
PARTITION.min_depth = 1
@depthcontrol
def PREWHERE(self):
current = self.create_node(UnlexerRule(name='PREWHERE'))
current += self.unlexer.P()
current += self.unlexer.R()
current += self.unlexer.E()
current += self.unlexer.W()
current += self.unlexer.H()
current += self.unlexer.E()
current += self.unlexer.R()
current += self.unlexer.E()
return current
PREWHERE.min_depth = 1
@depthcontrol
def PRIMARY(self):
current = self.create_node(UnlexerRule(name='PRIMARY'))
current += self.unlexer.P()
current += self.unlexer.R()
current += self.unlexer.I()
current += self.unlexer.M()
current += self.unlexer.A()
current += self.unlexer.R()
current += self.unlexer.Y()
return current
PRIMARY.min_depth = 1
@depthcontrol
def QUARTER(self):
current = self.create_node(UnlexerRule(name='QUARTER'))
current += self.unlexer.Q()
current += self.unlexer.U()
current += self.unlexer.A()
current += self.unlexer.R()
current += self.unlexer.T()
current += self.unlexer.E()
current += self.unlexer.R()
return current
QUARTER.min_depth = 1
@depthcontrol
def RIGHT(self):
current = self.create_node(UnlexerRule(name='RIGHT'))
current += self.unlexer.R()
current += self.unlexer.I()
current += self.unlexer.G()
current += self.unlexer.H()
current += self.unlexer.T()
return current
RIGHT.min_depth = 1
@depthcontrol
def SAMPLE(self):
current = self.create_node(UnlexerRule(name='SAMPLE'))
current += self.unlexer.S()
current += self.unlexer.A()
current += self.unlexer.M()
current += self.unlexer.P()
current += self.unlexer.L()
current += self.unlexer.E()
return current
SAMPLE.min_depth = 1
@depthcontrol
def SECOND(self):
current = self.create_node(UnlexerRule(name='SECOND'))
current += self.unlexer.S()
current += self.unlexer.E()
current += self.unlexer.C()
current += self.unlexer.O()
current += self.unlexer.N()
current += self.unlexer.D()
return current
SECOND.min_depth = 1
@depthcontrol
def SELECT(self):
current = self.create_node(UnlexerRule(name='SELECT'))
current += self.unlexer.S()
current += self.unlexer.E()
current += self.unlexer.L()
current += self.unlexer.E()
current += self.unlexer.C()
current += self.unlexer.T()
return current
SELECT.min_depth = 1
@depthcontrol
def SEMI(self):
current = self.create_node(UnlexerRule(name='SEMI'))
current += self.unlexer.S()
current += self.unlexer.E()
current += self.unlexer.M()
current += self.unlexer.I()
return current
SEMI.min_depth = 1
@depthcontrol
def SET(self):
current = self.create_node(UnlexerRule(name='SET'))
current += self.unlexer.S()
current += self.unlexer.E()
current += self.unlexer.T()
return current
SET.min_depth = 1
@depthcontrol
def SETTINGS(self):
current = self.create_node(UnlexerRule(name='SETTINGS'))
current += self.unlexer.S()
current += self.unlexer.E()
current += self.unlexer.T()
current += self.unlexer.T()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.G()
current += self.unlexer.S()
return current
SETTINGS.min_depth = 1
@depthcontrol
def TABLE(self):
current = self.create_node(UnlexerRule(name='TABLE'))
current += self.unlexer.T()
current += self.unlexer.A()
current += self.unlexer.B()
current += self.unlexer.L()
current += self.unlexer.E()
return current
TABLE.min_depth = 1
@depthcontrol
def TEMPORARY(self):
current = self.create_node(UnlexerRule(name='TEMPORARY'))
current += self.unlexer.T()
current += self.unlexer.E()
current += self.unlexer.M()
current += self.unlexer.P()
current += self.unlexer.O()
current += self.unlexer.R()
current += self.unlexer.A()
current += self.unlexer.R()
current += self.unlexer.Y()
return current
TEMPORARY.min_depth = 1
@depthcontrol
def THEN(self):
current = self.create_node(UnlexerRule(name='THEN'))
current += self.unlexer.T()
current += self.unlexer.H()
current += self.unlexer.E()
current += self.unlexer.N()
return current
THEN.min_depth = 1
@depthcontrol
def TO(self):
current = self.create_node(UnlexerRule(name='TO'))
current += self.unlexer.T()
current += self.unlexer.O()
return current
TO.min_depth = 1
@depthcontrol
def TOTALS(self):
current = self.create_node(UnlexerRule(name='TOTALS'))
current += self.unlexer.T()
current += self.unlexer.O()
current += self.unlexer.T()
current += self.unlexer.A()
current += self.unlexer.L()
current += self.unlexer.S()
return current
TOTALS.min_depth = 1
@depthcontrol
def TRAILING(self):
current = self.create_node(UnlexerRule(name='TRAILING'))
current += self.unlexer.T()
current += self.unlexer.R()
current += self.unlexer.A()
current += self.unlexer.I()
current += self.unlexer.L()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.G()
return current
TRAILING.min_depth = 1
@depthcontrol
def TRIM(self):
current = self.create_node(UnlexerRule(name='TRIM'))
current += self.unlexer.T()
current += self.unlexer.R()
current += self.unlexer.I()
current += self.unlexer.M()
return current
TRIM.min_depth = 1
@depthcontrol
def TTL(self):
current = self.create_node(UnlexerRule(name='TTL'))
current += self.unlexer.T()
current += self.unlexer.T()
current += self.unlexer.L()
return current
TTL.min_depth = 1
@depthcontrol
def UNION(self):
current = self.create_node(UnlexerRule(name='UNION'))
current += self.unlexer.U()
current += self.unlexer.N()
current += self.unlexer.I()
current += self.unlexer.O()
current += self.unlexer.N()
return current
UNION.min_depth = 1
@depthcontrol
def USING(self):
current = self.create_node(UnlexerRule(name='USING'))
current += self.unlexer.U()
current += self.unlexer.S()
current += self.unlexer.I()
current += self.unlexer.N()
current += self.unlexer.G()
return current
USING.min_depth = 1
@depthcontrol
def VALUES(self):
current = self.create_node(UnlexerRule(name='VALUES'))
current += self.unlexer.V()
current += self.unlexer.A()
current += self.unlexer.L()
current += self.unlexer.U()
current += self.unlexer.E()
current += self.unlexer.S()
return current
VALUES.min_depth = 1
@depthcontrol
def VOLUME(self):
current = self.create_node(UnlexerRule(name='VOLUME'))
current += self.unlexer.V()
current += self.unlexer.O()
current += self.unlexer.L()
current += self.unlexer.U()
current += self.unlexer.M()
current += self.unlexer.E()
return current
VOLUME.min_depth = 1
@depthcontrol
def WEEK(self):
current = self.create_node(UnlexerRule(name='WEEK'))
current += self.unlexer.W()
current += self.unlexer.E()
current += self.unlexer.E()
current += self.unlexer.K()
return current
WEEK.min_depth = 1
@depthcontrol
def WHEN(self):
current = self.create_node(UnlexerRule(name='WHEN'))
current += self.unlexer.W()
current += self.unlexer.H()
current += self.unlexer.E()
current += self.unlexer.N()
return current
WHEN.min_depth = 1
@depthcontrol
def WHERE(self):
current = self.create_node(UnlexerRule(name='WHERE'))
current += self.unlexer.W()
current += self.unlexer.H()
current += self.unlexer.E()
current += self.unlexer.R()
current += self.unlexer.E()
return current
WHERE.min_depth = 1
@depthcontrol
def WITH(self):
current = self.create_node(UnlexerRule(name='WITH'))
current += self.unlexer.W()
current += self.unlexer.I()
current += self.unlexer.T()
current += self.unlexer.H()
return current
WITH.min_depth = 1
@depthcontrol
def YEAR(self):
current = self.create_node(UnlexerRule(name='YEAR'))
current += self.unlexer.Y()
current += self.unlexer.E()
current += self.unlexer.A()
current += self.unlexer.R()
return current
YEAR.min_depth = 1
@depthcontrol
def IDENTIFIER(self):
current = self.create_node(UnlexerRule(name='IDENTIFIER'))
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_18', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_18', choice)] = self.unlexer.weights.get(('alt_18', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.LETTER()
elif choice == 1:
current += self.unlexer.UNDERSCORE()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_more():
choice = self.choice([0 if [1, 1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_22', i), 1) for i, w in enumerate([1, 1, 1])])
self.unlexer.weights[('alt_22', choice)] = self.unlexer.weights.get(('alt_22', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.LETTER()
elif choice == 1:
current += self.unlexer.UNDERSCORE()
elif choice == 2:
current += self.unlexer.DEC_DIGIT()
return current
IDENTIFIER.min_depth = 1
@depthcontrol
def FLOATING_LITERAL(self):
current = self.create_node(UnlexerRule(name='FLOATING_LITERAL'))
choice = self.choice([0 if [2, 2, 2, 2][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_26', i), 1) for i, w in enumerate([1, 1, 1, 1])])
self.unlexer.weights[('alt_26', choice)] = self.unlexer.weights.get(('alt_26', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.HEXADECIMAL_LITERAL()
current += self.unlexer.DOT()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_more():
current += self.unlexer.HEX_DIGIT()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_one():
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_33', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_33', choice)] = self.unlexer.weights.get(('alt_33', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.P()
elif choice == 1:
current += self.unlexer.E()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_one():
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_37', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_37', choice)] = self.unlexer.weights.get(('alt_37', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.PLUS()
elif choice == 1:
current += self.unlexer.DASH()
if self.unlexer.max_depth >= 0:
for _ in self.one_or_more():
current += self.unlexer.DEC_DIGIT()
elif choice == 1:
current += self.unlexer.HEXADECIMAL_LITERAL()
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_40', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_40', choice)] = self.unlexer.weights.get(('alt_40', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.P()
elif choice == 1:
current += self.unlexer.E()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_one():
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_44', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_44', choice)] = self.unlexer.weights.get(('alt_44', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.PLUS()
elif choice == 1:
current += self.unlexer.DASH()
if self.unlexer.max_depth >= 0:
for _ in self.one_or_more():
current += self.unlexer.DEC_DIGIT()
elif choice == 2:
current += self.unlexer.INTEGER_LITERAL()
current += self.unlexer.DOT()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_more():
current += self.unlexer.DEC_DIGIT()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_one():
current += self.unlexer.E()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_one():
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_50', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_50', choice)] = self.unlexer.weights.get(('alt_50', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.PLUS()
elif choice == 1:
current += self.unlexer.DASH()
if self.unlexer.max_depth >= 0:
for _ in self.one_or_more():
current += self.unlexer.DEC_DIGIT()
elif choice == 3:
current += self.unlexer.INTEGER_LITERAL()
current += self.unlexer.E()
if self.unlexer.max_depth >= 1:
for _ in self.zero_or_one():
choice = self.choice([0 if [1, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_54', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_54', choice)] = self.unlexer.weights.get(('alt_54', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.unlexer.PLUS()
elif choice == 1:
current += self.unlexer.DASH()
if self.unlexer.max_depth >= 0:
for _ in self.one_or_more():
current += self.unlexer.DEC_DIGIT()
return current
FLOATING_LITERAL.min_depth = 2
@depthcontrol
def HEXADECIMAL_LITERAL(self):
current = self.create_node(UnlexerRule(name='HEXADECIMAL_LITERAL'))
current += self.create_node(UnlexerRule(src='0'))
current += self.unlexer.X()
if self.unlexer.max_depth >= 0:
for _ in self.one_or_more():
current += self.unlexer.HEX_DIGIT()
return current
HEXADECIMAL_LITERAL.min_depth = 1
@depthcontrol
def INTEGER_LITERAL(self):
current = self.create_node(UnlexerRule(name='INTEGER_LITERAL'))
if self.unlexer.max_depth >= 0:
for _ in self.one_or_more():
current += self.unlexer.DEC_DIGIT()
return current
INTEGER_LITERAL.min_depth = 1
@depthcontrol
def STRING_LITERAL(self):
current = self.create_node(UnlexerRule(name='STRING_LITERAL'))
current += self.unlexer.QUOTE_SINGLE()
if self.unlexer.max_depth >= 0:
for _ in self.zero_or_more():
choice = self.choice([0 if [0, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_59', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_59', choice)] = self.unlexer.weights.get(('alt_59', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += UnlexerRule(src=self.char_from_list(charset_0))
elif choice == 1:
current += self.unlexer.BACKSLASH()
current += UnlexerRule(src=self.any_char())
current += self.unlexer.QUOTE_SINGLE()
return current
STRING_LITERAL.min_depth = 1
@depthcontrol
def A(self):
current = self.create_node(UnlexerRule(name='A'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_1)))
return current
A.min_depth = 0
@depthcontrol
def B(self):
current = self.create_node(UnlexerRule(name='B'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_2)))
return current
B.min_depth = 0
@depthcontrol
def C(self):
current = self.create_node(UnlexerRule(name='C'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_3)))
return current
C.min_depth = 0
@depthcontrol
def D(self):
current = self.create_node(UnlexerRule(name='D'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_4)))
return current
D.min_depth = 0
@depthcontrol
def E(self):
current = self.create_node(UnlexerRule(name='E'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_5)))
return current
E.min_depth = 0
@depthcontrol
def F(self):
current = self.create_node(UnlexerRule(name='F'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_6)))
return current
F.min_depth = 0
@depthcontrol
def G(self):
current = self.create_node(UnlexerRule(name='G'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_7)))
return current
G.min_depth = 0
@depthcontrol
def H(self):
current = self.create_node(UnlexerRule(name='H'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_8)))
return current
H.min_depth = 0
@depthcontrol
def I(self):
current = self.create_node(UnlexerRule(name='I'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_9)))
return current
I.min_depth = 0
@depthcontrol
def J(self):
current = self.create_node(UnlexerRule(name='J'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_10)))
return current
J.min_depth = 0
@depthcontrol
def K(self):
current = self.create_node(UnlexerRule(name='K'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_11)))
return current
K.min_depth = 0
@depthcontrol
def L(self):
current = self.create_node(UnlexerRule(name='L'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_12)))
return current
L.min_depth = 0
@depthcontrol
def M(self):
current = self.create_node(UnlexerRule(name='M'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_13)))
return current
M.min_depth = 0
@depthcontrol
def N(self):
current = self.create_node(UnlexerRule(name='N'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_14)))
return current
N.min_depth = 0
@depthcontrol
def O(self):
current = self.create_node(UnlexerRule(name='O'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_15)))
return current
O.min_depth = 0
@depthcontrol
def P(self):
current = self.create_node(UnlexerRule(name='P'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_16)))
return current
P.min_depth = 0
@depthcontrol
def Q(self):
current = self.create_node(UnlexerRule(name='Q'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_17)))
return current
Q.min_depth = 0
@depthcontrol
def R(self):
current = self.create_node(UnlexerRule(name='R'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_18)))
return current
R.min_depth = 0
@depthcontrol
def S(self):
current = self.create_node(UnlexerRule(name='S'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_19)))
return current
S.min_depth = 0
@depthcontrol
def T(self):
current = self.create_node(UnlexerRule(name='T'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_20)))
return current
T.min_depth = 0
@depthcontrol
def U(self):
current = self.create_node(UnlexerRule(name='U'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_21)))
return current
U.min_depth = 0
@depthcontrol
def V(self):
current = self.create_node(UnlexerRule(name='V'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_22)))
return current
V.min_depth = 0
@depthcontrol
def W(self):
current = self.create_node(UnlexerRule(name='W'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_23)))
return current
W.min_depth = 0
@depthcontrol
def X(self):
current = self.create_node(UnlexerRule(name='X'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_24)))
return current
X.min_depth = 0
@depthcontrol
def Y(self):
current = self.create_node(UnlexerRule(name='Y'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_25)))
return current
Y.min_depth = 0
@depthcontrol
def Z(self):
current = self.create_node(UnlexerRule(name='Z'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_26)))
return current
Z.min_depth = 0
@depthcontrol
def LETTER(self):
current = self.create_node(UnlexerRule(name='LETTER'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_27)))
return current
LETTER.min_depth = 0
@depthcontrol
def DEC_DIGIT(self):
current = self.create_node(UnlexerRule(name='DEC_DIGIT'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_28)))
return current
DEC_DIGIT.min_depth = 0
@depthcontrol
def HEX_DIGIT(self):
current = self.create_node(UnlexerRule(name='HEX_DIGIT'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_29)))
return current
HEX_DIGIT.min_depth = 0
@depthcontrol
def ARROW(self):
current = self.create_node(UnlexerRule(name='ARROW'))
current += self.create_node(UnlexerRule(src='->'))
return current
ARROW.min_depth = 0
@depthcontrol
def ASTERISK(self):
current = self.create_node(UnlexerRule(name='ASTERISK'))
current += self.create_node(UnlexerRule(src='*'))
return current
ASTERISK.min_depth = 0
@depthcontrol
def BACKQUOTE(self):
current = self.create_node(UnlexerRule(name='BACKQUOTE'))
current += self.create_node(UnlexerRule(src='`'))
return current
BACKQUOTE.min_depth = 0
@depthcontrol
def BACKSLASH(self):
current = self.create_node(UnlexerRule(name='BACKSLASH'))
current += self.create_node(UnlexerRule(src='\\'))
return current
BACKSLASH.min_depth = 0
@depthcontrol
def COLON(self):
current = self.create_node(UnlexerRule(name='COLON'))
current += self.create_node(UnlexerRule(src=':'))
return current
COLON.min_depth = 0
@depthcontrol
def COMMA(self):
current = self.create_node(UnlexerRule(name='COMMA'))
current += self.create_node(UnlexerRule(src=','))
return current
COMMA.min_depth = 0
@depthcontrol
def CONCAT(self):
current = self.create_node(UnlexerRule(name='CONCAT'))
current += self.create_node(UnlexerRule(src='||'))
return current
CONCAT.min_depth = 0
@depthcontrol
def DASH(self):
current = self.create_node(UnlexerRule(name='DASH'))
current += self.create_node(UnlexerRule(src='-'))
return current
DASH.min_depth = 0
@depthcontrol
def DOT(self):
current = self.create_node(UnlexerRule(name='DOT'))
current += self.create_node(UnlexerRule(src='.'))
return current
DOT.min_depth = 0
@depthcontrol
def EQ_DOUBLE(self):
current = self.create_node(UnlexerRule(name='EQ_DOUBLE'))
current += self.create_node(UnlexerRule(src='=='))
return current
EQ_DOUBLE.min_depth = 0
@depthcontrol
def EQ_SINGLE(self):
current = self.create_node(UnlexerRule(name='EQ_SINGLE'))
current += self.create_node(UnlexerRule(src='='))
return current
EQ_SINGLE.min_depth = 0
@depthcontrol
def GE(self):
current = self.create_node(UnlexerRule(name='GE'))
current += self.create_node(UnlexerRule(src='>='))
return current
GE.min_depth = 0
@depthcontrol
def GT(self):
current = self.create_node(UnlexerRule(name='GT'))
current += self.create_node(UnlexerRule(src='>'))
return current
GT.min_depth = 0
@depthcontrol
def LBRACKET(self):
current = self.create_node(UnlexerRule(name='LBRACKET'))
current += self.create_node(UnlexerRule(src='['))
return current
LBRACKET.min_depth = 0
@depthcontrol
def LE(self):
current = self.create_node(UnlexerRule(name='LE'))
current += self.create_node(UnlexerRule(src='<='))
return current
LE.min_depth = 0
@depthcontrol
def LPAREN(self):
current = self.create_node(UnlexerRule(name='LPAREN'))
current += self.create_node(UnlexerRule(src='('))
return current
LPAREN.min_depth = 0
@depthcontrol
def LT(self):
current = self.create_node(UnlexerRule(name='LT'))
current += self.create_node(UnlexerRule(src='<'))
return current
LT.min_depth = 0
@depthcontrol
def NOT_EQ(self):
current = self.create_node(UnlexerRule(name='NOT_EQ'))
choice = self.choice([0 if [0, 0][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_79', i), 1) for i, w in enumerate([1, 1])])
self.unlexer.weights[('alt_79', choice)] = self.unlexer.weights.get(('alt_79', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.create_node(UnlexerRule(src='!='))
elif choice == 1:
current += self.create_node(UnlexerRule(src='<>'))
return current
NOT_EQ.min_depth = 0
@depthcontrol
def PERCENT(self):
current = self.create_node(UnlexerRule(name='PERCENT'))
current += self.create_node(UnlexerRule(src='%'))
return current
PERCENT.min_depth = 0
@depthcontrol
def PLUS(self):
current = self.create_node(UnlexerRule(name='PLUS'))
current += self.create_node(UnlexerRule(src='+'))
return current
PLUS.min_depth = 0
@depthcontrol
def QUERY(self):
current = self.create_node(UnlexerRule(name='QUERY'))
current += self.create_node(UnlexerRule(src='?'))
return current
QUERY.min_depth = 0
@depthcontrol
def QUOTE_SINGLE(self):
current = self.create_node(UnlexerRule(name='QUOTE_SINGLE'))
current += self.create_node(UnlexerRule(src='\''))
return current
QUOTE_SINGLE.min_depth = 0
@depthcontrol
def RBRACKET(self):
current = self.create_node(UnlexerRule(name='RBRACKET'))
current += self.create_node(UnlexerRule(src=']'))
return current
RBRACKET.min_depth = 0
@depthcontrol
def RPAREN(self):
current = self.create_node(UnlexerRule(name='RPAREN'))
current += self.create_node(UnlexerRule(src=')'))
return current
RPAREN.min_depth = 0
@depthcontrol
def SEMICOLON(self):
current = self.create_node(UnlexerRule(name='SEMICOLON'))
current += self.create_node(UnlexerRule(src=';'))
return current
SEMICOLON.min_depth = 0
@depthcontrol
def SLASH(self):
current = self.create_node(UnlexerRule(name='SLASH'))
current += self.create_node(UnlexerRule(src='/'))
return current
SLASH.min_depth = 0
@depthcontrol
def UNDERSCORE(self):
current = self.create_node(UnlexerRule(name='UNDERSCORE'))
current += self.create_node(UnlexerRule(src='_'))
return current
UNDERSCORE.min_depth = 0
@depthcontrol
def SINGLE_LINE_COMMENT(self):
current = self.create_node(UnlexerRule(name='SINGLE_LINE_COMMENT'))
current += self.create_node(UnlexerRule(src='--'))
if self.unlexer.max_depth >= 0:
for _ in self.zero_or_more():
current += UnlexerRule(src=self.char_from_list(charset_30))
choice = self.choice([0 if [0, 0, 1][i] > self.unlexer.max_depth else w * self.unlexer.weights.get(('alt_95', i), 1) for i, w in enumerate([1, 1, 1])])
self.unlexer.weights[('alt_95', choice)] = self.unlexer.weights.get(('alt_95', choice), 1) * self.unlexer.cooldown
if choice == 0:
current += self.create_node(UnlexerRule(src='\n'))
elif choice == 1:
current += self.create_node(UnlexerRule(src='\r'))
elif choice == 2:
current += self.unlexer.EOF()
return current
SINGLE_LINE_COMMENT.min_depth = 0
@depthcontrol
def MULTI_LINE_COMMENT(self):
current = self.create_node(UnlexerRule(name='MULTI_LINE_COMMENT'))
current += self.create_node(UnlexerRule(src='/*'))
if self.unlexer.max_depth >= 0:
for _ in self.zero_or_more():
current += UnlexerRule(src=self.any_char())
current += self.create_node(UnlexerRule(src='*/'))
return current
MULTI_LINE_COMMENT.min_depth = 0
@depthcontrol
def WHITESPACE(self):
current = self.create_node(UnlexerRule(name='WHITESPACE'))
current += self.create_node(UnlexerRule(src=self.char_from_list(charset_31)))
return current
WHITESPACE.min_depth = 0