Get desktop application:
View/edit binary Protocol Buffers messages
ActionNode holds an action (something bounded by delimiters). Control actions have their own nodes; ActionNode represents simple ones such as field evaluations and parenthesized pipelines.
The pipeline in the action.
BoolNode holds a boolean constant.
BranchNode is the common representation of if, range, and with.
Used in: , ,
The pipeline to be evaluated.
What to execute if the value is non-empty.
What to execute if the value is empty (nil if absent).
BreakNode represents a {{break}} action.
ChainNode holds a term followed by a chain of field accesses (identifier starting with '.'). The names may be chained ('.x.y'). The periods are dropped from each ident. In newer versions of Go (at least 1.21), doesn't appear in the AST in common cases.
The identifiers in lexical order.
CommandNode holds a command (a pipeline inside an evaluating action).
Used in:
Arguments in lexical order: Identifier, field, or constant. Will be one of the node types declared here.
CommentNode holds a comment. Insertion of these nodes into the AST is toggleable by the parser mode and is enabled by default in `SonarSource/go`.
ContinueNode represents a {{continue}} action.
DotNode holds the special identifier '.'.
FieldNode holds a field (identifier starting with '.'). The names may be chained ('.x.y'). The period is dropped from each ident.
The identifiers in lexical order.
IdentifierNode holds an identifier.
The identifier's name.
IfNode represents an {{if}} action and its commands.
ListNode holds a sequence of nodes.
Used in: ,
NilNode holds the special identifier 'nil' representing an untyped nil constant.
A Node is an element in the parse tree.
Used in: , , , , , , , , , , , , , , , , , , , , , ,
NumberNode holds a number: signed or unsigned integer, float, or complex. The value is parsed and stored under all the types that can represent the value. This simulates in a small amount of code the behavior of Go's ideal constants.
Number has an integral value.
Number has an unsigned integral value.
Number has a floating-point value.
Number is complex.
The signed integer value.
The unsigned integer value.
The floating-point value.
The complex value. There are no complex numbers in protobuf, so this is a string; should be converted if needed.
The original textual representation from the input.
PipeNode holds a pipeline with optional declaration
Used in: , ,
The variables are being assigned, not declared.
Variables in lexical order.
The commands in lexical order.
RangeNode represents a {{range}} action and its commands.
StringNode holds a string constant. The value has been "unquoted".
The original text of the string, with quotes.
The string, after quote processing.
TemplateNode represents a {{template}} action.
The name of the template (unquoted).
The command to evaluate as dot for the template.
TextNode holds plain text.
Tree is the representation of a single parsed template.
Used in:
name of the template represented by the tree.
name of the top-level template during parsing, for error messages.
top-level root of the tree.
VariableNode holds a list of variable names, possibly with chained field accesses. The dollar sign is part of the (first) name.
Used in:
Variable name and fields in lexical order.
WithNode represents a {{with}} action and its commands.