bril icon indicating copy to clipboard operation
bril copied to clipboard

`bril2json` doesn't support imports

Open Flinner opened this issue 5 months ago • 2 comments

I am not sure if I am doing this wrong. If it should support let me know, maybe I can add the support

❯ bril2json < test/bril_files/linking/link_ops.bril
Traceback (most recent call last):
  File "/home/lambda/.local/bin/bril2json", line 10, in <module>
    sys.exit(bril2json())
             ~~~~~~~~~^^
  File "/home/lambda/.local/share/uv/tools/briltxt/lib/python3.13/site-packages/briltxt.py", line 338, in bril2json
    print(parse_bril(sys.stdin.read(), "-p" in sys.argv[1:]))
          ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lambda/.local/share/uv/tools/briltxt/lib/python3.13/site-packages/briltxt.py", line 239, in parse_bril
    tree = parser.parse(txt)
  File "/home/lambda/.local/share/uv/tools/briltxt/lib/python3.13/site-packages/lark/lark.py", line 581, in parse
    return self.parser.parse(text, start=start, on_error=on_error)
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lambda/.local/share/uv/tools/briltxt/lib/python3.13/site-packages/lark/parser_frontends.py", line 106, in parse
    return self.parser.parse(stream, chosen_start, **kw)
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lambda/.local/share/uv/tools/briltxt/lib/python3.13/site-packages/lark/parsers/earley.py", line 297, in parse
    to_scan = self._parse(lexer, columns, to_scan, start_symbol)
  File "/home/lambda/.local/share/uv/tools/briltxt/lib/python3.13/site-packages/lark/parsers/xearley.py", line 144, in _parse
    to_scan = scan(i, to_scan)
  File "/home/lambda/.local/share/uv/tools/briltxt/lib/python3.13/site-packages/lark/parsers/xearley.py", line 118, in scan
    raise UnexpectedCharacters(stream, i, text_line, text_column, {item.expect.name for item in to_scan},
    ...<2 lines>...
                               )
lark.exceptions.UnexpectedCharacters: No terminal matches 'f' in the current parser context, at line 2 col 1

from "bitwise-ops.bril" import @AND, @OR
^
Expected one of:
	* STRUCT
	* FUNC

Flinner avatar Jun 30 '25 05:06 Flinner

Yeah, I only added support for imports to the rust version https://github.com/sampsyo/bril/tree/main/bril-rs/bril2json.

It should be straight forward to add to bril2json.

Pat-Lafon avatar Jun 30 '25 05:06 Pat-Lafon

Agreed! Hopefully it's not too hard to add to the Lark-based parser.

sampsyo avatar Jul 07 '25 18:07 sampsyo