This repo contains code to mirror other repos. It also contains the code that is getting mirrored.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

80 řádky
2.1 KiB

  1. # -*- coding: utf-8 -*-
  2. from typing import (
  3. TypeVar, Type, List, Dict, IO, Iterator, Callable, Union, Optional,
  4. Literal, Protocol, Iterable,
  5. )
  6. from .visitors import Transformer
  7. from .lexer import Token, Lexer, TerminalDef
  8. from .tree import Tree
  9. _T = TypeVar('_T')
  10. class PostLex(Protocol):
  11. def process(self, stream: Iterator[Token]) -> Iterator[Token]:
  12. ...
  13. always_accept: Iterable[str]
  14. class LarkOptions:
  15. start: List[str]
  16. parser: str
  17. lexer: str
  18. transformer: Optional[Transformer]
  19. postlex: Optional[PostLex]
  20. ambiguity: str
  21. regex: bool
  22. debug: bool
  23. keep_all_tokens: bool
  24. propagate_positions: bool
  25. maybe_placeholders: bool
  26. lexer_callbacks: Dict[str, Callable[[Token], Token]]
  27. cache: Union[bool, str]
  28. g_regex_flags: int
  29. use_bytes: bool
  30. class Lark:
  31. source: str
  32. grammar_source: str
  33. options: LarkOptions
  34. lexer: Lexer
  35. terminals: List[TerminalDef]
  36. def __init__(
  37. self,
  38. grammar: Union[str, IO[str]],
  39. *,
  40. start: Union[None, str, List[str]] = "start",
  41. parser: Literal["earley", "lalr", "cyk"] = "auto",
  42. lexer: Union[Literal["auto", "standard", "contextual", "dynamic", "dynamic_complete"], Lexer] = "auto",
  43. transformer: Optional[Transformer] = None,
  44. postlex: Optional[PostLex] = None,
  45. ambiguity: Literal["explicit", "resolve"] = "resolve",
  46. regex: bool = False,
  47. debug: bool = False,
  48. keep_all_tokens: bool = False,
  49. propagate_positions: bool = False,
  50. maybe_placeholders: bool = False,
  51. lexer_callbacks: Optional[Dict[str, Callable[[Token], Token]]] = None,
  52. cache: Union[bool, str] = False,
  53. g_regex_flags: int = ...,
  54. use_bytes: bool = False,
  55. ):
  56. ...
  57. def parse(self, text: str, start: Optional[str] = None) -> Tree:
  58. ...
  59. @classmethod
  60. def open(cls: Type[_T], grammar_filename: str, rel_to: Optional[str] = None, **options) -> _T:
  61. ...
  62. def lex(self, text: str) -> Iterator[Token]:
  63. ...
  64. def get_terminal(self, name: str) -> TerminalDef:
  65. ...