优化项目结构

This commit is contained in:
Luke 2025-04-28 10:51:54 +08:00
parent 530fb168c8
commit adffcad19d
14 changed files with 20 additions and 4 deletions

View File

@ -2,8 +2,6 @@ package org.jcnc.snow.compiler.semantic.analyzers;
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode; import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
import org.jcnc.snow.compiler.parser.ast.base.StatementNode; import org.jcnc.snow.compiler.parser.ast.base.StatementNode;
import org.jcnc.snow.compiler.semantic.ExpressionAnalyzer;
import org.jcnc.snow.compiler.semantic.StatementAnalyzer;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@ -1,7 +1,11 @@
package org.jcnc.snow.compiler.semantic; package org.jcnc.snow.compiler.semantic.analyzers;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode; import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
import org.jcnc.snow.compiler.semantic.Context;
import org.jcnc.snow.compiler.semantic.ModuleInfo;
import org.jcnc.snow.compiler.semantic.SymbolTable;
import org.jcnc.snow.compiler.semantic.Type;
/** /**
* 表达式分析器接口 * 表达式分析器接口

View File

@ -1,7 +1,10 @@
package org.jcnc.snow.compiler.semantic; package org.jcnc.snow.compiler.semantic.analyzers;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.base.StatementNode; import org.jcnc.snow.compiler.parser.ast.base.StatementNode;
import org.jcnc.snow.compiler.semantic.Context;
import org.jcnc.snow.compiler.semantic.ModuleInfo;
import org.jcnc.snow.compiler.semantic.SymbolTable;
/** /**
* 语句分析器接口 * 语句分析器接口

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.expression;
import org.jcnc.snow.compiler.parser.ast.BinaryExpressionNode; import org.jcnc.snow.compiler.parser.ast.BinaryExpressionNode;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.ExpressionAnalyzer;
public class BinaryExpressionAnalyzer implements ExpressionAnalyzer<BinaryExpressionNode> { public class BinaryExpressionAnalyzer implements ExpressionAnalyzer<BinaryExpressionNode> {
@Override @Override

View File

@ -6,6 +6,7 @@ import org.jcnc.snow.compiler.parser.ast.IdentifierNode;
import org.jcnc.snow.compiler.parser.ast.MemberExpressionNode; import org.jcnc.snow.compiler.parser.ast.MemberExpressionNode;
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode; import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.ExpressionAnalyzer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.expression;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.IdentifierNode; import org.jcnc.snow.compiler.parser.ast.IdentifierNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.ExpressionAnalyzer;
public class IdentifierAnalyzer implements ExpressionAnalyzer<IdentifierNode> { public class IdentifierAnalyzer implements ExpressionAnalyzer<IdentifierNode> {
@Override @Override

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.expression;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.NumberLiteralNode; import org.jcnc.snow.compiler.parser.ast.NumberLiteralNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.ExpressionAnalyzer;
public class NumberLiteralAnalyzer implements ExpressionAnalyzer<NumberLiteralNode> { public class NumberLiteralAnalyzer implements ExpressionAnalyzer<NumberLiteralNode> {
@Override @Override

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.expression;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.StringLiteralNode; import org.jcnc.snow.compiler.parser.ast.StringLiteralNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.ExpressionAnalyzer;
public class StringLiteralAnalyzer implements ExpressionAnalyzer<StringLiteralNode> { public class StringLiteralAnalyzer implements ExpressionAnalyzer<StringLiteralNode> {
@Override @Override

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.expression;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode; import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.ExpressionAnalyzer;
// 之前implements ExpressionAnalyzer<ExpressionNode> // 之前implements ExpressionAnalyzer<ExpressionNode>
public class UnsupportedExpressionAnalyzer<E extends ExpressionNode> public class UnsupportedExpressionAnalyzer<E extends ExpressionNode>

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.statement;
import org.jcnc.snow.compiler.parser.ast.AssignmentNode; import org.jcnc.snow.compiler.parser.ast.AssignmentNode;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.StatementAnalyzer;
import org.jcnc.snow.compiler.semantic.expression.SemanticError; import org.jcnc.snow.compiler.semantic.expression.SemanticError;
public class AssignmentAnalyzer implements StatementAnalyzer<AssignmentNode> { public class AssignmentAnalyzer implements StatementAnalyzer<AssignmentNode> {

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.statement;
import org.jcnc.snow.compiler.parser.ast.DeclarationNode; import org.jcnc.snow.compiler.parser.ast.DeclarationNode;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.StatementAnalyzer;
import org.jcnc.snow.compiler.semantic.expression.SemanticError; import org.jcnc.snow.compiler.semantic.expression.SemanticError;
public class DeclarationAnalyzer implements StatementAnalyzer<DeclarationNode> { public class DeclarationAnalyzer implements StatementAnalyzer<DeclarationNode> {

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.statement;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.IfNode; import org.jcnc.snow.compiler.parser.ast.IfNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.StatementAnalyzer;
import org.jcnc.snow.compiler.semantic.expression.SemanticError; import org.jcnc.snow.compiler.semantic.expression.SemanticError;
public class IfAnalyzer implements StatementAnalyzer<IfNode> { public class IfAnalyzer implements StatementAnalyzer<IfNode> {

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.statement;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.LoopNode; import org.jcnc.snow.compiler.parser.ast.LoopNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.StatementAnalyzer;
import org.jcnc.snow.compiler.semantic.expression.SemanticError; import org.jcnc.snow.compiler.semantic.expression.SemanticError;
public class LoopAnalyzer implements StatementAnalyzer<LoopNode> { public class LoopAnalyzer implements StatementAnalyzer<LoopNode> {

View File

@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.semantic.statement;
import org.jcnc.snow.compiler.parser.ast.FunctionNode; import org.jcnc.snow.compiler.parser.ast.FunctionNode;
import org.jcnc.snow.compiler.parser.ast.ReturnNode; import org.jcnc.snow.compiler.parser.ast.ReturnNode;
import org.jcnc.snow.compiler.semantic.*; import org.jcnc.snow.compiler.semantic.*;
import org.jcnc.snow.compiler.semantic.analyzers.StatementAnalyzer;
import org.jcnc.snow.compiler.semantic.expression.SemanticError; import org.jcnc.snow.compiler.semantic.expression.SemanticError;
public class ReturnAnalyzer implements StatementAnalyzer<ReturnNode> { public class ReturnAnalyzer implements StatementAnalyzer<ReturnNode> {