compiler: Refactor Language Element Tags
Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
This commit is contained in:
@@ -22,9 +22,9 @@ import TreeSitterP4
|
||||
extension CST.Identifier: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: SwiftTreeSitter.Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: node, type: "identifier", nice_type_name: "Identifier")
|
||||
|
||||
/// TODO: If there is a value here, then we can make this a compile-time constant!
|
||||
@@ -35,9 +35,9 @@ extension CST.Identifier: ParsableExpression {
|
||||
extension P4BooleanValue: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: SwiftTreeSitter.Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
let node = node.child(at: 0)!
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: node, type: "booleanLiteralExpression", nice_type_name: "Boolean Literal Expression")
|
||||
|
||||
if node.text == "false" {
|
||||
@@ -56,10 +56,10 @@ extension P4BooleanValue: ParsableExpression {
|
||||
extension P4IntValue: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: SwiftTreeSitter.Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
let node = node.child(at: 0)!
|
||||
|
||||
#RequireNodesType<Node, CST.AnExpression>(
|
||||
#RequireNodesType<Node, CST.Categories.Expression>(
|
||||
nodes: node, type: ["integer", "integer_elaborated"],
|
||||
nice_type_names: ["Integer", "Elaborated Integer"])
|
||||
|
||||
@@ -106,9 +106,9 @@ extension P4IntValue: ParsableExpression {
|
||||
extension P4StringValue: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: SwiftTreeSitter.Node, withContext scopes: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
let node = node.child(at: 0)!
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: node, type: "string_literal", nice_type_name: "String Literal")
|
||||
return .Ok(CST.Literal(P4Value(P4StringValue(withValue: node.text!))))
|
||||
}
|
||||
@@ -117,12 +117,12 @@ extension P4StringValue: ParsableExpression {
|
||||
extension CST.Expression: Parsable {
|
||||
public static func Parse(
|
||||
node: Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: node, type: "expression", nice_type_name: "expression")
|
||||
|
||||
let expression_node = node.child(at: 0)!
|
||||
#RequireNodesType<Node, CST.AnExpression>(
|
||||
#RequireNodesType<Node, CST.Categories.Expression>(
|
||||
nodes: expression_node, type: ["grouped_expression", "simple_expression"],
|
||||
nice_type_names: ["grouped expression", "simple expression"])
|
||||
|
||||
@@ -154,10 +154,10 @@ extension CST.Expression: Parsable {
|
||||
extension CST.KeysetExpression: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: SwiftTreeSitter.Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
let keyset_expression_node = node.child(at: 0)!
|
||||
|
||||
#RequireNodesType<Node, CST.AnExpression>(
|
||||
#RequireNodesType<Node, CST.Categories.Expression>(
|
||||
nodes: keyset_expression_node, type: ["expression", "default_keyset"],
|
||||
nice_type_names: ["expression", "default keyset"])
|
||||
|
||||
@@ -180,7 +180,7 @@ extension CST.KeysetExpression: ParsableExpression {
|
||||
extension CST.SelectExpression: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
#RequireNodeType<Node, (CST.SelectExpression, CSTCompilerContext)>(
|
||||
node: node, type: "selectExpression", nice_type_name: "parser select expression")
|
||||
|
||||
@@ -242,9 +242,9 @@ extension CST.SelectExpression: ParsableExpression {
|
||||
extension CST.SelectCaseExpression: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: node, type: "selectCase", nice_type_name: "Select Case")
|
||||
|
||||
guard let keysetexpression_node = node.child(at: 0),
|
||||
@@ -283,10 +283,10 @@ extension CST.SelectCaseExpression: ParsableExpression {
|
||||
extension CST.BinaryOperatorExpression: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: SwiftTreeSitter.Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
let expression = node.child(at: 0)!
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: expression, type: "binaryOperatorExpression",
|
||||
nice_type_name: "Binary Operator Expression")
|
||||
let binary_operator_expression_node = expression.child(at: 0)!
|
||||
@@ -295,20 +295,20 @@ extension CST.BinaryOperatorExpression: ParsableExpression {
|
||||
var current_node: Node? = .none
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(), withError: "Malformed binary operator expression"
|
||||
)))
|
||||
|
||||
/// TODO: This macro cannot handle new lines in the arrays
|
||||
// swift-format-ignore
|
||||
#RequireNodesType<Node, CST.AnExpression>(
|
||||
#RequireNodesType<Node, CST.Categories.Expression>(
|
||||
nodes: binary_operator_expression_node,
|
||||
type: ["binaryEqualOperatorExpression", "binaryLessThanOperatorExpression", "binaryLessThanEqualOperatorExpression", "binaryGreaterThanOperatorExpression", "binaryGreaterThanEqualOperatorExpression", "binaryAndOperatorExpression", "binaryOrOperatorExpression", "binaryAddOperatorExpression", "binarySubtractOperatorExpression", "binaryMultiplyOperatorExpression", "binaryDivideOperatorExpression"],
|
||||
nice_type_names: [ "binary equal operator", "binary less than operator", "binary less than or equal to operator", "binary greater than operator", "binary greater than or equal to operator", "binary and operator", "binary or operator", "binary add operator", "binary subtract operator", "binary multiply operator", "binary divide operator"])
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(),
|
||||
withError: "Missing LHS for binary operator expression")))
|
||||
@@ -318,7 +318,7 @@ extension CST.BinaryOperatorExpression: ParsableExpression {
|
||||
walker.next()
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(),
|
||||
withError: "Missing binary operator for binary operator expression")))
|
||||
@@ -326,7 +326,7 @@ extension CST.BinaryOperatorExpression: ParsableExpression {
|
||||
walker.next()
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(),
|
||||
withError: "Missing RHS for binary operator expression")))
|
||||
@@ -407,10 +407,10 @@ extension CST.BinaryOperatorExpression: ParsableExpression {
|
||||
extension CST.ArrayAccessExpression: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: SwiftTreeSitter.Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
let expression = node.child(at: 0)!
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: expression, type: "arrayAccessExpression", nice_type_name: "Array Access Expression")
|
||||
let array_access_expression_node = expression
|
||||
|
||||
@@ -419,11 +419,11 @@ extension CST.ArrayAccessExpression: ParsableExpression {
|
||||
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(), withError: "Malformed array access expression")))
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: current_node!, type: "expression",
|
||||
nice_type_name: "array identifier expression")
|
||||
let array_access_identifier_node = current_node!
|
||||
@@ -431,7 +431,7 @@ extension CST.ArrayAccessExpression: ParsableExpression {
|
||||
walker.next()
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(),
|
||||
withError: "Missing [ for array access expression")))
|
||||
@@ -440,12 +440,12 @@ extension CST.ArrayAccessExpression: ParsableExpression {
|
||||
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(),
|
||||
withError: "Missing indexor expression for array access expression")))
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: current_node!, type: "expression",
|
||||
nice_type_name: "array indexor expression")
|
||||
|
||||
@@ -472,10 +472,10 @@ extension CST.ArrayAccessExpression: ParsableExpression {
|
||||
extension CST.FieldAccessExpression: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: SwiftTreeSitter.Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
let expression = node.child(at: 0)!
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: expression, type: "fieldAccessExpression", nice_type_name: "Array Access Expression")
|
||||
|
||||
let field_access_expression_node = expression
|
||||
@@ -485,11 +485,11 @@ extension CST.FieldAccessExpression: ParsableExpression {
|
||||
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(), withError: "Malformed field access expression")))
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: current_node!, type: "expression",
|
||||
nice_type_name: "struct identifier expression")
|
||||
let struct_identifier_node = current_node!
|
||||
@@ -497,7 +497,7 @@ extension CST.FieldAccessExpression: ParsableExpression {
|
||||
walker.next()
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(),
|
||||
withError: "Missing . for field access expression")))
|
||||
@@ -505,12 +505,12 @@ extension CST.FieldAccessExpression: ParsableExpression {
|
||||
walker.next()
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(),
|
||||
withError: "Missing field name for field access expression")))
|
||||
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: current_node!, type: "identifier",
|
||||
nice_type_name: "field name")
|
||||
|
||||
@@ -539,10 +539,10 @@ extension CST.FieldAccessExpression: ParsableExpression {
|
||||
extension CST.FunctionCall: ParsableExpression {
|
||||
public static func ParseExpression(
|
||||
node: Node, withContext context: CSTCompilerContext
|
||||
) -> Result<CST.AnExpression> {
|
||||
) -> Result<CST.Categories.Expression> {
|
||||
|
||||
let expression = node.child(at: 0)!
|
||||
#RequireNodeType<Node, CST.AnExpression>(
|
||||
#RequireNodeType<Node, CST.Categories.Expression>(
|
||||
node: expression, type: "function_call", nice_type_name: "Function Call")
|
||||
|
||||
var walker = Walker(node: expression)
|
||||
@@ -550,7 +550,7 @@ extension CST.FunctionCall: ParsableExpression {
|
||||
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(), withError: "Missing function call component")))
|
||||
|
||||
@@ -563,7 +563,7 @@ extension CST.FunctionCall: ParsableExpression {
|
||||
|
||||
#MustOr(
|
||||
result: current_node, thing: walker.getNext(),
|
||||
or: Result<CST.AnExpression>.Error(
|
||||
or: Result<CST.Categories.Expression>.Error(
|
||||
ErrorWithLocation(
|
||||
sourceLocation: node.toSourceLocation(), withError: "Missing function call component")))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user