Juancarlo Añez
Juancarlo Añez
Try to read a JSON object per input line when reading the whole input as JSON fails. This makes `glom` behave more like `jq`.
With `base.ebnf` and `full.ebnf` in the same directory with: ``` #include :: base.ebnf ``` Will search for the include in the current or parent directory, and fail.
This is already supported for constants.
Guido documented his work on the construction of the new PEG parser for Python, and the algorithms have several reusable optimizations. https://medium.com/@gvanrossum_83706/left-recursive-peg-grammars-65dab3c580e1
```python def _children_of_type(self, atype: Type = Node, recurse: bool = False, seen: set|None = None) -> Iterable[Node]: if recurse and seen is None: seen = set() for child in self._children():...
There are many grammars and tools out there using the same variation of EBNF, and TatSu should be able to parse it. Examples: * https://www.bottlecaps.de/rr/ui * https://github.com/python/cpython/blob/master/Grammar/Grammar Changes required: *...
The class `ast/AST` is a `dict/object` that was the first default output of parsers produced by Grako. It is complicated and fragile. There's no reason why the parser cannot use...
`graphviz` and `pygraphviz` are now compatible with Python 3.x, but support them being skipped throughout TatSu
`#` comments retain the `#` and are output as `(* *)` comments. Prettification of comments is not well defined. It's best to stick to Python-style (#) comments.
The idea is taken from `peg` in which the expression: ``` < e1 e2 ... en > ``` yields the concatenation `e1+e2+...+en`.