Files
nx_post_support/server/src/parser/parser.py
T
2025-07-17 22:35:07 +02:00

33 lines
792 B
Python

from lark import Lark, Transformer, Token, v_args
from pathlib import Path
GRAMMAR_FILE = Path(__file__).parent.joinpath("tcl.lark")
TCL_GRAMMAR = GRAMMAR_FILE.read_text(encoding="utf-8")
@v_args(inline=True)
class TCLTransformer(Transformer):
def start(self, *stmts):
return list(stmts)
def command(self, *elements):
return list(elements)
def braced(self, *content):
return "{" + "".join(c for c in content) + "}"
def quoted(self, *content):
return '"' + "".join(c for c in content) + '"'
def variable(self, token):
return token.value
def cmdsubst(self, *inner):
return "[" + " ".join(inner) + "]"
def bare(self, token):
return token.value
def COMMENT(self, token):
return token.value