Skip to main content

ParseStack

Type Alias ParseStack 

Source
pub type ParseStack = parse_stack;

Aliased Type§

pub struct ParseStack {
Show 19 fields pub hdocs: Option<Box<heredocs>>, pub lex_heredocs: Vec<HereDoc>, pub incmdpos: bool, pub aliasspaceflag: i32, pub incond: i32, pub inredir: bool, pub incasepat: i32, pub isnewlin: i32, pub infor: i32, pub inrepeat_: i32, pub intypeset: bool, pub eclen: i32, pub ecused: i32, pub ecnpats: i32, pub ecbuf: Option<Vec<u32>>, pub ecstrs: Option<Vec<u8>>, pub ecsoffs: i32, pub ecssub: i32, pub ecnfunc: i32,
}

Fields§

§hdocs: Option<Box<heredocs>>

Pending heredocs awaiting body collection (canonical C linked-list shape). C: struct heredocs *hdocs (zsh.h:3100). Mirrors parse::HDOCS thread_local across nested parses.

§lex_heredocs: Vec<HereDoc>

!!! WARNING: NOT IN PARSE_STACK — Rust-only AST-glue !!! Snapshot of lex::LEX_HEREDOCS (the parallel Rust-only Vec carrying terminator / strip_tabs / quoted metadata). Saved/restored alongside the canonical hdocs so nested parses get a clean AST view. C’s parse_stack has no analog because C tracks terminator metadata implicitly via tokstr.

§incmdpos: bool

C: int incmdpos (zsh.h:3102).

§aliasspaceflag: i32

C: int aliasspaceflag (zsh.h:3103).

§incond: i32

C: int incond (zsh.h:3104).

§inredir: bool

C: int inredir (zsh.h:3105).

§incasepat: i32

C: int incasepat (zsh.h:3106).

§isnewlin: i32

C: int isnewlin (zsh.h:3107).

§infor: i32

C: int infor (zsh.h:3108).

§inrepeat_: i32

C: int inrepeat_ (zsh.h:3109).

§intypeset: bool

C: int intypeset (zsh.h:3110).

§eclen: i32§ecused: i32§ecnpats: i32§ecbuf: Option<Vec<u32>>§ecstrs: Option<Vec<u8>>§ecsoffs: i32§ecssub: i32§ecnfunc: i32