Skip to main content

StmtKind

Enum StmtKind 

Source
pub enum StmtKind<'arena, 'src> {
Show 32 variants Expression(&'arena Expr<'arena, 'src>), Echo(ArenaVec<'arena, Expr<'arena, 'src>>), Return(Option<&'arena Expr<'arena, 'src>>), Block(ArenaVec<'arena, Stmt<'arena, 'src>>), If(&'arena IfStmt<'arena, 'src>), While(&'arena WhileStmt<'arena, 'src>), For(&'arena ForStmt<'arena, 'src>), Foreach(&'arena ForeachStmt<'arena, 'src>), DoWhile(&'arena DoWhileStmt<'arena, 'src>), Function(&'arena FunctionDecl<'arena, 'src>), Break(Option<&'arena Expr<'arena, 'src>>), Continue(Option<&'arena Expr<'arena, 'src>>), Switch(&'arena SwitchStmt<'arena, 'src>), Goto(&'src str), Label(&'src str), Declare(&'arena DeclareStmt<'arena, 'src>), Unset(ArenaVec<'arena, Expr<'arena, 'src>>), Throw(&'arena Expr<'arena, 'src>), TryCatch(&'arena TryCatchStmt<'arena, 'src>), Global(ArenaVec<'arena, Expr<'arena, 'src>>), Class(&'arena ClassDecl<'arena, 'src>), Interface(&'arena InterfaceDecl<'arena, 'src>), Trait(&'arena TraitDecl<'arena, 'src>), Enum(&'arena EnumDecl<'arena, 'src>), Namespace(&'arena NamespaceDecl<'arena, 'src>), Use(&'arena UseDecl<'arena, 'src>), Const(ArenaVec<'arena, ConstItem<'arena, 'src>>), StaticVar(ArenaVec<'arena, StaticVar<'arena, 'src>>), HaltCompiler(&'src str), Nop, InlineHtml(&'src str), Error,
}

Variants§

§

Expression(&'arena Expr<'arena, 'src>)

Expression statement (e.g. foo();)

§

Echo(ArenaVec<'arena, Expr<'arena, 'src>>)

Echo statement: echo expr1, expr2;

§

Return(Option<&'arena Expr<'arena, 'src>>)

Return statement: return expr;

§

Block(ArenaVec<'arena, Stmt<'arena, 'src>>)

Block statement: { stmts }

§

If(&'arena IfStmt<'arena, 'src>)

If statement

§

While(&'arena WhileStmt<'arena, 'src>)

While loop

§

For(&'arena ForStmt<'arena, 'src>)

For loop

§

Foreach(&'arena ForeachStmt<'arena, 'src>)

Foreach loop

§

DoWhile(&'arena DoWhileStmt<'arena, 'src>)

Do-while loop

§

Function(&'arena FunctionDecl<'arena, 'src>)

Function declaration

§

Break(Option<&'arena Expr<'arena, 'src>>)

Break statement

§

Continue(Option<&'arena Expr<'arena, 'src>>)

Continue statement

§

Switch(&'arena SwitchStmt<'arena, 'src>)

Switch statement

§

Goto(&'src str)

Goto statement

§

Label(&'src str)

Label statement

§

Declare(&'arena DeclareStmt<'arena, 'src>)

Declare statement

§

Unset(ArenaVec<'arena, Expr<'arena, 'src>>)

Unset statement

§

Throw(&'arena Expr<'arena, 'src>)

Throw statement (also can be expression in PHP 8)

§

TryCatch(&'arena TryCatchStmt<'arena, 'src>)

Try/catch/finally

§

Global(ArenaVec<'arena, Expr<'arena, 'src>>)

Global declaration

§

Class(&'arena ClassDecl<'arena, 'src>)

Class declaration

§

Interface(&'arena InterfaceDecl<'arena, 'src>)

Interface declaration

§

Trait(&'arena TraitDecl<'arena, 'src>)

Trait declaration

§

Enum(&'arena EnumDecl<'arena, 'src>)

Enum declaration

§

Namespace(&'arena NamespaceDecl<'arena, 'src>)

Namespace declaration

§

Use(&'arena UseDecl<'arena, 'src>)

Use declaration

§

Const(ArenaVec<'arena, ConstItem<'arena, 'src>>)

Top-level constant: const FOO = expr;

§

StaticVar(ArenaVec<'arena, StaticVar<'arena, 'src>>)

Static variable declaration: static $x = 1;

§

HaltCompiler(&'src str)

__halt_compiler(); with remaining data

§

Nop

Nop (empty statement ;)

§

InlineHtml(&'src str)

Inline HTML

§

Error

Error placeholder — parser always produces a tree

Trait Implementations§

Source§

impl<'arena, 'src> Debug for StmtKind<'arena, 'src>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'arena, 'src> Serialize for StmtKind<'arena, 'src>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<'arena, 'src> Freeze for StmtKind<'arena, 'src>

§

impl<'arena, 'src> !RefUnwindSafe for StmtKind<'arena, 'src>

§

impl<'arena, 'src> !Send for StmtKind<'arena, 'src>

§

impl<'arena, 'src> !Sync for StmtKind<'arena, 'src>

§

impl<'arena, 'src> Unpin for StmtKind<'arena, 'src>

§

impl<'arena, 'src> UnsafeUnpin for StmtKind<'arena, 'src>

§

impl<'arena, 'src> !UnwindSafe for StmtKind<'arena, 'src>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.