コード例 #1
0
ファイル: LamnEngine.cs プロジェクト: stroan/Lamn
        public VirtualMachine.Closure CompileString(String source)
        {
            Lexer lexer = new Lexer();
            List<Lexer.Lexeme> output = lexer.lex(source);

            Parser parser = new Parser(output);
            AST outpu2 = parser.Parse();

            Compiler.Compiler compiler = new Compiler.Compiler();
            VirtualMachine.Function compiledFunctions = compiler.CompileAST(outpu2);

            //Function.Print(compiledFunctions, LamnState.OutStream);

            return new VirtualMachine.Closure(compiledFunctions, new VirtualMachine.StackCell[0]);
        }
コード例 #2
0
ファイル: AST.cs プロジェクト: stroan/Lamn
 public LocalFunctionStatement(String name, Body body, Lexer.Position position)
 {
     Name = name;
     Body = body;
     SourcePos = position;
 }
コード例 #3
0
ファイル: AST.cs プロジェクト: stroan/Lamn
 public LocalAssignmentStatement(List<String> variables, List<Expression> expressions, Lexer.Position position)
 {
     Variables = variables;
     Expressions = expressions;
     SourcePos = position;
 }
コード例 #4
0
ファイル: Parser.cs プロジェクト: stroan/Lamn
            public LexemeStream(Lexer.Lexeme[] source)
            {
                Source = source;
                Position = 0;

                PopWhitespaceAndComments();
            }