static void Main(string[] args) { using var env = EnvWriter.Begin(true); try { string file; if (args.Length > 0) { file = args[0]; } else { env.Write("Qutum file ? "); env.Flush(); file = Console.ReadLine(); } var bs = File.ReadAllBytes(file); var p = new Parser(new Lexer { allValue = true }); using var __ = p.scan.Load(new ScanByte(bs)); var top = p.Parse(); top.Dump((Func <int, int, (int, int, int, int)>)p.scan.LineCol); } catch (Exception e) { env.WriteLine(e); } }
public static (TreeStr t, ScanStr) Parse(this ParserStr p, string input) { var t = p.Load(new ScanStr(input)).Parse().Dump(); using var env = EnvWriter.Begin(); env.WriteLine($"---- match {p.matchn} / loc {p.locn} = {p.matchn / Math.Max(p.locn, 1)} ----"); return(t, p.scan); }