jaclang 0.5.8__py3-none-any.whl → 0.5.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of jaclang might be problematic. Click here for more details.

@@ -1,4069 +0,0 @@
1
- # The file was automatically generated by Lark v1.1.9
2
- __version__ = "1.1.9"
3
-
4
- #
5
- #
6
- # Lark Stand-alone Generator Tool
7
- # ----------------------------------
8
- # Generates a stand-alone LALR(1) parser
9
- #
10
- # Git: https://github.com/erezsh/lark
11
- # Author: Erez Shinan (erezshin@gmail.com)
12
- #
13
- #
14
- # >>> LICENSE
15
- #
16
- # This tool and its generated code use a separate license from Lark,
17
- # and are subject to the terms of the Mozilla Public License, v. 2.0.
18
- # If a copy of the MPL was not distributed with this
19
- # file, You can obtain one at https://mozilla.org/MPL/2.0/.
20
- #
21
- # If you wish to purchase a commercial license for this tool and its
22
- # generated code, you may contact me via email or otherwise.
23
- #
24
- # If MPL2 is incompatible with your free or open-source project,
25
- # contact me and we'll work it out.
26
- #
27
- #
28
-
29
- from copy import deepcopy
30
- from abc import ABC, abstractmethod
31
- from types import ModuleType
32
- from typing import (
33
- TypeVar,
34
- Generic,
35
- Type,
36
- Tuple,
37
- List,
38
- Dict,
39
- Iterator,
40
- Collection,
41
- Callable,
42
- Optional,
43
- FrozenSet,
44
- Any,
45
- Union,
46
- Iterable,
47
- IO,
48
- TYPE_CHECKING,
49
- overload,
50
- Sequence,
51
- Pattern as REPattern,
52
- ClassVar,
53
- Set,
54
- Mapping,
55
- )
56
-
57
-
58
-
59
-
60
- class LarkError(Exception):
61
- pass
62
-
63
-
64
- class ConfigurationError(LarkError, ValueError):
65
- pass
66
-
67
-
68
- def assert_config(value, options: Collection, msg="Got %r, expected one of %s"):
69
- if value not in options:
70
- raise ConfigurationError(msg % (value, options))
71
-
72
-
73
- class GrammarError(LarkError):
74
- pass
75
-
76
-
77
- class ParseError(LarkError):
78
- pass
79
-
80
-
81
- class LexError(LarkError):
82
- pass
83
-
84
-
85
- T = TypeVar("T")
86
-
87
-
88
- class UnexpectedInput(LarkError):
89
- #--
90
-
91
- line: int
92
- column: int
93
- pos_in_stream = None
94
- state: Any
95
- _terminals_by_name = None
96
- interactive_parser: "InteractiveParser"
97
-
98
- def get_context(self, text: str, span: int = 40) -> str:
99
- #--
100
- assert self.pos_in_stream is not None, self
101
- pos = self.pos_in_stream
102
- start = max(pos - span, 0)
103
- end = pos + span
104
- if not isinstance(text, bytes):
105
- before = text[start:pos].rsplit("\n", 1)[-1]
106
- after = text[pos:end].split("\n", 1)[0]
107
- return before + after + "\n" + " " * len(before.expandtabs()) + "^\n"
108
- else:
109
- before = text[start:pos].rsplit(b"\n", 1)[-1]
110
- after = text[pos:end].split(b"\n", 1)[0]
111
- return (
112
- before + after + b"\n" + b" " * len(before.expandtabs()) + b"^\n"
113
- ).decode("ascii", "backslashreplace")
114
-
115
- def match_examples(
116
- self,
117
- parse_fn: "Callable[[str], Tree]",
118
- examples: Union[Mapping[T, Iterable[str]], Iterable[Tuple[T, Iterable[str]]]],
119
- token_type_match_fallback: bool = False,
120
- use_accepts: bool = True,
121
- ) -> Optional[T]:
122
- #--
123
- assert self.state is not None, "Not supported for this exception"
124
-
125
- if isinstance(examples, Mapping):
126
- examples = examples.items()
127
-
128
- candidate = (None, False)
129
- for i, (label, example) in enumerate(examples):
130
- assert not isinstance(example, str), "Expecting a list"
131
-
132
- for j, malformed in enumerate(example):
133
- try:
134
- parse_fn(malformed)
135
- except UnexpectedInput as ut:
136
- if ut.state == self.state:
137
- if (
138
- use_accepts
139
- and isinstance(self, UnexpectedToken)
140
- and isinstance(ut, UnexpectedToken)
141
- and ut.accepts != self.accepts
142
- ):
143
- logger.debug(
144
- "Different accepts with same state[%d]: %s != %s at example [%s][%s]"
145
- % (self.state, self.accepts, ut.accepts, i, j)
146
- )
147
- continue
148
- if isinstance(
149
- self, (UnexpectedToken, UnexpectedEOF)
150
- ) and isinstance(ut, (UnexpectedToken, UnexpectedEOF)):
151
- if ut.token == self.token: ##
152
-
153
- logger.debug("Exact Match at example [%s][%s]" % (i, j))
154
- return label
155
-
156
- if token_type_match_fallback:
157
- ##
158
-
159
- if (ut.token.type == self.token.type) and not candidate[
160
- -1
161
- ]:
162
- logger.debug(
163
- "Token Type Fallback at example [%s][%s]"
164
- % (i, j)
165
- )
166
- candidate = label, True
167
-
168
- if candidate[0] is None:
169
- logger.debug(
170
- "Same State match at example [%s][%s]" % (i, j)
171
- )
172
- candidate = label, False
173
-
174
- return candidate[0]
175
-
176
- def _format_expected(self, expected):
177
- if self._terminals_by_name:
178
- d = self._terminals_by_name
179
- expected = [
180
- d[t_name].user_repr() if t_name in d else t_name for t_name in expected
181
- ]
182
- return "Expected one of: \n\t* %s\n" % "\n\t* ".join(expected)
183
-
184
-
185
- class UnexpectedEOF(ParseError, UnexpectedInput):
186
- #--
187
-
188
- expected: "List[Token]"
189
-
190
- def __init__(self, expected, state=None, terminals_by_name=None):
191
- super(UnexpectedEOF, self).__init__()
192
-
193
- self.expected = expected
194
- self.state = state
195
- from .lexer import Token
196
-
197
- self.token = Token("<EOF>", "") ##
198
-
199
- self.pos_in_stream = -1
200
- self.line = -1
201
- self.column = -1
202
- self._terminals_by_name = terminals_by_name
203
-
204
- def __str__(self):
205
- message = "Unexpected end-of-input. "
206
- message += self._format_expected(self.expected)
207
- return message
208
-
209
-
210
- class UnexpectedCharacters(LexError, UnexpectedInput):
211
- #--
212
-
213
- allowed: Set[str]
214
- considered_tokens: Set[Any]
215
-
216
- def __init__(
217
- self,
218
- seq,
219
- lex_pos,
220
- line,
221
- column,
222
- allowed=None,
223
- considered_tokens=None,
224
- state=None,
225
- token_history=None,
226
- terminals_by_name=None,
227
- considered_rules=None,
228
- ):
229
- super(UnexpectedCharacters, self).__init__()
230
-
231
- ##
232
-
233
- self.line = line
234
- self.column = column
235
- self.pos_in_stream = lex_pos
236
- self.state = state
237
- self._terminals_by_name = terminals_by_name
238
-
239
- self.allowed = allowed
240
- self.considered_tokens = considered_tokens
241
- self.considered_rules = considered_rules
242
- self.token_history = token_history
243
-
244
- if isinstance(seq, bytes):
245
- self.char = seq[lex_pos : lex_pos + 1].decode("ascii", "backslashreplace")
246
- else:
247
- self.char = seq[lex_pos]
248
- self._context = self.get_context(seq)
249
-
250
- def __str__(self):
251
- message = (
252
- "No terminal matches '%s' in the current parser context, at line %d col %d"
253
- % (self.char, self.line, self.column)
254
- )
255
- message += "\n\n" + self._context
256
- if self.allowed:
257
- message += self._format_expected(self.allowed)
258
- if self.token_history:
259
- message += "\nPrevious tokens: %s\n" % ", ".join(
260
- repr(t) for t in self.token_history
261
- )
262
- return message
263
-
264
-
265
- class UnexpectedToken(ParseError, UnexpectedInput):
266
- #--
267
-
268
- expected: Set[str]
269
- considered_rules: Set[str]
270
-
271
- def __init__(
272
- self,
273
- token,
274
- expected,
275
- considered_rules=None,
276
- state=None,
277
- interactive_parser=None,
278
- terminals_by_name=None,
279
- token_history=None,
280
- ):
281
- super(UnexpectedToken, self).__init__()
282
-
283
- ##
284
-
285
- self.line = getattr(token, "line", "?")
286
- self.column = getattr(token, "column", "?")
287
- self.pos_in_stream = getattr(token, "start_pos", None)
288
- self.state = state
289
-
290
- self.token = token
291
- self.expected = expected ##
292
-
293
- self._accepts = NO_VALUE
294
- self.considered_rules = considered_rules
295
- self.interactive_parser = interactive_parser
296
- self._terminals_by_name = terminals_by_name
297
- self.token_history = token_history
298
-
299
- @property
300
- def accepts(self) -> Set[str]:
301
- if self._accepts is NO_VALUE:
302
- self._accepts = (
303
- self.interactive_parser and self.interactive_parser.accepts()
304
- )
305
- return self._accepts
306
-
307
- def __str__(self):
308
- message = "Unexpected token %r at line %s, column %s.\n%s" % (
309
- self.token,
310
- self.line,
311
- self.column,
312
- self._format_expected(self.accepts or self.expected),
313
- )
314
- if self.token_history:
315
- message += "Previous tokens: %r\n" % self.token_history
316
-
317
- return message
318
-
319
-
320
- class VisitError(LarkError):
321
- #--
322
-
323
- obj: "Union[Tree, Token]"
324
- orig_exc: Exception
325
-
326
- def __init__(self, rule, obj, orig_exc):
327
- message = 'Error trying to process rule "%s":\n\n%s' % (rule, orig_exc)
328
- super(VisitError, self).__init__(message)
329
-
330
- self.rule = rule
331
- self.obj = obj
332
- self.orig_exc = orig_exc
333
-
334
-
335
- class MissingVariableError(LarkError):
336
- pass
337
-
338
-
339
-
340
- import sys, re
341
- import logging
342
-
343
- logger: logging.Logger = logging.getLogger("lark")
344
- logger.addHandler(logging.StreamHandler())
345
- ##
346
-
347
- ##
348
-
349
- logger.setLevel(logging.CRITICAL)
350
-
351
-
352
- NO_VALUE = object()
353
-
354
- T = TypeVar("T")
355
-
356
-
357
- def classify(
358
- seq: Iterable, key: Optional[Callable] = None, value: Optional[Callable] = None
359
- ) -> Dict:
360
- d: Dict[Any, Any] = {}
361
- for item in seq:
362
- k = key(item) if (key is not None) else item
363
- v = value(item) if (value is not None) else item
364
- try:
365
- d[k].append(v)
366
- except KeyError:
367
- d[k] = [v]
368
- return d
369
-
370
-
371
- def _deserialize(data: Any, namespace: Dict[str, Any], memo: Dict) -> Any:
372
- if isinstance(data, dict):
373
- if "__type__" in data: ##
374
-
375
- class_ = namespace[data["__type__"]]
376
- return class_.deserialize(data, memo)
377
- elif "@" in data:
378
- return memo[data["@"]]
379
- return {
380
- key: _deserialize(value, namespace, memo) for key, value in data.items()
381
- }
382
- elif isinstance(data, list):
383
- return [_deserialize(value, namespace, memo) for value in data]
384
- return data
385
-
386
-
387
- _T = TypeVar("_T", bound="Serialize")
388
-
389
-
390
- class Serialize:
391
- #--
392
-
393
- def memo_serialize(self, types_to_memoize: List) -> Any:
394
- memo = SerializeMemoizer(types_to_memoize)
395
- return self.serialize(memo), memo.serialize()
396
-
397
- def serialize(self, memo=None) -> Dict[str, Any]:
398
- if memo and memo.in_types(self):
399
- return {"@": memo.memoized.get(self)}
400
-
401
- fields = getattr(self, "__serialize_fields__")
402
- res = {f: _serialize(getattr(self, f), memo) for f in fields}
403
- res["__type__"] = type(self).__name__
404
- if hasattr(self, "_serialize"):
405
- self._serialize(res, memo) ##
406
-
407
- return res
408
-
409
- @classmethod
410
- def deserialize(cls: Type[_T], data: Dict[str, Any], memo: Dict[int, Any]) -> _T:
411
- namespace = getattr(cls, "__serialize_namespace__", [])
412
- namespace = {c.__name__: c for c in namespace}
413
-
414
- fields = getattr(cls, "__serialize_fields__")
415
-
416
- if "@" in data:
417
- return memo[data["@"]]
418
-
419
- inst = cls.__new__(cls)
420
- for f in fields:
421
- try:
422
- setattr(inst, f, _deserialize(data[f], namespace, memo))
423
- except KeyError as e:
424
- raise KeyError("Cannot find key for class", cls, e)
425
-
426
- if hasattr(inst, "_deserialize"):
427
- inst._deserialize() ##
428
-
429
-
430
- return inst
431
-
432
-
433
- class SerializeMemoizer(Serialize):
434
- #--
435
-
436
- __serialize_fields__ = ("memoized",)
437
-
438
- def __init__(self, types_to_memoize: List) -> None:
439
- self.types_to_memoize = tuple(types_to_memoize)
440
- self.memoized = Enumerator()
441
-
442
- def in_types(self, value: Serialize) -> bool:
443
- return isinstance(value, self.types_to_memoize)
444
-
445
- def serialize(self) -> Dict[int, Any]: ##
446
-
447
- return _serialize(self.memoized.reversed(), None)
448
-
449
- @classmethod
450
- def deserialize(cls, data: Dict[int, Any], namespace: Dict[str, Any], memo: Dict[Any, Any]) -> Dict[int, Any]: ##
451
-
452
- return _deserialize(data, namespace, memo)
453
-
454
-
455
- try:
456
- import regex
457
-
458
- _has_regex = True
459
- except ImportError:
460
- _has_regex = False
461
-
462
- if sys.version_info >= (3, 11):
463
- import re._parser as sre_parse
464
- import re._constants as sre_constants
465
- else:
466
- import sre_parse
467
- import sre_constants
468
-
469
- categ_pattern = re.compile(r"\\p{[A-Za-z_]+}")
470
-
471
-
472
- def get_regexp_width(expr: str) -> Union[Tuple[int, int], List[int]]:
473
- if _has_regex:
474
- ##
475
-
476
- ##
477
-
478
- ##
479
-
480
- regexp_final = re.sub(categ_pattern, "A", expr)
481
- else:
482
- if re.search(categ_pattern, expr):
483
- raise ImportError(
484
- "`regex` module must be installed in order to use Unicode categories.",
485
- expr,
486
- )
487
- regexp_final = expr
488
- try:
489
- ##
490
-
491
- return [int(x) for x in sre_parse.parse(regexp_final).getwidth()] ##
492
-
493
- except sre_constants.error:
494
- if not _has_regex:
495
- raise ValueError(expr)
496
- else:
497
- ##
498
-
499
- ##
500
-
501
- c = regex.compile(regexp_final)
502
- ##
503
-
504
- ##
505
-
506
- MAXWIDTH = getattr(sre_parse, "MAXWIDTH", sre_constants.MAXREPEAT)
507
- if c.match("") is None:
508
- ##
509
-
510
- return 1, int(MAXWIDTH)
511
- else:
512
- return 0, int(MAXWIDTH)
513
-
514
-
515
-
516
- from collections import OrderedDict
517
-
518
-
519
- class Meta:
520
-
521
- empty: bool
522
- line: int
523
- column: int
524
- start_pos: int
525
- end_line: int
526
- end_column: int
527
- end_pos: int
528
- orig_expansion: "List[TerminalDef]"
529
- match_tree: bool
530
-
531
- def __init__(self):
532
- self.empty = True
533
-
534
-
535
- _Leaf_T = TypeVar("_Leaf_T")
536
- Branch = Union[_Leaf_T, "Tree[_Leaf_T]"]
537
-
538
-
539
- class Tree(Generic[_Leaf_T]):
540
- #--
541
-
542
- data: str
543
- children: "List[Branch[_Leaf_T]]"
544
-
545
- def __init__(
546
- self, data: str, children: "List[Branch[_Leaf_T]]", meta: Optional[Meta] = None
547
- ) -> None:
548
- self.data = data
549
- self.children = children
550
- self._meta = meta
551
-
552
- @property
553
- def meta(self) -> Meta:
554
- if self._meta is None:
555
- self._meta = Meta()
556
- return self._meta
557
-
558
- def __repr__(self):
559
- return "Tree(%r, %r)" % (self.data, self.children)
560
-
561
- def _pretty_label(self):
562
- return self.data
563
-
564
- def _pretty(self, level, indent_str):
565
- yield f"{indent_str*level}{self._pretty_label()}"
566
- if len(self.children) == 1 and not isinstance(self.children[0], Tree):
567
- yield f"\t{self.children[0]}\n"
568
- else:
569
- yield "\n"
570
- for n in self.children:
571
- if isinstance(n, Tree):
572
- yield from n._pretty(level + 1, indent_str)
573
- else:
574
- yield f"{indent_str*(level+1)}{n}\n"
575
-
576
- def pretty(self, indent_str: str = " ") -> str:
577
- #--
578
- return "".join(self._pretty(0, indent_str))
579
-
580
- def __rich__(self, parent: Optional["rich.tree.Tree"] = None) -> "rich.tree.Tree":
581
- #--
582
- return self._rich(parent)
583
-
584
- def _rich(self, parent):
585
- if parent:
586
- tree = parent.add(f"[bold]{self.data}[/bold]")
587
- else:
588
- import rich.tree
589
-
590
- tree = rich.tree.Tree(self.data)
591
-
592
- for c in self.children:
593
- if isinstance(c, Tree):
594
- c._rich(tree)
595
- else:
596
- tree.add(f"[green]{c}[/green]")
597
-
598
- return tree
599
-
600
- def __eq__(self, other):
601
- try:
602
- return self.data == other.data and self.children == other.children
603
- except AttributeError:
604
- return False
605
-
606
- def __ne__(self, other):
607
- return not (self == other)
608
-
609
- def __hash__(self) -> int:
610
- return hash((self.data, tuple(self.children)))
611
-
612
- def iter_subtrees(self) -> "Iterator[Tree[_Leaf_T]]":
613
- #--
614
- queue = [self]
615
- subtrees = OrderedDict()
616
- for subtree in queue:
617
- subtrees[id(subtree)] = subtree
618
- ##
619
-
620
- queue += [
621
- c
622
- for c in reversed(subtree.children) ##
623
-
624
- if isinstance(c, Tree) and id(c) not in subtrees
625
- ]
626
-
627
- del queue
628
- return reversed(list(subtrees.values()))
629
-
630
- def iter_subtrees_topdown(self):
631
- #--
632
- stack = [self]
633
- stack_append = stack.append
634
- stack_pop = stack.pop
635
- while stack:
636
- node = stack_pop()
637
- if not isinstance(node, Tree):
638
- continue
639
- yield node
640
- for child in reversed(node.children):
641
- stack_append(child)
642
-
643
- def find_pred(
644
- self, pred: "Callable[[Tree[_Leaf_T]], bool]"
645
- ) -> "Iterator[Tree[_Leaf_T]]":
646
- #--
647
- return filter(pred, self.iter_subtrees())
648
-
649
- def find_data(self, data: str) -> "Iterator[Tree[_Leaf_T]]":
650
- #--
651
- return self.find_pred(lambda t: t.data == data)
652
-
653
-
654
- from functools import wraps, update_wrapper
655
- from inspect import getmembers, getmro
656
-
657
- _Return_T = TypeVar("_Return_T")
658
- _Return_V = TypeVar("_Return_V")
659
- _Leaf_T = TypeVar("_Leaf_T")
660
- _Leaf_U = TypeVar("_Leaf_U")
661
- _R = TypeVar("_R")
662
- _FUNC = Callable[..., _Return_T]
663
- _DECORATED = Union[_FUNC, type]
664
-
665
-
666
- class _DiscardType:
667
- #--
668
-
669
- def __repr__(self):
670
- return "lark.visitors.Discard"
671
-
672
-
673
- Discard = _DiscardType()
674
-
675
- ##
676
-
677
-
678
-
679
- class _Decoratable:
680
- #--
681
-
682
- @classmethod
683
- def _apply_v_args(cls, visit_wrapper):
684
- mro = getmro(cls)
685
- assert mro[0] is cls
686
- libmembers = {name for _cls in mro[1:] for name, _ in getmembers(_cls)}
687
- for name, value in getmembers(cls):
688
-
689
- ##
690
-
691
- if name.startswith("_") or (
692
- name in libmembers and name not in cls.__dict__
693
- ):
694
- continue
695
- if not callable(value):
696
- continue
697
-
698
- ##
699
-
700
- if isinstance(cls.__dict__[name], _VArgsWrapper):
701
- continue
702
-
703
- setattr(cls, name, _VArgsWrapper(cls.__dict__[name], visit_wrapper))
704
- return cls
705
-
706
- def __class_getitem__(cls, _):
707
- return cls
708
-
709
-
710
- class Transformer(_Decoratable, ABC, Generic[_Leaf_T, _Return_T]):
711
- #--
712
-
713
- __visit_tokens__ = True ##
714
-
715
-
716
- def __init__(self, visit_tokens: bool = True) -> None:
717
- self.__visit_tokens__ = visit_tokens
718
-
719
- def _call_userfunc(self, tree, new_children=None):
720
- ##
721
-
722
- children = new_children if new_children is not None else tree.children
723
- try:
724
- f = getattr(self, tree.data)
725
- except AttributeError:
726
- return self.__default__(tree.data, children, tree.meta)
727
- else:
728
- try:
729
- wrapper = getattr(f, "visit_wrapper", None)
730
- if wrapper is not None:
731
- return f.visit_wrapper(f, tree.data, children, tree.meta)
732
- else:
733
- return f(children)
734
- except GrammarError:
735
- raise
736
- except Exception as e:
737
- raise VisitError(tree.data, tree, e)
738
-
739
- def _call_userfunc_token(self, token):
740
- try:
741
- f = getattr(self, token.type)
742
- except AttributeError:
743
- return self.__default_token__(token)
744
- else:
745
- try:
746
- return f(token)
747
- except GrammarError:
748
- raise
749
- except Exception as e:
750
- raise VisitError(token.type, token, e)
751
-
752
- def _transform_children(self, children):
753
- for c in children:
754
- if isinstance(c, Tree):
755
- res = self._transform_tree(c)
756
- elif self.__visit_tokens__ and isinstance(c, Token):
757
- res = self._call_userfunc_token(c)
758
- else:
759
- res = c
760
-
761
- if res is not Discard:
762
- yield res
763
-
764
- def _transform_tree(self, tree):
765
- children = list(self._transform_children(tree.children))
766
- return self._call_userfunc(tree, children)
767
-
768
- def transform(self, tree: Tree[_Leaf_T]) -> _Return_T:
769
- #--
770
- return self._transform_tree(tree)
771
-
772
- def __mul__(
773
- self: "Transformer[_Leaf_T, Tree[_Leaf_U]]",
774
- other: "Union[Transformer[_Leaf_U, _Return_V], TransformerChain[_Leaf_U, _Return_V,]]",
775
- ) -> "TransformerChain[_Leaf_T, _Return_V]":
776
- #--
777
- return TransformerChain(self, other)
778
-
779
- def __default__(self, data, children, meta):
780
- #--
781
- return Tree(data, children, meta)
782
-
783
- def __default_token__(self, token):
784
- #--
785
- return token
786
-
787
-
788
- def merge_transformers(base_transformer=None, **transformers_to_merge):
789
- #--
790
- if base_transformer is None:
791
- base_transformer = Transformer()
792
- for prefix, transformer in transformers_to_merge.items():
793
- for method_name in dir(transformer):
794
- method = getattr(transformer, method_name)
795
- if not callable(method):
796
- continue
797
- if method_name.startswith("_") or method_name == "transform":
798
- continue
799
- prefixed_method = prefix + "__" + method_name
800
- if hasattr(base_transformer, prefixed_method):
801
- raise AttributeError(
802
- "Cannot merge: method '%s' appears more than once" % prefixed_method
803
- )
804
-
805
- setattr(base_transformer, prefixed_method, method)
806
-
807
- return base_transformer
808
-
809
-
810
- class InlineTransformer(Transformer): ##
811
-
812
- def _call_userfunc(self, tree, new_children=None):
813
- ##
814
-
815
- children = new_children if new_children is not None else tree.children
816
- try:
817
- f = getattr(self, tree.data)
818
- except AttributeError:
819
- return self.__default__(tree.data, children, tree.meta)
820
- else:
821
- return f(*children)
822
-
823
-
824
- class TransformerChain(Generic[_Leaf_T, _Return_T]):
825
-
826
- transformers: "Tuple[Union[Transformer, TransformerChain], ...]"
827
-
828
- def __init__(self, *transformers: "Union[Transformer, TransformerChain]") -> None:
829
- self.transformers = transformers
830
-
831
- def transform(self, tree: Tree[_Leaf_T]) -> _Return_T:
832
- for t in self.transformers:
833
- tree = t.transform(tree)
834
- return cast(_Return_T, tree)
835
-
836
- def __mul__(
837
- self: "TransformerChain[_Leaf_T, Tree[_Leaf_U]]",
838
- other: "Union[Transformer[_Leaf_U, _Return_V], TransformerChain[_Leaf_U, _Return_V]]",
839
- ) -> "TransformerChain[_Leaf_T, _Return_V]":
840
- return TransformerChain(*self.transformers + (other,))
841
-
842
-
843
- class Transformer_InPlace(Transformer[_Leaf_T, _Return_T]):
844
- #--
845
-
846
- def _transform_tree(self, tree): ##
847
-
848
- return self._call_userfunc(tree)
849
-
850
- def transform(self, tree: Tree[_Leaf_T]) -> _Return_T:
851
- for subtree in tree.iter_subtrees():
852
- subtree.children = list(self._transform_children(subtree.children))
853
-
854
- return self._transform_tree(tree)
855
-
856
-
857
- class Transformer_NonRecursive(Transformer[_Leaf_T, _Return_T]):
858
- #--
859
-
860
- def transform(self, tree: Tree[_Leaf_T]) -> _Return_T:
861
- ##
862
-
863
- rev_postfix = []
864
- q: List[Branch[_Leaf_T]] = [tree]
865
- while q:
866
- t = q.pop()
867
- rev_postfix.append(t)
868
- if isinstance(t, Tree):
869
- q += t.children
870
-
871
- ##
872
-
873
- stack: List = []
874
- for x in reversed(rev_postfix):
875
- if isinstance(x, Tree):
876
- size = len(x.children)
877
- if size:
878
- args = stack[-size:]
879
- del stack[-size:]
880
- else:
881
- args = []
882
-
883
- res = self._call_userfunc(x, args)
884
- if res is not Discard:
885
- stack.append(res)
886
-
887
- elif self.__visit_tokens__ and isinstance(x, Token):
888
- res = self._call_userfunc_token(x)
889
- if res is not Discard:
890
- stack.append(res)
891
- else:
892
- stack.append(x)
893
-
894
- (result,) = stack ##
895
-
896
- ##
897
-
898
- ##
899
-
900
- ##
901
-
902
- return cast(_Return_T, result)
903
-
904
-
905
- class Transformer_InPlaceRecursive(Transformer):
906
- #--
907
-
908
- def _transform_tree(self, tree):
909
- tree.children = list(self._transform_children(tree.children))
910
- return self._call_userfunc(tree)
911
-
912
-
913
- ##
914
-
915
-
916
-
917
- class VisitorBase:
918
- def _call_userfunc(self, tree):
919
- return getattr(self, tree.data, self.__default__)(tree)
920
-
921
- def __default__(self, tree):
922
- #--
923
- return tree
924
-
925
- def __class_getitem__(cls, _):
926
- return cls
927
-
928
-
929
- class Visitor(VisitorBase, ABC, Generic[_Leaf_T]):
930
- #--
931
-
932
- def visit(self, tree: Tree[_Leaf_T]) -> Tree[_Leaf_T]:
933
- #--
934
- for subtree in tree.iter_subtrees():
935
- self._call_userfunc(subtree)
936
- return tree
937
-
938
- def visit_topdown(self, tree: Tree[_Leaf_T]) -> Tree[_Leaf_T]:
939
- #--
940
- for subtree in tree.iter_subtrees_topdown():
941
- self._call_userfunc(subtree)
942
- return tree
943
-
944
-
945
- class Visitor_Recursive(VisitorBase, Generic[_Leaf_T]):
946
- #--
947
-
948
- def visit(self, tree: Tree[_Leaf_T]) -> Tree[_Leaf_T]:
949
- #--
950
- for child in tree.children:
951
- if isinstance(child, Tree):
952
- self.visit(child)
953
-
954
- self._call_userfunc(tree)
955
- return tree
956
-
957
- def visit_topdown(self, tree: Tree[_Leaf_T]) -> Tree[_Leaf_T]:
958
- #--
959
- self._call_userfunc(tree)
960
-
961
- for child in tree.children:
962
- if isinstance(child, Tree):
963
- self.visit_topdown(child)
964
-
965
- return tree
966
-
967
-
968
- class Interpreter(_Decoratable, ABC, Generic[_Leaf_T, _Return_T]):
969
- #--
970
-
971
- def visit(self, tree: Tree[_Leaf_T]) -> _Return_T:
972
- ##
973
-
974
- ##
975
-
976
- ##
977
-
978
- return self._visit_tree(tree)
979
-
980
- def _visit_tree(self, tree: Tree[_Leaf_T]):
981
- f = getattr(self, tree.data)
982
- wrapper = getattr(f, "visit_wrapper", None)
983
- if wrapper is not None:
984
- return f.visit_wrapper(f, tree.data, tree.children, tree.meta)
985
- else:
986
- return f(tree)
987
-
988
- def visit_children(self, tree: Tree[_Leaf_T]) -> List:
989
- return [
990
- self._visit_tree(child) if isinstance(child, Tree) else child
991
- for child in tree.children
992
- ]
993
-
994
- def __getattr__(self, name):
995
- return self.__default__
996
-
997
- def __default__(self, tree):
998
- return self.visit_children(tree)
999
-
1000
-
1001
- _InterMethod = Callable[[Type[Interpreter], _Return_T], _R]
1002
-
1003
-
1004
- def visit_children_decor(func: _InterMethod) -> _InterMethod:
1005
- #--
1006
-
1007
- @wraps(func)
1008
- def inner(cls, tree):
1009
- values = cls.visit_children(tree)
1010
- return func(cls, values)
1011
-
1012
- return inner
1013
-
1014
-
1015
- ##
1016
-
1017
-
1018
-
1019
- def _apply_v_args(obj, visit_wrapper):
1020
- try:
1021
- _apply = obj._apply_v_args
1022
- except AttributeError:
1023
- return _VArgsWrapper(obj, visit_wrapper)
1024
- else:
1025
- return _apply(visit_wrapper)
1026
-
1027
-
1028
- class _VArgsWrapper:
1029
- #--
1030
-
1031
- base_func: Callable
1032
-
1033
- def __init__(
1034
- self, func: Callable, visit_wrapper: Callable[[Callable, str, list, Any], Any]
1035
- ):
1036
- if isinstance(func, _VArgsWrapper):
1037
- func = func.base_func
1038
- ##
1039
-
1040
- self.base_func = func ##
1041
-
1042
- self.visit_wrapper = visit_wrapper
1043
- update_wrapper(self, func)
1044
-
1045
- def __call__(self, *args, **kwargs):
1046
- return self.base_func(*args, **kwargs)
1047
-
1048
- def __get__(self, instance, owner=None):
1049
- try:
1050
- ##
1051
-
1052
- ##
1053
-
1054
- g = type(self.base_func).__get__
1055
- except AttributeError:
1056
- return self
1057
- else:
1058
- return _VArgsWrapper(g(self.base_func, instance, owner), self.visit_wrapper)
1059
-
1060
- def __set_name__(self, owner, name):
1061
- try:
1062
- f = type(self.base_func).__set_name__
1063
- except AttributeError:
1064
- return
1065
- else:
1066
- f(self.base_func, owner, name)
1067
-
1068
-
1069
- def _vargs_inline(f, _data, children, _meta):
1070
- return f(*children)
1071
-
1072
-
1073
- def _vargs_meta_inline(f, _data, children, meta):
1074
- return f(meta, *children)
1075
-
1076
-
1077
- def _vargs_meta(f, _data, children, meta):
1078
- return f(meta, children)
1079
-
1080
-
1081
- def _vargs_tree(f, data, children, meta):
1082
- return f(Tree(data, children, meta))
1083
-
1084
-
1085
- def v_args(
1086
- inline: bool = False,
1087
- meta: bool = False,
1088
- tree: bool = False,
1089
- wrapper: Optional[Callable] = None,
1090
- ) -> Callable[[_DECORATED], _DECORATED]:
1091
- #--
1092
- if tree and (meta or inline):
1093
- raise ValueError(
1094
- "Visitor functions cannot combine 'tree' with 'meta' or 'inline'."
1095
- )
1096
-
1097
- func = None
1098
- if meta:
1099
- if inline:
1100
- func = _vargs_meta_inline
1101
- else:
1102
- func = _vargs_meta
1103
- elif inline:
1104
- func = _vargs_inline
1105
- elif tree:
1106
- func = _vargs_tree
1107
-
1108
- if wrapper is not None:
1109
- if func is not None:
1110
- raise ValueError(
1111
- "Cannot use 'wrapper' along with 'tree', 'meta' or 'inline'."
1112
- )
1113
- func = wrapper
1114
-
1115
- def _visitor_args_dec(obj):
1116
- return _apply_v_args(obj, func)
1117
-
1118
- return _visitor_args_dec
1119
-
1120
-
1121
-
1122
- TOKEN_DEFAULT_PRIORITY = 0
1123
-
1124
-
1125
- class Symbol(Serialize):
1126
- __slots__ = ("name",)
1127
-
1128
- name: str
1129
- is_term: ClassVar[bool] = NotImplemented
1130
-
1131
- def __init__(self, name: str) -> None:
1132
- self.name = name
1133
-
1134
- def __eq__(self, other):
1135
- assert isinstance(other, Symbol), other
1136
- return self.is_term == other.is_term and self.name == other.name
1137
-
1138
- def __ne__(self, other):
1139
- return not (self == other)
1140
-
1141
- def __hash__(self):
1142
- return hash(self.name)
1143
-
1144
- def __repr__(self):
1145
- return "%s(%r)" % (type(self).__name__, self.name)
1146
-
1147
- fullrepr = property(__repr__)
1148
-
1149
- def renamed(self, f):
1150
- return type(self)(f(self.name))
1151
-
1152
-
1153
- class Terminal(Symbol):
1154
- __serialize_fields__ = "name", "filter_out"
1155
-
1156
- is_term: ClassVar[bool] = True
1157
-
1158
- def __init__(self, name, filter_out=False):
1159
- self.name = name
1160
- self.filter_out = filter_out
1161
-
1162
- @property
1163
- def fullrepr(self):
1164
- return "%s(%r, %r)" % (type(self).__name__, self.name, self.filter_out)
1165
-
1166
- def renamed(self, f):
1167
- return type(self)(f(self.name), self.filter_out)
1168
-
1169
-
1170
- class NonTerminal(Symbol):
1171
- __serialize_fields__ = ("name",)
1172
-
1173
- is_term: ClassVar[bool] = False
1174
-
1175
-
1176
- class RuleOptions(Serialize):
1177
- __serialize_fields__ = (
1178
- "keep_all_tokens",
1179
- "expand1",
1180
- "priority",
1181
- "template_source",
1182
- "empty_indices",
1183
- )
1184
-
1185
- keep_all_tokens: bool
1186
- expand1: bool
1187
- priority: Optional[int]
1188
- template_source: Optional[str]
1189
- empty_indices: Tuple[bool, ...]
1190
-
1191
- def __init__(
1192
- self,
1193
- keep_all_tokens: bool = False,
1194
- expand1: bool = False,
1195
- priority: Optional[int] = None,
1196
- template_source: Optional[str] = None,
1197
- empty_indices: Tuple[bool, ...] = (),
1198
- ) -> None:
1199
- self.keep_all_tokens = keep_all_tokens
1200
- self.expand1 = expand1
1201
- self.priority = priority
1202
- self.template_source = template_source
1203
- self.empty_indices = empty_indices
1204
-
1205
- def __repr__(self):
1206
- return "RuleOptions(%r, %r, %r, %r)" % (
1207
- self.keep_all_tokens,
1208
- self.expand1,
1209
- self.priority,
1210
- self.template_source,
1211
- )
1212
-
1213
-
1214
- class Rule(Serialize):
1215
- #--
1216
-
1217
- __slots__ = ("origin", "expansion", "alias", "options", "order", "_hash")
1218
-
1219
- __serialize_fields__ = "origin", "expansion", "order", "alias", "options"
1220
- __serialize_namespace__ = Terminal, NonTerminal, RuleOptions
1221
-
1222
- origin: NonTerminal
1223
- expansion: Sequence[Symbol]
1224
- order: int
1225
- alias: Optional[str]
1226
- options: RuleOptions
1227
- _hash: int
1228
-
1229
- def __init__(
1230
- self,
1231
- origin: NonTerminal,
1232
- expansion: Sequence[Symbol],
1233
- order: int = 0,
1234
- alias: Optional[str] = None,
1235
- options: Optional[RuleOptions] = None,
1236
- ):
1237
- self.origin = origin
1238
- self.expansion = expansion
1239
- self.alias = alias
1240
- self.order = order
1241
- self.options = options or RuleOptions()
1242
- self._hash = hash((self.origin, tuple(self.expansion)))
1243
-
1244
- def _deserialize(self):
1245
- self._hash = hash((self.origin, tuple(self.expansion)))
1246
-
1247
- def __str__(self):
1248
- return "<%s : %s>" % (
1249
- self.origin.name,
1250
- " ".join(x.name for x in self.expansion),
1251
- )
1252
-
1253
- def __repr__(self):
1254
- return "Rule(%r, %r, %r, %r)" % (
1255
- self.origin,
1256
- self.expansion,
1257
- self.alias,
1258
- self.options,
1259
- )
1260
-
1261
- def __hash__(self):
1262
- return self._hash
1263
-
1264
- def __eq__(self, other):
1265
- if not isinstance(other, Rule):
1266
- return False
1267
- return self.origin == other.origin and self.expansion == other.expansion
1268
-
1269
-
1270
-
1271
- from copy import copy
1272
-
1273
- try: ##
1274
-
1275
- has_interegular = bool(interegular)
1276
- except NameError:
1277
- has_interegular = False
1278
-
1279
-
1280
- class Pattern(Serialize, ABC):
1281
- #--
1282
-
1283
- value: str
1284
- flags: Collection[str]
1285
- raw: Optional[str]
1286
- type: ClassVar[str]
1287
-
1288
- def __init__(
1289
- self, value: str, flags: Collection[str] = (), raw: Optional[str] = None
1290
- ) -> None:
1291
- self.value = value
1292
- self.flags = frozenset(flags)
1293
- self.raw = raw
1294
-
1295
- def __repr__(self):
1296
- return repr(self.to_regexp())
1297
-
1298
- ##
1299
-
1300
- def __hash__(self):
1301
- return hash((type(self), self.value, self.flags))
1302
-
1303
- def __eq__(self, other):
1304
- return (
1305
- type(self) == type(other)
1306
- and self.value == other.value
1307
- and self.flags == other.flags
1308
- )
1309
-
1310
- @abstractmethod
1311
- def to_regexp(self) -> str:
1312
- raise NotImplementedError()
1313
-
1314
- @property
1315
- @abstractmethod
1316
- def min_width(self) -> int:
1317
- raise NotImplementedError()
1318
-
1319
- @property
1320
- @abstractmethod
1321
- def max_width(self) -> int:
1322
- raise NotImplementedError()
1323
-
1324
- def _get_flags(self, value):
1325
- for f in self.flags:
1326
- value = "(?%s:%s)" % (f, value)
1327
- return value
1328
-
1329
-
1330
- class PatternStr(Pattern):
1331
- __serialize_fields__ = "value", "flags", "raw"
1332
-
1333
- type: ClassVar[str] = "str"
1334
-
1335
- def to_regexp(self) -> str:
1336
- return self._get_flags(re.escape(self.value))
1337
-
1338
- @property
1339
- def min_width(self) -> int:
1340
- return len(self.value)
1341
-
1342
- @property
1343
- def max_width(self) -> int:
1344
- return len(self.value)
1345
-
1346
-
1347
- class PatternRE(Pattern):
1348
- __serialize_fields__ = "value", "flags", "raw", "_width"
1349
-
1350
- type: ClassVar[str] = "re"
1351
-
1352
- def to_regexp(self) -> str:
1353
- return self._get_flags(self.value)
1354
-
1355
- _width = None
1356
-
1357
- def _get_width(self):
1358
- if self._width is None:
1359
- self._width = get_regexp_width(self.to_regexp())
1360
- return self._width
1361
-
1362
- @property
1363
- def min_width(self) -> int:
1364
- return self._get_width()[0]
1365
-
1366
- @property
1367
- def max_width(self) -> int:
1368
- return self._get_width()[1]
1369
-
1370
-
1371
- class TerminalDef(Serialize):
1372
- #--
1373
- __serialize_fields__ = "name", "pattern", "priority"
1374
- __serialize_namespace__ = PatternStr, PatternRE
1375
-
1376
- name: str
1377
- pattern: Pattern
1378
- priority: int
1379
-
1380
- def __init__(
1381
- self, name: str, pattern: Pattern, priority: int = TOKEN_DEFAULT_PRIORITY
1382
- ) -> None:
1383
- assert isinstance(pattern, Pattern), pattern
1384
- self.name = name
1385
- self.pattern = pattern
1386
- self.priority = priority
1387
-
1388
- def __repr__(self):
1389
- return "%s(%r, %r)" % (type(self).__name__, self.name, self.pattern)
1390
-
1391
- def user_repr(self) -> str:
1392
- if self.name.startswith("__"): ##
1393
-
1394
- return self.pattern.raw or self.name
1395
- else:
1396
- return self.name
1397
-
1398
-
1399
- _T = TypeVar("_T", bound="Token")
1400
-
1401
-
1402
- class Token(str):
1403
- #--
1404
-
1405
- __slots__ = (
1406
- "type",
1407
- "start_pos",
1408
- "value",
1409
- "line",
1410
- "column",
1411
- "end_line",
1412
- "end_column",
1413
- "end_pos",
1414
- )
1415
-
1416
- __match_args__ = ("type", "value")
1417
-
1418
- type: str
1419
- start_pos: Optional[int]
1420
- value: Any
1421
- line: Optional[int]
1422
- column: Optional[int]
1423
- end_line: Optional[int]
1424
- end_column: Optional[int]
1425
- end_pos: Optional[int]
1426
-
1427
- @overload
1428
- def __new__(
1429
- cls,
1430
- type: str,
1431
- value: Any,
1432
- start_pos: Optional[int] = None,
1433
- line: Optional[int] = None,
1434
- column: Optional[int] = None,
1435
- end_line: Optional[int] = None,
1436
- end_column: Optional[int] = None,
1437
- end_pos: Optional[int] = None,
1438
- ) -> "Token": ...
1439
-
1440
- @overload
1441
- def __new__(
1442
- cls,
1443
- type_: str,
1444
- value: Any,
1445
- start_pos: Optional[int] = None,
1446
- line: Optional[int] = None,
1447
- column: Optional[int] = None,
1448
- end_line: Optional[int] = None,
1449
- end_column: Optional[int] = None,
1450
- end_pos: Optional[int] = None,
1451
- ) -> "Token": ...
1452
-
1453
- def __new__(cls, *args, **kwargs):
1454
- if "type_" in kwargs:
1455
- warnings.warn(
1456
- "`type_` is deprecated use `type` instead", DeprecationWarning
1457
- )
1458
-
1459
- if "type" in kwargs:
1460
- raise TypeError(
1461
- "Error: using both 'type' and the deprecated 'type_' as arguments."
1462
- )
1463
- kwargs["type"] = kwargs.pop("type_")
1464
-
1465
- return cls._future_new(*args, **kwargs)
1466
-
1467
- @classmethod
1468
- def _future_new(
1469
- cls,
1470
- type,
1471
- value,
1472
- start_pos=None,
1473
- line=None,
1474
- column=None,
1475
- end_line=None,
1476
- end_column=None,
1477
- end_pos=None,
1478
- ):
1479
- inst = super(Token, cls).__new__(cls, value)
1480
-
1481
- inst.type = type
1482
- inst.start_pos = start_pos
1483
- inst.value = value
1484
- inst.line = line
1485
- inst.column = column
1486
- inst.end_line = end_line
1487
- inst.end_column = end_column
1488
- inst.end_pos = end_pos
1489
- return inst
1490
-
1491
- @overload
1492
- def update(
1493
- self, type: Optional[str] = None, value: Optional[Any] = None
1494
- ) -> "Token": ...
1495
-
1496
- @overload
1497
- def update(
1498
- self, type_: Optional[str] = None, value: Optional[Any] = None
1499
- ) -> "Token": ...
1500
-
1501
- def update(self, *args, **kwargs):
1502
- if "type_" in kwargs:
1503
- warnings.warn(
1504
- "`type_` is deprecated use `type` instead", DeprecationWarning
1505
- )
1506
-
1507
- if "type" in kwargs:
1508
- raise TypeError(
1509
- "Error: using both 'type' and the deprecated 'type_' as arguments."
1510
- )
1511
- kwargs["type"] = kwargs.pop("type_")
1512
-
1513
- return self._future_update(*args, **kwargs)
1514
-
1515
- def _future_update(
1516
- self, type: Optional[str] = None, value: Optional[Any] = None
1517
- ) -> "Token":
1518
- return Token.new_borrow_pos(
1519
- type if type is not None else self.type,
1520
- value if value is not None else self.value,
1521
- self,
1522
- )
1523
-
1524
- @classmethod
1525
- def new_borrow_pos(cls: Type[_T], type_: str, value: Any, borrow_t: "Token") -> _T:
1526
- return cls(
1527
- type_,
1528
- value,
1529
- borrow_t.start_pos,
1530
- borrow_t.line,
1531
- borrow_t.column,
1532
- borrow_t.end_line,
1533
- borrow_t.end_column,
1534
- borrow_t.end_pos,
1535
- )
1536
-
1537
- def __reduce__(self):
1538
- return (
1539
- self.__class__,
1540
- (self.type, self.value, self.start_pos, self.line, self.column),
1541
- )
1542
-
1543
- def __repr__(self):
1544
- return "Token(%r, %r)" % (self.type, self.value)
1545
-
1546
- def __deepcopy__(self, memo):
1547
- return Token(self.type, self.value, self.start_pos, self.line, self.column)
1548
-
1549
- def __eq__(self, other):
1550
- if isinstance(other, Token) and self.type != other.type:
1551
- return False
1552
-
1553
- return str.__eq__(self, other)
1554
-
1555
- __hash__ = str.__hash__
1556
-
1557
-
1558
- class LineCounter:
1559
- #--
1560
-
1561
- __slots__ = "char_pos", "line", "column", "line_start_pos", "newline_char"
1562
-
1563
- def __init__(self, newline_char):
1564
- self.newline_char = newline_char
1565
- self.char_pos = 0
1566
- self.line = 1
1567
- self.column = 1
1568
- self.line_start_pos = 0
1569
-
1570
- def __eq__(self, other):
1571
- if not isinstance(other, LineCounter):
1572
- return NotImplemented
1573
-
1574
- return (
1575
- self.char_pos == other.char_pos and self.newline_char == other.newline_char
1576
- )
1577
-
1578
- def feed(self, token: Token, test_newline=True):
1579
- #--
1580
- if test_newline:
1581
- newlines = token.count(self.newline_char)
1582
- if newlines:
1583
- self.line += newlines
1584
- self.line_start_pos = (
1585
- self.char_pos + token.rindex(self.newline_char) + 1
1586
- )
1587
-
1588
- self.char_pos += len(token)
1589
- self.column = self.char_pos - self.line_start_pos + 1
1590
-
1591
-
1592
- class UnlessCallback:
1593
- def __init__(self, scanner):
1594
- self.scanner = scanner
1595
-
1596
- def __call__(self, t):
1597
- res = self.scanner.match(t.value, 0)
1598
- if res:
1599
- _value, t.type = res
1600
- return t
1601
-
1602
-
1603
- class CallChain:
1604
- def __init__(self, callback1, callback2, cond):
1605
- self.callback1 = callback1
1606
- self.callback2 = callback2
1607
- self.cond = cond
1608
-
1609
- def __call__(self, t):
1610
- t2 = self.callback1(t)
1611
- return self.callback2(t) if self.cond(t2) else t2
1612
-
1613
-
1614
- def _get_match(re_, regexp, s, flags):
1615
- m = re_.match(regexp, s, flags)
1616
- if m:
1617
- return m.group(0)
1618
-
1619
-
1620
- def _create_unless(terminals, g_regex_flags, re_, use_bytes):
1621
- tokens_by_type = classify(terminals, lambda t: type(t.pattern))
1622
- assert len(tokens_by_type) <= 2, tokens_by_type.keys()
1623
- embedded_strs = set()
1624
- callback = {}
1625
- for retok in tokens_by_type.get(PatternRE, []):
1626
- unless = []
1627
- for strtok in tokens_by_type.get(PatternStr, []):
1628
- if strtok.priority != retok.priority:
1629
- continue
1630
- s = strtok.pattern.value
1631
- if s == _get_match(re_, retok.pattern.to_regexp(), s, g_regex_flags):
1632
- unless.append(strtok)
1633
- if strtok.pattern.flags <= retok.pattern.flags:
1634
- embedded_strs.add(strtok)
1635
- if unless:
1636
- callback[retok.name] = UnlessCallback(
1637
- Scanner(
1638
- unless, g_regex_flags, re_, match_whole=True, use_bytes=use_bytes
1639
- )
1640
- )
1641
-
1642
- new_terminals = [t for t in terminals if t not in embedded_strs]
1643
- return new_terminals, callback
1644
-
1645
-
1646
- class Scanner:
1647
- def __init__(self, terminals, g_regex_flags, re_, use_bytes, match_whole=False):
1648
- self.terminals = terminals
1649
- self.g_regex_flags = g_regex_flags
1650
- self.re_ = re_
1651
- self.use_bytes = use_bytes
1652
- self.match_whole = match_whole
1653
-
1654
- self.allowed_types = {t.name for t in self.terminals}
1655
-
1656
- self._mres = self._build_mres(terminals, len(terminals))
1657
-
1658
- def _build_mres(self, terminals, max_size):
1659
- ##
1660
-
1661
- ##
1662
-
1663
- ##
1664
-
1665
- postfix = "$" if self.match_whole else ""
1666
- mres = []
1667
- while terminals:
1668
- pattern = "|".join(
1669
- "(?P<%s>%s)" % (t.name, t.pattern.to_regexp() + postfix)
1670
- for t in terminals[:max_size]
1671
- )
1672
- if self.use_bytes:
1673
- pattern = pattern.encode("latin-1")
1674
- try:
1675
- mre = self.re_.compile(pattern, self.g_regex_flags)
1676
- except AssertionError: ##
1677
-
1678
- return self._build_mres(terminals, max_size // 2)
1679
-
1680
- mres.append(mre)
1681
- terminals = terminals[max_size:]
1682
- return mres
1683
-
1684
- def match(self, text, pos):
1685
- for mre in self._mres:
1686
- m = mre.match(text, pos)
1687
- if m:
1688
- return m.group(0), m.lastgroup
1689
-
1690
-
1691
- def _regexp_has_newline(r: str):
1692
- #--
1693
- return (
1694
- "\n" in r or "\\n" in r or "\\s" in r or "[^" in r or ("(?s" in r and "." in r)
1695
- )
1696
-
1697
-
1698
- class LexerState:
1699
- #--
1700
-
1701
- __slots__ = "text", "line_ctr", "last_token"
1702
-
1703
- text: str
1704
- line_ctr: LineCounter
1705
- last_token: Optional[Token]
1706
-
1707
- def __init__(
1708
- self,
1709
- text: str,
1710
- line_ctr: Optional[LineCounter] = None,
1711
- last_token: Optional[Token] = None,
1712
- ):
1713
- self.text = text
1714
- self.line_ctr = line_ctr or LineCounter(
1715
- b"\n" if isinstance(text, bytes) else "\n"
1716
- )
1717
- self.last_token = last_token
1718
-
1719
- def __eq__(self, other):
1720
- if not isinstance(other, LexerState):
1721
- return NotImplemented
1722
-
1723
- return (
1724
- self.text is other.text
1725
- and self.line_ctr == other.line_ctr
1726
- and self.last_token == other.last_token
1727
- )
1728
-
1729
- def __copy__(self):
1730
- return type(self)(self.text, copy(self.line_ctr), self.last_token)
1731
-
1732
-
1733
- class LexerThread:
1734
- #--
1735
-
1736
- def __init__(self, lexer: "Lexer", lexer_state: LexerState):
1737
- self.lexer = lexer
1738
- self.state = lexer_state
1739
-
1740
- @classmethod
1741
- def from_text(cls, lexer: "Lexer", text: str) -> "LexerThread":
1742
- return cls(lexer, LexerState(text))
1743
-
1744
- def lex(self, parser_state):
1745
- return self.lexer.lex(self.state, parser_state)
1746
-
1747
- def __copy__(self):
1748
- return type(self)(self.lexer, copy(self.state))
1749
-
1750
- _Token = Token
1751
-
1752
-
1753
- _Callback = Callable[[Token], Token]
1754
-
1755
-
1756
- class Lexer(ABC):
1757
- #--
1758
-
1759
- @abstractmethod
1760
- def lex(self, lexer_state: LexerState, parser_state: Any) -> Iterator[Token]:
1761
- return NotImplemented
1762
-
1763
- def make_lexer_state(self, text):
1764
- #--
1765
- return LexerState(text)
1766
-
1767
-
1768
- def _check_regex_collisions(
1769
- terminal_to_regexp: Dict[TerminalDef, str],
1770
- comparator,
1771
- strict_mode,
1772
- max_collisions_to_show=8,
1773
- ):
1774
- if not comparator:
1775
- comparator = interegular.Comparator.from_regexes(terminal_to_regexp)
1776
-
1777
- ##
1778
-
1779
- ##
1780
-
1781
- max_time = 2 if strict_mode else 0.2
1782
-
1783
- ##
1784
-
1785
- if comparator.count_marked_pairs() >= max_collisions_to_show:
1786
- return
1787
- for group in classify(terminal_to_regexp, lambda t: t.priority).values():
1788
- for a, b in comparator.check(group, skip_marked=True):
1789
- assert a.priority == b.priority
1790
- ##
1791
-
1792
- comparator.mark(a, b)
1793
-
1794
- ##
1795
-
1796
- message = f"Collision between Terminals {a.name} and {b.name}. "
1797
- try:
1798
- example = comparator.get_example_overlap(
1799
- a, b, max_time
1800
- ).format_multiline()
1801
- except ValueError:
1802
- ##
1803
-
1804
- example = "No example could be found fast enough. However, the collision does still exists"
1805
- if strict_mode:
1806
- raise LexError(f"{message}\n{example}")
1807
- logger.warning(
1808
- "%s The lexer will choose between them arbitrarily.\n%s",
1809
- message,
1810
- example,
1811
- )
1812
- if comparator.count_marked_pairs() >= max_collisions_to_show:
1813
- logger.warning("Found 8 regex collisions, will not check for more.")
1814
- return
1815
-
1816
-
1817
- class AbstractBasicLexer(Lexer):
1818
- terminals_by_name: Dict[str, TerminalDef]
1819
-
1820
- @abstractmethod
1821
- def __init__(self, conf: "LexerConf", comparator=None) -> None: ...
1822
-
1823
- @abstractmethod
1824
- def next_token(self, lex_state: LexerState, parser_state: Any = None) -> Token: ...
1825
-
1826
- def lex(self, state: LexerState, parser_state: Any) -> Iterator[Token]:
1827
- with suppress(EOFError):
1828
- while True:
1829
- yield self.next_token(state, parser_state)
1830
-
1831
-
1832
- class BasicLexer(AbstractBasicLexer):
1833
- terminals: Collection[TerminalDef]
1834
- ignore_types: FrozenSet[str]
1835
- newline_types: FrozenSet[str]
1836
- user_callbacks: Dict[str, _Callback]
1837
- callback: Dict[str, _Callback]
1838
- re: ModuleType
1839
-
1840
- def __init__(self, conf: "LexerConf", comparator=None) -> None:
1841
- terminals = list(conf.terminals)
1842
- assert all(isinstance(t, TerminalDef) for t in terminals), terminals
1843
-
1844
- self.re = conf.re_module
1845
-
1846
- if not conf.skip_validation:
1847
- ##
1848
-
1849
- terminal_to_regexp = {}
1850
- for t in terminals:
1851
- regexp = t.pattern.to_regexp()
1852
- try:
1853
- self.re.compile(regexp, conf.g_regex_flags)
1854
- except self.re.error:
1855
- raise LexError("Cannot compile token %s: %s" % (t.name, t.pattern))
1856
-
1857
- if t.pattern.min_width == 0:
1858
- raise LexError(
1859
- "Lexer does not allow zero-width terminals. (%s: %s)"
1860
- % (t.name, t.pattern)
1861
- )
1862
- if t.pattern.type == "re":
1863
- terminal_to_regexp[t] = regexp
1864
-
1865
- if not (set(conf.ignore) <= {t.name for t in terminals}):
1866
- raise LexError(
1867
- "Ignore terminals are not defined: %s"
1868
- % (set(conf.ignore) - {t.name for t in terminals})
1869
- )
1870
-
1871
- if has_interegular:
1872
- _check_regex_collisions(terminal_to_regexp, comparator, conf.strict)
1873
- elif conf.strict:
1874
- raise LexError(
1875
- "interegular must be installed for strict mode. Use `pip install 'lark[interegular]'`."
1876
- )
1877
-
1878
- ##
1879
-
1880
- self.newline_types = frozenset(
1881
- t.name for t in terminals if _regexp_has_newline(t.pattern.to_regexp())
1882
- )
1883
- self.ignore_types = frozenset(conf.ignore)
1884
-
1885
- terminals.sort(
1886
- key=lambda x: (
1887
- -x.priority,
1888
- -x.pattern.max_width,
1889
- -len(x.pattern.value),
1890
- x.name,
1891
- )
1892
- )
1893
- self.terminals = terminals
1894
- self.user_callbacks = conf.callbacks
1895
- self.g_regex_flags = conf.g_regex_flags
1896
- self.use_bytes = conf.use_bytes
1897
- self.terminals_by_name = conf.terminals_by_name
1898
-
1899
- self._scanner = None
1900
-
1901
- def _build_scanner(self):
1902
- terminals, self.callback = _create_unless(
1903
- self.terminals, self.g_regex_flags, self.re, self.use_bytes
1904
- )
1905
- assert all(self.callback.values())
1906
-
1907
- for type_, f in self.user_callbacks.items():
1908
- if type_ in self.callback:
1909
- ##
1910
-
1911
- self.callback[type_] = CallChain(
1912
- self.callback[type_], f, lambda t: t.type == type_
1913
- )
1914
- else:
1915
- self.callback[type_] = f
1916
-
1917
- self._scanner = Scanner(terminals, self.g_regex_flags, self.re, self.use_bytes)
1918
-
1919
- @property
1920
- def scanner(self):
1921
- if self._scanner is None:
1922
- self._build_scanner()
1923
- return self._scanner
1924
-
1925
- def match(self, text, pos):
1926
- return self.scanner.match(text, pos)
1927
-
1928
- def next_token(self, lex_state: LexerState, parser_state: Any = None) -> Token:
1929
- line_ctr = lex_state.line_ctr
1930
- while line_ctr.char_pos < len(lex_state.text):
1931
- res = self.match(lex_state.text, line_ctr.char_pos)
1932
- if not res:
1933
- allowed = self.scanner.allowed_types - self.ignore_types
1934
- if not allowed:
1935
- allowed = {"<END-OF-FILE>"}
1936
- raise UnexpectedCharacters(
1937
- lex_state.text,
1938
- line_ctr.char_pos,
1939
- line_ctr.line,
1940
- line_ctr.column,
1941
- allowed=allowed,
1942
- token_history=lex_state.last_token and [lex_state.last_token],
1943
- state=parser_state,
1944
- terminals_by_name=self.terminals_by_name,
1945
- )
1946
-
1947
- value, type_ = res
1948
-
1949
- ignored = type_ in self.ignore_types
1950
- t = None
1951
- if not ignored or type_ in self.callback:
1952
- t = Token(
1953
- type_, value, line_ctr.char_pos, line_ctr.line, line_ctr.column
1954
- )
1955
- line_ctr.feed(value, type_ in self.newline_types)
1956
- if t is not None:
1957
- t.end_line = line_ctr.line
1958
- t.end_column = line_ctr.column
1959
- t.end_pos = line_ctr.char_pos
1960
- if t.type in self.callback:
1961
- t = self.callback[t.type](t)
1962
- if not ignored:
1963
- if not isinstance(t, Token):
1964
- raise LexError(
1965
- "Callbacks must return a token (returned %r)" % t
1966
- )
1967
- lex_state.last_token = t
1968
- return t
1969
-
1970
- ##
1971
-
1972
- raise EOFError(self)
1973
-
1974
-
1975
- class ContextualLexer(Lexer):
1976
- lexers: Dict[int, AbstractBasicLexer]
1977
- root_lexer: AbstractBasicLexer
1978
-
1979
- BasicLexer: Type[AbstractBasicLexer] = BasicLexer
1980
-
1981
- def __init__(
1982
- self,
1983
- conf: "LexerConf",
1984
- states: Dict[int, Collection[str]],
1985
- always_accept: Collection[str] = (),
1986
- ) -> None:
1987
- terminals = list(conf.terminals)
1988
- terminals_by_name = conf.terminals_by_name
1989
-
1990
- trad_conf = copy(conf)
1991
- trad_conf.terminals = terminals
1992
-
1993
- if has_interegular and not conf.skip_validation:
1994
- comparator = interegular.Comparator.from_regexes(
1995
- {t: t.pattern.to_regexp() for t in terminals}
1996
- )
1997
- else:
1998
- comparator = None
1999
- lexer_by_tokens: Dict[FrozenSet[str], AbstractBasicLexer] = {}
2000
- self.lexers = {}
2001
- for state, accepts in states.items():
2002
- key = frozenset(accepts)
2003
- try:
2004
- lexer = lexer_by_tokens[key]
2005
- except KeyError:
2006
- accepts = set(accepts) | set(conf.ignore) | set(always_accept)
2007
- lexer_conf = copy(trad_conf)
2008
- lexer_conf.terminals = [
2009
- terminals_by_name[n] for n in accepts if n in terminals_by_name
2010
- ]
2011
- lexer = self.BasicLexer(lexer_conf, comparator)
2012
- lexer_by_tokens[key] = lexer
2013
-
2014
- self.lexers[state] = lexer
2015
-
2016
- assert trad_conf.terminals is terminals
2017
- trad_conf.skip_validation = True ##
2018
-
2019
- self.root_lexer = self.BasicLexer(trad_conf, comparator)
2020
-
2021
- def lex(
2022
- self, lexer_state: LexerState, parser_state: "ParserState"
2023
- ) -> Iterator[Token]:
2024
- try:
2025
- while True:
2026
- lexer = self.lexers[parser_state.position]
2027
- yield lexer.next_token(lexer_state, parser_state)
2028
- except EOFError:
2029
- pass
2030
- except UnexpectedCharacters as e:
2031
- ##
2032
-
2033
- ##
2034
-
2035
- try:
2036
- last_token = (
2037
- lexer_state.last_token
2038
- ) ##
2039
-
2040
- token = self.root_lexer.next_token(lexer_state, parser_state)
2041
- raise UnexpectedToken(
2042
- token,
2043
- e.allowed,
2044
- state=parser_state,
2045
- token_history=[last_token],
2046
- terminals_by_name=self.root_lexer.terminals_by_name,
2047
- )
2048
- except UnexpectedCharacters:
2049
- raise e ##
2050
-
2051
-
2052
-
2053
-
2054
-
2055
- _ParserArgType: "TypeAlias" = 'Literal["earley", "lalr", "cyk", "auto"]'
2056
- _LexerArgType: "TypeAlias" = (
2057
- 'Union[Literal["auto", "basic", "contextual", "dynamic", "dynamic_complete"], Type[Lexer]]'
2058
- )
2059
- _LexerCallback = Callable[[Token], Token]
2060
- ParserCallbacks = Dict[str, Callable]
2061
-
2062
-
2063
- class LexerConf(Serialize):
2064
- __serialize_fields__ = (
2065
- "terminals",
2066
- "ignore",
2067
- "g_regex_flags",
2068
- "use_bytes",
2069
- "lexer_type",
2070
- )
2071
- __serialize_namespace__ = (TerminalDef,)
2072
-
2073
- terminals: Collection[TerminalDef]
2074
- re_module: ModuleType
2075
- ignore: Collection[str]
2076
- postlex: "Optional[PostLex]"
2077
- callbacks: Dict[str, _LexerCallback]
2078
- g_regex_flags: int
2079
- skip_validation: bool
2080
- use_bytes: bool
2081
- lexer_type: Optional[_LexerArgType]
2082
- strict: bool
2083
-
2084
- def __init__(
2085
- self,
2086
- terminals: Collection[TerminalDef],
2087
- re_module: ModuleType,
2088
- ignore: Collection[str] = (),
2089
- postlex: "Optional[PostLex]" = None,
2090
- callbacks: Optional[Dict[str, _LexerCallback]] = None,
2091
- g_regex_flags: int = 0,
2092
- skip_validation: bool = False,
2093
- use_bytes: bool = False,
2094
- strict: bool = False,
2095
- ):
2096
- self.terminals = terminals
2097
- self.terminals_by_name = {t.name: t for t in self.terminals}
2098
- assert len(self.terminals) == len(self.terminals_by_name)
2099
- self.ignore = ignore
2100
- self.postlex = postlex
2101
- self.callbacks = callbacks or {}
2102
- self.g_regex_flags = g_regex_flags
2103
- self.re_module = re_module
2104
- self.skip_validation = skip_validation
2105
- self.use_bytes = use_bytes
2106
- self.strict = strict
2107
- self.lexer_type = None
2108
-
2109
- def _deserialize(self):
2110
- self.terminals_by_name = {t.name: t for t in self.terminals}
2111
-
2112
- def __deepcopy__(self, memo=None):
2113
- return type(self)(
2114
- deepcopy(self.terminals, memo),
2115
- self.re_module,
2116
- deepcopy(self.ignore, memo),
2117
- deepcopy(self.postlex, memo),
2118
- deepcopy(self.callbacks, memo),
2119
- deepcopy(self.g_regex_flags, memo),
2120
- deepcopy(self.skip_validation, memo),
2121
- deepcopy(self.use_bytes, memo),
2122
- )
2123
-
2124
-
2125
- class ParserConf(Serialize):
2126
- __serialize_fields__ = "rules", "start", "parser_type"
2127
-
2128
- rules: List["Rule"]
2129
- callbacks: ParserCallbacks
2130
- start: List[str]
2131
- parser_type: _ParserArgType
2132
-
2133
- def __init__(
2134
- self, rules: List["Rule"], callbacks: ParserCallbacks, start: List[str]
2135
- ):
2136
- assert isinstance(start, list)
2137
- self.rules = rules
2138
- self.callbacks = callbacks
2139
- self.start = start
2140
-
2141
-
2142
-
2143
- from functools import partial, wraps
2144
- from itertools import product
2145
-
2146
-
2147
- class ExpandSingleChild:
2148
- def __init__(self, node_builder):
2149
- self.node_builder = node_builder
2150
-
2151
- def __call__(self, children):
2152
- if len(children) == 1:
2153
- return children[0]
2154
- else:
2155
- return self.node_builder(children)
2156
-
2157
-
2158
- class PropagatePositions:
2159
- def __init__(self, node_builder, node_filter=None):
2160
- self.node_builder = node_builder
2161
- self.node_filter = node_filter
2162
-
2163
- def __call__(self, children):
2164
- res = self.node_builder(children)
2165
-
2166
- if isinstance(res, Tree):
2167
- ##
2168
-
2169
- ##
2170
-
2171
- ##
2172
-
2173
- ##
2174
-
2175
-
2176
- res_meta = res.meta
2177
-
2178
- first_meta = self._pp_get_meta(children)
2179
- if first_meta is not None:
2180
- if not hasattr(res_meta, "line"):
2181
- ##
2182
-
2183
- res_meta.line = getattr(
2184
- first_meta, "container_line", first_meta.line
2185
- )
2186
- res_meta.column = getattr(
2187
- first_meta, "container_column", first_meta.column
2188
- )
2189
- res_meta.start_pos = getattr(
2190
- first_meta, "container_start_pos", first_meta.start_pos
2191
- )
2192
- res_meta.empty = False
2193
-
2194
- res_meta.container_line = getattr(
2195
- first_meta, "container_line", first_meta.line
2196
- )
2197
- res_meta.container_column = getattr(
2198
- first_meta, "container_column", first_meta.column
2199
- )
2200
- res_meta.container_start_pos = getattr(
2201
- first_meta, "container_start_pos", first_meta.start_pos
2202
- )
2203
-
2204
- last_meta = self._pp_get_meta(reversed(children))
2205
- if last_meta is not None:
2206
- if not hasattr(res_meta, "end_line"):
2207
- res_meta.end_line = getattr(
2208
- last_meta, "container_end_line", last_meta.end_line
2209
- )
2210
- res_meta.end_column = getattr(
2211
- last_meta, "container_end_column", last_meta.end_column
2212
- )
2213
- res_meta.end_pos = getattr(
2214
- last_meta, "container_end_pos", last_meta.end_pos
2215
- )
2216
- res_meta.empty = False
2217
-
2218
- res_meta.container_end_line = getattr(
2219
- last_meta, "container_end_line", last_meta.end_line
2220
- )
2221
- res_meta.container_end_column = getattr(
2222
- last_meta, "container_end_column", last_meta.end_column
2223
- )
2224
- res_meta.container_end_pos = getattr(
2225
- last_meta, "container_end_pos", last_meta.end_pos
2226
- )
2227
-
2228
- return res
2229
-
2230
- def _pp_get_meta(self, children):
2231
- for c in children:
2232
- if self.node_filter is not None and not self.node_filter(c):
2233
- continue
2234
- if isinstance(c, Tree):
2235
- if not c.meta.empty:
2236
- return c.meta
2237
- elif isinstance(c, Token):
2238
- return c
2239
- elif hasattr(c, "__lark_meta__"):
2240
- return c.__lark_meta__()
2241
-
2242
-
2243
- def make_propagate_positions(option):
2244
- if callable(option):
2245
- return partial(PropagatePositions, node_filter=option)
2246
- elif option is True:
2247
- return PropagatePositions
2248
- elif option is False:
2249
- return None
2250
-
2251
- raise ConfigurationError("Invalid option for propagate_positions: %r" % option)
2252
-
2253
-
2254
- class ChildFilter:
2255
- def __init__(self, to_include, append_none, node_builder):
2256
- self.node_builder = node_builder
2257
- self.to_include = to_include
2258
- self.append_none = append_none
2259
-
2260
- def __call__(self, children):
2261
- filtered = []
2262
-
2263
- for i, to_expand, add_none in self.to_include:
2264
- if add_none:
2265
- filtered += [None] * add_none
2266
- if to_expand:
2267
- filtered += children[i].children
2268
- else:
2269
- filtered.append(children[i])
2270
-
2271
- if self.append_none:
2272
- filtered += [None] * self.append_none
2273
-
2274
- return self.node_builder(filtered)
2275
-
2276
-
2277
- class ChildFilterLALR(ChildFilter):
2278
- #--
2279
-
2280
- def __call__(self, children):
2281
- filtered = []
2282
- for i, to_expand, add_none in self.to_include:
2283
- if add_none:
2284
- filtered += [None] * add_none
2285
- if to_expand:
2286
- if filtered:
2287
- filtered += children[i].children
2288
- else: ##
2289
-
2290
- filtered = children[i].children
2291
- else:
2292
- filtered.append(children[i])
2293
-
2294
- if self.append_none:
2295
- filtered += [None] * self.append_none
2296
-
2297
- return self.node_builder(filtered)
2298
-
2299
-
2300
- class ChildFilterLALR_NoPlaceholders(ChildFilter):
2301
- #--
2302
-
2303
- def __init__(self, to_include, node_builder):
2304
- self.node_builder = node_builder
2305
- self.to_include = to_include
2306
-
2307
- def __call__(self, children):
2308
- filtered = []
2309
- for i, to_expand in self.to_include:
2310
- if to_expand:
2311
- if filtered:
2312
- filtered += children[i].children
2313
- else: ##
2314
-
2315
- filtered = children[i].children
2316
- else:
2317
- filtered.append(children[i])
2318
- return self.node_builder(filtered)
2319
-
2320
-
2321
- def _should_expand(sym):
2322
- return not sym.is_term and sym.name.startswith("_")
2323
-
2324
-
2325
- def maybe_create_child_filter(
2326
- expansion, keep_all_tokens, ambiguous, _empty_indices: List[bool]
2327
- ):
2328
- ##
2329
-
2330
- if _empty_indices:
2331
- assert _empty_indices.count(False) == len(expansion)
2332
- s = "".join(str(int(b)) for b in _empty_indices)
2333
- empty_indices = [len(ones) for ones in s.split("0")]
2334
- assert len(empty_indices) == len(expansion) + 1, (empty_indices, len(expansion))
2335
- else:
2336
- empty_indices = [0] * (len(expansion) + 1)
2337
-
2338
- to_include = []
2339
- nones_to_add = 0
2340
- for i, sym in enumerate(expansion):
2341
- nones_to_add += empty_indices[i]
2342
- if keep_all_tokens or not (sym.is_term and sym.filter_out):
2343
- to_include.append((i, _should_expand(sym), nones_to_add))
2344
- nones_to_add = 0
2345
-
2346
- nones_to_add += empty_indices[len(expansion)]
2347
-
2348
- if (
2349
- _empty_indices
2350
- or len(to_include) < len(expansion)
2351
- or any(to_expand for i, to_expand, _ in to_include)
2352
- ):
2353
- if _empty_indices or ambiguous:
2354
- return partial(
2355
- ChildFilter if ambiguous else ChildFilterLALR, to_include, nones_to_add
2356
- )
2357
- else:
2358
- ##
2359
-
2360
- return partial(
2361
- ChildFilterLALR_NoPlaceholders, [(i, x) for i, x, _ in to_include]
2362
- )
2363
-
2364
-
2365
- class AmbiguousExpander:
2366
- #--
2367
-
2368
- def __init__(self, to_expand, tree_class, node_builder):
2369
- self.node_builder = node_builder
2370
- self.tree_class = tree_class
2371
- self.to_expand = to_expand
2372
-
2373
- def __call__(self, children):
2374
- def _is_ambig_tree(t):
2375
- return hasattr(t, "data") and t.data == "_ambig"
2376
-
2377
- ##
2378
-
2379
- ##
2380
-
2381
- ##
2382
-
2383
- ##
2384
-
2385
- ambiguous = []
2386
- for i, child in enumerate(children):
2387
- if _is_ambig_tree(child):
2388
- if i in self.to_expand:
2389
- ambiguous.append(i)
2390
-
2391
- child.expand_kids_by_data("_ambig")
2392
-
2393
- if not ambiguous:
2394
- return self.node_builder(children)
2395
-
2396
- expand = [
2397
- child.children if i in ambiguous else (child,)
2398
- for i, child in enumerate(children)
2399
- ]
2400
- return self.tree_class(
2401
- "_ambig", [self.node_builder(list(f)) for f in product(*expand)]
2402
- )
2403
-
2404
-
2405
- def maybe_create_ambiguous_expander(tree_class, expansion, keep_all_tokens):
2406
- to_expand = [
2407
- i
2408
- for i, sym in enumerate(expansion)
2409
- if keep_all_tokens
2410
- or ((not (sym.is_term and sym.filter_out)) and _should_expand(sym))
2411
- ]
2412
- if to_expand:
2413
- return partial(AmbiguousExpander, to_expand, tree_class)
2414
-
2415
-
2416
- class AmbiguousIntermediateExpander:
2417
- #--
2418
-
2419
- def __init__(self, tree_class, node_builder):
2420
- self.node_builder = node_builder
2421
- self.tree_class = tree_class
2422
-
2423
- def __call__(self, children):
2424
- def _is_iambig_tree(child):
2425
- return hasattr(child, "data") and child.data == "_iambig"
2426
-
2427
- def _collapse_iambig(children):
2428
- #--
2429
-
2430
- ##
2431
-
2432
- ##
2433
-
2434
- if children and _is_iambig_tree(children[0]):
2435
- iambig_node = children[0]
2436
- result = []
2437
- for grandchild in iambig_node.children:
2438
- collapsed = _collapse_iambig(grandchild.children)
2439
- if collapsed:
2440
- for child in collapsed:
2441
- child.children += children[1:]
2442
- result += collapsed
2443
- else:
2444
- new_tree = self.tree_class(
2445
- "_inter", grandchild.children + children[1:]
2446
- )
2447
- result.append(new_tree)
2448
- return result
2449
-
2450
- collapsed = _collapse_iambig(children)
2451
- if collapsed:
2452
- processed_nodes = [self.node_builder(c.children) for c in collapsed]
2453
- return self.tree_class("_ambig", processed_nodes)
2454
-
2455
- return self.node_builder(children)
2456
-
2457
-
2458
- def inplace_transformer(func):
2459
- @wraps(func)
2460
- def f(children):
2461
- ##
2462
-
2463
- tree = Tree(func.__name__, children)
2464
- return func(tree)
2465
-
2466
- return f
2467
-
2468
-
2469
- def apply_visit_wrapper(func, name, wrapper):
2470
- if wrapper is _vargs_meta or wrapper is _vargs_meta_inline:
2471
- raise NotImplementedError("Meta args not supported for internal transformer")
2472
-
2473
- @wraps(func)
2474
- def f(children):
2475
- return wrapper(func, name, children, None)
2476
-
2477
- return f
2478
-
2479
-
2480
- class ParseTreeBuilder:
2481
- def __init__(
2482
- self,
2483
- rules,
2484
- tree_class,
2485
- propagate_positions=False,
2486
- ambiguous=False,
2487
- maybe_placeholders=False,
2488
- ):
2489
- self.tree_class = tree_class
2490
- self.propagate_positions = propagate_positions
2491
- self.ambiguous = ambiguous
2492
- self.maybe_placeholders = maybe_placeholders
2493
-
2494
- self.rule_builders = list(self._init_builders(rules))
2495
-
2496
- def _init_builders(self, rules):
2497
- propagate_positions = make_propagate_positions(self.propagate_positions)
2498
-
2499
- for rule in rules:
2500
- options = rule.options
2501
- keep_all_tokens = options.keep_all_tokens
2502
- expand_single_child = options.expand1
2503
-
2504
- wrapper_chain = list(
2505
- filter(
2506
- None,
2507
- [
2508
- (expand_single_child and not rule.alias) and ExpandSingleChild,
2509
- maybe_create_child_filter(
2510
- rule.expansion,
2511
- keep_all_tokens,
2512
- self.ambiguous,
2513
- options.empty_indices if self.maybe_placeholders else None,
2514
- ),
2515
- propagate_positions,
2516
- self.ambiguous
2517
- and maybe_create_ambiguous_expander(
2518
- self.tree_class, rule.expansion, keep_all_tokens
2519
- ),
2520
- self.ambiguous
2521
- and partial(AmbiguousIntermediateExpander, self.tree_class),
2522
- ],
2523
- )
2524
- )
2525
-
2526
- yield rule, wrapper_chain
2527
-
2528
- def create_callback(self, transformer=None):
2529
- callbacks = {}
2530
-
2531
- default_handler = getattr(transformer, "__default__", None)
2532
- if default_handler:
2533
-
2534
- def default_callback(data, children):
2535
- return default_handler(data, children, None)
2536
-
2537
- else:
2538
- default_callback = self.tree_class
2539
-
2540
- for rule, wrapper_chain in self.rule_builders:
2541
-
2542
- user_callback_name = (
2543
- rule.alias or rule.options.template_source or rule.origin.name
2544
- )
2545
- try:
2546
- f = getattr(transformer, user_callback_name)
2547
- wrapper = getattr(f, "visit_wrapper", None)
2548
- if wrapper is not None:
2549
- f = apply_visit_wrapper(f, user_callback_name, wrapper)
2550
- elif isinstance(transformer, Transformer_InPlace):
2551
- f = inplace_transformer(f)
2552
- except AttributeError:
2553
- f = partial(default_callback, user_callback_name)
2554
-
2555
- for w in wrapper_chain:
2556
- f = w(f)
2557
-
2558
- if rule in callbacks:
2559
- raise GrammarError("Rule '%s' already exists" % (rule,))
2560
-
2561
- callbacks[rule] = f
2562
-
2563
- return callbacks
2564
-
2565
-
2566
-
2567
-
2568
-
2569
- class Action:
2570
- def __init__(self, name):
2571
- self.name = name
2572
-
2573
- def __str__(self):
2574
- return self.name
2575
-
2576
- def __repr__(self):
2577
- return str(self)
2578
-
2579
-
2580
- Shift = Action("Shift")
2581
- Reduce = Action("Reduce")
2582
-
2583
- StateT = TypeVar("StateT")
2584
-
2585
-
2586
- class ParseTableBase(Generic[StateT]):
2587
- states: Dict[StateT, Dict[str, Tuple]]
2588
- start_states: Dict[str, StateT]
2589
- end_states: Dict[str, StateT]
2590
-
2591
- def __init__(self, states, start_states, end_states):
2592
- self.states = states
2593
- self.start_states = start_states
2594
- self.end_states = end_states
2595
-
2596
- def serialize(self, memo):
2597
- tokens = Enumerator()
2598
-
2599
- states = {
2600
- state: {
2601
- tokens.get(token): (
2602
- (1, arg.serialize(memo)) if action is Reduce else (0, arg)
2603
- )
2604
- for token, (action, arg) in actions.items()
2605
- }
2606
- for state, actions in self.states.items()
2607
- }
2608
-
2609
- return {
2610
- "tokens": tokens.reversed(),
2611
- "states": states,
2612
- "start_states": self.start_states,
2613
- "end_states": self.end_states,
2614
- }
2615
-
2616
- @classmethod
2617
- def deserialize(cls, data, memo):
2618
- tokens = data["tokens"]
2619
- states = {
2620
- state: {
2621
- tokens[token]: (
2622
- (Reduce, Rule.deserialize(arg, memo))
2623
- if action == 1
2624
- else (Shift, arg)
2625
- )
2626
- for token, (action, arg) in actions.items()
2627
- }
2628
- for state, actions in data["states"].items()
2629
- }
2630
- return cls(states, data["start_states"], data["end_states"])
2631
-
2632
-
2633
- class ParseTable(ParseTableBase["State"]):
2634
- #--
2635
-
2636
- pass
2637
-
2638
-
2639
- class IntParseTable(ParseTableBase[int]):
2640
- #--
2641
-
2642
- @classmethod
2643
- def from_ParseTable(cls, parse_table: ParseTable):
2644
- enum = list(parse_table.states)
2645
- state_to_idx: Dict["State", int] = {s: i for i, s in enumerate(enum)}
2646
- int_states = {}
2647
-
2648
- for s, la in parse_table.states.items():
2649
- la = {
2650
- k: (v[0], state_to_idx[v[1]]) if v[0] is Shift else v
2651
- for k, v in la.items()
2652
- }
2653
- int_states[state_to_idx[s]] = la
2654
-
2655
- start_states = {
2656
- start: state_to_idx[s] for start, s in parse_table.start_states.items()
2657
- }
2658
- end_states = {
2659
- start: state_to_idx[s] for start, s in parse_table.end_states.items()
2660
- }
2661
- return cls(int_states, start_states, end_states)
2662
-
2663
-
2664
-
2665
-
2666
-
2667
- class ParseConf(Generic[StateT]):
2668
- __slots__ = (
2669
- "parse_table",
2670
- "callbacks",
2671
- "start",
2672
- "start_state",
2673
- "end_state",
2674
- "states",
2675
- )
2676
-
2677
- parse_table: ParseTableBase[StateT]
2678
- callbacks: ParserCallbacks
2679
- start: str
2680
-
2681
- start_state: StateT
2682
- end_state: StateT
2683
- states: Dict[StateT, Dict[str, tuple]]
2684
-
2685
- def __init__(
2686
- self,
2687
- parse_table: ParseTableBase[StateT],
2688
- callbacks: ParserCallbacks,
2689
- start: str,
2690
- ):
2691
- self.parse_table = parse_table
2692
-
2693
- self.start_state = self.parse_table.start_states[start]
2694
- self.end_state = self.parse_table.end_states[start]
2695
- self.states = self.parse_table.states
2696
-
2697
- self.callbacks = callbacks
2698
- self.start = start
2699
-
2700
-
2701
- class ParserState(Generic[StateT]):
2702
- __slots__ = "parse_conf", "lexer", "state_stack", "value_stack"
2703
-
2704
- parse_conf: ParseConf[StateT]
2705
- lexer: LexerThread
2706
- state_stack: List[StateT]
2707
- value_stack: list
2708
-
2709
- def __init__(
2710
- self,
2711
- parse_conf: ParseConf[StateT],
2712
- lexer: LexerThread,
2713
- state_stack=None,
2714
- value_stack=None,
2715
- ):
2716
- self.parse_conf = parse_conf
2717
- self.lexer = lexer
2718
- self.state_stack = state_stack or [self.parse_conf.start_state]
2719
- self.value_stack = value_stack or []
2720
-
2721
- @property
2722
- def position(self) -> StateT:
2723
- return self.state_stack[-1]
2724
-
2725
- ##
2726
-
2727
- def __eq__(self, other) -> bool:
2728
- if not isinstance(other, ParserState):
2729
- return NotImplemented
2730
- return (
2731
- len(self.state_stack) == len(other.state_stack)
2732
- and self.position == other.position
2733
- )
2734
-
2735
- def __copy__(self):
2736
- return type(self)(
2737
- self.parse_conf,
2738
- self.lexer, ##
2739
-
2740
- copy(self.state_stack),
2741
- deepcopy(self.value_stack),
2742
- )
2743
-
2744
- def copy(self) -> "ParserState[StateT]":
2745
- return copy(self)
2746
-
2747
- def feed_token(self, token: Token, is_end=False) -> Any:
2748
- state_stack = self.state_stack
2749
- value_stack = self.value_stack
2750
- states = self.parse_conf.states
2751
- end_state = self.parse_conf.end_state
2752
- callbacks = self.parse_conf.callbacks
2753
-
2754
- while True:
2755
- state = state_stack[-1]
2756
- try:
2757
- action, arg = states[state][token.type]
2758
- except KeyError:
2759
- expected = {s for s in states[state].keys() if s.isupper()}
2760
- raise UnexpectedToken(
2761
- token, expected, state=self, interactive_parser=None
2762
- )
2763
-
2764
- assert arg != end_state
2765
-
2766
- if action is Shift:
2767
- ##
2768
-
2769
- assert not is_end
2770
- state_stack.append(arg)
2771
- value_stack.append(
2772
- token
2773
- if token.type not in callbacks
2774
- else callbacks[token.type](token)
2775
- )
2776
- return
2777
- else:
2778
- ##
2779
-
2780
- rule = arg
2781
- size = len(rule.expansion)
2782
- if size:
2783
- s = value_stack[-size:]
2784
- del state_stack[-size:]
2785
- del value_stack[-size:]
2786
- else:
2787
- s = []
2788
-
2789
- value = callbacks[rule](s) if callbacks else s
2790
-
2791
- _action, new_state = states[state_stack[-1]][rule.origin.name]
2792
- assert _action is Shift
2793
- state_stack.append(new_state)
2794
- value_stack.append(value)
2795
-
2796
- if is_end and state_stack[-1] == end_state:
2797
- return value_stack[-1]
2798
-
2799
-
2800
-
2801
-
2802
-
2803
- class LALR_Parser(Serialize):
2804
- def __init__(
2805
- self, parser_conf: ParserConf, debug: bool = False, strict: bool = False
2806
- ):
2807
- analysis = LALR_Analyzer(parser_conf, debug=debug, strict=strict)
2808
- analysis.compute_lalr()
2809
- callbacks = parser_conf.callbacks
2810
-
2811
- self._parse_table = analysis.parse_table
2812
- self.parser_conf = parser_conf
2813
- self.parser = _Parser(analysis.parse_table, callbacks, debug)
2814
-
2815
- @classmethod
2816
- def deserialize(cls, data, memo, callbacks, debug=False):
2817
- inst = cls.__new__(cls)
2818
- inst._parse_table = IntParseTable.deserialize(data, memo)
2819
- inst.parser = _Parser(inst._parse_table, callbacks, debug)
2820
- return inst
2821
-
2822
- def serialize(self, memo: Any = None) -> Dict[str, Any]:
2823
- return self._parse_table.serialize(memo)
2824
-
2825
- def parse_interactive(self, lexer: LexerThread, start: str):
2826
- return self.parser.parse(lexer, start, start_interactive=True)
2827
-
2828
- def parse(self, lexer, start, on_error=None):
2829
- try:
2830
- return self.parser.parse(lexer, start)
2831
- except UnexpectedInput as e:
2832
- if on_error is None:
2833
- raise
2834
-
2835
- while True:
2836
- if isinstance(e, UnexpectedCharacters):
2837
- s = e.interactive_parser.lexer_thread.state
2838
- p = s.line_ctr.char_pos
2839
-
2840
- if not on_error(e):
2841
- raise e
2842
-
2843
- if isinstance(e, UnexpectedCharacters):
2844
- ##
2845
-
2846
- if p == s.line_ctr.char_pos:
2847
- s.line_ctr.feed(s.text[p : p + 1])
2848
-
2849
- try:
2850
- return e.interactive_parser.resume_parse()
2851
- except UnexpectedToken as e2:
2852
- if (
2853
- isinstance(e, UnexpectedToken)
2854
- and e.token.type == e2.token.type == "$END"
2855
- and e.interactive_parser == e2.interactive_parser
2856
- ):
2857
- ##
2858
-
2859
- raise e2
2860
- e = e2
2861
- except UnexpectedCharacters as e2:
2862
- e = e2
2863
-
2864
-
2865
- class _Parser:
2866
- parse_table: ParseTableBase
2867
- callbacks: ParserCallbacks
2868
- debug: bool
2869
-
2870
- def __init__(
2871
- self,
2872
- parse_table: ParseTableBase,
2873
- callbacks: ParserCallbacks,
2874
- debug: bool = False,
2875
- ):
2876
- self.parse_table = parse_table
2877
- self.callbacks = callbacks
2878
- self.debug = debug
2879
-
2880
- def parse(
2881
- self,
2882
- lexer: LexerThread,
2883
- start: str,
2884
- value_stack=None,
2885
- state_stack=None,
2886
- start_interactive=False,
2887
- ):
2888
- parse_conf = ParseConf(self.parse_table, self.callbacks, start)
2889
- parser_state = ParserState(parse_conf, lexer, state_stack, value_stack)
2890
- if start_interactive:
2891
- return InteractiveParser(self, parser_state, parser_state.lexer)
2892
- return self.parse_from_state(parser_state)
2893
-
2894
- def parse_from_state(self, state: ParserState, last_token: Optional[Token] = None):
2895
- #--
2896
- try:
2897
- token = last_token
2898
- for token in state.lexer.lex(state):
2899
- assert token is not None
2900
- state.feed_token(token)
2901
-
2902
- end_token = (
2903
- Token.new_borrow_pos("$END", "", token)
2904
- if token
2905
- else Token("$END", "", 0, 1, 1)
2906
- )
2907
- return state.feed_token(end_token, True)
2908
- except UnexpectedInput as e:
2909
- try:
2910
- e.interactive_parser = InteractiveParser(self, state, state.lexer)
2911
- except NameError:
2912
- pass
2913
- raise e
2914
- except Exception as e:
2915
- if self.debug:
2916
- print("")
2917
- print("STATE STACK DUMP")
2918
- print("----------------")
2919
- for i, s in enumerate(state.state_stack):
2920
- print("%d)" % i, s)
2921
- print("")
2922
-
2923
- raise
2924
-
2925
-
2926
-
2927
-
2928
-
2929
- class InteractiveParser:
2930
- #--
2931
-
2932
- def __init__(self, parser, parser_state, lexer_thread: LexerThread):
2933
- self.parser = parser
2934
- self.parser_state = parser_state
2935
- self.lexer_thread = lexer_thread
2936
- self.result = None
2937
-
2938
- @property
2939
- def lexer_state(self) -> LexerThread:
2940
- warnings.warn(
2941
- "lexer_state will be removed in subsequent releases. Use lexer_thread instead.",
2942
- DeprecationWarning,
2943
- )
2944
- return self.lexer_thread
2945
-
2946
- def feed_token(self, token: Token):
2947
- #--
2948
- return self.parser_state.feed_token(token, token.type == "$END")
2949
-
2950
- def iter_parse(self) -> Iterator[Token]:
2951
- #--
2952
- for token in self.lexer_thread.lex(self.parser_state):
2953
- yield token
2954
- self.result = self.feed_token(token)
2955
-
2956
- def exhaust_lexer(self) -> List[Token]:
2957
- #--
2958
- return list(self.iter_parse())
2959
-
2960
- def feed_eof(self, last_token=None):
2961
- #--
2962
- eof = (
2963
- Token.new_borrow_pos("$END", "", last_token)
2964
- if last_token is not None
2965
- else self.lexer_thread._Token("$END", "", 0, 1, 1)
2966
- )
2967
- return self.feed_token(eof)
2968
-
2969
- def __copy__(self):
2970
- #--
2971
- return type(self)(
2972
- self.parser,
2973
- copy(self.parser_state),
2974
- copy(self.lexer_thread),
2975
- )
2976
-
2977
- def copy(self):
2978
- return copy(self)
2979
-
2980
- def __eq__(self, other):
2981
- if not isinstance(other, InteractiveParser):
2982
- return False
2983
-
2984
- return (
2985
- self.parser_state == other.parser_state
2986
- and self.lexer_thread == other.lexer_thread
2987
- )
2988
-
2989
- def as_immutable(self):
2990
- #--
2991
- p = copy(self)
2992
- return ImmutableInteractiveParser(p.parser, p.parser_state, p.lexer_thread)
2993
-
2994
- def pretty(self):
2995
- #--
2996
- out = ["Parser choices:"]
2997
- for k, v in self.choices().items():
2998
- out.append("\t- %s -> %r" % (k, v))
2999
- out.append("stack size: %s" % len(self.parser_state.state_stack))
3000
- return "\n".join(out)
3001
-
3002
- def choices(self):
3003
- #--
3004
- return self.parser_state.parse_conf.parse_table.states[
3005
- self.parser_state.position
3006
- ]
3007
-
3008
- def accepts(self):
3009
- #--
3010
- accepts = set()
3011
- conf_no_callbacks = copy(self.parser_state.parse_conf)
3012
- ##
3013
-
3014
- ##
3015
-
3016
- conf_no_callbacks.callbacks = {}
3017
- for t in self.choices():
3018
- if t.isupper(): ##
3019
-
3020
- new_cursor = copy(self)
3021
- new_cursor.parser_state.parse_conf = conf_no_callbacks
3022
- try:
3023
- new_cursor.feed_token(self.lexer_thread._Token(t, ""))
3024
- except UnexpectedToken:
3025
- pass
3026
- else:
3027
- accepts.add(t)
3028
- return accepts
3029
-
3030
- def resume_parse(self):
3031
- #--
3032
- return self.parser.parse_from_state(
3033
- self.parser_state, last_token=self.lexer_thread.state.last_token
3034
- )
3035
-
3036
-
3037
- class ImmutableInteractiveParser(InteractiveParser):
3038
- #--
3039
-
3040
- result = None
3041
-
3042
- def __hash__(self):
3043
- return hash((self.parser_state, self.lexer_thread))
3044
-
3045
- def feed_token(self, token):
3046
- c = copy(self)
3047
- c.result = InteractiveParser.feed_token(c, token)
3048
- return c
3049
-
3050
- def exhaust_lexer(self):
3051
- #--
3052
- cursor = self.as_mutable()
3053
- cursor.exhaust_lexer()
3054
- return cursor.as_immutable()
3055
-
3056
- def as_mutable(self):
3057
- #--
3058
- p = copy(self)
3059
- return InteractiveParser(p.parser, p.parser_state, p.lexer_thread)
3060
-
3061
-
3062
-
3063
-
3064
-
3065
- def _wrap_lexer(lexer_class):
3066
- future_interface = getattr(lexer_class, "__future_interface__", False)
3067
- if future_interface:
3068
- return lexer_class
3069
- else:
3070
-
3071
- class CustomLexerWrapper(Lexer):
3072
- def __init__(self, lexer_conf):
3073
- self.lexer = lexer_class(lexer_conf)
3074
-
3075
- def lex(self, lexer_state, parser_state):
3076
- return self.lexer.lex(lexer_state.text)
3077
-
3078
- return CustomLexerWrapper
3079
-
3080
-
3081
- def _deserialize_parsing_frontend(data, memo, lexer_conf, callbacks, options):
3082
- parser_conf = ParserConf.deserialize(data["parser_conf"], memo)
3083
- cls = (options and options._plugins.get("LALR_Parser")) or LALR_Parser
3084
- parser = cls.deserialize(data["parser"], memo, callbacks, options.debug)
3085
- parser_conf.callbacks = callbacks
3086
- return ParsingFrontend(lexer_conf, parser_conf, options, parser=parser)
3087
-
3088
-
3089
- _parser_creators: "Dict[str, Callable[[LexerConf, Any, Any], Any]]" = {}
3090
-
3091
-
3092
- class ParsingFrontend(Serialize):
3093
- __serialize_fields__ = "lexer_conf", "parser_conf", "parser"
3094
-
3095
- lexer_conf: LexerConf
3096
- parser_conf: ParserConf
3097
- options: Any
3098
-
3099
- def __init__(
3100
- self, lexer_conf: LexerConf, parser_conf: ParserConf, options, parser=None
3101
- ):
3102
- self.parser_conf = parser_conf
3103
- self.lexer_conf = lexer_conf
3104
- self.options = options
3105
-
3106
- ##
3107
-
3108
- if parser: ##
3109
-
3110
- self.parser = parser
3111
- else:
3112
- create_parser = _parser_creators.get(parser_conf.parser_type)
3113
- assert (
3114
- create_parser is not None
3115
- ), "{} is not supported in standalone mode".format(parser_conf.parser_type)
3116
- self.parser = create_parser(lexer_conf, parser_conf, options)
3117
-
3118
- ##
3119
-
3120
- lexer_type = lexer_conf.lexer_type
3121
- self.skip_lexer = False
3122
- if lexer_type in ("dynamic", "dynamic_complete"):
3123
- assert lexer_conf.postlex is None
3124
- self.skip_lexer = True
3125
- return
3126
-
3127
- if isinstance(lexer_type, type):
3128
- assert issubclass(lexer_type, Lexer)
3129
- self.lexer = _wrap_lexer(lexer_type)(lexer_conf)
3130
- elif isinstance(lexer_type, str):
3131
- create_lexer = {
3132
- "basic": create_basic_lexer,
3133
- "contextual": create_contextual_lexer,
3134
- }[lexer_type]
3135
- self.lexer = create_lexer(
3136
- lexer_conf, self.parser, lexer_conf.postlex, options
3137
- )
3138
- else:
3139
- raise TypeError("Bad value for lexer_type: {lexer_type}")
3140
-
3141
- if lexer_conf.postlex:
3142
- self.lexer = PostLexConnector(self.lexer, lexer_conf.postlex)
3143
-
3144
- def _verify_start(self, start=None):
3145
- if start is None:
3146
- start_decls = self.parser_conf.start
3147
- if len(start_decls) > 1:
3148
- raise ConfigurationError(
3149
- "Lark initialized with more than 1 possible start rule. Must specify which start rule to parse",
3150
- start_decls,
3151
- )
3152
- (start,) = start_decls
3153
- elif start not in self.parser_conf.start:
3154
- raise ConfigurationError(
3155
- "Unknown start rule %s. Must be one of %r"
3156
- % (start, self.parser_conf.start)
3157
- )
3158
- return start
3159
-
3160
- def _make_lexer_thread(self, text: str) -> Union[str, LexerThread]:
3161
- cls = (self.options and self.options._plugins.get("LexerThread")) or LexerThread
3162
- return text if self.skip_lexer else cls.from_text(self.lexer, text)
3163
-
3164
- def parse(self, text: str, start=None, on_error=None):
3165
- chosen_start = self._verify_start(start)
3166
- kw = {} if on_error is None else {"on_error": on_error}
3167
- stream = self._make_lexer_thread(text)
3168
- return self.parser.parse(stream, chosen_start, **kw)
3169
-
3170
- def parse_interactive(self, text: Optional[str] = None, start=None):
3171
- ##
3172
-
3173
- ##
3174
-
3175
- chosen_start = self._verify_start(start)
3176
- if self.parser_conf.parser_type != "lalr":
3177
- raise ConfigurationError(
3178
- "parse_interactive() currently only works with parser='lalr' "
3179
- )
3180
- stream = self._make_lexer_thread(text) ##
3181
-
3182
- return self.parser.parse_interactive(stream, chosen_start)
3183
-
3184
-
3185
- def _validate_frontend_args(parser, lexer) -> None:
3186
- assert_config(parser, ("lalr", "earley", "cyk"))
3187
- if not isinstance(lexer, type): ##
3188
-
3189
- expected = {
3190
- "lalr": ("basic", "contextual"),
3191
- "earley": ("basic", "dynamic", "dynamic_complete"),
3192
- "cyk": ("basic",),
3193
- }[parser]
3194
- assert_config(
3195
- lexer,
3196
- expected,
3197
- "Parser %r does not support lexer %%r, expected one of %%s" % parser,
3198
- )
3199
-
3200
-
3201
- def _get_lexer_callbacks(transformer, terminals):
3202
- result = {}
3203
- for terminal in terminals:
3204
- callback = getattr(transformer, terminal.name, None)
3205
- if callback is not None:
3206
- result[terminal.name] = callback
3207
- return result
3208
-
3209
-
3210
- class PostLexConnector:
3211
- def __init__(self, lexer, postlexer):
3212
- self.lexer = lexer
3213
- self.postlexer = postlexer
3214
-
3215
- def lex(self, lexer_state, parser_state):
3216
- i = self.lexer.lex(lexer_state, parser_state)
3217
- return self.postlexer.process(i)
3218
-
3219
-
3220
- def create_basic_lexer(lexer_conf, parser, postlex, options) -> BasicLexer:
3221
- cls = (options and options._plugins.get("BasicLexer")) or BasicLexer
3222
- return cls(lexer_conf)
3223
-
3224
-
3225
- def create_contextual_lexer(
3226
- lexer_conf: LexerConf, parser, postlex, options
3227
- ) -> ContextualLexer:
3228
- cls = (options and options._plugins.get("ContextualLexer")) or ContextualLexer
3229
- parse_table: ParseTableBase[int] = parser._parse_table
3230
- states: Dict[int, Collection[str]] = {
3231
- idx: list(t.keys()) for idx, t in parse_table.states.items()
3232
- }
3233
- always_accept: Collection[str] = postlex.always_accept if postlex else ()
3234
- return cls(lexer_conf, states, always_accept=always_accept)
3235
-
3236
-
3237
- def create_lalr_parser(
3238
- lexer_conf: LexerConf, parser_conf: ParserConf, options=None
3239
- ) -> LALR_Parser:
3240
- debug = options.debug if options else False
3241
- strict = options.strict if options else False
3242
- cls = (options and options._plugins.get("LALR_Parser")) or LALR_Parser
3243
- return cls(parser_conf, debug=debug, strict=strict)
3244
-
3245
-
3246
- _parser_creators["lalr"] = create_lalr_parser
3247
-
3248
-
3249
-
3250
-
3251
- class PostLex(ABC):
3252
- @abstractmethod
3253
- def process(self, stream: Iterator[Token]) -> Iterator[Token]:
3254
- return stream
3255
-
3256
- always_accept: Iterable[str] = ()
3257
-
3258
-
3259
- class LarkOptions(Serialize):
3260
- #--
3261
-
3262
- start: List[str]
3263
- debug: bool
3264
- strict: bool
3265
- transformer: "Optional[Transformer]"
3266
- propagate_positions: Union[bool, str]
3267
- maybe_placeholders: bool
3268
- cache: Union[bool, str]
3269
- regex: bool
3270
- g_regex_flags: int
3271
- keep_all_tokens: bool
3272
- tree_class: Optional[Callable[[str, List], Any]]
3273
- parser: _ParserArgType
3274
- lexer: _LexerArgType
3275
- ambiguity: 'Literal["auto", "resolve", "explicit", "forest"]'
3276
- postlex: Optional[PostLex]
3277
- priority: 'Optional[Literal["auto", "normal", "invert"]]'
3278
- lexer_callbacks: Dict[str, Callable[[Token], Token]]
3279
- use_bytes: bool
3280
- ordered_sets: bool
3281
- edit_terminals: Optional[Callable[[TerminalDef], TerminalDef]]
3282
- import_paths: "List[Union[str, Callable[[Union[None, str, PackageResource], str], Tuple[str, str]]]]"
3283
- source_path: Optional[str]
3284
-
3285
- OPTIONS_DOC = r"""
3286
- **=== General Options ===**
3287
-
3288
- start
3289
- The start symbol. Either a string, or a list of strings for multiple possible starts (Default: "start")
3290
- debug
3291
- Display debug information and extra warnings. Use only when debugging (Default: ``False``)
3292
- When used with Earley, it generates a forest graph as "sppf.png", if 'dot' is installed.
3293
- strict
3294
- Throw an exception on any potential ambiguity, including shift/reduce conflicts, and regex collisions.
3295
- transformer
3296
- Applies the transformer to every parse tree (equivalent to applying it after the parse, but faster)
3297
- propagate_positions
3298
- Propagates positional attributes into the 'meta' attribute of all tree branches.
3299
- Sets attributes: (line, column, end_line, end_column, start_pos, end_pos,
3300
- container_line, container_column, container_end_line, container_end_column)
3301
- Accepts ``False``, ``True``, or a callable, which will filter which nodes to ignore when propagating.
3302
- maybe_placeholders
3303
- When ``True``, the ``[]`` operator returns ``None`` when not matched.
3304
- When ``False``, ``[]`` behaves like the ``?`` operator, and returns no value at all.
3305
- (default= ``True``)
3306
- cache
3307
- Cache the results of the Lark grammar analysis, for x2 to x3 faster loading. LALR only for now.
3308
-
3309
- - When ``False``, does nothing (default)
3310
- - When ``True``, caches to a temporary file in the local directory
3311
- - When given a string, caches to the path pointed by the string
3312
- regex
3313
- When True, uses the ``regex`` module instead of the stdlib ``re``.
3314
- g_regex_flags
3315
- Flags that are applied to all terminals (both regex and strings)
3316
- keep_all_tokens
3317
- Prevent the tree builder from automagically removing "punctuation" tokens (Default: ``False``)
3318
- tree_class
3319
- Lark will produce trees comprised of instances of this class instead of the default ``lark.Tree``.
3320
-
3321
- **=== Algorithm Options ===**
3322
-
3323
- parser
3324
- Decides which parser engine to use. Accepts "earley" or "lalr". (Default: "earley").
3325
- (there is also a "cyk" option for legacy)
3326
- lexer
3327
- Decides whether or not to use a lexer stage
3328
-
3329
- - "auto" (default): Choose for me based on the parser
3330
- - "basic": Use a basic lexer
3331
- - "contextual": Stronger lexer (only works with parser="lalr")
3332
- - "dynamic": Flexible and powerful (only with parser="earley")
3333
- - "dynamic_complete": Same as dynamic, but tries *every* variation of tokenizing possible.
3334
- ambiguity
3335
- Decides how to handle ambiguity in the parse. Only relevant if parser="earley"
3336
-
3337
- - "resolve": The parser will automatically choose the simplest derivation
3338
- (it chooses consistently: greedy for tokens, non-greedy for rules)
3339
- - "explicit": The parser will return all derivations wrapped in "_ambig" tree nodes (i.e. a forest).
3340
- - "forest": The parser will return the root of the shared packed parse forest.
3341
-
3342
- **=== Misc. / Domain Specific Options ===**
3343
-
3344
- postlex
3345
- Lexer post-processing (Default: ``None``) Only works with the basic and contextual lexers.
3346
- priority
3347
- How priorities should be evaluated - "auto", ``None``, "normal", "invert" (Default: "auto")
3348
- lexer_callbacks
3349
- Dictionary of callbacks for the lexer. May alter tokens during lexing. Use with caution.
3350
- use_bytes
3351
- Accept an input of type ``bytes`` instead of ``str``.
3352
- ordered_sets
3353
- Should Earley use ordered-sets to achieve stable output (~10% slower than regular sets. Default: True)
3354
- edit_terminals
3355
- A callback for editing the terminals before parse.
3356
- import_paths
3357
- A List of either paths or loader functions to specify from where grammars are imported
3358
- source_path
3359
- Override the source of from where the grammar was loaded. Useful for relative imports and unconventional grammar loading
3360
- **=== End of Options ===**
3361
- """
3362
- if __doc__:
3363
- __doc__ += OPTIONS_DOC
3364
-
3365
- ##
3366
-
3367
- ##
3368
-
3369
- ##
3370
-
3371
- ##
3372
-
3373
- ##
3374
-
3375
- ##
3376
-
3377
- _defaults: Dict[str, Any] = {
3378
- "debug": False,
3379
- "strict": False,
3380
- "keep_all_tokens": False,
3381
- "tree_class": None,
3382
- "cache": False,
3383
- "postlex": None,
3384
- "parser": "earley",
3385
- "lexer": "auto",
3386
- "transformer": None,
3387
- "start": "start",
3388
- "priority": "auto",
3389
- "ambiguity": "auto",
3390
- "regex": False,
3391
- "propagate_positions": False,
3392
- "lexer_callbacks": {},
3393
- "maybe_placeholders": True,
3394
- "edit_terminals": None,
3395
- "g_regex_flags": 0,
3396
- "use_bytes": False,
3397
- "ordered_sets": True,
3398
- "import_paths": [],
3399
- "source_path": None,
3400
- "_plugins": {},
3401
- }
3402
-
3403
- def __init__(self, options_dict: Dict[str, Any]) -> None:
3404
- o = dict(options_dict)
3405
-
3406
- options = {}
3407
- for name, default in self._defaults.items():
3408
- if name in o:
3409
- value = o.pop(name)
3410
- if isinstance(default, bool) and name not in (
3411
- "cache",
3412
- "use_bytes",
3413
- "propagate_positions",
3414
- ):
3415
- value = bool(value)
3416
- else:
3417
- value = default
3418
-
3419
- options[name] = value
3420
-
3421
- if isinstance(options["start"], str):
3422
- options["start"] = [options["start"]]
3423
-
3424
- self.__dict__["options"] = options
3425
-
3426
- assert_config(self.parser, ("earley", "lalr", "cyk", None))
3427
-
3428
- if self.parser == "earley" and self.transformer:
3429
- raise ConfigurationError(
3430
- "Cannot specify an embedded transformer when using the Earley algorithm. "
3431
- "Please use your transformer on the resulting parse tree, or use a different algorithm (i.e. LALR)"
3432
- )
3433
-
3434
- if o:
3435
- raise ConfigurationError("Unknown options: %s" % o.keys())
3436
-
3437
- def __getattr__(self, name: str) -> Any:
3438
- try:
3439
- return self.__dict__["options"][name]
3440
- except KeyError as e:
3441
- raise AttributeError(e)
3442
-
3443
- def __setattr__(self, name: str, value: str) -> None:
3444
- assert_config(
3445
- name, self.options.keys(), "%r isn't a valid option. Expected one of: %s"
3446
- )
3447
- self.options[name] = value
3448
-
3449
- def serialize(self, memo=None) -> Dict[str, Any]:
3450
- return self.options
3451
-
3452
- @classmethod
3453
- def deserialize(
3454
- cls, data: Dict[str, Any], memo: Dict[int, Union[TerminalDef, Rule]]
3455
- ) -> "LarkOptions":
3456
- return cls(data)
3457
-
3458
-
3459
- ##
3460
-
3461
- ##
3462
-
3463
- _LOAD_ALLOWED_OPTIONS = {
3464
- "postlex",
3465
- "transformer",
3466
- "lexer_callbacks",
3467
- "use_bytes",
3468
- "debug",
3469
- "g_regex_flags",
3470
- "regex",
3471
- "propagate_positions",
3472
- "tree_class",
3473
- "_plugins",
3474
- }
3475
-
3476
- _VALID_PRIORITY_OPTIONS = ("auto", "normal", "invert", None)
3477
- _VALID_AMBIGUITY_OPTIONS = ("auto", "resolve", "explicit", "forest")
3478
-
3479
-
3480
- _T = TypeVar("_T", bound="Lark")
3481
-
3482
-
3483
- class Lark(Serialize):
3484
- #--
3485
-
3486
- source_path: str
3487
- source_grammar: str
3488
- grammar: "Grammar"
3489
- options: LarkOptions
3490
- lexer: Lexer
3491
- parser: "ParsingFrontend"
3492
- terminals: Collection[TerminalDef]
3493
-
3494
- def __init__(self, grammar: "Union[Grammar, str, IO[str]]", **options) -> None:
3495
- self.options = LarkOptions(options)
3496
- re_module: types.ModuleType
3497
-
3498
- ##
3499
-
3500
- use_regex = self.options.regex
3501
- if use_regex:
3502
- if _has_regex:
3503
- re_module = regex
3504
- else:
3505
- raise ImportError(
3506
- "`regex` module must be installed if calling `Lark(regex=True)`."
3507
- )
3508
- else:
3509
- re_module = re
3510
-
3511
- ##
3512
-
3513
- if self.options.source_path is None:
3514
- try:
3515
- self.source_path = grammar.name ##
3516
-
3517
- except AttributeError:
3518
- self.source_path = "<string>"
3519
- else:
3520
- self.source_path = self.options.source_path
3521
-
3522
- ##
3523
-
3524
- try:
3525
- read = grammar.read ##
3526
-
3527
- except AttributeError:
3528
- pass
3529
- else:
3530
- grammar = read()
3531
-
3532
- cache_fn = None
3533
- cache_sha256 = None
3534
- if isinstance(grammar, str):
3535
- self.source_grammar = grammar
3536
- if self.options.use_bytes:
3537
- if not isascii(grammar):
3538
- raise ConfigurationError(
3539
- "Grammar must be ascii only, when use_bytes=True"
3540
- )
3541
-
3542
- if self.options.cache:
3543
- if self.options.parser != "lalr":
3544
- raise ConfigurationError(
3545
- "cache only works with parser='lalr' for now"
3546
- )
3547
-
3548
- unhashable = (
3549
- "transformer",
3550
- "postlex",
3551
- "lexer_callbacks",
3552
- "edit_terminals",
3553
- "_plugins",
3554
- )
3555
- options_str = "".join(
3556
- k + str(v) for k, v in options.items() if k not in unhashable
3557
- )
3558
- from . import __version__
3559
-
3560
- s = grammar + options_str + __version__ + str(sys.version_info[:2])
3561
- cache_sha256 = sha256_digest(s)
3562
-
3563
- if isinstance(self.options.cache, str):
3564
- cache_fn = self.options.cache
3565
- else:
3566
- if self.options.cache is not True:
3567
- raise ConfigurationError("cache argument must be bool or str")
3568
-
3569
- try:
3570
- username = getpass.getuser()
3571
- except Exception:
3572
- ##
3573
-
3574
- ##
3575
-
3576
- ##
3577
-
3578
- username = "unknown"
3579
-
3580
- cache_fn = (
3581
- tempfile.gettempdir()
3582
- + "/.lark_cache_%s_%s_%s_%s.tmp"
3583
- % (username, cache_sha256, *sys.version_info[:2])
3584
- )
3585
-
3586
- old_options = self.options
3587
- try:
3588
- with FS.open(cache_fn, "rb") as f:
3589
- logger.debug("Loading grammar from cache: %s", cache_fn)
3590
- ##
3591
-
3592
- for name in set(options) - _LOAD_ALLOWED_OPTIONS:
3593
- del options[name]
3594
- file_sha256 = f.readline().rstrip(b"\n")
3595
- cached_used_files = pickle.load(f)
3596
- if file_sha256 == cache_sha256.encode(
3597
- "utf8"
3598
- ) and verify_used_files(cached_used_files):
3599
- cached_parser_data = pickle.load(f)
3600
- self._load(cached_parser_data, **options)
3601
- return
3602
- except FileNotFoundError:
3603
- ##
3604
-
3605
- pass
3606
- except (
3607
- Exception
3608
- ): ##
3609
-
3610
- logger.exception(
3611
- "Failed to load Lark from cache: %r. We will try to carry on.",
3612
- cache_fn,
3613
- )
3614
-
3615
- ##
3616
-
3617
- ##
3618
-
3619
- self.options = old_options
3620
-
3621
- ##
3622
-
3623
- self.grammar, used_files = load_grammar(
3624
- grammar,
3625
- self.source_path,
3626
- self.options.import_paths,
3627
- self.options.keep_all_tokens,
3628
- )
3629
- else:
3630
- assert isinstance(grammar, Grammar)
3631
- self.grammar = grammar
3632
-
3633
- if self.options.lexer == "auto":
3634
- if self.options.parser == "lalr":
3635
- self.options.lexer = "contextual"
3636
- elif self.options.parser == "earley":
3637
- if self.options.postlex is not None:
3638
- logger.info(
3639
- "postlex can't be used with the dynamic lexer, so we use 'basic' instead. "
3640
- "Consider using lalr with contextual instead of earley"
3641
- )
3642
- self.options.lexer = "basic"
3643
- else:
3644
- self.options.lexer = "dynamic"
3645
- elif self.options.parser == "cyk":
3646
- self.options.lexer = "basic"
3647
- else:
3648
- assert False, self.options.parser
3649
- lexer = self.options.lexer
3650
- if isinstance(lexer, type):
3651
- assert issubclass(
3652
- lexer, Lexer
3653
- ) ##
3654
-
3655
- else:
3656
- assert_config(lexer, ("basic", "contextual", "dynamic", "dynamic_complete"))
3657
- if self.options.postlex is not None and "dynamic" in lexer:
3658
- raise ConfigurationError(
3659
- "Can't use postlex with a dynamic lexer. Use basic or contextual instead"
3660
- )
3661
-
3662
- if self.options.ambiguity == "auto":
3663
- if self.options.parser == "earley":
3664
- self.options.ambiguity = "resolve"
3665
- else:
3666
- assert_config(
3667
- self.options.parser,
3668
- ("earley", "cyk"),
3669
- "%r doesn't support disambiguation. Use one of these parsers instead: %s",
3670
- )
3671
-
3672
- if self.options.priority == "auto":
3673
- self.options.priority = "normal"
3674
-
3675
- if self.options.priority not in _VALID_PRIORITY_OPTIONS:
3676
- raise ConfigurationError(
3677
- "invalid priority option: %r. Must be one of %r"
3678
- % (self.options.priority, _VALID_PRIORITY_OPTIONS)
3679
- )
3680
- if self.options.ambiguity not in _VALID_AMBIGUITY_OPTIONS:
3681
- raise ConfigurationError(
3682
- "invalid ambiguity option: %r. Must be one of %r"
3683
- % (self.options.ambiguity, _VALID_AMBIGUITY_OPTIONS)
3684
- )
3685
-
3686
- if self.options.parser is None:
3687
- terminals_to_keep = "*"
3688
- elif self.options.postlex is not None:
3689
- terminals_to_keep = set(self.options.postlex.always_accept)
3690
- else:
3691
- terminals_to_keep = set()
3692
-
3693
- ##
3694
-
3695
- self.terminals, self.rules, self.ignore_tokens = self.grammar.compile(
3696
- self.options.start, terminals_to_keep
3697
- )
3698
-
3699
- if self.options.edit_terminals:
3700
- for t in self.terminals:
3701
- self.options.edit_terminals(t)
3702
-
3703
- self._terminals_dict = {t.name: t for t in self.terminals}
3704
-
3705
- ##
3706
-
3707
- if self.options.priority == "invert":
3708
- for rule in self.rules:
3709
- if rule.options.priority is not None:
3710
- rule.options.priority = -rule.options.priority
3711
- for term in self.terminals:
3712
- term.priority = -term.priority
3713
- ##
3714
-
3715
- ##
3716
-
3717
- ##
3718
-
3719
- elif self.options.priority is None:
3720
- for rule in self.rules:
3721
- if rule.options.priority is not None:
3722
- rule.options.priority = None
3723
- for term in self.terminals:
3724
- term.priority = 0
3725
-
3726
- ##
3727
-
3728
- self.lexer_conf = LexerConf(
3729
- self.terminals,
3730
- re_module,
3731
- self.ignore_tokens,
3732
- self.options.postlex,
3733
- self.options.lexer_callbacks,
3734
- self.options.g_regex_flags,
3735
- use_bytes=self.options.use_bytes,
3736
- strict=self.options.strict,
3737
- )
3738
-
3739
- if self.options.parser:
3740
- self.parser = self._build_parser()
3741
- elif lexer:
3742
- self.lexer = self._build_lexer()
3743
-
3744
- if cache_fn:
3745
- logger.debug("Saving grammar to cache: %s", cache_fn)
3746
- try:
3747
- with FS.open(cache_fn, "wb") as f:
3748
- assert cache_sha256 is not None
3749
- f.write(cache_sha256.encode("utf8") + b"\n")
3750
- pickle.dump(used_files, f)
3751
- self.save(f, _LOAD_ALLOWED_OPTIONS)
3752
- except IOError as e:
3753
- logger.exception("Failed to save Lark to cache: %r.", cache_fn, e)
3754
-
3755
- if __doc__:
3756
- __doc__ += "\n\n" + LarkOptions.OPTIONS_DOC
3757
-
3758
- __serialize_fields__ = "parser", "rules", "options"
3759
-
3760
- def _build_lexer(self, dont_ignore: bool = False) -> BasicLexer:
3761
- lexer_conf = self.lexer_conf
3762
- if dont_ignore:
3763
- from copy import copy
3764
-
3765
- lexer_conf = copy(lexer_conf)
3766
- lexer_conf.ignore = ()
3767
- return BasicLexer(lexer_conf)
3768
-
3769
- def _prepare_callbacks(self) -> None:
3770
- self._callbacks = {}
3771
- ##
3772
-
3773
- if self.options.ambiguity != "forest":
3774
- self._parse_tree_builder = ParseTreeBuilder(
3775
- self.rules,
3776
- self.options.tree_class or Tree,
3777
- self.options.propagate_positions,
3778
- self.options.parser != "lalr" and self.options.ambiguity == "explicit",
3779
- self.options.maybe_placeholders,
3780
- )
3781
- self._callbacks = self._parse_tree_builder.create_callback(
3782
- self.options.transformer
3783
- )
3784
- self._callbacks.update(
3785
- _get_lexer_callbacks(self.options.transformer, self.terminals)
3786
- )
3787
-
3788
- def _build_parser(self) -> "ParsingFrontend":
3789
- self._prepare_callbacks()
3790
- _validate_frontend_args(self.options.parser, self.options.lexer)
3791
- parser_conf = ParserConf(self.rules, self._callbacks, self.options.start)
3792
- return _construct_parsing_frontend(
3793
- self.options.parser,
3794
- self.options.lexer,
3795
- self.lexer_conf,
3796
- parser_conf,
3797
- options=self.options,
3798
- )
3799
-
3800
- def save(self, f, exclude_options: Collection[str] = ()) -> None:
3801
- #--
3802
- if self.options.parser != "lalr":
3803
- raise NotImplementedError(
3804
- "Lark.save() is only implemented for the LALR(1) parser."
3805
- )
3806
- data, m = self.memo_serialize([TerminalDef, Rule])
3807
- if exclude_options:
3808
- data["options"] = {
3809
- n: v for n, v in data["options"].items() if n not in exclude_options
3810
- }
3811
- pickle.dump({"data": data, "memo": m}, f, protocol=pickle.HIGHEST_PROTOCOL)
3812
-
3813
- @classmethod
3814
- def load(cls: Type[_T], f) -> _T:
3815
- #--
3816
- inst = cls.__new__(cls)
3817
- return inst._load(f)
3818
-
3819
- def _deserialize_lexer_conf(
3820
- self,
3821
- data: Dict[str, Any],
3822
- memo: Dict[int, Union[TerminalDef, Rule]],
3823
- options: LarkOptions,
3824
- ) -> LexerConf:
3825
- lexer_conf = LexerConf.deserialize(data["lexer_conf"], memo)
3826
- lexer_conf.callbacks = options.lexer_callbacks or {}
3827
- lexer_conf.re_module = regex if options.regex else re
3828
- lexer_conf.use_bytes = options.use_bytes
3829
- lexer_conf.g_regex_flags = options.g_regex_flags
3830
- lexer_conf.skip_validation = True
3831
- lexer_conf.postlex = options.postlex
3832
- return lexer_conf
3833
-
3834
- def _load(self: _T, f: Any, **kwargs) -> _T:
3835
- if isinstance(f, dict):
3836
- d = f
3837
- else:
3838
- d = pickle.load(f)
3839
- memo_json = d["memo"]
3840
- data = d["data"]
3841
-
3842
- assert memo_json
3843
- memo = SerializeMemoizer.deserialize(
3844
- memo_json, {"Rule": Rule, "TerminalDef": TerminalDef}, {}
3845
- )
3846
- options = dict(data["options"])
3847
- if (set(kwargs) - _LOAD_ALLOWED_OPTIONS) & set(LarkOptions._defaults):
3848
- raise ConfigurationError(
3849
- "Some options are not allowed when loading a Parser: {}".format(
3850
- set(kwargs) - _LOAD_ALLOWED_OPTIONS
3851
- )
3852
- )
3853
- options.update(kwargs)
3854
- self.options = LarkOptions.deserialize(options, memo)
3855
- self.rules = [Rule.deserialize(r, memo) for r in data["rules"]]
3856
- self.source_path = "<deserialized>"
3857
- _validate_frontend_args(self.options.parser, self.options.lexer)
3858
- self.lexer_conf = self._deserialize_lexer_conf(
3859
- data["parser"], memo, self.options
3860
- )
3861
- self.terminals = self.lexer_conf.terminals
3862
- self._prepare_callbacks()
3863
- self._terminals_dict = {t.name: t for t in self.terminals}
3864
- self.parser = _deserialize_parsing_frontend(
3865
- data["parser"],
3866
- memo,
3867
- self.lexer_conf,
3868
- self._callbacks,
3869
- self.options, ##
3870
-
3871
- )
3872
- return self
3873
-
3874
- @classmethod
3875
- def _load_from_dict(cls, data, memo, **kwargs):
3876
- inst = cls.__new__(cls)
3877
- return inst._load({"data": data, "memo": memo}, **kwargs)
3878
-
3879
- @classmethod
3880
- def open(
3881
- cls: Type[_T], grammar_filename: str, rel_to: Optional[str] = None, **options
3882
- ) -> _T:
3883
- #--
3884
- if rel_to:
3885
- basepath = os.path.dirname(rel_to)
3886
- grammar_filename = os.path.join(basepath, grammar_filename)
3887
- with open(grammar_filename, encoding="utf8") as f:
3888
- return cls(f, **options)
3889
-
3890
- @classmethod
3891
- def open_from_package(
3892
- cls: Type[_T],
3893
- package: str,
3894
- grammar_path: str,
3895
- search_paths: "Sequence[str]" = [""],
3896
- **options
3897
- ) -> _T:
3898
- #--
3899
- package_loader = FromPackageLoader(package, search_paths)
3900
- full_path, text = package_loader(None, grammar_path)
3901
- options.setdefault("source_path", full_path)
3902
- options.setdefault("import_paths", [])
3903
- options["import_paths"].append(package_loader)
3904
- return cls(text, **options)
3905
-
3906
- def __repr__(self):
3907
- return "Lark(open(%r), parser=%r, lexer=%r, ...)" % (
3908
- self.source_path,
3909
- self.options.parser,
3910
- self.options.lexer,
3911
- )
3912
-
3913
- def lex(self, text: str, dont_ignore: bool = False) -> Iterator[Token]:
3914
- #--
3915
- lexer: Lexer
3916
- if not hasattr(self, "lexer") or dont_ignore:
3917
- lexer = self._build_lexer(dont_ignore)
3918
- else:
3919
- lexer = self.lexer
3920
- lexer_thread = LexerThread.from_text(lexer, text)
3921
- stream = lexer_thread.lex(None)
3922
- if self.options.postlex:
3923
- return self.options.postlex.process(stream)
3924
- return stream
3925
-
3926
- def get_terminal(self, name: str) -> TerminalDef:
3927
- #--
3928
- return self._terminals_dict[name]
3929
-
3930
- def parse_interactive(
3931
- self, text: Optional[str] = None, start: Optional[str] = None
3932
- ) -> "InteractiveParser":
3933
- #--
3934
- return self.parser.parse_interactive(text, start=start)
3935
-
3936
- def parse(
3937
- self,
3938
- text: str,
3939
- start: Optional[str] = None,
3940
- on_error: "Optional[Callable[[UnexpectedInput], bool]]" = None,
3941
- ) -> "ParseTree":
3942
- #--
3943
- return self.parser.parse(text, start=start, on_error=on_error)
3944
-
3945
-
3946
-
3947
-
3948
-
3949
- class DedentError(LarkError):
3950
- pass
3951
-
3952
-
3953
- class Indenter(PostLex, ABC):
3954
- paren_level: int
3955
- indent_level: List[int]
3956
-
3957
- def __init__(self) -> None:
3958
- self.paren_level = 0
3959
- self.indent_level = [0]
3960
- assert self.tab_len > 0
3961
-
3962
- def handle_NL(self, token: Token) -> Iterator[Token]:
3963
- if self.paren_level > 0:
3964
- return
3965
-
3966
- yield token
3967
-
3968
- indent_str = token.rsplit("\n", 1)[1] ##
3969
-
3970
- indent = indent_str.count(" ") + indent_str.count("\t") * self.tab_len
3971
-
3972
- if indent > self.indent_level[-1]:
3973
- self.indent_level.append(indent)
3974
- yield Token.new_borrow_pos(self.INDENT_type, indent_str, token)
3975
- else:
3976
- while indent < self.indent_level[-1]:
3977
- self.indent_level.pop()
3978
- yield Token.new_borrow_pos(self.DEDENT_type, indent_str, token)
3979
-
3980
- if indent != self.indent_level[-1]:
3981
- raise DedentError(
3982
- "Unexpected dedent to column %s. Expected dedent to %s"
3983
- % (indent, self.indent_level[-1])
3984
- )
3985
-
3986
- def _process(self, stream):
3987
- for token in stream:
3988
- if token.type == self.NL_type:
3989
- yield from self.handle_NL(token)
3990
- else:
3991
- yield token
3992
-
3993
- if token.type in self.OPEN_PAREN_types:
3994
- self.paren_level += 1
3995
- elif token.type in self.CLOSE_PAREN_types:
3996
- self.paren_level -= 1
3997
- assert self.paren_level >= 0
3998
-
3999
- while len(self.indent_level) > 1:
4000
- self.indent_level.pop()
4001
- yield Token(self.DEDENT_type, "")
4002
-
4003
- assert self.indent_level == [0], self.indent_level
4004
-
4005
- def process(self, stream):
4006
- self.paren_level = 0
4007
- self.indent_level = [0]
4008
- return self._process(stream)
4009
-
4010
- ##
4011
-
4012
- @property
4013
- def always_accept(self):
4014
- return (self.NL_type,)
4015
-
4016
- @property
4017
- @abstractmethod
4018
- def NL_type(self) -> str:
4019
- raise NotImplementedError()
4020
-
4021
- @property
4022
- @abstractmethod
4023
- def OPEN_PAREN_types(self) -> List[str]:
4024
- raise NotImplementedError()
4025
-
4026
- @property
4027
- @abstractmethod
4028
- def CLOSE_PAREN_types(self) -> List[str]:
4029
- raise NotImplementedError()
4030
-
4031
- @property
4032
- @abstractmethod
4033
- def INDENT_type(self) -> str:
4034
- raise NotImplementedError()
4035
-
4036
- @property
4037
- @abstractmethod
4038
- def DEDENT_type(self) -> str:
4039
- raise NotImplementedError()
4040
-
4041
- @property
4042
- @abstractmethod
4043
- def tab_len(self) -> int:
4044
- raise NotImplementedError()
4045
-
4046
-
4047
- class PythonIndenter(Indenter):
4048
- NL_type = "_NEWLINE"
4049
- OPEN_PAREN_types = ["LPAR", "LSQB", "LBRACE"]
4050
- CLOSE_PAREN_types = ["RPAR", "RSQB", "RBRACE"]
4051
- INDENT_type = "_INDENT"
4052
- DEDENT_type = "_DEDENT"
4053
- tab_len = 8
4054
-
4055
-
4056
-
4057
- import pickle, zlib, base64
4058
- DATA = (
4059
- b'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/3KBrA/ZNeUd//FKeZddKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadR46RRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadRKadNNdtku2gKLpqCi6bgoim4aAoumoKLpuCiKbhoCi6agoum4KIpuGgKLpqCi6bgoim4aAoumoKLpuCiKbhoCi6agoum4KIpuGgKLpqCi6bgoim4aAoumoKLpuCiKbhoCi6agoum4KIpuGgKLpqCi6bgoim4aAoumoKLpuCiKbhoCi6agoum4KIpuGgKLpqCi6bgoim4aAoumoKLpuCiKbhoCi6agoum4KIpuGgKLpqCi6bgoim4aAoumoKLpuCiKbhoCi6agoum4KIpuGgKLpqCi6bgoim4aAoumoKLpuCiKbhoCi6agoum4KIpuGgKLpqCi6bgoim4aAoumoKLpuCiKbhoCi6agoum4KIp46Jx20UzcNEMXDQDF83ARTNw0QxcNAMXzcBFM3DRDFw0AxfNwEUzcNEMXDQDF83ARTNw0QxcNAMXzcBFM3DRDFw0AxfNwEUzcNEMXDQDF83ARTNw0QxcNAMXzcBFM3DRDFw0AxfNwEUzcNEMXDQDF83ARTNw0QxcNAMXzcBFM3DRDFw0AxfNwEUzcNEMXDQDF83ARTNw0QxcNAMXzcBFM3DRDFw0AxfNwEUzcNEMXDQDF83ARTNw0QxcNAMXzcBFM3DRDFw0AxfNwEUzcNEMXDQDF83ARTNw0QxcNAMXzcBFM3DRDFw0AxfNwEUzcNEMXDQDF83ARTNw0QxcNAMXzcBFM3DRDFw0AxfNGBfdbbtoEi6ahIsm4aJJuGgSLpqEiybhokm4aBIumoSLJuGiSbhoEi6ahIsm4aJJuGgSLpqEiybhokm4aBIu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IEYLxGiBGC0QowVitECMFojRAjFaIEYLxGiBGC0QowVitECMFojRQjtG/0E8bBf00y7op13QT7ugn3ZBP+2CftoF/bQL+mkX9NMu6Kdd0E+7oJ92QT/tgn7aBf20C/ppF/TTLuinXdBPu6CfdkE/7YJ+2gX9tAv6aRf00y7op13QT7ugn3ZBP+2CftoF/bQL+mkX9NMu6Kdd0E+7oJ92QT/tgn7aBf20C/ppF/TTLuinXdBPu6CfdkE/7YJ+2gX9tAv6aRf00y7op13QT7ugn3ZBP+2CftoF/bQL+mkX9NMu6Kdd0E+7oJ92QT/tgn7aBf20C/ppF/TTLuinXdBPu6CfdkE/7YJ+2gX9tAv6aRf00y7op13QT7ugn3ZBP+2CftoF/bQL+mkX9Nsu6Ldd0G+7oN92Qb/tgn7bBe3v8/voWnQdWoxWograhjaiHMqj7WgZWo7moA1oAcqEGqj8WnxqCOY3PrchmLviP7JT8T/vh+Gjfbv7oo/8/J+Kvzv+8RtNB28rRc/NP/4+u0mfZjrpwEbT/zn5vaNhpF+K/puiX/+/Ep8Myljlr370+9aein574sErk0cS/iHLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnATLnITLnITLnITLnITLnITLnITLnAQLmwQLmwQLmwQLmwQLmwQLmwQLmwQLmwQLmwQLmwQLmwQLmwQLmwQLmwQLm0R7KfPrkwEdbWP3JyZ/a2OVOxKD7RNntyWiz9gVDxt+99Dwu4eG3z20+O6hjXcPjbt7aNXdQ6vuHlp199Cqu4dW3T206u6hVXcPrbp7aMDdQwPuHhpw99C0vIc25T20Ke+hMXkPrch7aA3eQ2vwHlqD97TbAb8RD98rYZSDxKMczB7lWPEoR7FHOYo9yiHjUQ5mj3LkeJSD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2tG32tG32tG32tG32tG32tG32tG32tG32lEO29G32lEc29G32tG32tG32tG32tG32tG32tG32lGo23HA21EK2FEK2NG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32lH42NG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tm32tm32tm32tm32tm32tm32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32tG32ssF6zu2b2qn+VUeEvv1Os1f5dNiv+0w/yk7zK/32FhrZPB219fuNN+1SiLre1p+v7TK/V7pHTd8/L2NsvBttIhl3QPdCb0C3QUloI+hT6BPoc+gn0BD0OfQF6orIfw27+68zbs7b/Puztu8u/M27+68jXa6rGrIAd0L3QdVQO9D46CHIQ/UDD0CjYXegfqhD6AByA99CAWgp6CPoEvQ09Cz0PNQJTQduh7iv9HN0N1QH1QPvQvNg26H5kO3QPdDD0APQguhh6DboEehx6DHocPQEugJaAz0JHQMeg96BmqD7oCqoBegF6GXoOugl6Frod3QHmguFIYiUDu0D6qBVkOnoEVQA2RCrVCdqjPyvpXX1rESK+X1B8jrAvK6gLwuIK8LyOsC8rqAvC4grwvI6wLyuoC8LiCvC8jrAvK6gLwuIK8LzOsC87rAvC4wrwvM6wLzuoC8LiCvC8jrAvK6gLwuIK8LyOsC8rqAvC4grwvI6wLyuoC8LiCvC8jrAvK6gLwuIK8LyOsC8rqAvC4grwvI6wLyuoC8LiCvC8jrAvK6gLwuIK8LyOsC8rqAvC4grwvI6wLyuoC8LiCvC8jrAvK6gLwuIK8LyOsC8rqAvC4grwvI6wLyuoC8LiCvC8jrAvK6gLwuIK8LyOsC8rqAvC4grwvI6wLyuoC8LiCvC8jrAvK6gLwuIK8LyOsC8rqAvC4grwvI6wLyuoC8LiCvC8jrAvK6gLwuIK8LyOsC8rpQzusPrYCOLLG+M+iU9S3l24qvWl7vkmZ2pA0Zqf9HOtZip9PyN11XuqLIduu/fq1LavuRDmOk4xnukzojH9kujzv/uDTu/Nim484Exp0JjDsTGHcmMO5MYNyZwLgzgXFnAuPOBMadCYw7Exh3JjDuTGDcmcC4M4FxZwLj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YtQQxKghiFFDEKOGIEYNQYwaghg1BDFqCGLUEMSoIYhRQ7CcvNWlGB0JXCtfz11O3sjZ0kx3PIYRzaP1TVzWLMgBNUG7oN1QPTQBckEVkAFdCy2A1kD7IQ90AFoMTYQOQiHIC02C1kM+6Ag0BjoKbYJaoAB0DDoOTYE2Q41QG3QS2gpVQUuh5dA2qBaKQ8ugHVArtBO6DpoBrYRsqs6I01puuqtYg/yhtds0Yfit0nJ/scZrtr477Xvlt0zLX1i/2oWK5LdR7P02ir2y5kOroH3QamghtAhqgG6ETGgx1AxFoUPQJGgDFIZOQBGoHaqBTkE3QTuhVqhO1Rkx7HiezsiDWUa+F9F6Ws3t1ufdzrc2yR63dckjdoafDzPy8Jbh586MPGln+GkuI9+/OPxYl8gc67f7h4ouecDLyJN2rn7Sy8izd0Ye+bKh+MIz/ESbRdZPjTwEZuQhPCOPohl5Gs/II3e+5LEwIw/Yufq5OiPP07n6QTFXP0bn6ifGjDxYZ+SBOlc/Mebq58OMPBZm5EkvVz9mdOTBPCPfMTryhJ6rn0A68qier/KAmJGH91x5QIwbb+EMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmooMmopMuanwlGLUWvXuL8ZqxGMdiGOvsX5mYulnrHnRpNGlnCgPkK4eF1mTpOdtXf+LuZGJvE4jr9PI6zTyOo28TiOv08jrNPI6jbxOI6/TyOs08jqNvE4jr9PI6zTyOo28TiOv08jrNPI6jbxOI6/TyOs08jqNvE4jr9PI6zTyOo28TiOv08jrNPI6jbxOI6/TyOs08jqNvE4jr9PI6zTyOo28TiOv08jrNPI6jbxOI6/TyOs0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Fx/8IMHO8wM7TxTsPD8wesjfadF3LT5IsO+/RXnJsongOYKzUe6yrLWaFr592cRbe7Jg9EDAC6Iv7jxisPNkwcUHCr7BYwR/9NMD+/5w4eKiZa0FuPDPiS4OemLgaHqn+VcnbO8kYp3s5uCMbDGL6ET2i9lJJzFbDPU7CdrBMX8nHTs4+O8kaJ0sIEqsHok+cvDA4U6m1kkQOmlKJ3frJGhvkjJ0srBOynBwFtbJvg7OJg5Oug5OKzppWCf9eluJxsH5xVsZXNxJ7DoZRyfD62QcBycanZzvTTKOThbYST066eCB1OP/XizjHt0q4/571L0bde9G3btR927UvRt170bdu1H3btS9G3XvRt27Ufdu1L0bde9G3btR927UvRt170bdu1H3btS9G3XvRt27Ufdu1L2bILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILmbILm7Hb/tasnoCwuyelwk5K8sXFyyWIn8h0v328iWaNj0UVH89Hr0UMqV0dUN0Sc/unDxJ/uNPL01+sgnFi5WRML93MLFB6PvOzr66pWt2dT/YVHCz21J+B8u4tkt/I80Uvzw0FA72vRx6BroE9AnoTXQp6CPQp+GLoIuhj4DfRb6HPQ49HloFfQFaBv0BPRF6EvQ16EvQ09CT0FPQ6uhr0BfhQahZ6CvQSmoBu2AnoWeg56HlkMvQOdAL0IvQ69AR0IroJegldD10DroY9BR0GvQ69B7oGXQXmgfdCr0Deib0BJoBBqGHoXuh9ZCZSgGHQEdDn0L+jb0Hei70Peg70M/gH4Y0oFGijYuEQ8Vl4rLxMN8HUvQLdCFUBJKQ/dAt0FnQtdCdehS6DLoZCgPnRfSaPr/2X/A55C+7wZL/+J2l8Ufod5x2uDitMHFaYOL0wYXpw0uThtcnDa4OG1wcdrg4rTBxWmDi9MGF6cNLk4bXJw2uDhtcHHa4OK0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RQrvWpIwc1vH28kLjiYmeIfSgV9tfu/uwbd8wKETF7yvU4KZTzF0UoLOZ+QdSwm+czSPstwblWgfiQKEf8jn54OHWmY+1DLzWZbO3HlfPtTyXz0spfOidCZB50XpvEwz9xrNmA/R6/9n7E7rzJDOK9mZITOfE4re/S+QL3Veyc7kOcLK8CdkQDvone+gp7mDTvoOepo76GnuoKe5gy77DrrsO+hw7qDnvoNO5Q667DvoTe6g576DbuQOOpU76MfvoFO5g97kDvrxO+jH76DnvoMu+w76ljvoW+6g576DnvsOuuw76HDuoKe5g577DrrsO+h37qDDuYO+5Q667DvoW+6gb7mDTuUO+vE76MfvoIu5g37nDnruO+i576DnvoOe+w66nzva/c6xd6+c2RN9z3u2nPmZrGI+qF4G38Hq5U8/aCOuf5faiO/19mG06zl9zBE/Y9HnZ/kxg0fXUHw/fsZ+qn3EPyOHLZPDlslhy+SwZXLYMjlsmRy2TA5bJoctk8OWyWHL5LBlctgyOWyZHLZMDlsmhy2Tw5bJYcvksGVy2DI5bJkctkwOWyaHLZPDlslhy+SwZXLYMjlsmRy2TA5bJoctk8OWyWHL5LBlctgyOWyZHLZMDlsmhy2Tw5bJYcvksGVy2DI5bJkctkwOWyaHLZPDlslhy+SwZXLYMjlsmeS1TPJaJnktk7yWSV7LJK9lktcyyWuZ5LVM8lomeS2TvJZJXsskr2Wy5DI5bJkctkwOWyaHLZPDlslhy+SwZXLYMjlsmRy2TA5bJoctk8OWyWHL5rBlc9iyOWzZHLZsDtvCXz9mVmxW9N/hQLZMIFsmkC0TyJYJZMsEsmUC2TKBbJlAtkwgWyaQLRPIlglkywSyZQLZMoFsuR3I/rd3x0W8RTk081nOD6zCu2cVoqLl20f2DD+FMuYndAideuYtLnf+MauX/0710kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10kf10sfK30ct00ct00ct00ct00ct00ct00ct00ct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'
4060
- )
4061
- DATA = pickle.loads(zlib.decompress(base64.b64decode(DATA)))
4062
- MEMO = (
4063
- b'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'
4064
- )
4065
- MEMO = pickle.loads(zlib.decompress(base64.b64decode(MEMO)))
4066
- Shift = 0
4067
- Reduce = 1
4068
- def Lark_StandAlone(**kwargs):
4069
- return Lark._load_from_dict(DATA, MEMO, **kwargs)