예제 #1
0
 public Interpreter(Parser parser, ScopeManager scopeManager, SystemFunctionTable systemFunctionTable,
                    CustomFunctionTable customFunctionTable)
 {
     _parser              = parser ?? throw new ArgumentNullException(nameof(parser));
     _scopeManager        = scopeManager ?? throw new ArgumentNullException(nameof(scopeManager));
     _systemFunctionTable = systemFunctionTable ?? throw new ArgumentNullException(nameof(systemFunctionTable));
     _customFunctionTable = customFunctionTable ?? throw new ArgumentNullException(nameof(customFunctionTable));
 }
예제 #2
0
        static void Main()
        {
            var customFunctionTable = new CustomFunctionTable();
            var scopeManager        = new ScopeManager(new Scope());
            var sysFuncTable        = new SystemFunctionTable(scopeManager, customFunctionTable);

            var lexer  = new Lexer(Code.ToCharArray());
            var parser = new Parser(lexer, sysFuncTable);

            //new Interpreter(lexer, new Scope()).Run();

            new Interpreter(parser, scopeManager, sysFuncTable, customFunctionTable).Execute();
        }
예제 #3
0
파일: Parser.cs 프로젝트: tdinucci/Lithp
 public Parser(Lexer lexer, SystemFunctionTable systemFunctionTable)
 {
     _lexer = lexer ?? throw new ArgumentNullException(nameof(lexer));
     _systemFunctionTable = systemFunctionTable ?? throw new ArgumentNullException(nameof(systemFunctionTable));
 }