static void Main(string[] args) { LogoPrinter.Print(); if (args.Length == 0) { return; } var input_stream = new InputStream(); foreach (var arg in args) { input_stream.AddSource(arg); } var parser = new Parser(input_stream); var prog = parser.StartParse(); Typeinf.Run(prog); var name = Path.GetFileNameWithoutExtension(args[0]); CodeGenerator.CodeGen(name, prog); }
/// <summary> /// 構文解析器を構築する /// </summary> /// <param name="strm">利用する入力ストリーム</param> public Parser(InputStream strm) { _lexer = new Lexer(strm); _tkn = _lexer.NextToken(); }
/// <summary> /// 字句解析器を作る /// </summary> /// <param name="strm">入力ストリーム</param> public Lexer(InputStream strm) { _strm = strm; _strm.NextChar(); }