优化项目结构
This commit is contained in:
parent
530fb168c8
commit
adffcad19d
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 表达式分析器接口。
|
* 表达式分析器接口。
|
||||||
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 语句分析器接口。
|
* 语句分析器接口。
|
||||||
@ -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
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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> {
|
||||||
|
|||||||
@ -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> {
|
||||||
|
|||||||
@ -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> {
|
||||||
|
|||||||
@ -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> {
|
||||||
|
|||||||
@ -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> {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user