diff --git a/src/builtin/zoltraak.rs b/src/builtin/zoltraak.rs index b969bbb..9e3d402 100644 --- a/src/builtin/zoltraak.rs +++ b/src/builtin/zoltraak.rs @@ -1,6 +1,6 @@ use std::{os::unix::fs::OpenOptionsExt, sync::LazyLock}; -use crate::{getopt::{get_opts_from_tokens, Opt, OptSet}, jobs::JobBldr, libsh::error::{Note, ShErr, ShErrKind, ShResult, ShResultExt}, parse::{NdRule, Node}, prelude::*, procio::IoStack}; +use crate::{getopt::{get_opts_from_tokens, Opt, OptSet}, jobs::JobBldr, libsh::error::{Note, ShErr, ShErrKind, ShResult, ShResultExt}, parse::{NdRule, Node}, prelude::*, procio::{borrow_fd, IoStack}}; use super::setup_builtin; @@ -15,28 +15,93 @@ pub const ZOLTRAAK_OPTS: LazyLock = LazyLock::new(|| { ].into() }); +bitflags! { + #[derive(Clone,Copy,Debug,PartialEq,Eq)] + struct ZoltFlags: u32 { + const DRY = 0b000001; + const CONFIRM = 0b000010; + const NO_PRESERVE_ROOT = 0b000100; + const RECURSIVE = 0b001000; + const FORCE = 0b010000; + const VERBOSE = 0b100000; + } +} + /// Annihilate a file /// /// This command works similarly to 'rm', but behaves more destructively. /// The file given as an argument is completely destroyed. The command works by shredding all of the data contained in the file, before truncating the length of the file to 0 to ensure that not even any metadata remains. pub fn zoltraak(node: Node, io_stack: &mut IoStack, job: &mut JobBldr) -> ShResult<()> { - let NdRule::Command { assignments, argv } = node.class else { + let NdRule::Command { assignments: _, argv } = node.class else { unreachable!() }; + let mut flags = ZoltFlags::empty(); let (argv,opts) = get_opts_from_tokens(argv); + for opt in opts { + if !ZOLTRAAK_OPTS.contains(&opt) { + return Err( + ShErr::simple( + ShErrKind::SyntaxErr, + format!("zoltraak: unrecognized option '{opt}'") + ) + ) + } + match opt { + Opt::Long(flag) => { + match flag.as_str() { + "no-preserve-root" => flags |= ZoltFlags::NO_PRESERVE_ROOT, + "confirm" => flags |= ZoltFlags::CONFIRM, + "dry-run" => flags |= ZoltFlags::DRY, + _ => unreachable!() + } + } + Opt::Short(flag) => { + match flag { + 'r' => flags |= ZoltFlags::RECURSIVE, + 'f' => flags |= ZoltFlags::FORCE, + _ => unreachable!() + } + } + } + } + let (argv, io_frame) = setup_builtin(argv, job, Some((io_stack, node.redirs)))?; + let mut io_frame = io_frame.unwrap(); + io_frame.redirect()?; + for (arg,span) in argv { - annihilate(&arg, false).blame(span)?; + if &arg == "/" && !flags.contains(ZoltFlags::NO_PRESERVE_ROOT) { + return Err( + ShErr::simple( + ShErrKind::ExecFail, + "zoltraak: Attempted to destroy root directory '/'" + ) + .with_note( + Note::new("If you really want to do this, you can use the --no-preserve-root flag") + .with_sub_notes(vec![ + "Example: 'zoltraak --no-preserve-root /'" + ]) + ) + ) + } + if let Err(e) = annihilate(&arg, flags).blame(span) { + io_frame.restore()?; + return Err(e.into()); + } } + io_frame.restore()?; + Ok(()) } -fn annihilate(path: &str, allow_dirs: bool) -> ShResult<()> { +fn annihilate(path: &str, flags: ZoltFlags) -> ShResult<()> { let path_buf = PathBuf::from(path); + let is_recursive = flags.contains(ZoltFlags::RECURSIVE); + let is_verbose = flags.contains(ZoltFlags::VERBOSE); const BLOCK_SIZE: u64 = 4096; @@ -74,10 +139,14 @@ fn annihilate(path: &str, allow_dirs: bool) -> ShResult<()> { file.set_len(0)?; mem::drop(file); fs::remove_file(path)?; + if is_verbose { + let stderr = borrow_fd(STDERR_FILENO); + write(stderr, format!("removed file '{path}'").as_bytes())?; + } } else if path_buf.is_dir() { - if allow_dirs { - annihilate_recursive(path)?; // scary + if is_recursive { + annihilate_recursive(path, flags)?; // scary } else { return Err( ShErr::simple( @@ -97,19 +166,24 @@ fn annihilate(path: &str, allow_dirs: bool) -> ShResult<()> { Ok(()) } -fn annihilate_recursive(dir: &str) -> ShResult<()> { +fn annihilate_recursive(dir: &str, flags: ZoltFlags) -> ShResult<()> { let dir_path = PathBuf::from(dir); + let is_verbose = flags.contains(ZoltFlags::VERBOSE); for dir_entry in fs::read_dir(&dir_path)? { let entry = dir_entry?.path(); let file = entry.to_str().unwrap(); if entry.is_file() { - annihilate(file, true)?; + annihilate(file, flags)?; } else if entry.is_dir() { - annihilate_recursive(file)?; + annihilate_recursive(file, flags)?; } } fs::remove_dir(dir)?; + if is_verbose { + let stderr = borrow_fd(STDERR_FILENO); + write(stderr, format!("removed directory '{dir}'").as_bytes())?; + } Ok(()) } diff --git a/src/expand.rs b/src/expand.rs index fb4c9ee..2091ec4 100644 --- a/src/expand.rs +++ b/src/expand.rs @@ -1,6 +1,6 @@ use std::collections::HashSet; -use crate::{exec_input, libsh::error::{ShErr, ShErrKind, ShResult}, parse::{lex::{is_field_sep, is_hard_sep, LexFlags, LexStream, Span, Tk, TkFlags, TkRule}, Redir, RedirType}, prelude::*, procio::{IoBuf, IoFrame, IoMode}, state::{read_logic, read_vars, write_meta}}; +use crate::{exec_input, libsh::error::{ShErr, ShErrKind, ShResult}, parse::{lex::{is_field_sep, is_hard_sep, LexFlags, LexStream, Span, Tk, TkFlags, TkRule}, Redir, RedirType}, prelude::*, procio::{IoBuf, IoFrame, IoMode}, state::{read_logic, read_vars, write_meta, LogTab}}; /// Variable substitution marker pub const VAR_SUB: char = '\u{fdd0}'; @@ -602,7 +602,7 @@ pub fn expand_prompt(raw: &str) -> ShResult { } /// Expand aliases in the given input string -pub fn expand_aliases(input: String, mut already_expanded: HashSet) -> String { +pub fn expand_aliases(input: String, mut already_expanded: HashSet, log_tab: &LogTab) -> String { let mut result = input.clone(); let tokens: Vec<_> = LexStream::new(Arc::new(input), LexFlags::empty()).collect(); let mut expanded_this_iter: Vec = vec![]; @@ -611,12 +611,13 @@ pub fn expand_aliases(input: String, mut already_expanded: HashSet) -> S let Ok(tk) = token_result else { continue }; if !tk.flags.contains(TkFlags::IS_CMD) { continue } + if tk.flags.contains(TkFlags::KEYWORD) { continue } let raw_tk = tk.span.as_str().to_string(); if already_expanded.contains(&raw_tk) { continue } - if let Some(alias) = read_logic(|l| l.get_alias(&raw_tk)) { + if let Some(alias) = log_tab.get_alias(&raw_tk) { result.replace_range(tk.span.range(), &alias); expanded_this_iter.push(raw_tk); } @@ -626,6 +627,6 @@ pub fn expand_aliases(input: String, mut already_expanded: HashSet) -> S return result } else { already_expanded.extend(expanded_this_iter.into_iter()); - return expand_aliases(result, already_expanded) + return expand_aliases(result, already_expanded, log_tab) } } diff --git a/src/fern.rs b/src/fern.rs index 6e1cd0c..741a2a1 100644 --- a/src/fern.rs +++ b/src/fern.rs @@ -8,18 +8,18 @@ pub mod state; pub mod builtin; pub mod jobs; pub mod signal; -#[cfg(test)] -pub mod tests; pub mod getopt; pub mod shopt; +#[cfg(test)] +pub mod tests; use std::collections::HashSet; -use expand::expand_aliases; +use crate::expand::expand_aliases; use libsh::error::ShResult; use parse::{execute::Dispatcher, ParsedSrc}; use signal::sig_setup; -use state::{source_rc, write_meta}; +use state::{read_logic, source_rc, write_meta}; use termios::{LocalFlags, Termios}; use crate::prelude::*; @@ -74,7 +74,8 @@ fn set_termios() { pub fn exec_input(input: String) -> ShResult<()> { write_meta(|m| m.start_timer()); - let input = expand_aliases(input, HashSet::new()); + let log_tab = read_logic(|l| l.clone()); + let input = expand_aliases(input, HashSet::new(), &log_tab); let mut parser = ParsedSrc::new(Arc::new(input)); parser.parse_src()?; diff --git a/src/foo/bar b/src/foo/bar deleted file mode 100644 index e69de29..0000000 diff --git a/src/parse/mod.rs b/src/parse/mod.rs index 3e911e5..8993911 100644 --- a/src/parse/mod.rs +++ b/src/parse/mod.rs @@ -608,6 +608,7 @@ impl ParseStream { } let case_pat_tk = self.next_tk().unwrap(); node_tks.push(case_pat_tk.clone()); + self.catch_separator(&mut node_tks); let mut nodes = vec![]; while let Some(node) = self.parse_block(true /* check_pipelines */)? { diff --git a/src/prompt/readline.rs b/src/prompt/readline.rs index b92bdbe..dc72e63 100644 --- a/src/prompt/readline.rs +++ b/src/prompt/readline.rs @@ -66,7 +66,6 @@ impl Highlighter for FernReadline { impl Validator for FernReadline { fn validate(&self, ctx: &mut rustyline::validate::ValidationContext) -> rustyline::Result { - return Ok(ValidationResult::Valid(None)); let mut tokens = vec![]; let tk_stream = LexStream::new(Arc::new(ctx.input().to_string()), LexFlags::empty()); for tk in tk_stream { diff --git a/src/state.rs b/src/state.rs index 3b2688b..c4340cf 100644 --- a/src/state.rs +++ b/src/state.rs @@ -79,6 +79,12 @@ impl LogTab { pub fn get_alias(&self, name: &str) -> Option { self.aliases.get(name).cloned() } + pub fn clear_aliases(&mut self) { + self.aliases.clear() + } + pub fn clear_functions(&mut self) { + self.functions.clear() + } } #[derive(Clone)] diff --git a/src/tests/error.rs b/src/tests/error.rs index 9719602..6efd72c 100644 --- a/src/tests/error.rs +++ b/src/tests/error.rs @@ -1,6 +1,4 @@ -use libsh::error::{ShErr, ShErrKind}; - -use super::super::*; +use super::*; #[test] fn cmd_not_found() { @@ -95,3 +93,30 @@ fn case_no_in() { let err_fmt = format!("{e}"); insta::assert_snapshot!(err_fmt) } + +#[test] +fn error_with_notes() { + let err = ShErr::simple(ShErrKind::ExecFail, "Execution failed") + .with_note(Note::new("Execution failed for this reason")) + .with_note(Note::new("Here is how to fix it: blah blah blah")); + + let err_fmt = format!("{err}"); + insta::assert_snapshot!(err_fmt) +} + +#[test] +fn error_with_notes_and_sub_notes() { + let err = ShErr::simple(ShErrKind::ExecFail, "Execution failed") + .with_note(Note::new("Execution failed for this reason")) + .with_note( + Note::new("Here is how to fix it:") + .with_sub_notes(vec![ + "blah", + "blah", + "blah" + ]) + ); + + let err_fmt = format!("{err}"); + insta::assert_snapshot!(err_fmt) +} diff --git a/src/tests/expand.rs b/src/tests/expand.rs index 0ec8628..b60b24d 100644 --- a/src/tests/expand.rs +++ b/src/tests/expand.rs @@ -1,9 +1,6 @@ use std::collections::HashSet; -use expand::{expand_aliases, unescape_str}; -use parse::lex::{Tk, TkFlags, TkRule}; -use state::{write_logic, write_vars}; -use super::super::*; +use super::*; #[test] fn simple_expansion() { @@ -32,61 +29,97 @@ fn unescape_string() { #[test] fn expand_alias_simple() { - write_logic(|l| l.insert_alias("foo", "echo foo")); + write_logic(|l| { + l.insert_alias("foo", "echo foo"); + let input = String::from("foo"); - let input = String::from("foo"); - - let result = expand_aliases(input, HashSet::new()); - assert_eq!(result.as_str(),"echo foo") + let result = expand_aliases(input, HashSet::new(), &l); + assert_eq!(result.as_str(),"echo foo"); + l.clear_aliases(); + }); } #[test] fn expand_alias_in_if() { - write_logic(|l| l.insert_alias("foo", "echo foo")); + write_logic(|l| { + l.insert_alias("foo", "echo foo"); + let input = String::from("if foo; then echo bar; fi"); - let input = String::from("if foo; then echo bar; fi"); + let result = expand_aliases(input, HashSet::new(), &l); + assert_eq!(result.as_str(),"if echo foo; then echo bar; fi"); + l.clear_aliases(); + }); +} - let result = expand_aliases(input, HashSet::new()); - assert_eq!(result.as_str(),"if echo foo; then echo bar; fi") +#[test] +fn expand_alias_multiline() { + write_logic(|l| { + l.insert_alias("foo", "echo foo"); + l.insert_alias("bar", "echo bar"); + let input = String::from(" + foo + if true; then + bar + fi + "); + let expected = String::from(" + echo foo + if true; then + echo bar + fi + "); + + let result = expand_aliases(input, HashSet::new(), &l); + assert_eq!(result,expected) + }); } #[test] fn expand_multiple_aliases() { - write_logic(|l| l.insert_alias("foo", "echo foo")); - write_logic(|l| l.insert_alias("bar", "echo bar")); - write_logic(|l| l.insert_alias("biz", "echo biz")); + write_logic(|l| { + l.insert_alias("foo", "echo foo"); + l.insert_alias("bar", "echo bar"); + l.insert_alias("biz", "echo biz"); + let input = String::from("foo; bar; biz"); - let input = String::from("foo; bar; biz"); - - let result = expand_aliases(input, HashSet::new()); - assert_eq!(result.as_str(),"echo foo; echo bar; echo biz") + let result = expand_aliases(input, HashSet::new(), &l); + assert_eq!(result.as_str(),"echo foo; echo bar; echo biz"); + }); } #[test] fn alias_in_arg_position() { - write_logic(|l| l.insert_alias("foo", "echo foo")); + write_logic(|l| { + l.insert_alias("foo", "echo foo"); + let input = String::from("echo foo"); - let input = String::from("echo foo"); - - let result = expand_aliases(input.clone(), HashSet::new()); - assert_eq!(input,result) + let result = expand_aliases(input.clone(), HashSet::new(), &l); + assert_eq!(input,result); + l.clear_aliases(); + }); } #[test] fn expand_recursive_alias() { - write_logic(|l| l.insert_alias("foo", "echo foo")); - write_logic(|l| l.insert_alias("bar", "foo bar")); + write_logic(|l| { + l.insert_alias("foo", "echo foo"); + l.insert_alias("bar", "foo bar"); - let input = String::from("bar"); - let result = expand_aliases(input, HashSet::new()); - assert_eq!(result.as_str(),"echo foo bar") + let input = String::from("bar"); + let result = expand_aliases(input, HashSet::new(), &l); + assert_eq!(result.as_str(),"echo foo bar"); + }); } #[test] fn test_infinite_recursive_alias() { - write_logic(|l| l.insert_alias("foo", "foo bar")); + write_logic(|l| { + l.insert_alias("foo", "foo bar"); + + let input = String::from("foo"); + let result = expand_aliases(input, HashSet::new(), &l); + assert_eq!(result.as_str(),"foo bar"); + l.clear_aliases(); + }); - let input = String::from("foo"); - let result = expand_aliases(input, HashSet::new()); - assert_eq!(result.as_str(),"foo bar") } diff --git a/src/tests/getopt.rs b/src/tests/getopt.rs index 7545472..e9c33f3 100644 --- a/src/tests/getopt.rs +++ b/src/tests/getopt.rs @@ -1,4 +1,4 @@ -use getopt::get_opts_from_tokens; +use getopt::{get_opts, get_opts_from_tokens}; use parse::NdRule; use tests::get_nodes; diff --git a/src/tests/lexer.rs b/src/tests/lexer.rs index 488cfc5..4b674e3 100644 --- a/src/tests/lexer.rs +++ b/src/tests/lexer.rs @@ -1,4 +1,4 @@ -use super::super::*; +use super::*; #[test] fn lex_simple() { let input = "echo hello world"; diff --git a/src/tests/mod.rs b/src/tests/mod.rs index 9d06df7..b96c9f0 100644 --- a/src/tests/mod.rs +++ b/src/tests/mod.rs @@ -1,6 +1,22 @@ -use std::rc::Arc; +use std::sync::Arc; + +pub use super::*; +use crate::libsh::error::{ + Note, ShErr, ShErrKind +}; +use crate::parse::{ + node_operation, Node, NdRule, ParseStream, + lex::{ + Tk, TkFlags, TkRule, LexFlags, LexStream + } +}; +use crate::expand::{ + expand_aliases, unescape_str +}; +use crate::state::{ + write_logic, write_vars +}; -use crate::parse::{lex::{LexFlags, LexStream}, node_operation, Node, ParseStream}; pub mod lexer; pub mod parser; diff --git a/src/tests/parser.rs b/src/tests/parser.rs index 3861b38..7caedd5 100644 --- a/src/tests/parser.rs +++ b/src/tests/parser.rs @@ -1,6 +1,4 @@ -use parse::{node_operation, NdRule, Node}; - -use super::super::*; +use super::*; #[test] fn parse_simple() { @@ -170,13 +168,30 @@ esac"; #[test] fn parse_case_nested() { let input = "case foo in - foo) if true; then - echo foo - fi + foo) + if true; then + while true; do + echo foo + done + fi ;; - bar) if false; then - echo bar - fi + bar) + if false; then + until false; do + case foo in + foo) + if true; then + echo foo + fi + ;; + bar) + if false; then + echo foo + fi + ;; + esac + done + fi ;; esac"; let tk_stream: Vec<_> = LexStream::new(Arc::new(input.to_string()), LexFlags::empty()) diff --git a/src/tests/snapshots/fern__tests__error__error_with_notes.snap b/src/tests/snapshots/fern__tests__error__error_with_notes.snap new file mode 100644 index 0000000..2d2af50 --- /dev/null +++ b/src/tests/snapshots/fern__tests__error__error_with_notes.snap @@ -0,0 +1,8 @@ +--- +source: src/tests/error.rs +expression: err_fmt +--- +Execution failed +note: Execution failed for this reason + +note: Here is how to fix it: blah blah blah diff --git a/src/tests/snapshots/fern__tests__error__error_with_notes_and_sub_notes.snap b/src/tests/snapshots/fern__tests__error__error_with_notes_and_sub_notes.snap new file mode 100644 index 0000000..75594b6 --- /dev/null +++ b/src/tests/snapshots/fern__tests__error__error_with_notes_and_sub_notes.snap @@ -0,0 +1,11 @@ +--- +source: src/tests/error.rs +expression: err_fmt +--- +Execution failed +note: Execution failed for this reason + +note: Here is how to fix it: + - blah + - blah + - blah diff --git a/src/tests/snapshots/fern__tests__parser__parse_case_nested.snap b/src/tests/snapshots/fern__tests__parser__parse_case_nested.snap index 38c6622..c93e8bf 100644 --- a/src/tests/snapshots/fern__tests__parser__parse_case_nested.snap +++ b/src/tests/snapshots/fern__tests__parser__parse_case_nested.snap @@ -14,7 +14,7 @@ expression: nodes class: Str, span: Span { range: 5..8, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -26,7 +26,7 @@ expression: nodes class: CasePattern, span: Span { range: 13..17, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -47,8 +47,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 21..25, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 23..27, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -64,8 +64,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 21..25, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 23..27, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -74,8 +74,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 25..27, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 27..29, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -94,8 +94,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 21..25, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 23..27, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -104,8 +104,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 25..27, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 27..29, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -115,33 +115,57 @@ expression: nodes }, body: [ Node { - class: Pipeline { - cmds: [ - Node { - class: Command { - assignments: [], - argv: [ - Tk { - class: Str, - span: Span { - range: 34..38, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + class: LoopNode { + kind: While, + cond_node: CondNode { + cond: Node { + class: Pipeline { + cmds: [ + Node { + class: Command { + assignments: [], + argv: [ + Tk { + class: Str, + span: Span { + range: 43..47, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + ], }, - flags: TkFlags( - IS_CMD | BUILTIN, - ), - }, - Tk { - class: Str, - span: Span { - range: 39..42, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", - }, - flags: TkFlags( + flags: NdFlags( 0x0, ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 43..47, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 47..49, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], }, ], + pipe_err: false, }, flags: NdFlags( 0x0, @@ -151,28 +175,18 @@ expression: nodes Tk { class: Str, span: Span { - range: 34..38, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 43..47, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( - IS_CMD | BUILTIN, - ), - }, - Tk { - class: Str, - span: Span { - range: 39..42, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", - }, - flags: TkFlags( - 0x0, + IS_CMD, ), }, Tk { class: Sep, span: Span { - range: 42..44, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 47..49, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -180,8 +194,115 @@ expression: nodes }, ], }, - ], - pipe_err: false, + body: [ + Node { + class: Pipeline { + cmds: [ + Node { + class: Command { + assignments: [], + argv: [ + Tk { + class: Str, + span: Span { + range: 56..60, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 61..64, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 56..60, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 61..64, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 64..68, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + pipe_err: false, + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 56..60, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 61..64, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 64..68, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + }, }, flags: NdFlags( 0x0, @@ -191,8 +312,58 @@ expression: nodes Tk { class: Str, span: Span { - range: 34..38, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 37..42, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 43..47, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 47..49, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 49..51, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 51..56, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 56..60, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD | BUILTIN, @@ -201,8 +372,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 39..42, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 61..64, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -211,8 +382,28 @@ expression: nodes Tk { class: Sep, span: Span { - range: 42..44, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 64..68, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 68..72, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 72..75, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -233,8 +424,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 18..20, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 20..22, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -243,8 +434,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 21..25, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 23..27, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -253,8 +444,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 25..27, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 27..29, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -263,8 +454,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 27..31, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 29..33, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -273,8 +464,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 31..34, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 33..37, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -283,8 +474,58 @@ expression: nodes Tk { class: Str, span: Span { - range: 34..38, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 37..42, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 43..47, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 47..49, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 49..51, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 51..56, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 56..60, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD | BUILTIN, @@ -293,8 +534,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 39..42, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 61..64, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -303,8 +544,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 42..44, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 64..68, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -313,8 +554,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 44..46, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 68..72, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -323,8 +564,28 @@ expression: nodes Tk { class: Sep, span: Span { - range: 46..52, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 72..75, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 75..77, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 77..83, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -338,8 +599,8 @@ expression: nodes pattern: Tk { class: CasePattern, span: Span { - range: 52..56, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 83..87, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -360,8 +621,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 60..65, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 93..98, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -377,8 +638,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 60..65, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 93..98, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -387,8 +648,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 65..67, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 98..100, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -407,8 +668,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 60..65, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 93..98, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -417,8 +678,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 65..67, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 98..100, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -428,33 +689,57 @@ expression: nodes }, body: [ Node { - class: Pipeline { - cmds: [ - Node { - class: Command { - assignments: [], - argv: [ - Tk { - class: Str, - span: Span { - range: 74..78, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + class: LoopNode { + kind: Until, + cond_node: CondNode { + cond: Node { + class: Pipeline { + cmds: [ + Node { + class: Command { + assignments: [], + argv: [ + Tk { + class: Str, + span: Span { + range: 114..119, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + ], }, - flags: TkFlags( - IS_CMD | BUILTIN, - ), - }, - Tk { - class: Str, - span: Span { - range: 79..82, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", - }, - flags: TkFlags( + flags: NdFlags( 0x0, ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 114..119, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 119..121, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], }, ], + pipe_err: false, }, flags: NdFlags( 0x0, @@ -464,28 +749,18 @@ expression: nodes Tk { class: Str, span: Span { - range: 74..78, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 114..119, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( - IS_CMD | BUILTIN, - ), - }, - Tk { - class: Str, - span: Span { - range: 79..82, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", - }, - flags: TkFlags( - 0x0, + IS_CMD, ), }, Tk { class: Sep, span: Span { - range: 82..84, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 119..121, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -493,8 +768,957 @@ expression: nodes }, ], }, - ], - pipe_err: false, + body: [ + Node { + class: CaseNode { + pattern: Tk { + class: Str, + span: Span { + range: 133..136, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + case_blocks: [ + CaseNode { + pattern: Tk { + class: CasePattern, + span: Span { + range: 145..149, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + body: [ + Node { + class: IfNode { + cond_nodes: [ + CondNode { + cond: Node { + class: Pipeline { + cmds: [ + Node { + class: Command { + assignments: [], + argv: [ + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + ], + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 163..165, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + pipe_err: false, + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 163..165, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + body: [ + Node { + class: Pipeline { + cmds: [ + Node { + class: Command { + assignments: [], + argv: [ + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 185..192, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + pipe_err: false, + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 185..192, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + }, + ], + else_block: [], + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 156..158, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 163..165, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 165..169, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 169..177, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 185..192, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 192..194, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 194..208, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + }, + CaseNode { + pattern: Tk { + class: CasePattern, + span: Span { + range: 208..212, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + body: [ + Node { + class: IfNode { + cond_nodes: [ + CondNode { + cond: Node { + class: Pipeline { + cmds: [ + Node { + class: Command { + assignments: [], + argv: [ + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + ], + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 227..229, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + pipe_err: false, + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 227..229, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + body: [ + Node { + class: Pipeline { + cmds: [ + Node { + class: Command { + assignments: [], + argv: [ + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 249..256, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + pipe_err: false, + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 249..256, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + }, + ], + else_block: [], + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 219..221, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 227..229, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 229..233, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 233..241, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 249..256, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 256..258, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 258..271, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + }, + ], + }, + flags: NdFlags( + 0x0, + ), + redirs: [], + tokens: [ + Tk { + class: Str, + span: Span { + range: 128..132, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 133..136, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 137..139, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 139..145, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 145..149, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 149..156, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 156..158, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 163..165, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 165..169, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 169..177, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 185..192, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 192..194, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 194..208, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 208..212, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 212..219, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 219..221, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 227..229, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 229..233, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 233..241, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 249..256, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 256..258, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 258..271, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 271..275, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 275..279, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + ], + }, + ], + }, }, flags: NdFlags( 0x0, @@ -504,18 +1728,98 @@ expression: nodes Tk { class: Str, span: Span { - range: 74..78, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 108..113, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( - IS_CMD | BUILTIN, + KEYWORD, ), }, Tk { class: Str, span: Span { - range: 79..82, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 114..119, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 119..121, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 121..123, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 123..128, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 128..132, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 133..136, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 137..139, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 139..145, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 145..149, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -524,8 +1828,268 @@ expression: nodes Tk { class: Sep, span: Span { - range: 82..84, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 149..156, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 156..158, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 163..165, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 165..169, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 169..177, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 185..192, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 192..194, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 194..208, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 208..212, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 212..219, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 219..221, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 227..229, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 229..233, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 233..241, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 249..256, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 256..258, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 258..271, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 271..275, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 275..279, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 279..283, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 283..286, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -546,8 +2110,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 57..59, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 90..92, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -556,8 +2120,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 60..65, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 93..98, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -566,8 +2130,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 65..67, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 98..100, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -576,8 +2140,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 67..71, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 100..104, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -586,8 +2150,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 71..74, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 104..108, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -596,8 +2160,168 @@ expression: nodes Tk { class: Str, span: Span { - range: 74..78, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 108..113, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 114..119, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 119..121, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 121..123, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 123..128, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 128..132, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 133..136, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 137..139, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 139..145, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 145..149, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 149..156, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 156..158, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 163..165, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 165..169, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 169..177, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD | BUILTIN, @@ -606,8 +2330,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 79..82, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -616,8 +2340,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 82..84, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 185..192, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -626,8 +2350,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 84..86, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 192..194, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -636,8 +2360,188 @@ expression: nodes Tk { class: Sep, span: Span { - range: 86..91, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 194..208, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 208..212, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 212..219, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 219..221, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 227..229, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 229..233, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 233..241, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 249..256, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 256..258, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 258..271, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 271..275, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 275..279, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 279..283, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 283..286, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 286..288, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 288..293, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -658,7 +2562,7 @@ expression: nodes class: Str, span: Span { range: 0..4, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -668,7 +2572,7 @@ expression: nodes class: Str, span: Span { range: 5..8, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -678,7 +2582,7 @@ expression: nodes class: Str, span: Span { range: 9..11, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -688,7 +2592,7 @@ expression: nodes class: Sep, span: Span { range: 11..13, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -698,7 +2602,17 @@ expression: nodes class: CasePattern, span: Span { range: 13..17, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 17..20, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -707,8 +2621,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 18..20, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 20..22, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -717,8 +2631,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 21..25, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 23..27, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -727,8 +2641,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 25..27, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 27..29, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -737,8 +2651,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 27..31, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 29..33, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -747,8 +2661,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 31..34, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 33..37, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -757,8 +2671,58 @@ expression: nodes Tk { class: Str, span: Span { - range: 34..38, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 37..42, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 43..47, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 47..49, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 49..51, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 51..56, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 56..60, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD | BUILTIN, @@ -767,8 +2731,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 39..42, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 61..64, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -777,8 +2741,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 42..44, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 64..68, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -787,8 +2751,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 44..46, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 68..72, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -797,8 +2761,28 @@ expression: nodes Tk { class: Sep, span: Span { - range: 46..52, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 72..75, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 75..77, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 77..83, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -807,8 +2791,18 @@ expression: nodes Tk { class: CasePattern, span: Span { - range: 52..56, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 83..87, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 87..90, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -817,8 +2811,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 57..59, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 90..92, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -827,8 +2821,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 60..65, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 93..98, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -837,8 +2831,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 65..67, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 98..100, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -847,8 +2841,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 67..71, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 100..104, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -857,8 +2851,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 71..74, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 104..108, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -867,8 +2861,168 @@ expression: nodes Tk { class: Str, span: Span { - range: 74..78, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 108..113, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 114..119, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 119..121, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 121..123, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 123..128, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 128..132, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 133..136, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 137..139, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 139..145, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 145..149, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 149..156, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 156..158, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 163..165, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 165..169, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 169..177, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD | BUILTIN, @@ -877,8 +3031,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 79..82, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -887,8 +3041,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 82..84, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 185..192, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -897,8 +3051,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 84..86, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 192..194, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -907,8 +3061,28 @@ expression: nodes Tk { class: Sep, span: Span { - range: 86..91, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 194..208, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 208..212, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 212..219, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -917,8 +3091,168 @@ expression: nodes Tk { class: Str, span: Span { - range: 91..95, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 219..221, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 227..229, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 229..233, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 233..241, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 249..256, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 256..258, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 258..271, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 271..275, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 275..279, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 279..283, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 283..286, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 286..288, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 288..293, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 293..297, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -939,7 +3273,7 @@ expression: nodes class: Str, span: Span { range: 0..4, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -949,7 +3283,7 @@ expression: nodes class: Str, span: Span { range: 5..8, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -959,7 +3293,7 @@ expression: nodes class: Str, span: Span { range: 9..11, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -969,7 +3303,7 @@ expression: nodes class: Sep, span: Span { range: 11..13, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -979,7 +3313,17 @@ expression: nodes class: CasePattern, span: Span { range: 13..17, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 17..20, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -988,8 +3332,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 18..20, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 20..22, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -998,8 +3342,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 21..25, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 23..27, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -1008,8 +3352,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 25..27, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 27..29, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1018,8 +3362,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 27..31, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 29..33, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -1028,8 +3372,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 31..34, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 33..37, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1038,8 +3382,58 @@ expression: nodes Tk { class: Str, span: Span { - range: 34..38, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 37..42, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 43..47, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 47..49, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 49..51, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 51..56, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 56..60, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD | BUILTIN, @@ -1048,8 +3442,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 39..42, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 61..64, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1058,8 +3452,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 42..44, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 64..68, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1068,8 +3462,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 44..46, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 68..72, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -1078,8 +3472,28 @@ expression: nodes Tk { class: Sep, span: Span { - range: 46..52, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 72..75, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 75..77, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 77..83, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1088,8 +3502,18 @@ expression: nodes Tk { class: CasePattern, span: Span { - range: 52..56, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 83..87, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 87..90, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1098,8 +3522,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 57..59, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 90..92, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -1108,8 +3532,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 60..65, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 93..98, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD, @@ -1118,8 +3542,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 65..67, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 98..100, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1128,8 +3552,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 67..71, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 100..104, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -1138,8 +3562,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 71..74, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 104..108, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1148,8 +3572,168 @@ expression: nodes Tk { class: Str, span: Span { - range: 74..78, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 108..113, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 114..119, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 119..121, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 121..123, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 123..128, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 128..132, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 133..136, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 137..139, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 139..145, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 145..149, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 149..156, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 156..158, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 159..163, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 163..165, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 165..169, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 169..177, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 177..181, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( IS_CMD | BUILTIN, @@ -1158,8 +3742,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 79..82, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 182..185, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1168,8 +3752,8 @@ expression: nodes Tk { class: Sep, span: Span { - range: 82..84, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 185..192, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1178,8 +3762,8 @@ expression: nodes Tk { class: Str, span: Span { - range: 84..86, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 192..194, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD, @@ -1188,8 +3772,28 @@ expression: nodes Tk { class: Sep, span: Span { - range: 86..91, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 194..208, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: CasePattern, + span: Span { + range: 208..212, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 212..219, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( 0x0, @@ -1198,8 +3802,168 @@ expression: nodes Tk { class: Str, span: Span { - range: 91..95, - source: "case foo in\n\tfoo) if true; then\n\t\techo foo\n\tfi\n\t;;\n\tbar) if false; then\n\t\techo bar\n\tfi\n\t;;\nesac", + range: 219..221, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Str, + span: Span { + range: 222..227, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 227..229, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 229..233, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 233..241, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 241..245, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + IS_CMD | BUILTIN, + ), + }, + Tk { + class: Str, + span: Span { + range: 246..249, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Sep, + span: Span { + range: 249..256, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 256..258, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 258..271, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 271..275, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 275..279, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 279..283, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 283..286, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 286..288, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + KEYWORD, + ), + }, + Tk { + class: Sep, + span: Span { + range: 288..293, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", + }, + flags: TkFlags( + 0x0, + ), + }, + Tk { + class: Str, + span: Span { + range: 293..297, + source: "case foo in\n\tfoo)\n\t\tif true; then\n\t\t\twhile true; do\n\t\t\t\techo foo\n\t\t\tdone\n\t\tfi\n\t;;\n\tbar)\n\t\tif false; then\n\t\t\tuntil false; do\n\t\t\t\tcase foo in\n\t\t\t\t\tfoo)\n\t\t\t\t\t\tif true; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\t\tbar)\n\t\t\t\t\t\tif false; then\n\t\t\t\t\t\t\techo foo\n\t\t\t\t\t\tfi\n\t\t\t\t\t;;\n\t\t\t\tesac\n\t\t\tdone\n\t\tfi\n\t;;\nesac", }, flags: TkFlags( KEYWORD,