解析器接口放到base包
This commit is contained in:
parent
f7219ea1fa
commit
fd38c94b3d
@ -4,6 +4,7 @@ import org.jcnc.snow.compiler.parser.ast.BinaryExpressionNode;
|
|||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.lexer.token.Token;
|
import org.jcnc.snow.compiler.lexer.token.Token;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.InfixParselet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 表示中缀二元运算符的解析规则(parselet),用于解析如 {@code a + b} 的表达式结构。
|
* 表示中缀二元运算符的解析规则(parselet),用于解析如 {@code a + b} 的表达式结构。
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package org.jcnc.snow.compiler.parser.expression;
|
|||||||
import org.jcnc.snow.compiler.parser.ast.CallExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.CallExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.InfixParselet;
|
||||||
|
|
||||||
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.parser.expression;
|
|||||||
import org.jcnc.snow.compiler.lexer.token.Token;
|
import org.jcnc.snow.compiler.lexer.token.Token;
|
||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.PrefixParselet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解析圆括号包裹的表达式,例如 {@code (a + b)}。
|
* 解析圆括号包裹的表达式,例如 {@code (a + b)}。
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import org.jcnc.snow.compiler.lexer.token.Token;
|
|||||||
import org.jcnc.snow.compiler.parser.ast.IdentifierNode;
|
import org.jcnc.snow.compiler.parser.ast.IdentifierNode;
|
||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.PrefixParselet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于解析标识符(identifier)的前缀解析器。
|
* 用于解析标识符(identifier)的前缀解析器。
|
||||||
|
|||||||
@ -5,6 +5,7 @@ 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.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
import org.jcnc.snow.compiler.parser.context.TokenStream;
|
import org.jcnc.snow.compiler.parser.context.TokenStream;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.InfixParselet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于解析成员访问表达式的中缀解析器,例如 {@code object.property}。
|
* 用于解析成员访问表达式的中缀解析器,例如 {@code object.property}。
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import org.jcnc.snow.compiler.lexer.token.Token;
|
|||||||
import org.jcnc.snow.compiler.parser.ast.NumberLiteralNode;
|
import org.jcnc.snow.compiler.parser.ast.NumberLiteralNode;
|
||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.PrefixParselet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于解析数字字面量的前缀解析器。
|
* 用于解析数字字面量的前缀解析器。
|
||||||
|
|||||||
@ -4,6 +4,9 @@ import org.jcnc.snow.compiler.lexer.token.Token;
|
|||||||
import org.jcnc.snow.compiler.lexer.token.TokenType;
|
import org.jcnc.snow.compiler.lexer.token.TokenType;
|
||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.ExpressionParser;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.InfixParselet;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.PrefixParselet;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import org.jcnc.snow.compiler.lexer.token.Token;
|
|||||||
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.StringLiteralNode;
|
import org.jcnc.snow.compiler.parser.ast.StringLiteralNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.base.PrefixParselet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于解析字符串字面量的前缀解析器。
|
* 用于解析字符串字面量的前缀解析器。
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package org.jcnc.snow.compiler.parser.expression;
|
package org.jcnc.snow.compiler.parser.expression.base;
|
||||||
|
|
||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
@ -1,7 +1,8 @@
|
|||||||
package org.jcnc.snow.compiler.parser.expression;
|
package org.jcnc.snow.compiler.parser.expression.base;
|
||||||
|
|
||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
|
import org.jcnc.snow.compiler.parser.expression.Precedence;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 中缀解析器接口(InfixParselet),用于处理中缀表达式的解析逻辑。
|
* 中缀解析器接口(InfixParselet),用于处理中缀表达式的解析逻辑。
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package org.jcnc.snow.compiler.parser.expression;
|
package org.jcnc.snow.compiler.parser.expression.base;
|
||||||
|
|
||||||
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
import org.jcnc.snow.compiler.parser.ast.base.ExpressionNode;
|
||||||
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
import org.jcnc.snow.compiler.parser.context.ParserContext;
|
||||||
Loading…
x
Reference in New Issue
Block a user