[][src]Trait luaparser::NodeTypes

pub trait NodeTypes {
    type Block: From<(Vec<Self::Statement>, Option<Self::LastStatement>)>;
    type Statement;
    type LastStatement: LastStatement<Self::Expression>;
    type AssignStatement: From<(Vec<Self::Variable>, Vec<Self::Expression>)> + Into<Self::Statement>;
    type CallStatement: Into<Self::Statement>;
    type DoStatement: From<Self::Block> + Into<Self::Statement>;
    type FunctionStatement: From<(String, Vec<String>, Option<String>, Self::Block, Vec<String>, bool)> + Into<Self::Statement>;
    type GenericForStatement: From<(Vec<String>, Vec<Self::Expression>, Self::Block)> + Into<Self::Statement>;
    type IfStatement: From<(Vec<(Self::Expression, Self::Block)>, Option<Self::Block>)> + Into<Self::Statement>;
    type LocalAssignStatement: From<(Vec<String>, Vec<Self::Expression>)> + Into<Self::Statement>;
    type LocalFunctionStatement: From<(String, Vec<String>, bool, Self::Block)> + Into<Self::Statement>;
    type NumericForStatement: From<(String, Self::Expression, Self::Expression, Option<Self::Expression>, Self::Block)> + Into<Self::Statement>;
    type RepeatStatement: From<(Self::Expression, Self::Block)> + Into<Self::Statement>;
    type WhileStatement: From<(Self::Expression, Self::Block)> + Into<Self::Statement>;
    type Arguments: Arguments<Self::Expression, Self::TableExpression>;
    type Prefix: Prefix<Self::Expression, Self::CallExpression, Self::FieldExpression, Self::IndexExpression> + Into<Self::Expression> + TryInto<Self::CallStatement>;
    type Variable: Variable<Self::Prefix>;
    type Expression: Expression;
    type BinaryOperator: Eq + BinaryOperator;
    type BinaryExpression: From<(Self::Expression, Self::BinaryOperator, Self::Expression)> + Into<Self::Expression>;
    type CallExpression: From<(Self::Prefix, Self::Arguments, Option<String>)> + Into<Self::Expression>;
    type FieldExpression: From<(Self::Prefix, String)> + Into<Self::Expression>;
    type FunctionExpression: From<(Vec<String>, bool, Self::Block)> + Into<Self::Expression>;
    type IndexExpression: From<(Self::Prefix, Self::Expression)> + Into<Self::Expression>;
    type NumberExpression: From<String> + Into<Self::Expression>;
    type StringExpression: From<String> + Into<Self::Expression>;
    type TableEntry: TableEntry<Self::Expression>;
    type TableExpression: From<Vec<Self::TableEntry>> + Into<Self::Expression>;
    type UnaryOperator: UnaryOperator;
    type UnaryExpression: From<(Self::UnaryOperator, Self::Expression)> + Into<Self::Expression>;
}

A trait that defines the different node types used by the parser.

Associated Types

type Block: From<(Vec<Self::Statement>, Option<Self::LastStatement>)>

type Statement

type LastStatement: LastStatement<Self::Expression>

type AssignStatement: From<(Vec<Self::Variable>, Vec<Self::Expression>)> + Into<Self::Statement>

type CallStatement: Into<Self::Statement>

type DoStatement: From<Self::Block> + Into<Self::Statement>

type FunctionStatement: From<(String, Vec<String>, Option<String>, Self::Block, Vec<String>, bool)> + Into<Self::Statement>

type GenericForStatement: From<(Vec<String>, Vec<Self::Expression>, Self::Block)> + Into<Self::Statement>

type IfStatement: From<(Vec<(Self::Expression, Self::Block)>, Option<Self::Block>)> + Into<Self::Statement>

type LocalAssignStatement: From<(Vec<String>, Vec<Self::Expression>)> + Into<Self::Statement>

type LocalFunctionStatement: From<(String, Vec<String>, bool, Self::Block)> + Into<Self::Statement>

type NumericForStatement: From<(String, Self::Expression, Self::Expression, Option<Self::Expression>, Self::Block)> + Into<Self::Statement>

type RepeatStatement: From<(Self::Expression, Self::Block)> + Into<Self::Statement>

type WhileStatement: From<(Self::Expression, Self::Block)> + Into<Self::Statement>

type Arguments: Arguments<Self::Expression, Self::TableExpression>

type Prefix: Prefix<Self::Expression, Self::CallExpression, Self::FieldExpression, Self::IndexExpression> + Into<Self::Expression> + TryInto<Self::CallStatement>

type Variable: Variable<Self::Prefix>

type Expression: Expression

type BinaryOperator: Eq + BinaryOperator

type BinaryExpression: From<(Self::Expression, Self::BinaryOperator, Self::Expression)> + Into<Self::Expression>

type CallExpression: From<(Self::Prefix, Self::Arguments, Option<String>)> + Into<Self::Expression>

type FieldExpression: From<(Self::Prefix, String)> + Into<Self::Expression>

type FunctionExpression: From<(Vec<String>, bool, Self::Block)> + Into<Self::Expression>

type IndexExpression: From<(Self::Prefix, Self::Expression)> + Into<Self::Expression>

type NumberExpression: From<String> + Into<Self::Expression>

type StringExpression: From<String> + Into<Self::Expression>

type TableEntry: TableEntry<Self::Expression>

type TableExpression: From<Vec<Self::TableEntry>> + Into<Self::Expression>

type UnaryOperator: UnaryOperator

type UnaryExpression: From<(Self::UnaryOperator, Self::Expression)> + Into<Self::Expression>

Loading content...

Implementors

Loading content...