增加打印
This commit is contained in:
parent
fc549217db
commit
e34a9b8c89
@ -7,9 +7,11 @@ import org.jcnc.snow.compiler.ir.IRProgram;
|
||||
import org.jcnc.snow.compiler.ir.instr.IRFunction;
|
||||
import org.jcnc.snow.compiler.lexer.core.LexerEngine;
|
||||
import org.jcnc.snow.compiler.lexer.token.Token;
|
||||
import org.jcnc.snow.compiler.lexer.utils.TokenPrinter;
|
||||
import org.jcnc.snow.compiler.parser.ast.base.Node;
|
||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||
import org.jcnc.snow.compiler.parser.core.ParserEngine;
|
||||
import org.jcnc.snow.compiler.parser.function.ASTPrinter;
|
||||
import org.jcnc.snow.compiler.semantic.core.SemanticAnalyzerRunner;
|
||||
import org.jcnc.snow.vm.engine.VMMode;
|
||||
import org.jcnc.snow.vm.engine.VirtualMachineEngine;
|
||||
@ -36,14 +38,20 @@ public class SnowCompiler {
|
||||
}
|
||||
String source = Files.readString(srcPath, StandardCharsets.UTF_8);
|
||||
|
||||
|
||||
/* 1. 词法分析 */
|
||||
LexerEngine lexer = new LexerEngine(source);
|
||||
|
||||
List<Token> tokens = lexer.getAllTokens();
|
||||
|
||||
/* 2. 语法分析 */
|
||||
ParserContext ctx = new ParserContext(tokens);
|
||||
List<Node> ast = new ParserEngine(ctx).parse();
|
||||
|
||||
System.out.println(source);
|
||||
TokenPrinter.print(tokens); // 打印 Token 列表
|
||||
ASTPrinter.print(ast); // 打印 AST
|
||||
ASTPrinter.printJson(ast); // 打印JSON AST
|
||||
/* 3. 语义分析 */
|
||||
SemanticAnalyzerRunner.runSemanticAnalysis(ast, true);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user