예제 #1
0
        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);
        }
예제 #2
0
 /// <summary>
 /// 構文解析器を構築する
 /// </summary>
 /// <param name="strm">利用する入力ストリーム</param>
 public Parser(InputStream strm)
 {
     _lexer = new Lexer(strm);
     _tkn = _lexer.NextToken();
 }
예제 #3
0
 /// <summary>
 /// 字句解析器を作る
 /// </summary>
 /// <param name="strm">入力ストリーム</param>
 public Lexer(InputStream strm)
 {
     _strm = strm;
     _strm.NextChar();
 }