#!/usr/bin/env python3 """ Ny parser MVP (Stage 1): Ny -> JSON v0 Grammar (subset): program := [return] expr EOF expr := term (('+'|'-') term)* term := factor (('*'|'/') factor)* factor := INT | STRING | '(' expr ')' Outputs JSON v0 compatible with --ny-parser-pipe. """ import sys, re, json class Tok: def __init__(self, kind, val, pos): self.kind, self.val, self.pos = kind, val, pos def lex(s: str): i=n=0; n=len(s); out=[] while i", file=sys.stderr); sys.exit(1) with open(sys.argv[1],'r',encoding='utf-8') as f: src=f.read() toks=lex(src) prog=P(toks).program() print(json.dumps(prog, ensure_ascii=False)) if __name__=='__main__': main()