// WARNING: This file is auto-generated. use crate::source_location::SourceLocation; use crate::arena; use crate::source_atom_set::SourceAtomSetIndex; use crate::source_slice_list::SourceSliceIndex; #[derive(Debug, PartialEq)] pub enum Void { } #[derive(Debug, PartialEq)] pub enum Argument<'alloc> { SpreadElement(arena::Box<'alloc, Expression<'alloc>>), Expression(arena::Box<'alloc, Expression<'alloc>>), } #[derive(Debug, PartialEq)] pub struct Arguments<'alloc> { pub args: arena::Vec<'alloc, Argument<'alloc>>, pub loc: SourceLocation, } #[derive(Debug, PartialEq)] pub struct Identifier { pub value: SourceAtomSetIndex, pub loc: SourceLocation, } #[derive(Debug, PartialEq)] pub struct IdentifierName { pub value: SourceAtomSetIndex, pub loc: SourceLocation, } #[derive(Debug, PartialEq)] pub struct PrivateIdentifier { pub value: SourceAtomSetIndex, pub loc: SourceLocation, } #[derive(Debug, PartialEq)] pub struct Label { pub value: SourceAtomSetIndex, pub loc: SourceLocation, } #[derive(Debug, PartialEq)] pub enum VariableDeclarationKind { Var { loc: SourceLocation, }, Let { loc: SourceLocation, }, Const { loc: SourceLocation, }, } #[derive(Debug, PartialEq)] pub enum CompoundAssignmentOperator { LogicalOr { loc: SourceLocation, }, LogicalAnd { loc: SourceLocation, }, Coalesce { loc: SourceLocation, }, Add { loc: SourceLocation, }, Sub { loc: SourceLocation, }, Mul { loc: SourceLocation, }, Div { loc: SourceLocation, }, Mod { loc: SourceLocation, }, Pow { loc: SourceLocation, }, LeftShift { loc: SourceLocation, }, RightShift { loc: SourceLocation, }, RightShiftExt { loc: SourceLocation, }, Or { loc: SourceLocation, }, Xor { loc: SourceLocation, }, And { loc: SourceLocation, }, } #[derive(Debug, PartialEq)] pub enum BinaryOperator { Equals { loc: SourceLocation, }, NotEquals { loc: SourceLocation, }, StrictEquals { loc: SourceLocation, }, StrictNotEquals { loc: SourceLocation, }, LessThan { loc: SourceLocation, }, LessThanOrEqual { loc: SourceLocation, }, GreaterThan { loc: SourceLocation, }, GreaterThanOrEqual { loc: SourceLocation, }, In { loc: SourceLocation, }, Instanceof { loc: SourceLocation, }, LeftShift { loc: SourceLocation, }, RightShift { loc: SourceLocation, }, RightShiftExt { loc: SourceLocation, }, Add { loc: SourceLocation, }, Sub { loc: SourceLocation, }, Mul { loc: SourceLocation, }, Div { loc: SourceLocation, }, Mod { loc: SourceLocation, }, Pow { loc: SourceLocation, }, Comma { loc: SourceLocation, }, Coalesce { loc: SourceLocation, }, LogicalOr { loc: SourceLocation, }, LogicalAnd { loc: SourceLocation, }, BitwiseOr { loc: SourceLocation, }, BitwiseXor { loc: SourceLocation, }, BitwiseAnd { loc: SourceLocation, }, } #[derive(Debug, PartialEq)] pub enum UnaryOperator { Plus { loc: SourceLocation, }, Minus { loc: SourceLocation, }, LogicalNot { loc: SourceLocation, }, BitwiseNot { loc: SourceLocation, }, Typeof { loc: SourceLocation, }, Void { loc: SourceLocation, }, Delete { loc: SourceLocation, }, } #[derive(Debug, PartialEq)] pub enum UpdateOperator { Increment { loc: SourceLocation, }, Decrement { loc: SourceLocation, }, } #[derive(Debug, PartialEq)] pub struct Function<'alloc> { pub name: Option, pub is_async: bool, pub is_generator: bool, pub params: FormalParameters<'alloc>, pub body: FunctionBody<'alloc>, pub loc: SourceLocation, } #[derive(Debug, PartialEq)] pub enum Program<'alloc> { Module(Module<'alloc>), Script(Script<'alloc>), } #[derive(Debug, PartialEq)] pub struct IfStatement<'alloc> { pub test: arena::Box<'alloc, Expression<'alloc>>, pub consequent: arena::Box<'alloc, Statement<'alloc>>, pub alternate: Option>>, pub loc: SourceLocation, } #[derive(Debug, PartialEq)] pub enum Statement<'alloc> { BlockStatement { block: Block<'alloc>, loc: SourceLocation, }, BreakStatement { label: Option