Enum mech_core::nodes::ParserNode
source · pub enum ParserNode {
Show 165 variants
Root {
children: Vec<ParserNode>,
},
Fragment {
children: Vec<ParserNode>,
},
Head {
children: Vec<ParserNode>,
},
Body {
children: Vec<ParserNode>,
},
Block {
children: Vec<ParserNode>,
src_range: SourceRange,
},
Statement {
children: Vec<ParserNode>,
src_range: SourceRange,
},
Expression {
children: Vec<ParserNode>,
},
MathExpression {
children: Vec<ParserNode>,
},
SelectExpression {
children: Vec<ParserNode>,
},
Data {
children: Vec<ParserNode>,
},
Whenever {
children: Vec<ParserNode>,
},
Wait {
children: Vec<ParserNode>,
},
Until {
children: Vec<ParserNode>,
},
SetData {
children: Vec<ParserNode>,
},
SplitData {
children: Vec<ParserNode>,
},
FlattenData {
children: Vec<ParserNode>,
},
Binding {
children: Vec<ParserNode>,
},
FunctionBinding {
children: Vec<ParserNode>,
},
UserFunction {
children: Vec<ParserNode>,
},
FunctionBody {
children: Vec<ParserNode>,
},
FunctionArgs {
children: Vec<ParserNode>,
},
FunctionInput {
children: Vec<ParserNode>,
},
FunctionOutput {
children: Vec<ParserNode>,
},
DotIndex {
children: Vec<ParserNode>,
},
Swizzle {
children: Vec<ParserNode>,
},
SubscriptIndex {
children: Vec<ParserNode>,
},
Range,
VariableDefine {
children: Vec<ParserNode>,
},
EnumDefine {
children: Vec<ParserNode>,
},
TableDefine {
children: Vec<ParserNode>,
},
FollowedBy {
children: Vec<ParserNode>,
},
AsyncAssign {
children: Vec<ParserNode>,
},
TableSelect {
children: Vec<ParserNode>,
},
EmptyTable {
children: Vec<ParserNode>,
},
InlineTable {
children: Vec<ParserNode>,
},
TableHeader {
children: Vec<ParserNode>,
},
Attribute {
children: Vec<ParserNode>,
},
TableRow {
children: Vec<ParserNode>,
},
Comment {
children: Vec<ParserNode>,
},
KindAnnotation {
children: Vec<ParserNode>,
},
AddRow {
children: Vec<ParserNode>,
},
Transformation {
children: Vec<ParserNode>,
},
Quantity {
children: Vec<ParserNode>,
},
Token {
token: TokenKind,
chars: Vec<char>,
src_range: SourceRange,
},
Add,
Subtract,
Multiply,
MatrixMultiply,
Divide,
Exponent,
LessThan,
GreaterThan,
GreaterThanEqual,
LessThanEqual,
Equal,
NotEqual,
And,
Or,
Xor,
AddUpdate,
SubtractUpdate,
MultiplyUpdate,
DivideUpdate,
ExponentUpdate,
SelectAll,
Empty,
True,
False,
ReshapeColumn,
RationalNumber {
children: Vec<ParserNode>,
},
Paragraph {
children: Vec<ParserNode>,
},
UnorderedList {
children: Vec<ParserNode>,
},
ListItem {
children: Vec<ParserNode>,
},
InlineCode {
children: Vec<ParserNode>,
},
CodeBlock {
children: Vec<ParserNode>,
},
InlineMechCode {
children: Vec<ParserNode>,
},
MechCodeBlock {
children: Vec<ParserNode>,
},
Null,
Transpose,
Select {
children: Vec<ParserNode>,
},
Insert {
children: Vec<ParserNode>,
},
Column {
children: Vec<ParserNode>,
},
IdentifierOrConstant {
children: Vec<ParserNode>,
},
Table {
children: Vec<ParserNode>,
},
Number {
children: Vec<ParserNode>,
},
DigitOrComma {
children: Vec<ParserNode>,
},
FilterExpression {
children: Vec<ParserNode>,
},
Comparator {
children: Vec<ParserNode>,
},
InfixOperation {
children: Vec<ParserNode>,
},
Repeat {
children: Vec<ParserNode>,
},
TableIdentifier {
children: Vec<ParserNode>,
},
Identifier {
children: Vec<ParserNode>,
},
Alpha {
children: Vec<ParserNode>,
},
SubscriptList {
children: Vec<ParserNode>,
},
Subscript {
children: Vec<ParserNode>,
},
LogicOperator {
children: Vec<ParserNode>,
},
LogicExpression {
children: Vec<ParserNode>,
},
Index {
children: Vec<ParserNode>,
},
UpdateData {
children: Vec<ParserNode>,
},
SetOperator {
children: Vec<ParserNode>,
},
AddOperator {
children: Vec<ParserNode>,
},
WatchOperator {
children: Vec<ParserNode>,
},
Equality {
children: Vec<ParserNode>,
},
AnonymousTable {
children: Vec<ParserNode>,
},
AnonymousMatrix {
children: Vec<ParserNode>,
},
Constant {
children: Vec<ParserNode>,
},
Infix {
children: Vec<ParserNode>,
},
Program {
children: Vec<ParserNode>,
},
Title {
children: Vec<ParserNode>,
},
Subtitle {
children: Vec<ParserNode>,
level: usize,
},
StatementOrExpression {
children: Vec<ParserNode>,
},
DataOrConstant {
children: Vec<ParserNode>,
},
IdentifierCharacter {
children: Vec<ParserNode>,
},
Node {
children: Vec<ParserNode>,
},
NewLineOrEnd {
children: Vec<ParserNode>,
},
Alphanumeric {
children: Vec<ParserNode>,
},
ParagraphText {
children: Vec<ParserNode>,
},
FormattedText {
children: Vec<ParserNode>,
},
Bold {
children: Vec<ParserNode>,
},
Italic {
children: Vec<ParserNode>,
},
Hyperlink {
children: Vec<ParserNode>,
},
BlockQuote {
children: Vec<ParserNode>,
},
String {
children: Vec<ParserNode>,
},
StringInterpolation {
children: Vec<ParserNode>,
},
Word {
children: Vec<ParserNode>,
},
Emoji {
children: Vec<ParserNode>,
},
Section {
children: Vec<ParserNode>,
title: Option<Vec<ParserNode>>,
},
ProseOrCode {
children: Vec<ParserNode>,
},
Whitespace {
children: Vec<ParserNode>,
},
SpaceOrTab {
children: Vec<ParserNode>,
},
NewLine {
children: Vec<ParserNode>,
},
Text {
children: Vec<ParserNode>,
},
Punctuation {
children: Vec<ParserNode>,
},
L0Infix {
children: Vec<ParserNode>,
},
L1Infix {
children: Vec<ParserNode>,
},
L2Infix {
children: Vec<ParserNode>,
},
L3Infix {
children: Vec<ParserNode>,
},
L4Infix {
children: Vec<ParserNode>,
},
L5Infix {
children: Vec<ParserNode>,
},
L0 {
children: Vec<ParserNode>,
},
L1 {
children: Vec<ParserNode>,
},
L2 {
children: Vec<ParserNode>,
},
L3 {
children: Vec<ParserNode>,
},
L4 {
children: Vec<ParserNode>,
},
L5 {
children: Vec<ParserNode>,
},
L6 {
children: Vec<ParserNode>,
},
Function {
children: Vec<ParserNode>,
},
Negation {
children: Vec<ParserNode>,
},
Not {
children: Vec<ParserNode>,
},
ParentheticalExpression {
children: Vec<ParserNode>,
},
CommentSigil {
children: Vec<ParserNode>,
},
Any {
children: Vec<ParserNode>,
},
Symbol {
children: Vec<ParserNode>,
},
StateMachine {
children: Vec<ParserNode>,
},
StateTransition {
children: Vec<ParserNode>,
},
Value {
children: Vec<ParserNode>,
},
BooleanLiteral {
children: Vec<ParserNode>,
},
NumberLiteral {
children: Vec<ParserNode>,
},
FloatLiteral {
chars: Vec<char>,
src_range: SourceRange,
},
DecimalLiteral {
chars: Vec<char>,
src_range: SourceRange,
},
HexadecimalLiteral {
chars: Vec<char>,
src_range: SourceRange,
},
OctalLiteral {
chars: Vec<char>,
src_range: SourceRange,
},
BinaryLiteral {
chars: Vec<char>,
src_range: SourceRange,
},
Incomplete {
children: Vec<ParserNode>,
src_range: SourceRange,
},
Error,
}Variants§
Root
Fields
§
children: Vec<ParserNode>Fragment
Fields
§
children: Vec<ParserNode>Head
Fields
§
children: Vec<ParserNode>Body
Fields
§
children: Vec<ParserNode>Block
Statement
Expression
Fields
§
children: Vec<ParserNode>MathExpression
Fields
§
children: Vec<ParserNode>SelectExpression
Fields
§
children: Vec<ParserNode>Data
Fields
§
children: Vec<ParserNode>Whenever
Fields
§
children: Vec<ParserNode>Wait
Fields
§
children: Vec<ParserNode>Until
Fields
§
children: Vec<ParserNode>SetData
Fields
§
children: Vec<ParserNode>SplitData
Fields
§
children: Vec<ParserNode>FlattenData
Fields
§
children: Vec<ParserNode>Binding
Fields
§
children: Vec<ParserNode>FunctionBinding
Fields
§
children: Vec<ParserNode>UserFunction
Fields
§
children: Vec<ParserNode>FunctionBody
Fields
§
children: Vec<ParserNode>FunctionArgs
Fields
§
children: Vec<ParserNode>FunctionInput
Fields
§
children: Vec<ParserNode>FunctionOutput
Fields
§
children: Vec<ParserNode>DotIndex
Fields
§
children: Vec<ParserNode>Swizzle
Fields
§
children: Vec<ParserNode>SubscriptIndex
Fields
§
children: Vec<ParserNode>Range
VariableDefine
Fields
§
children: Vec<ParserNode>EnumDefine
Fields
§
children: Vec<ParserNode>TableDefine
Fields
§
children: Vec<ParserNode>FollowedBy
Fields
§
children: Vec<ParserNode>AsyncAssign
Fields
§
children: Vec<ParserNode>TableSelect
Fields
§
children: Vec<ParserNode>EmptyTable
Fields
§
children: Vec<ParserNode>InlineTable
Fields
§
children: Vec<ParserNode>TableHeader
Fields
§
children: Vec<ParserNode>Attribute
Fields
§
children: Vec<ParserNode>TableRow
Fields
§
children: Vec<ParserNode>Comment
Fields
§
children: Vec<ParserNode>KindAnnotation
Fields
§
children: Vec<ParserNode>AddRow
Fields
§
children: Vec<ParserNode>Transformation
Fields
§
children: Vec<ParserNode>Quantity
Fields
§
children: Vec<ParserNode>Token
Add
Subtract
Multiply
MatrixMultiply
Divide
Exponent
LessThan
GreaterThan
GreaterThanEqual
LessThanEqual
Equal
NotEqual
And
Or
Xor
AddUpdate
SubtractUpdate
MultiplyUpdate
DivideUpdate
ExponentUpdate
SelectAll
Empty
True
False
ReshapeColumn
RationalNumber
Fields
§
children: Vec<ParserNode>Paragraph
Fields
§
children: Vec<ParserNode>UnorderedList
Fields
§
children: Vec<ParserNode>ListItem
Fields
§
children: Vec<ParserNode>InlineCode
Fields
§
children: Vec<ParserNode>CodeBlock
Fields
§
children: Vec<ParserNode>InlineMechCode
Fields
§
children: Vec<ParserNode>MechCodeBlock
Fields
§
children: Vec<ParserNode>Null
Transpose
Select
Fields
§
children: Vec<ParserNode>Insert
Fields
§
children: Vec<ParserNode>Column
Fields
§
children: Vec<ParserNode>IdentifierOrConstant
Fields
§
children: Vec<ParserNode>Table
Fields
§
children: Vec<ParserNode>Number
Fields
§
children: Vec<ParserNode>DigitOrComma
Fields
§
children: Vec<ParserNode>FilterExpression
Fields
§
children: Vec<ParserNode>Comparator
Fields
§
children: Vec<ParserNode>InfixOperation
Fields
§
children: Vec<ParserNode>Repeat
Fields
§
children: Vec<ParserNode>TableIdentifier
Fields
§
children: Vec<ParserNode>Identifier
Fields
§
children: Vec<ParserNode>Alpha
Fields
§
children: Vec<ParserNode>SubscriptList
Fields
§
children: Vec<ParserNode>Subscript
Fields
§
children: Vec<ParserNode>LogicOperator
Fields
§
children: Vec<ParserNode>LogicExpression
Fields
§
children: Vec<ParserNode>Index
Fields
§
children: Vec<ParserNode>UpdateData
Fields
§
children: Vec<ParserNode>SetOperator
Fields
§
children: Vec<ParserNode>AddOperator
Fields
§
children: Vec<ParserNode>WatchOperator
Fields
§
children: Vec<ParserNode>Equality
Fields
§
children: Vec<ParserNode>AnonymousTable
Fields
§
children: Vec<ParserNode>AnonymousMatrix
Fields
§
children: Vec<ParserNode>Constant
Fields
§
children: Vec<ParserNode>Infix
Fields
§
children: Vec<ParserNode>Program
Fields
§
children: Vec<ParserNode>Title
Fields
§
children: Vec<ParserNode>Subtitle
StatementOrExpression
Fields
§
children: Vec<ParserNode>DataOrConstant
Fields
§
children: Vec<ParserNode>IdentifierCharacter
Fields
§
children: Vec<ParserNode>Node
Fields
§
children: Vec<ParserNode>NewLineOrEnd
Fields
§
children: Vec<ParserNode>Alphanumeric
Fields
§
children: Vec<ParserNode>ParagraphText
Fields
§
children: Vec<ParserNode>FormattedText
Fields
§
children: Vec<ParserNode>Bold
Fields
§
children: Vec<ParserNode>Italic
Fields
§
children: Vec<ParserNode>Hyperlink
Fields
§
children: Vec<ParserNode>BlockQuote
Fields
§
children: Vec<ParserNode>String
Fields
§
children: Vec<ParserNode>StringInterpolation
Fields
§
children: Vec<ParserNode>Word
Fields
§
children: Vec<ParserNode>Emoji
Fields
§
children: Vec<ParserNode>Section
ProseOrCode
Fields
§
children: Vec<ParserNode>Whitespace
Fields
§
children: Vec<ParserNode>SpaceOrTab
Fields
§
children: Vec<ParserNode>NewLine
Fields
§
children: Vec<ParserNode>Text
Fields
§
children: Vec<ParserNode>Punctuation
Fields
§
children: Vec<ParserNode>L0Infix
Fields
§
children: Vec<ParserNode>L1Infix
Fields
§
children: Vec<ParserNode>L2Infix
Fields
§
children: Vec<ParserNode>L3Infix
Fields
§
children: Vec<ParserNode>L4Infix
Fields
§
children: Vec<ParserNode>L5Infix
Fields
§
children: Vec<ParserNode>L0
Fields
§
children: Vec<ParserNode>L1
Fields
§
children: Vec<ParserNode>L2
Fields
§
children: Vec<ParserNode>L3
Fields
§
children: Vec<ParserNode>L4
Fields
§
children: Vec<ParserNode>L5
Fields
§
children: Vec<ParserNode>L6
Fields
§
children: Vec<ParserNode>Function
Fields
§
children: Vec<ParserNode>Negation
Fields
§
children: Vec<ParserNode>Not
Fields
§
children: Vec<ParserNode>ParentheticalExpression
Fields
§
children: Vec<ParserNode>CommentSigil
Fields
§
children: Vec<ParserNode>Any
Fields
§
children: Vec<ParserNode>Symbol
Fields
§
children: Vec<ParserNode>StateMachine
Fields
§
children: Vec<ParserNode>StateTransition
Fields
§
children: Vec<ParserNode>Value
Fields
§
children: Vec<ParserNode>BooleanLiteral
Fields
§
children: Vec<ParserNode>NumberLiteral
Fields
§
children: Vec<ParserNode>FloatLiteral
DecimalLiteral
HexadecimalLiteral
OctalLiteral
BinaryLiteral
Incomplete
Error
Trait Implementations§
source§impl Clone for ParserNode
impl Clone for ParserNode
source§fn clone(&self) -> ParserNode
fn clone(&self) -> ParserNode
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for ParserNode
impl Debug for ParserNode
source§impl<'de> Deserialize<'de> for ParserNode
impl<'de> Deserialize<'de> for ParserNode
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Hash for ParserNode
impl Hash for ParserNode
source§impl PartialEq for ParserNode
impl PartialEq for ParserNode
source§fn eq(&self, other: &ParserNode) -> bool
fn eq(&self, other: &ParserNode) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl Serialize for ParserNode
impl Serialize for ParserNode
impl Eq for ParserNode
impl StructuralPartialEq for ParserNode
Auto Trait Implementations§
impl Freeze for ParserNode
impl RefUnwindSafe for ParserNode
impl Send for ParserNode
impl Sync for ParserNode
impl Unpin for ParserNode
impl UnwindSafe for ParserNode
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.