Enum moore_vhdl::term::Term
[−]
[src]
pub enum Term { Null, Open, Others, Default, IntLit(BigInt), StrLit(Name), Unresolved(ResolvableName), Ident(Spanned<Def>), TypeMark(Spanned<TypeMarkRef>), Enum(Vec<Spanned<EnumRef>>), Select(Subterm, Spanned<ResolvableName>), SelectAll(Subterm), Range(Dir, Subterm, Subterm), RangeSuffix(Subterm, Subterm), UnboundedRange(Subterm), SubtypeInd(Spanned<TypeMarkRef>, Option<Subterm>, Option<Subterm>), PrefixParen(Subterm, Subterm), SuffixParen(Subterm, Subterm), Paren(Vec<Spanned<Term>>), Aggregate(Vec<(Vec<Spanned<Term>>, Spanned<Term>)>), Unary(Spanned<UnaryOp>, Subterm), Binary(Spanned<BinaryOp>, Subterm, Subterm), Qual(Subterm, Subterm), New(Subterm), }
A term.
This is a generalization of expressions and names in VHDL. It allows various parts of the AST to be mapped to a common data structure, and then remapped to the desired output structure. This is useful for example if the parser processes a subtype indication as an expression.
Variants
Null
A term of the form null
.
Open
A term of the form open
.
Others
A term of the form others
.
Default
A term of the form default
.
IntLit(BigInt)
An integer literal.
StrLit(Name)
A bit string literal.
Unresolved(ResolvableName)
An unresolved name.
Ident(Spanned<Def>)
A term that refers to a definition.
TypeMark(Spanned<TypeMarkRef>)
A term that refers to a type or subtype definition.
Enum(Vec<Spanned<EnumRef>>)
A term that refers to an enum variant.
Select(Subterm, Spanned<ResolvableName>)
A term of the form T.<name>
.
SelectAll(Subterm)
A term of the form T.all
.
Range(Dir, Subterm, Subterm)
A term of the form T (to|downto) T
.
RangeSuffix(Subterm, Subterm)
A term of the form T range T
.
UnboundedRange(Subterm)
A term of the form T range <>
.
SubtypeInd(Spanned<TypeMarkRef>, Option<Subterm>, Option<Subterm>)
A term of the form [T] <type_mark> [T]
. The first optional subterm is
the resolution indication, the second is the constraint.
PrefixParen(Subterm, Subterm)
A term of the form (T) T
.
SuffixParen(Subterm, Subterm)
A term of the form T (T)
.
Paren(Vec<Spanned<Term>>)
A term of the form (T,T,…)
.
Aggregate(Vec<(Vec<Spanned<Term>>, Spanned<Term>)>)
A term of the form (T|T|… => T, T|T|… => T, …)
.
Unary(Spanned<UnaryOp>, Subterm)
A term of the form op T
.
Binary(Spanned<BinaryOp>, Subterm, Subterm)
A term of the form T op T
.
Qual(Subterm, Subterm)
A term of the form T'T
.
New(Subterm)
A term of the form new T
.
Trait Implementations
impl Debug for Term
[src]
impl PartialEq for Term
[src]
fn eq(&self, __arg_0: &Term) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Term) -> bool
[src]
This method tests for !=
.