git.delta.rocks / jrsonnet / refs/commits / 6beafa85136f

difftreelog

refactor upgrade for new master

Yaroslav Bolyukin2022-12-13parent: #443991e.patch.diff
in: master

30 files changed

modifiedCargo.tomldiffbeforeafterboth
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -9,6 +9,7 @@
 jrsonnet-evaluator = { path = "./crates/jrsonnet-evaluator", version = "0.5.0-pre95" }
 jrsonnet-macros = { path = "./crates/jrsonnet-macros", version = "0.5.0-pre95" }
 jrsonnet-parser = { path = "./crates/jrsonnet-parser", version = "0.5.0-pre95" }
+jrsonnet-rowan-parser = { path = "./crates/jrsonnet-rowan-parser", version = "0.5.0-pre95" }
 jrsonnet-interner = { path = "./crates/jrsonnet-interner", version = "0.5.0-pre95" }
 jrsonnet-stdlib = { path = "./crates/jrsonnet-stdlib", version = "0.5.0-pre95" }
 jrsonnet-cli = { path = "./crates/jrsonnet-cli", version = "0.5.0-pre95" }
modifiedcmds/jrsonnet-fmt/Cargo.tomldiffbeforeafterboth
--- a/cmds/jrsonnet-fmt/Cargo.toml
+++ b/cmds/jrsonnet-fmt/Cargo.toml
@@ -1,10 +1,10 @@
 [package]
 name = "jrsonnet-fmt"
-version = "0.1.0"
+version.workspace = true
 edition = "2021"
 
 [dependencies]
-dprint-core = "0.58.2"
-jrsonnet-rowan-parser = { path = "../../crates/jrsonnet-rowan-parser" }
+dprint-core = "0.60.0"
+jrsonnet-rowan-parser.workspace = true
 insta = "1.15"
 indoc = "1.0"
modifiedcmds/jrsonnet-lsp/Cargo.tomldiffbeforeafterboth
--- a/cmds/jrsonnet-lsp/Cargo.toml
+++ b/cmds/jrsonnet-lsp/Cargo.toml
@@ -1,12 +1,12 @@
 [package]
 name = "jrsonnet-lsp"
-version = "0.1.0"
+version.workspace = true
 edition = "2021"
 
 [dependencies]
 anyhow = "1.0.48"
-jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator" }
-jrsonnet-rowan-parser = { path = "../../crates/jrsonnet-rowan-parser" }
+jrsonnet-evaluator.workspace = true
+jrsonnet-rowan-parser.workspace = true
 lsp-server = "0.6.0"
 lsp-types = "0.93.0"
 serde = "1.0.130"
modifiedcrates/jrsonnet-rowan-parser/Cargo.tomldiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/Cargo.toml
+++ b/crates/jrsonnet-rowan-parser/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "jrsonnet-rowan-parser"
-version = "0.1.0"
+version.workspace = true
 edition = "2021"
 
 [dependencies]
@@ -9,7 +9,7 @@
 drop_bomb = "0.1.5"
 indoc = "1.0"
 logos = "0.12"
-miette = { version = "4.2", features = ["fancy"] }
+miette = { version = "5.5.0", features = ["fancy"] }
 rowan = "0.15"
 text-size = "1.1"
 thiserror = "1.0"
@@ -19,4 +19,3 @@
 indoc = "1.0"
 insta = "1.15"
 anyhow = "1.0"
-jrsonnet-stdlib = { path = "../jrsonnet-stdlib" }
modifiedcrates/jrsonnet-rowan-parser/jsonnet.ungramdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/jsonnet.ungram
+++ b/crates/jrsonnet-rowan-parser/jsonnet.ungram
@@ -370,3 +370,7 @@
 |   'ERROR_COMMENT_UNTERMINATED!'
 |   'LIT_SINGLE_LINE_HASH_COMMENT!'
 |   'LIT_SINGLE_LINE_SLASH_COMMENT!'
+
+ParsingError =
+    'ERROR_MISSING_TOKEN!'
+|   'ERROR_UNEXPECTED_TOKEN!'
modifiedcrates/jrsonnet-rowan-parser/src/event.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/event.rs
+++ b/crates/jrsonnet-rowan-parser/src/event.rs
@@ -1,11 +1,11 @@
 use std::mem;
 
-use rowan::{GreenNodeBuilder, Language};
+use rowan::{GreenNodeBuilder, Language, TextRange, TextSize};
 
 use crate::{
 	lex::Lexeme,
 	nodes::Trivia,
-	parser::{Parse, SyntaxError},
+	parser::{LocatedSyntaxError, Parse, SyntaxError},
 	AstToken, JsonnetLanguage, SyntaxKind,
 };
 
@@ -43,7 +43,7 @@
 	lexemes: &'i [Lexeme<'i>],
 	offset: usize,
 	events: Vec<Event>,
-	pub errors: Vec<SyntaxError>,
+	pub errors: Vec<LocatedSyntaxError>,
 }
 
 impl<'i> Sink<'i> {
@@ -57,9 +57,24 @@
 		}
 	}
 
+	fn text_offset(&self) -> TextSize {
+		if self.offset == 0 {
+			return 0.into();
+		};
+		if let Some(lex) = self.lexemes.get(self.offset) {
+			lex.range.start()
+		} else if let Some(lex) = self.lexemes.get(self.offset - 1) {
+			lex.range.end()
+		} else {
+			panic!("hard oob")
+		}
+	}
+
 	pub(super) fn finish(mut self) -> Parse {
 		let mut eat_start_whitespace = false;
 		let mut depth = 0;
+		let mut error_starts_at = Vec::new();
+		let mut error_last_range = None;
 		for idx in 0..self.events.len() {
 			match mem::replace(&mut self.events[idx], Event::Noop) {
 				Event::Start {
@@ -69,6 +84,7 @@
 					if depth != 0 {
 						self.skip_whitespace();
 					}
+					error_last_range = None;
 					let mut kinds = vec![kind];
 
 					let mut idx = idx;
@@ -98,6 +114,7 @@
 						if depth == 1 {
 							self.skip_whitespace();
 						}
+						error_starts_at.push(self.text_offset());
 					}
 
 					eat_start_whitespace = false;
@@ -106,6 +123,7 @@
 					if eat_start_whitespace {
 						self.skip_whitespace();
 					}
+					error_last_range = None;
 					self.token(kind);
 					eat_start_whitespace = true;
 				}
@@ -113,6 +131,7 @@
 					if eat_start_whitespace {
 						self.skip_whitespace();
 					}
+					error_last_range = None;
 					self.virtual_token(kind);
 					eat_start_whitespace = false;
 				}
@@ -120,6 +139,10 @@
 					if depth == 1 {
 						self.skip_whitespace();
 					}
+					error_last_range = Some((
+						error_starts_at.pop().expect("starts == finishes"),
+						self.text_offset(),
+					));
 					self.builder.finish_node();
 					depth -= 1;
 					let mut idx = idx;
@@ -129,6 +152,10 @@
 						wrapper = if let Event::Finish { wrapper } =
 							mem::replace(&mut self.events[idx], Event::Noop)
 						{
+							error_last_range = Some((
+								error_starts_at.pop().expect("starts == finishes"),
+								self.text_offset(),
+							));
 							if depth == 1 {
 								self.skip_whitespace();
 							}
@@ -143,8 +170,14 @@
 				}
 				Event::Pending => panic!("pending event should not appear in finished events"),
 				Event::Noop => {}
-				Event::Error(e) => {
-					self.errors.push(e);
+				Event::Error(error) => {
+					let (start, end) = error_last_range
+						.take()
+						.expect("expected error event right after closed node");
+					self.errors.push(LocatedSyntaxError {
+						error,
+						range: TextRange::new(start, end),
+					});
 				}
 			}
 		}
modifiedcrates/jrsonnet-rowan-parser/src/generated/nodes.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/generated/nodes.rs
+++ b/crates/jrsonnet-rowan-parser/src/generated/nodes.rs
@@ -1123,6 +1123,18 @@
 	SingleLineHashComment,
 	SingleLineSlashComment,
 }
+
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub struct ParsingError {
+	syntax: SyntaxToken,
+	kind: ParsingErrorKind,
+}
+
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+pub enum ParsingErrorKind {
+	ErrorMissingToken,
+	ErrorUnexpectedToken,
+}
 impl AstNode for SourceFile {
 	fn can_cast(kind: SyntaxKind) -> bool {
 		kind == SOURCE_FILE
@@ -2887,6 +2899,44 @@
 		std::fmt::Display::fmt(self.syntax(), f)
 	}
 }
+impl AstToken for ParsingError {
+	fn can_cast(kind: SyntaxKind) -> bool {
+		ParsingErrorKind::can_cast(kind)
+	}
+	fn cast(syntax: SyntaxToken) -> Option<Self> {
+		let kind = ParsingErrorKind::cast(syntax.kind())?;
+		Some(ParsingError { syntax, kind })
+	}
+	fn syntax(&self) -> &SyntaxToken {
+		&self.syntax
+	}
+}
+impl ParsingErrorKind {
+	fn can_cast(kind: SyntaxKind) -> bool {
+		match kind {
+			ERROR_MISSING_TOKEN | ERROR_UNEXPECTED_TOKEN => true,
+			_ => false,
+		}
+	}
+	pub fn cast(kind: SyntaxKind) -> Option<Self> {
+		let res = match kind {
+			ERROR_MISSING_TOKEN => Self::ErrorMissingToken,
+			ERROR_UNEXPECTED_TOKEN => Self::ErrorUnexpectedToken,
+			_ => return None,
+		};
+		Some(res)
+	}
+}
+impl ParsingError {
+	pub fn kind(&self) -> ParsingErrorKind {
+		self.kind
+	}
+}
+impl std::fmt::Display for ParsingError {
+	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+		std::fmt::Display::fmt(self.syntax(), f)
+	}
+}
 impl std::fmt::Display for Expr {
 	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 		std::fmt::Display::fmt(self.syntax(), f)
modifiedcrates/jrsonnet-rowan-parser/src/generated/syntax_kinds.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/generated/syntax_kinds.rs
+++ b/crates/jrsonnet-rowan-parser/src/generated/syntax_kinds.rs
@@ -179,8 +179,11 @@
 	FOR_KW,
 	#[token("assert")]
 	ASSERT_KW,
+	ERROR_MISSING_TOKEN,
+	ERROR_UNEXPECTED_TOKEN,
+	#[doc = r" Also acts as __LAST_TOKEN"]
 	#[error]
-	ERROR,
+	LEXING_ERROR,
 	SOURCE_FILE,
 	EXPR_BINARY,
 	LHS_EXPR,
@@ -258,6 +261,7 @@
 	IMPORT_KIND,
 	VISIBILITY,
 	TRIVIA,
+	PARSING_ERROR,
 	#[doc(hidden)]
 	__LAST,
 }
@@ -279,7 +283,7 @@
 		match self {
 			EXPR | OBJ_BODY | COMP_SPEC | BIND | MEMBER | FIELD | FIELD_NAME | DESTRUCT
 			| DESTRUCT_ARRAY_PART | BINARY_OPERATOR | UNARY_OPERATOR | LITERAL | TEXT | NUMBER
-			| IMPORT_KIND | VISIBILITY | TRIVIA => true,
+			| IMPORT_KIND | VISIBILITY | TRIVIA | PARSING_ERROR => true,
 			_ => false,
 		}
 	}
modifiedcrates/jrsonnet-rowan-parser/src/lib.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/lib.rs
+++ b/crates/jrsonnet-rowan-parser/src/lib.rs
@@ -3,7 +3,7 @@
 use event::Sink;
 use generated::nodes::{SourceFile, Trivia};
 use lex::lex;
-use parser::{Parser, SyntaxError};
+use parser::{LocatedSyntaxError, Parser, SyntaxError};
 pub use rowan;
 
 mod ast;
@@ -23,7 +23,7 @@
 pub use language::*;
 pub use token_set::SyntaxKindSet;
 
-pub fn parse(input: &str) -> (SourceFile, Vec<SyntaxError>) {
+pub fn parse(input: &str) -> (SourceFile, Vec<LocatedSyntaxError>) {
 	let lexemes = lex(input);
 	let kinds = lexemes
 		.iter()
modifiedcrates/jrsonnet-rowan-parser/src/parser.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/parser.rs
+++ b/crates/jrsonnet-rowan-parser/src/parser.rs
@@ -16,7 +16,7 @@
 
 pub struct Parse {
 	pub green_node: GreenNode,
-	pub errors: Vec<SyntaxError>,
+	pub errors: Vec<LocatedSyntaxError>,
 }
 
 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
@@ -53,51 +53,41 @@
 	Unexpected {
 		expected: ExpectedSyntax,
 		found: SyntaxKind,
-		range: TextRange,
 	},
 	Missing {
 		expected: ExpectedSyntax,
-		offset: TextSize,
 	},
 	Custom {
 		error: String,
-		range: TextRange,
 	},
 	Hint {
 		error: String,
-		range: TextRange,
 	},
 }
 
-impl From<SyntaxError> for LabeledSpan {
-	fn from(val: SyntaxError) -> Self {
-		match val {
-			SyntaxError::Unexpected {
-				expected,
-				found,
-				range,
-			} => LabeledSpan::new_with_span(
+#[derive(Debug)]
+pub struct LocatedSyntaxError {
+	pub error: SyntaxError,
+	pub range: TextRange,
+}
+
+impl From<LocatedSyntaxError> for LabeledSpan {
+	fn from(val: LocatedSyntaxError) -> Self {
+		let span = SourceSpan::new(
+			SourceOffset::from(usize::from(val.range.start())),
+			SourceOffset::from(usize::from(val.range.end() - val.range.start())),
+		);
+		dbg!(&val);
+		match val.error {
+			SyntaxError::Unexpected { expected, found } => LabeledSpan::new_with_span(
 				Some(format!("expected {}, found {:?}", expected, found)),
-				SourceSpan::new(
-					SourceOffset::from(usize::from(range.start())),
-					SourceOffset::from(usize::from(range.end() - range.start())),
-				),
-			),
-			SyntaxError::Missing { expected, offset } => LabeledSpan::new_with_span(
-				Some(format!("missing {}", expected)),
-				SourceSpan::new(
-					SourceOffset::from(usize::from(offset)),
-					SourceOffset::from(0),
-				),
+				span,
 			),
-			SyntaxError::Custom { error, range } | SyntaxError::Hint { error, range } => {
-				LabeledSpan::new_with_span(
-					Some(error),
-					SourceSpan::new(
-						SourceOffset::from(usize::from(range.start())),
-						SourceOffset::from(usize::from(range.end() - range.start())),
-					),
-				)
+			SyntaxError::Missing { expected } => {
+				LabeledSpan::new_with_span(Some(format!("missing {}", expected)), span)
+			}
+			SyntaxError::Custom { error } | SyntaxError::Hint { error } => {
+				LabeledSpan::new_with_span(Some(error), span)
 			}
 		}
 	}
@@ -180,17 +170,17 @@
 	pub(crate) fn error_with_recovery_set(
 		&mut self,
 		recovery_set: SyntaxKindSet,
-	) -> Option<CompletedMarker> {
+	) -> CompletedMarker {
 		self.error_with_recovery_set_no_default(recovery_set.union(DEFAULT_RECOVERY_SET))
 	}
-	pub fn error_with_no_skip(&mut self) -> Option<CompletedMarker> {
+	pub fn error_with_no_skip(&mut self) -> CompletedMarker {
 		self.error_with_recovery_set_no_default(SyntaxKindSet::ALL)
 	}
 
 	pub fn error_with_recovery_set_no_default(
 		&mut self,
 		recovery_set: SyntaxKindSet,
-	) -> Option<CompletedMarker> {
+	) -> CompletedMarker {
 		let expected_syntax = self
 			.expected_syntax
 			.take()
@@ -200,30 +190,29 @@
 
 		if self.at_end() || self.at_ts(recovery_set) {
 			// let range = self
-			// 	.previous_token()
-			// 	.map(|t| t.range)
+			// 	.offset
 			// 	.unwrap_or_else(|| TextRange::at(TextSize::from(0), TextSize::from(0)));
-
-			// self.events.push(Event::Error(SyntaxError::Missing {
-			// 	expected: expected_syntax,
-			// 	offset: range.end(),
-			// }));
-			return None;
+			let m = self.start();
+			let m = m.complete(self, ERROR_MISSING_TOKEN);
+			self.events.push(Event::Error(SyntaxError::Missing {
+				expected: expected_syntax,
+			}));
+			return m;
 		}
 
 		let current_token = self.current();
 
-		// self.events.push(Event::Error(SyntaxError::Unexpected {
-		// 	expected: expected_syntax,
-		// 	found: current_token.kind,
-		// 	range: current_token.range,
-		// }));
-		self.clear_expected_syntaxes();
 		self.last_error_token = self.offset;
 
 		let m = self.start();
 		self.bump();
-		Some(m.complete(self, SyntaxKind::ERROR))
+		let m = m.complete(self, ERROR_UNEXPECTED_TOKEN);
+		self.events.push(Event::Error(SyntaxError::Unexpected {
+			expected: expected_syntax,
+			found: current_token,
+		}));
+		self.clear_expected_syntaxes();
+		m
 	}
 	fn bump_assert(&mut self, kind: SyntaxKind) {
 		assert!(self.at(kind), "expected {:?}", kind);
@@ -326,14 +315,20 @@
 	Unnamed,
 }
 
-fn expr(p: &mut Parser) -> Option<CompletedMarker> {
-	expr_binding_power(p, 0)
+fn expr(p: &mut Parser) -> CompletedMarker {
+	match expr_binding_power(p, 0) {
+		Ok(m) => m,
+		Err(m) => m,
+	}
 }
-fn expr_binding_power(p: &mut Parser, minimum_binding_power: u8) -> Option<CompletedMarker> {
+fn expr_binding_power(
+	p: &mut Parser,
+	minimum_binding_power: u8,
+) -> Result<CompletedMarker, CompletedMarker> {
 	let mut lhs = lhs(p)?;
 
 	while let Some(op) = BinaryOperatorKind::cast(p.current())
-		.or_else(|| p.at(T!['{']).then(|| BinaryOperatorKind::MetaObjectApply))
+		.or_else(|| p.at(T!['{']).then_some(BinaryOperatorKind::MetaObjectApply))
 	{
 		let (left_binding_power, right_binding_power) = op.binding_power();
 		if left_binding_power < minimum_binding_power {
@@ -346,7 +341,7 @@
 		}
 
 		let m = lhs.wrap(p, LHS_EXPR).precede(p);
-		let parsed_rhs = expr_binding_power(p, right_binding_power).is_some();
+		let parsed_rhs = expr_binding_power(p, right_binding_power).is_ok();
 		lhs = m.complete(
 			p,
 			if op == BinaryOperatorKind::MetaObjectApply {
@@ -360,7 +355,7 @@
 			break;
 		}
 	}
-	Some(lhs)
+	Ok(lhs)
 }
 fn compspec(p: &mut Parser) {
 	assert!(p.at(T![for]) || p.at(T![if]));
@@ -461,7 +456,7 @@
 fn assertion(p: &mut Parser) {
 	let m = p.start();
 	p.bump_assert(T![assert]);
-	expr(p).map(|c| c.wrap(p, LHS_EXPR));
+	expr(p).wrap(p, LHS_EXPR);
 	if p.at(T![:]) {
 		p.bump();
 		expr(p);
@@ -625,20 +620,20 @@
 		p.bump();
 		// End
 		if !p.at(T![']']) {
-			expr(p).map(|c| c.wrap(p, SLICE_DESC_END));
+			expr(p).wrap(p, SLICE_DESC_END);
 		}
 		if p.at(T![:]) {
 			p.bump();
 			// Step
 			if !p.at(T![']']) {
-				expr(p).map(|c| c.wrap(p, SLICE_DESC_STEP));
+				expr(p).wrap(p, SLICE_DESC_STEP);
 			}
 		}
 	} else if p.at(T![::]) {
 		p.bump();
 		// End
 		if !p.at(T![']']) {
-			expr(p).map(|c| c.wrap(p, SLICE_DESC_END));
+			expr(p).wrap(p, SLICE_DESC_END);
 		}
 	} else {
 		// It was not a slice
@@ -650,7 +645,7 @@
 	m.complete(p, SLICE_DESC);
 	true
 }
-fn lhs(p: &mut Parser) -> Option<CompletedMarker> {
+fn lhs(p: &mut Parser) -> Result<CompletedMarker, CompletedMarker> {
 	let mut lhs = lhs_basic(p)?;
 
 	loop {
@@ -677,7 +672,7 @@
 		}
 	}
 
-	Some(lhs)
+	Ok(lhs)
 }
 fn name(p: &mut Parser) {
 	let m = p.start();
@@ -713,6 +708,7 @@
 }
 fn destruct(p: &mut Parser) -> CompletedMarker {
 	let m = p.start();
+	let _ex = p.expected_syntax_name("destruction specifier");
 	if p.at(T![?]) {
 		p.bump();
 		m.complete(p, DESTRUCT_SKIP)
@@ -773,7 +769,8 @@
 		name(p);
 		m.complete(p, DESTRUCT_FULL)
 	} else {
-		m.complete(p, ERROR)
+		m.forget(p);
+		p.error_with_recovery_set(TS![; , '}', '(', :])
 	}
 }
 fn bind(p: &mut Parser) {
@@ -784,6 +781,13 @@
 		p.expect(T![=]);
 		expr(p);
 		m.complete(p, BIND_FUNCTION)
+	} else if p.at(IDENT) && p.nth_at(1, T![=]) && p.nth_at(2, T![function]) {
+		name(p);
+		p.expect(T![=]);
+		p.expect(T![function]);
+		params_desc(p);
+		expr(p);
+		m.complete(p, BIND_FUNCTION)
 	} else {
 		destruct(p);
 		p.expect(T![=]);
@@ -803,9 +807,9 @@
 	assert!(Literal::can_cast(p.current()));
 	p.bump();
 }
-fn lhs_basic(p: &mut Parser) -> Option<CompletedMarker> {
-	let _e = p.expected_syntax_name("value");
-	Some(if Literal::can_cast(p.current()) {
+fn lhs_basic(p: &mut Parser) -> Result<CompletedMarker, CompletedMarker> {
+	let _e = p.expected_syntax_name("expression");
+	Ok(if Literal::can_cast(p.current()) {
 		let m = p.start();
 		literal(p);
 		m.complete(p, EXPR_LITERAL)
@@ -841,10 +845,10 @@
 		p.bump();
 		expr(p);
 		p.expect(T![then]);
-		expr(p).map(|c| c.wrap(p, TRUE_EXPR));
+		expr(p).wrap(p, TRUE_EXPR);
 		if p.at(T![else]) {
 			p.bump();
-			expr(p).map(|c| c.wrap(p, FALSE_EXPR));
+			expr(p).wrap(p, FALSE_EXPR);
 		}
 		m.complete(p, EXPR_IF_THEN_ELSE)
 	} else if p.at(T!['[']) {
@@ -897,7 +901,7 @@
 
 		let m = p.start();
 		p.bump();
-		expr_binding_power(p, right_binding_power);
+		let _ = expr_binding_power(p, right_binding_power);
 		m.complete(p, EXPR_UNARY)
 	} else if p.at(T!['(']) {
 		let m = p.start();
@@ -906,8 +910,7 @@
 		p.expect(T![')']);
 		m.complete(p, EXPR_PARENED)
 	} else {
-		p.error_with_recovery_set(TS![]);
-		return None;
+		return Err(p.error_with_no_skip());
 	})
 }
 
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__array_comp.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__array_comp.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__array_comp.snap
@@ -2,7 +2,7 @@
 source: crates/jrsonnet-rowan-parser/src/tests.rs
 expression: "[a for a in [1, 2, 3]]\n"
 ---
-SOURCE_FILE@0..22
+SOURCE_FILE@0..23
   EXPR_ARRAY_COMP@0..22
     L_BRACK@0..1 "["
     EXPR_VAR@1..2
@@ -31,4 +31,5 @@
           FLOAT@19..20 "3"
         R_BRACK@20..21 "]"
     R_BRACK@21..22 "]"
+  WHITESPACE@22..23 "\n"
 
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__destruct.snapdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__destruct.snap
@@ -0,0 +1,255 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "local [a, b, c] = arr;\nlocal [a, ...] = arr_rest;\nlocal [..., a] = rest_arr;\nlocal [...] = rest_in_arr;\nlocal [a, ...n] = arr_rest_n;\nlocal [...n, a] = rest_arr_n;\nlocal [...n] = rest_in_arr_n;\n\nlocal {a, b, c} = obj;\nlocal {a, b, c, ...} = obj_rest;\nlocal {a, b, c, ...n} = obj_rest_n;\n\nnull\n"
+---
+SOURCE_FILE@0..293
+  EXPR_LOCAL@0..292
+    LOCAL_KW@0..5 "local"
+    WHITESPACE@5..6 " "
+    BIND_DESTRUCT@6..21
+      DESTRUCT_ARRAY@6..15
+        L_BRACK@6..7 "["
+        DESTRUCT_FULL@7..8
+          NAME@7..8
+            IDENT@7..8 "a"
+        COMMA@8..9 ","
+        WHITESPACE@9..10 " "
+        DESTRUCT_FULL@10..11
+          NAME@10..11
+            IDENT@10..11 "b"
+        COMMA@11..12 ","
+        WHITESPACE@12..13 " "
+        DESTRUCT_FULL@13..14
+          NAME@13..14
+            IDENT@13..14 "c"
+        R_BRACK@14..15 "]"
+      WHITESPACE@15..16 " "
+      ASSIGN@16..17 "="
+      WHITESPACE@17..18 " "
+      EXPR_VAR@18..21
+        NAME@18..21
+          IDENT@18..21 "arr"
+    SEMI@21..22 ";"
+    WHITESPACE@22..23 "\n"
+    EXPR_LOCAL@23..292
+      LOCAL_KW@23..28 "local"
+      WHITESPACE@28..29 " "
+      BIND_DESTRUCT@29..48
+        DESTRUCT_ARRAY@29..37
+          L_BRACK@29..30 "["
+          DESTRUCT_FULL@30..31
+            NAME@30..31
+              IDENT@30..31 "a"
+          COMMA@31..32 ","
+          WHITESPACE@32..33 " "
+          DESTRUCT_REST@33..36
+            DOTDOTDOT@33..36 "..."
+          R_BRACK@36..37 "]"
+        WHITESPACE@37..38 " "
+        ASSIGN@38..39 "="
+        WHITESPACE@39..40 " "
+        EXPR_VAR@40..48
+          NAME@40..48
+            IDENT@40..48 "arr_rest"
+      SEMI@48..49 ";"
+      WHITESPACE@49..50 "\n"
+      EXPR_LOCAL@50..292
+        LOCAL_KW@50..55 "local"
+        WHITESPACE@55..56 " "
+        BIND_DESTRUCT@56..75
+          DESTRUCT_ARRAY@56..64
+            L_BRACK@56..57 "["
+            DESTRUCT_REST@57..60
+              DOTDOTDOT@57..60 "..."
+            COMMA@60..61 ","
+            WHITESPACE@61..62 " "
+            DESTRUCT_FULL@62..63
+              NAME@62..63
+                IDENT@62..63 "a"
+            R_BRACK@63..64 "]"
+          WHITESPACE@64..65 " "
+          ASSIGN@65..66 "="
+          WHITESPACE@66..67 " "
+          EXPR_VAR@67..75
+            NAME@67..75
+              IDENT@67..75 "rest_arr"
+        SEMI@75..76 ";"
+        WHITESPACE@76..77 "\n"
+        EXPR_LOCAL@77..292
+          LOCAL_KW@77..82 "local"
+          WHITESPACE@82..83 " "
+          BIND_DESTRUCT@83..102
+            DESTRUCT_ARRAY@83..88
+              L_BRACK@83..84 "["
+              DESTRUCT_REST@84..87
+                DOTDOTDOT@84..87 "..."
+              R_BRACK@87..88 "]"
+            WHITESPACE@88..89 " "
+            ASSIGN@89..90 "="
+            WHITESPACE@90..91 " "
+            EXPR_VAR@91..102
+              NAME@91..102
+                IDENT@91..102 "rest_in_arr"
+          SEMI@102..103 ";"
+          WHITESPACE@103..104 "\n"
+          EXPR_LOCAL@104..292
+            LOCAL_KW@104..109 "local"
+            WHITESPACE@109..110 " "
+            BIND_DESTRUCT@110..132
+              DESTRUCT_ARRAY@110..119
+                L_BRACK@110..111 "["
+                DESTRUCT_FULL@111..112
+                  NAME@111..112
+                    IDENT@111..112 "a"
+                COMMA@112..113 ","
+                WHITESPACE@113..114 " "
+                DESTRUCT_REST@114..118
+                  DOTDOTDOT@114..117 "..."
+                  IDENT@117..118 "n"
+                R_BRACK@118..119 "]"
+              WHITESPACE@119..120 " "
+              ASSIGN@120..121 "="
+              WHITESPACE@121..122 " "
+              EXPR_VAR@122..132
+                NAME@122..132
+                  IDENT@122..132 "arr_rest_n"
+            SEMI@132..133 ";"
+            WHITESPACE@133..134 "\n"
+            EXPR_LOCAL@134..292
+              LOCAL_KW@134..139 "local"
+              WHITESPACE@139..140 " "
+              BIND_DESTRUCT@140..162
+                DESTRUCT_ARRAY@140..149
+                  L_BRACK@140..141 "["
+                  DESTRUCT_REST@141..145
+                    DOTDOTDOT@141..144 "..."
+                    IDENT@144..145 "n"
+                  COMMA@145..146 ","
+                  WHITESPACE@146..147 " "
+                  DESTRUCT_FULL@147..148
+                    NAME@147..148
+                      IDENT@147..148 "a"
+                  R_BRACK@148..149 "]"
+                WHITESPACE@149..150 " "
+                ASSIGN@150..151 "="
+                WHITESPACE@151..152 " "
+                EXPR_VAR@152..162
+                  NAME@152..162
+                    IDENT@152..162 "rest_arr_n"
+              SEMI@162..163 ";"
+              WHITESPACE@163..164 "\n"
+              EXPR_LOCAL@164..292
+                LOCAL_KW@164..169 "local"
+                WHITESPACE@169..170 " "
+                BIND_DESTRUCT@170..192
+                  DESTRUCT_ARRAY@170..176
+                    L_BRACK@170..171 "["
+                    DESTRUCT_REST@171..175
+                      DOTDOTDOT@171..174 "..."
+                      IDENT@174..175 "n"
+                    R_BRACK@175..176 "]"
+                  WHITESPACE@176..177 " "
+                  ASSIGN@177..178 "="
+                  WHITESPACE@178..179 " "
+                  EXPR_VAR@179..192
+                    NAME@179..192
+                      IDENT@179..192 "rest_in_arr_n"
+                SEMI@192..193 ";"
+                WHITESPACE@193..195 "\n\n"
+                EXPR_LOCAL@195..292
+                  LOCAL_KW@195..200 "local"
+                  WHITESPACE@200..201 " "
+                  BIND_DESTRUCT@201..216
+                    DESTRUCT_OBJECT@201..210
+                      L_BRACE@201..202 "{"
+                      DESTRUCT_OBJECT_FIELD@202..203
+                        NAME@202..203
+                          IDENT@202..203 "a"
+                      COMMA@203..204 ","
+                      WHITESPACE@204..205 " "
+                      DESTRUCT_OBJECT_FIELD@205..206
+                        NAME@205..206
+                          IDENT@205..206 "b"
+                      COMMA@206..207 ","
+                      WHITESPACE@207..208 " "
+                      DESTRUCT_OBJECT_FIELD@208..209
+                        NAME@208..209
+                          IDENT@208..209 "c"
+                      R_BRACE@209..210 "}"
+                    WHITESPACE@210..211 " "
+                    ASSIGN@211..212 "="
+                    WHITESPACE@212..213 " "
+                    EXPR_VAR@213..216
+                      NAME@213..216
+                        IDENT@213..216 "obj"
+                  SEMI@216..217 ";"
+                  WHITESPACE@217..218 "\n"
+                  EXPR_LOCAL@218..292
+                    LOCAL_KW@218..223 "local"
+                    WHITESPACE@223..224 " "
+                    BIND_DESTRUCT@224..249
+                      DESTRUCT_OBJECT@224..238
+                        L_BRACE@224..225 "{"
+                        DESTRUCT_OBJECT_FIELD@225..226
+                          NAME@225..226
+                            IDENT@225..226 "a"
+                        COMMA@226..227 ","
+                        WHITESPACE@227..228 " "
+                        DESTRUCT_OBJECT_FIELD@228..229
+                          NAME@228..229
+                            IDENT@228..229 "b"
+                        COMMA@229..230 ","
+                        WHITESPACE@230..231 " "
+                        DESTRUCT_OBJECT_FIELD@231..232
+                          NAME@231..232
+                            IDENT@231..232 "c"
+                        COMMA@232..233 ","
+                        WHITESPACE@233..234 " "
+                        DESTRUCT_REST@234..237
+                          DOTDOTDOT@234..237 "..."
+                        R_BRACE@237..238 "}"
+                      WHITESPACE@238..239 " "
+                      ASSIGN@239..240 "="
+                      WHITESPACE@240..241 " "
+                      EXPR_VAR@241..249
+                        NAME@241..249
+                          IDENT@241..249 "obj_rest"
+                    SEMI@249..250 ";"
+                    WHITESPACE@250..251 "\n"
+                    EXPR_LOCAL@251..292
+                      LOCAL_KW@251..256 "local"
+                      WHITESPACE@256..257 " "
+                      BIND_DESTRUCT@257..285
+                        DESTRUCT_OBJECT@257..272
+                          L_BRACE@257..258 "{"
+                          DESTRUCT_OBJECT_FIELD@258..259
+                            NAME@258..259
+                              IDENT@258..259 "a"
+                          COMMA@259..260 ","
+                          WHITESPACE@260..261 " "
+                          DESTRUCT_OBJECT_FIELD@261..262
+                            NAME@261..262
+                              IDENT@261..262 "b"
+                          COMMA@262..263 ","
+                          WHITESPACE@263..264 " "
+                          DESTRUCT_OBJECT_FIELD@264..265
+                            NAME@264..265
+                              IDENT@264..265 "c"
+                          COMMA@265..266 ","
+                          WHITESPACE@266..267 " "
+                          DESTRUCT_REST@267..271
+                            DOTDOTDOT@267..270 "..."
+                            IDENT@270..271 "n"
+                          R_BRACE@271..272 "}"
+                        WHITESPACE@272..273 " "
+                        ASSIGN@273..274 "="
+                        WHITESPACE@274..275 " "
+                        EXPR_VAR@275..285
+                          NAME@275..285
+                            IDENT@275..285 "obj_rest_n"
+                      SEMI@285..286 ";"
+                      WHITESPACE@286..288 "\n\n"
+                      EXPR_LITERAL@288..292
+                        NULL_KW@288..292 "null"
+  WHITESPACE@292..293 "\n"
+
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__empty.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__empty.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__empty.snap
@@ -4,11 +4,13 @@
 ---
 SOURCE_FILE@0..1
   WHITESPACE@0..1 " "
+  ERROR_MISSING_TOKEN@1..1
 ===
-Missing { expected: Named("value"), offset: 1 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 1..1 }
 ===
   x syntax error
    ,----
- 1 |  
+ 1 |
+   :  ^
+   :  `-- missing expression
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function.snap
@@ -2,7 +2,7 @@
 source: crates/jrsonnet-rowan-parser/src/tests.rs
 expression: "function(a, b = 1) a + b\n"
 ---
-SOURCE_FILE@0..24
+SOURCE_FILE@0..25
   EXPR_FUNCTION@0..24
     FUNCTION_KW@0..8 "function"
     PARAMS_DESC@8..18
@@ -35,4 +35,5 @@
       EXPR_VAR@23..24
         NAME@23..24
           IDENT@23..24 "b"
+  WHITESPACE@24..25 "\n"
 
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_body.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_body.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_body.snap
@@ -2,8 +2,8 @@
 source: crates/jrsonnet-rowan-parser/src/tests.rs
 expression: "function(a, b)\n"
 ---
-SOURCE_FILE@0..14
-  EXPR_FUNCTION@0..14
+SOURCE_FILE@0..15
+  EXPR_FUNCTION@0..15
     FUNCTION_KW@0..8 "function"
     PARAMS_DESC@8..14
       L_PAREN@8..9 "("
@@ -18,13 +18,14 @@
           NAME@12..13
             IDENT@12..13 "b"
       R_PAREN@13..14 ")"
+    WHITESPACE@14..15 "\n"
+    ERROR_MISSING_TOKEN@15..15
 ===
-Missing { expected: Named("value"), offset: 14 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 15..15 }
 ===
   x syntax error
    ,----
  1 | function(a, b)
-   :               ^
-   :               `-- missing value
+   :                ^
+   :                `-- missing expression
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_no_value.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_no_value.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_no_value.snap
@@ -3,37 +3,44 @@
 expression: "function(a, b = ) a + b\n"
 ---
 SOURCE_FILE@0..24
-  EXPR_FUNCTION@0..24
+  EXPR_FUNCTION@0..23
     FUNCTION_KW@0..8 "function"
-    PARAMS_DESC@8..18
+    PARAMS_DESC@8..17
       L_PAREN@8..9 "("
       PARAM@9..10
-        IDENT@9..10 "a"
+        DESTRUCT_FULL@9..10
+          NAME@9..10
+            IDENT@9..10 "a"
       COMMA@10..11 ","
       WHITESPACE@11..12 " "
       PARAM@12..16
-        IDENT@12..13 "b"
+        DESTRUCT_FULL@12..13
+          NAME@12..13
+            IDENT@12..13 "b"
         WHITESPACE@13..14 " "
         ASSIGN@14..15 "="
         WHITESPACE@15..16 " "
+        ERROR_MISSING_TOKEN@16..16
       R_PAREN@16..17 ")"
-      WHITESPACE@17..18 " "
-    EXPR_BINARY@18..24
-      EXPR_VAR@18..20
-        IDENT@18..19 "a"
-        WHITESPACE@19..20 " "
+    WHITESPACE@17..18 " "
+    EXPR_BINARY@18..23
+      LHS_EXPR@18..19
+        EXPR_VAR@18..19
+          NAME@18..19
+            IDENT@18..19 "a"
+      WHITESPACE@19..20 " "
       PLUS@20..21 "+"
       WHITESPACE@21..22 " "
-      EXPR_VAR@22..24
-        IDENT@22..23 "b"
-        WHITESPACE@23..24 "\n"
+      EXPR_VAR@22..23
+        NAME@22..23
+          IDENT@22..23 "b"
+  WHITESPACE@23..24 "\n"
 ===
-Missing { expected: Named("value"), offset: 15 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 16..16 }
 ===
   x syntax error
    ,----
  1 | function(a, b = ) a + b
-   :                ^
-   :                `-- missing value
+   :                 ^
+   :                 `-- missing expression
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_rparen.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_rparen.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_rparen.snap
@@ -2,10 +2,10 @@
 source: crates/jrsonnet-rowan-parser/src/tests.rs
 expression: "function(a, b\n"
 ---
-SOURCE_FILE@0..13
-  EXPR_FUNCTION@0..13
+SOURCE_FILE@0..14
+  EXPR_FUNCTION@0..14
     FUNCTION_KW@0..8 "function"
-    PARAMS_DESC@8..13
+    PARAMS_DESC@8..14
       L_PAREN@8..9 "("
       PARAM@9..10
         DESTRUCT_FULL@9..10
@@ -17,15 +17,17 @@
         DESTRUCT_FULL@12..13
           NAME@12..13
             IDENT@12..13 "b"
+      WHITESPACE@13..14 "\n"
+      ERROR_MISSING_TOKEN@14..14
+    ERROR_MISSING_TOKEN@14..14
 ===
-Missing { expected: Unnamed(R_PAREN), offset: 13 }
-Missing { expected: Named("value"), offset: 13 }
+LocatedSyntaxError { error: Missing { expected: Unnamed(R_PAREN) }, range: 14..14 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 14..14 }
 ===
   x syntax error
    ,----
  1 | function(a, b
-   :              ^
-   :              |`-- missing value
-   :              `-- missing R_PAREN
+   :               ^^
+   :               |`-- missing expression
+   :               `-- missing R_PAREN
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_no_value_recovery.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_no_value_recovery.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_no_value_recovery.snap
@@ -3,37 +3,44 @@
 expression: "local a =\nlocal b = 3;\n1\n"
 ---
 SOURCE_FILE@0..25
-  LOCAL_KW@0..25
+  EXPR_LOCAL@0..25
     LOCAL_KW@0..5 "local"
     WHITESPACE@5..6 " "
-    IDENT@6..7 "a"
-    WHITESPACE@7..8 " "
-    ASSIGN@8..9 "="
-    WHITESPACE@9..10 "\n"
-    LOCAL_KW@10..25
-      LOCAL_KW@10..15 "local"
-      WHITESPACE@15..16 " "
-      IDENT@16..17 "b"
-      WHITESPACE@17..18 " "
-      ASSIGN@18..19 "="
-      WHITESPACE@19..20 " "
-      EXPR_NUMBER@20..21
-        NUMBER@20..21 "3"
-      SEMI@21..22 ";"
-      WHITESPACE@22..23 "\n"
-      EXPR_NUMBER@23..25
-        NUMBER@23..24 "1"
-        WHITESPACE@24..25 "\n"
+    BIND_DESTRUCT@6..24
+      DESTRUCT_FULL@6..7
+        NAME@6..7
+          IDENT@6..7 "a"
+      WHITESPACE@7..8 " "
+      ASSIGN@8..9 "="
+      WHITESPACE@9..10 "\n"
+      EXPR_LOCAL@10..24
+        LOCAL_KW@10..15 "local"
+        WHITESPACE@15..16 " "
+        BIND_DESTRUCT@16..21
+          DESTRUCT_FULL@16..17
+            NAME@16..17
+              IDENT@16..17 "b"
+          WHITESPACE@17..18 " "
+          ASSIGN@18..19 "="
+          WHITESPACE@19..20 " "
+          EXPR_NUMBER@20..21
+            FLOAT@20..21 "3"
+        SEMI@21..22 ";"
+        WHITESPACE@22..23 "\n"
+        EXPR_NUMBER@23..24
+          FLOAT@23..24 "1"
+    WHITESPACE@24..25 "\n"
+    ERROR_MISSING_TOKEN@25..25
+    ERROR_MISSING_TOKEN@25..25
 ===
-Missing { expected: Unnamed(SEMI), offset: 24 }
-Missing { expected: Named("value"), offset: 24 }
+LocatedSyntaxError { error: Missing { expected: Unnamed(SEMI) }, range: 25..25 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 25..25 }
 ===
   x syntax error
    ,-[2:1]
  2 | local b = 3;
  3 | 1
-   :  ^
-   :  |`-- missing value
-   :  `-- missing SEMI
+   :   ^^
+   :   |`-- missing expression
+   :   `-- missing SEMI
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_novalue.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_novalue.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_novalue.snap
@@ -3,24 +3,29 @@
 expression: "local a =\n"
 ---
 SOURCE_FILE@0..10
-  LOCAL_KW@0..10
+  EXPR_LOCAL@0..10
     LOCAL_KW@0..5 "local"
     WHITESPACE@5..6 " "
-    IDENT@6..7 "a"
-    WHITESPACE@7..8 " "
-    ASSIGN@8..9 "="
-    WHITESPACE@9..10 "\n"
+    BIND_DESTRUCT@6..10
+      DESTRUCT_FULL@6..7
+        NAME@6..7
+          IDENT@6..7 "a"
+      WHITESPACE@7..8 " "
+      ASSIGN@8..9 "="
+      WHITESPACE@9..10 "\n"
+      ERROR_MISSING_TOKEN@10..10
+    ERROR_MISSING_TOKEN@10..10
+    ERROR_MISSING_TOKEN@10..10
 ===
-Missing { expected: Named("value"), offset: 9 }
-Missing { expected: Unnamed(SEMI), offset: 9 }
-Missing { expected: Named("value"), offset: 9 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 10..10 }
+LocatedSyntaxError { error: Missing { expected: Unnamed(SEMI) }, range: 10..10 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 10..10 }
 ===
   x syntax error
    ,----
  1 | local a =
-   :          ^
-   :          `-- missing value
-   :          |`-- missing SEMI
-   :          `-- missing value
+   :           ^^^
+   :           `-- missing expression
+   :           |`-- missing SEMI
+   :           `-- missing expression
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_lhs.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_lhs.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_lhs.snap
@@ -3,17 +3,18 @@
 expression: "+ 2\n"
 ---
 SOURCE_FILE@0..2
-  PLUS@0..1 "+"
+  ERROR_MISSING_TOKEN@0..0
+  ERROR_UNEXPECTED_TOKEN@0..1
+    PLUS@0..1 "+"
   WHITESPACE@1..2 " "
 ===
-Missing { expected: Named("value"), offset: 0 }
-Custom { error: "unexpected input after expression", range: 0..1 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 0..0 }
+LocatedSyntaxError { error: Unexpected { expected: Unnamed(EOF), found: PLUS }, range: 0..1 }
 ===
   x syntax error
    ,----
  1 | + 2
-   : ^
-   : |`-- unexpected input after expression
-   : `-- missing value
+   : ^|
+   : |`-- expected EOF, found PLUS
+   : `-- missing expression
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_operator.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_operator.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_operator.snap
@@ -2,14 +2,15 @@
 source: crates/jrsonnet-rowan-parser/src/tests.rs
 expression: "2 2\n"
 ---
-SOURCE_FILE@0..3
+SOURCE_FILE@0..4
   EXPR_NUMBER@0..1
     FLOAT@0..1 "2"
   WHITESPACE@1..2 " "
-  ERROR@2..3
+  ERROR_UNEXPECTED_TOKEN@2..3
     FLOAT@2..3 "2"
+  WHITESPACE@3..4 "\n"
 ===
-Unexpected { expected: Unnamed(EOF), found: FLOAT, range: 2..3 }
+LocatedSyntaxError { error: Unexpected { expected: Unnamed(EOF), found: FLOAT }, range: 2..3 }
 ===
   x syntax error
    ,----
@@ -17,4 +18,3 @@
    :   |
    :   `-- expected EOF, found FLOAT
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_rhs.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_rhs.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_rhs.snap
@@ -2,21 +2,22 @@
 source: crates/jrsonnet-rowan-parser/src/tests.rs
 expression: "a +\n"
 ---
-SOURCE_FILE@0..3
-  EXPR_BINARY@0..3
+SOURCE_FILE@0..4
+  EXPR_BINARY@0..4
     LHS_EXPR@0..1
       EXPR_VAR@0..1
         NAME@0..1
           IDENT@0..1 "a"
     WHITESPACE@1..2 " "
     PLUS@2..3 "+"
+    WHITESPACE@3..4 "\n"
+    ERROR_MISSING_TOKEN@4..4
 ===
-Missing { expected: Named("value"), offset: 3 }
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 4..4 }
 ===
   x syntax error
    ,----
  1 | a +
-   :    ^
-   :    `-- missing value
+   :     ^
+   :     `-- missing expression
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__plain_call.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__plain_call.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__plain_call.snap
@@ -2,7 +2,7 @@
 source: crates/jrsonnet-rowan-parser/src/tests.rs
 expression: "std.substr(a, 0, std.length(b)) == b\n"
 ---
-SOURCE_FILE@0..36
+SOURCE_FILE@0..37
   EXPR_BINARY@0..36
     LHS_EXPR@0..31
       EXPR_APPLY@0..31
@@ -49,4 +49,5 @@
     EXPR_VAR@35..36
       NAME@35..36
         IDENT@35..36 "b"
+  WHITESPACE@36..37 "\n"
 
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__stdlib.snapdiffbeforeafterboth
before · crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__stdlib.snap
1---2source: crates/jrsonnet-rowan-parser/src/tests.rs3expression: "{\n  local std = self,\n  local id = std.id,\n\n  # Magic legacy field\n  thisFile:: $intrinsicThisFile,\n  id:: $intrinsicId,\n\n  # Those functions aren't normally located in stdlib\n  length:: $intrinsic(length),\n  type:: $intrinsic(type),\n  makeArray:: $intrinsic(makeArray),\n  codepoint:: $intrinsic(codepoint),\n  objectFieldsEx:: $intrinsic(objectFieldsEx),\n  objectHasEx:: $intrinsic(objectHasEx),\n  primitiveEquals:: $intrinsic(primitiveEquals),\n  modulo:: $intrinsic(modulo),\n  floor:: $intrinsic(floor),\n  ceil:: $intrinsic(ceil),\n  extVar:: $intrinsic(extVar),\n  native:: $intrinsic(native),\n  filter:: $intrinsic(filter),\n  char:: $intrinsic(char),\n  encodeUTF8:: $intrinsic(encodeUTF8),\n  decodeUTF8:: $intrinsic(decodeUTF8),\n  md5:: $intrinsic(md5),\n  trace:: $intrinsic(trace),\n  parseJson:: $intrinsic(parseJson),\n  parseYaml:: $intrinsic(parseYaml),\n\n  log:: $intrinsic(log),\n  pow:: $intrinsic(pow),\n  sqrt:: $intrinsic(sqrt),\n\n  sin:: $intrinsic(sin),\n  cos:: $intrinsic(cos),\n  tan:: $intrinsic(tan),\n  asin:: $intrinsic(asin),\n  acos:: $intrinsic(acos),\n  atan:: $intrinsic(atan),\n\n  exp:: $intrinsic(exp),\n  mantissa:: $intrinsic(mantissa),\n  exponent:: $intrinsic(exponent),\n\n  any:: $intrinsic(any),\n  all:: $intrinsic(all),\n\n  isString(v):: std.type(v) == 'string',\n  isNumber(v):: std.type(v) == 'number',\n  isBoolean(v):: std.type(v) == 'boolean',\n  isObject(v):: std.type(v) == 'object',\n  isArray(v):: std.type(v) == 'array',\n  isFunction(v):: std.type(v) == 'function',\n\n  toString(a)::\n    if std.type(a) == 'string' then a else '' + a,\n\n  substr:: $intrinsic(substr),\n\n  startsWith(a, b)::\n    if std.length(a) < std.length(b) then\n      false\n    else\n      std.substr(a, 0, std.length(b)) == b,\n\n  endsWith(a, b)::\n    if std.length(a) < std.length(b) then\n      false\n    else\n      std.substr(a, std.length(a) - std.length(b), std.length(b)) == b,\n\n  lstripChars(str, chars)::\n    if std.length(str) > 0 && std.member(chars, str[0]) then\n      std.lstripChars(str[1:], chars)\n    else\n      str,\n\n  rstripChars(str, chars)::\n    local len = std.length(str);\n    if len > 0 && std.member(chars, str[len - 1]) then\n      std.rstripChars(str[:len - 1], chars)\n    else\n      str,\n\n  stripChars(str, chars)::\n    std.lstripChars(std.rstripChars(str, chars), chars),\n\n  stringChars(str)::\n    std.makeArray(std.length(str), function(i) str[i]),\n\n  local parse_nat(str, base) =\n    assert base > 0 && base <= 16 : 'integer base %d invalid' % base;\n    // These codepoints are in ascending order:\n    local zero_code = std.codepoint('0');\n    local upper_a_code = std.codepoint('A');\n    local lower_a_code = std.codepoint('a');\n    local addDigit(aggregate, char) =\n      local code = std.codepoint(char);\n      local digit = if code >= lower_a_code then\n        code - lower_a_code + 10\n      else if code >= upper_a_code then\n        code - upper_a_code + 10\n      else\n        code - zero_code;\n      assert digit >= 0 && digit < base : '%s is not a base %d integer' % [str, base];\n      base * aggregate + digit;\n    std.foldl(addDigit, std.stringChars(str), 0),\n\n  parseInt(str)::\n    assert std.isString(str) : 'Expected string, got ' + std.type(str);\n    assert std.length(str) > 0 && str != '-' : 'Not an integer: \"%s\"' % [str];\n    if str[0] == '-' then\n      -parse_nat(str[1:], 10)\n    else\n      parse_nat(str, 10),\n\n  parseOctal(str)::\n    assert std.isString(str) : 'Expected string, got ' + std.type(str);\n    assert std.length(str) > 0 : 'Not an octal number: \"\"';\n    parse_nat(str, 8),\n\n  parseHex(str)::\n    assert std.isString(str) : 'Expected string, got ' + std.type(str);\n    assert std.length(str) > 0 : 'Not hexadecimal: \"\"';\n    parse_nat(str, 16),\n\n  split(str, c):: std.splitLimit(str, c, -1),\n\n  splitLimit:: $intrinsic(splitLimit),\n\n  strReplace:: $intrinsic(strReplace),\n\n  asciiUpper:: $intrinsic(asciiUpper),\n\n  asciiLower:: $intrinsic(asciiLower),\n\n  range:: $intrinsic(range),\n\n  repeat(what, count)::\n    local joiner =\n      if std.isString(what) then ''\n      else if std.isArray(what) then []\n      else error 'std.repeat first argument must be an array or a string';\n    std.join(joiner, std.makeArray(count, function(i) what)),\n\n  slice:: $intrinsic(slice),\n\n  member:: $intrinsic(member),\n\n  count:: $intrinsic(count),\n\n  mod:: $intrinsic(mod),\n\n  map:: $intrinsic(map),\n\n  mapWithIndex(func, arr)::\n    if !std.isFunction(func) then\n      error ('std.mapWithIndex first param must be function, got ' + std.type(func))\n    else if !std.isArray(arr) && !std.isString(arr) then\n      error ('std.mapWithIndex second param must be array, got ' + std.type(arr))\n    else\n      std.makeArray(std.length(arr), function(i) func(i, arr[i])),\n\n  mapWithKey(func, obj)::\n    if !std.isFunction(func) then\n      error ('std.mapWithKey first param must be function, got ' + std.type(func))\n    else if !std.isObject(obj) then\n      error ('std.mapWithKey second param must be object, got ' + std.type(obj))\n    else\n      { [k]: func(k, obj[k]) for k in std.objectFields(obj) },\n\n  flatMap:: $intrinsic(flatMap),\n\n  join:: $intrinsic(join),\n\n  lines(arr)::\n    std.join('\\n', arr + ['']),\n\n  deepJoin(arr)::\n    if std.isString(arr) then\n      arr\n    else if std.isArray(arr) then\n      std.join('', [std.deepJoin(x) for x in arr])\n    else\n      error 'Expected string or array, got %s' % std.type(arr),\n\n\n  format:: $intrinsic(format),\n\n  foldr:: $intrinsic(foldr),\n\n  foldl:: $intrinsic(foldl),\n\n  filterMap(filter_func, map_func, arr)::\n    if !std.isFunction(filter_func) then\n      error ('std.filterMap first param must be function, got ' + std.type(filter_func))\n    else if !std.isFunction(map_func) then\n      error ('std.filterMap second param must be function, got ' + std.type(map_func))\n    else if !std.isArray(arr) then\n      error ('std.filterMap third param must be array, got ' + std.type(arr))\n    else\n      std.map(map_func, std.filter(filter_func, arr)),\n\n  assertEqual(a, b)::\n    if a == b then\n      true\n    else\n      error 'Assertion failed. ' + a + ' != ' + b,\n\n  abs(n)::\n    if !std.isNumber(n) then\n      error 'std.abs expected number, got ' + std.type(n)\n    else\n      if n > 0 then n else -n,\n\n  sign(n)::\n    if !std.isNumber(n) then\n      error 'std.sign expected number, got ' + std.type(n)\n    else\n      if n > 0 then\n        1\n      else if n < 0 then\n        -1\n      else 0,\n\n  max(a, b)::\n    if !std.isNumber(a) then\n      error 'std.max first param expected number, got ' + std.type(a)\n    else if !std.isNumber(b) then\n      error 'std.max second param expected number, got ' + std.type(b)\n    else\n      if a > b then a else b,\n\n  min(a, b)::\n    if !std.isNumber(a) then\n      error 'std.min first param expected number, got ' + std.type(a)\n    else if !std.isNumber(b) then\n      error 'std.min second param expected number, got ' + std.type(b)\n    else\n      if a < b then a else b,\n\n  clamp(x, minVal, maxVal)::\n    if x < minVal then minVal\n    else if x > maxVal then maxVal\n    else x,\n\n  flattenArrays(arrs)::\n    std.foldl(function(a, b) a + b, arrs, []),\n\n  manifestIni(ini)::\n    local body_lines(body) =\n      std.join([], [\n        local value_or_values = body[k];\n        if std.isArray(value_or_values) then\n          ['%s = %s' % [k, value] for value in value_or_values]\n        else\n          ['%s = %s' % [k, value_or_values]]\n\n        for k in std.objectFields(body)\n      ]);\n\n    local section_lines(sname, sbody) = ['[%s]' % [sname]] + body_lines(sbody),\n          main_body = if std.objectHas(ini, 'main') then body_lines(ini.main) else [],\n          all_sections = [\n      section_lines(k, ini.sections[k])\n      for k in std.objectFields(ini.sections)\n    ];\n    std.join('\\n', main_body + std.flattenArrays(all_sections) + ['']),\n\n  manifestToml(value):: std.manifestTomlEx(value, '  '),\n\n  manifestTomlEx(value, indent)::\n    local\n      escapeStringToml = std.escapeStringJson,\n      escapeKeyToml(key) =\n        local bare_allowed = std.set(std.stringChars('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-'));\n        if std.setUnion(std.set(std.stringChars(key)), bare_allowed) == bare_allowed then key else escapeStringToml(key),\n      isTableArray(v) = std.isArray(v) && std.length(v) > 0 && std.foldl(function(a, b) a && std.isObject(b), v, true),\n      isSection(v) = std.isObject(v) || isTableArray(v),\n      renderValue(v, indexedPath, inline, cindent) =\n        if v == true then\n          'true'\n        else if v == false then\n          'false'\n        else if v == null then\n          error 'Tried to manifest \"null\" at ' + indexedPath\n        else if std.isNumber(v) then\n          '' + v\n        else if std.isString(v) then\n          escapeStringToml(v)\n        else if std.isFunction(v) then\n          error 'Tried to manifest function at ' + indexedPath\n        else if std.isArray(v) then\n          if std.length(v) == 0 then\n            '[]'\n          else\n            local range = std.range(0, std.length(v) - 1);\n            local new_indent = if inline then '' else cindent + indent;\n            local separator = if inline then ' ' else '\\n';\n            local lines = ['[' + separator]\n                          + std.join([',' + separator],\n                                     [\n                                       [new_indent + renderValue(v[i], indexedPath + [i], true, '')]\n                                       for i in range\n                                     ])\n                          + [separator + (if inline then '' else cindent) + ']'];\n            std.join('', lines)\n        else if std.isObject(v) then\n          local lines = ['{ ']\n                        + std.join([', '],\n                                   [\n                                     [escapeKeyToml(k) + ' = ' + renderValue(v[k], indexedPath + [k], true, '')]\n                                     for k in std.objectFields(v)\n                                   ])\n                        + [' }'];\n          std.join('', lines),\n      renderTableInternal(v, path, indexedPath, cindent) =\n        local kvp = std.flattenArrays([\n          [cindent + escapeKeyToml(k) + ' = ' + renderValue(v[k], indexedPath + [k], false, cindent)]\n          for k in std.objectFields(v)\n          if !isSection(v[k])\n        ]);\n        local sections = [std.join('\\n', kvp)] + [\n          (\n            if std.isObject(v[k]) then\n              renderTable(v[k], path + [k], indexedPath + [k], cindent)\n            else\n              renderTableArray(v[k], path + [k], indexedPath + [k], cindent)\n          )\n          for k in std.objectFields(v)\n          if isSection(v[k])\n        ];\n        std.join('\\n\\n', sections),\n      renderTable(v, path, indexedPath, cindent) =\n        cindent + '[' + std.join('.', std.map(escapeKeyToml, path)) + ']'\n        + (if v == {} then '' else '\\n')\n        + renderTableInternal(v, path, indexedPath, cindent + indent),\n      renderTableArray(v, path, indexedPath, cindent) =\n        local range = std.range(0, std.length(v) - 1);\n        local sections = [\n          (cindent + '[[' + std.join('.', std.map(escapeKeyToml, path)) + ']]'\n           + (if v[i] == {} then '' else '\\n')\n           + renderTableInternal(v[i], path, indexedPath + [i], cindent + indent))\n          for i in range\n        ];\n        std.join('\\n\\n', sections);\n    if std.isObject(value) then\n      renderTableInternal(value, [], [], '')\n    else\n      error 'TOML body must be an object. Got ' + std.type(value),\n\n  escapeStringJson:: $intrinsic(escapeStringJson),\n\n  escapeStringPython(str)::\n    std.escapeStringJson(str),\n\n  escapeStringBash(str_)::\n    local str = std.toString(str_);\n    local trans(ch) =\n      if ch == \"'\" then\n        \"'\\\"'\\\"'\"\n      else\n        ch;\n    \"'%s'\" % std.join('', [trans(ch) for ch in std.stringChars(str)]),\n\n  escapeStringDollars(str_)::\n    local str = std.toString(str_);\n    local trans(ch) =\n      if ch == '$' then\n        '$$'\n      else\n        ch;\n    std.foldl(function(a, b) a + trans(b), std.stringChars(str), ''),\n\n  manifestJson(value):: std.manifestJsonEx(value, '    ') tailstrict,\n\n  manifestJsonMinified(value):: std.manifestJsonEx(value, '', '', ':'),\n\n  manifestJsonEx:: $intrinsic(manifestJsonEx),\n\n  manifestYamlDoc:: $intrinsic(manifestYamlDoc),\n\n  manifestYamlStream(value, indent_array_in_object=false, c_document_end=true)::\n    if !std.isArray(value) then\n      error 'manifestYamlStream only takes arrays, got ' + std.type(value)\n    else\n      '---\\n' + std.join(\n        '\\n---\\n', [std.manifestYamlDoc(e, indent_array_in_object) for e in value]\n      ) + if c_document_end then '\\n...\\n' else '\\n',\n\n\n  manifestPython(v)::\n    if std.isObject(v) then\n      local fields = [\n        '%s: %s' % [std.escapeStringPython(k), std.manifestPython(v[k])]\n        for k in std.objectFields(v)\n      ];\n      '{%s}' % [std.join(', ', fields)]\n    else if std.isArray(v) then\n      '[%s]' % [std.join(', ', [std.manifestPython(v2) for v2 in v])]\n    else if std.isString(v) then\n      '%s' % [std.escapeStringPython(v)]\n    else if std.isFunction(v) then\n      error 'cannot manifest function'\n    else if std.isNumber(v) then\n      std.toString(v)\n    else if v == true then\n      'True'\n    else if v == false then\n      'False'\n    else if v == null then\n      'None',\n\n  manifestPythonVars(conf)::\n    local vars = ['%s = %s' % [k, std.manifestPython(conf[k])] for k in std.objectFields(conf)];\n    std.join('\\n', vars + ['']),\n\n  manifestXmlJsonml(value)::\n    if !std.isArray(value) then\n      error 'Expected a JSONML value (an array), got %s' % std.type(value)\n    else\n      local aux(v) =\n        if std.isString(v) then\n          v\n        else\n          local tag = v[0];\n          local has_attrs = std.length(v) > 1 && std.isObject(v[1]);\n          local attrs = if has_attrs then v[1] else {};\n          local children = if has_attrs then v[2:] else v[1:];\n          local attrs_str =\n            std.join('', [' %s=\"%s\"' % [k, attrs[k]] for k in std.objectFields(attrs)]);\n          std.deepJoin(['<', tag, attrs_str, '>', [aux(x) for x in children], '</', tag, '>']);\n\n      aux(value),\n\n  local base64_table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n  local base64_inv = { [base64_table[i]]: i for i in std.range(0, 63) },\n\n  base64:: $intrinsic(base64),\n\n  base64DecodeBytes:: $intrinsic(base64DecodeBytes),\n\n  base64Decode:: $intrinsic(base64Decode),\n\n  reverse:: $intrinsic(reverse),\n\n  sort:: $intrinsic(sort),\n\n  uniq(arr, keyF=id)::\n    local f(a, b) =\n      if std.length(a) == 0 then\n        [b]\n      else if keyF(a[std.length(a) - 1]) == keyF(b) then\n        a\n      else\n        a + [b];\n    std.foldl(f, arr, []),\n\n  set(arr, keyF=id)::\n    std.uniq(std.sort(arr, keyF), keyF),\n\n  setMember(x, arr, keyF=id)::\n    // TODO(dcunnin): Binary chop for O(log n) complexity\n    std.length(std.setInter([x], arr, keyF)) > 0,\n\n  setUnion(a, b, keyF=id)::\n    // NOTE: order matters, values in `a` win\n    local aux(a, b, i, j, acc) =\n      if i >= std.length(a) then\n        acc + b[j:]\n      else if j >= std.length(b) then\n        acc + a[i:]\n      else\n        local ak = keyF(a[i]);\n        local bk = keyF(b[j]);\n        if ak == bk then\n          aux(a, b, i + 1, j + 1, acc + [a[i]]) tailstrict\n        else if ak < bk then\n          aux(a, b, i + 1, j, acc + [a[i]]) tailstrict\n        else\n          aux(a, b, i, j + 1, acc + [b[j]]) tailstrict;\n    aux(a, b, 0, 0, []),\n\n  setInter(a, b, keyF=id)::\n    local aux(a, b, i, j, acc) =\n      if i >= std.length(a) || j >= std.length(b) then\n        acc\n      else\n        if keyF(a[i]) == keyF(b[j]) then\n          aux(a, b, i + 1, j + 1, acc + [a[i]]) tailstrict\n        else if keyF(a[i]) < keyF(b[j]) then\n          aux(a, b, i + 1, j, acc) tailstrict\n        else\n          aux(a, b, i, j + 1, acc) tailstrict;\n    aux(a, b, 0, 0, []) tailstrict,\n\n  setDiff(a, b, keyF=id)::\n    local aux(a, b, i, j, acc) =\n      if i >= std.length(a) then\n        acc\n      else if j >= std.length(b) then\n        acc + a[i:]\n      else\n        if keyF(a[i]) == keyF(b[j]) then\n          aux(a, b, i + 1, j + 1, acc) tailstrict\n        else if keyF(a[i]) < keyF(b[j]) then\n          aux(a, b, i + 1, j, acc + [a[i]]) tailstrict\n        else\n          aux(a, b, i, j + 1, acc) tailstrict;\n    aux(a, b, 0, 0, []) tailstrict,\n\n  mergePatch(target, patch)::\n    if std.isObject(patch) then\n      local target_object =\n        if std.isObject(target) then target else {};\n\n      local target_fields =\n        if std.isObject(target_object) then std.objectFields(target_object) else [];\n\n      local null_fields = [k for k in std.objectFields(patch) if patch[k] == null];\n      local both_fields = std.setUnion(target_fields, std.objectFields(patch));\n\n      {\n        [k]:\n          if !std.objectHas(patch, k) then\n            target_object[k]\n          else if !std.objectHas(target_object, k) then\n            std.mergePatch(null, patch[k]) tailstrict\n          else\n            std.mergePatch(target_object[k], patch[k]) tailstrict\n        for k in std.setDiff(both_fields, null_fields)\n      }\n    else\n      patch,\n\n  get(o, f, default = null, inc_hidden = true)::\n    if std.objectHasEx(o, f, inc_hidden) then o[f] else default,\n\n  objectFields(o)::\n    std.objectFieldsEx(o, false),\n\n  objectFieldsAll(o)::\n    std.objectFieldsEx(o, true),\n\n  objectHas(o, f)::\n    std.objectHasEx(o, f, false),\n\n  objectHasAll(o, f)::\n    std.objectHasEx(o, f, true),\n\n  objectValues(o)::\n    [o[k] for k in std.objectFields(o)],\n\n  objectValuesAll(o)::\n    [o[k] for k in std.objectFieldsAll(o)],\n\n  equals:: $intrinsic(equals),\n\n  resolvePath(f, r)::\n    local arr = std.split(f, '/');\n    std.join('/', std.makeArray(std.length(arr) - 1, function(i) arr[i]) + [r]),\n\n  prune(a)::\n    local isContent(b) =\n      if b == null then\n        false\n      else if std.isArray(b) then\n        std.length(b) > 0\n      else if std.isObject(b) then\n        std.length(b) > 0\n      else\n        true;\n    if std.isArray(a) then\n      [std.prune(x) for x in a if isContent($.prune(x))]\n    else if std.isObject(a) then {\n      [x]: $.prune(a[x])\n      for x in std.objectFields(a)\n      if isContent(std.prune(a[x]))\n    } else\n      a,\n\n  findSubstr(pat, str)::\n    if !std.isString(pat) then\n      error 'findSubstr first parameter should be a string, got ' + std.type(pat)\n    else if !std.isString(str) then\n      error 'findSubstr second parameter should be a string, got ' + std.type(str)\n    else\n      local pat_len = std.length(pat);\n      local str_len = std.length(str);\n      if pat_len == 0 || str_len == 0 || pat_len > str_len then\n        []\n      else\n        std.filter(function(i) str[i:i + pat_len] == pat, std.range(0, str_len - pat_len)),\n\n  find(value, arr)::\n    if !std.isArray(arr) then\n      error 'find second parameter should be an array, got ' + std.type(arr)\n    else\n      std.filter(function(i) arr[i] == value, std.range(0, std.length(arr) - 1)),\n}\n"4---5SOURCE_FILE@0..189786  EXPR_OBJECT@0..189787    OBJ_BODY_MEMBER_LIST@0..189788      L_BRACE@0..1 "{"9      WHITESPACE@1..4 "\n  "10      MEMBER_BIND_STMT@4..2011        OBJ_LOCAL@4..2012          LOCAL_KW@4..9 "local"13          WHITESPACE@9..10 " "14          BIND_DESTRUCT@10..2015            DESTRUCT_FULL@10..1316              NAME@10..1317                IDENT@10..13 "std"18            WHITESPACE@13..14 " "19            ASSIGN@14..15 "="20            WHITESPACE@15..16 " "21            EXPR_LITERAL@16..2022              SELF_KW@16..20 "self"23      COMMA@20..21 ","24      WHITESPACE@21..24 "\n  "25      MEMBER_BIND_STMT@24..4126        OBJ_LOCAL@24..4127          LOCAL_KW@24..29 "local"28          WHITESPACE@29..30 " "29          BIND_DESTRUCT@30..4130            DESTRUCT_FULL@30..3231              NAME@30..3232                IDENT@30..32 "id"33            WHITESPACE@32..33 " "34            ASSIGN@33..34 "="35            WHITESPACE@34..35 " "36            EXPR_INDEX@35..4137              EXPR_VAR@35..3838                NAME@35..3839                  IDENT@35..38 "std"40              DOT@38..39 "."41              NAME@39..4142                IDENT@39..41 "id"43      COMMA@41..42 ","44      WHITESPACE@42..46 "\n\n  "45      SINGLE_LINE_HASH_COMMENT@46..67 "# Magic legacy field\n"46      WHITESPACE@67..69 "  "47      MEMBER_FIELD@69..9848        FIELD_NORMAL@69..9849          FIELD_NAME_FIXED@69..7750            NAME@69..7751              IDENT@69..77 "thisFile"52          COLONCOLON@77..79 "::"53          WHITESPACE@79..80 " "54          EXPR_INTRINSIC_THIS_FILE@80..9855            INTRINSIC_THIS_FILE@80..98 "$intrinsicThisFile"56      COMMA@98..99 ","57      WHITESPACE@99..102 "\n  "58      MEMBER_FIELD@102..11959        FIELD_NORMAL@102..11960          FIELD_NAME_FIXED@102..10461            NAME@102..10462              IDENT@102..104 "id"63          COLONCOLON@104..106 "::"64          WHITESPACE@106..107 " "65          EXPR_INTRINSIC_ID@107..11966            INTRINSIC_ID@107..119 "$intrinsicId"67      COMMA@119..120 ","68      WHITESPACE@120..124 "\n\n  "69      SINGLE_LINE_HASH_COMMENT@124..176 "# Those functions are ..."70      WHITESPACE@176..178 "  "71      MEMBER_FIELD@178..20572        FIELD_NORMAL@178..20573          FIELD_NAME_FIXED@178..18474            NAME@178..18475              IDENT@178..184 "length"76          COLONCOLON@184..186 "::"77          WHITESPACE@186..187 " "78          EXPR_INTRINSIC@187..20579            INTRINSIC@187..197 "$intrinsic"80            L_PAREN@197..198 "("81            NAME@198..20482              IDENT@198..204 "length"83            R_PAREN@204..205 ")"84      COMMA@205..206 ","85      WHITESPACE@206..209 "\n  "86      MEMBER_FIELD@209..23287        FIELD_NORMAL@209..23288          FIELD_NAME_FIXED@209..21389            NAME@209..21390              IDENT@209..213 "type"91          COLONCOLON@213..215 "::"92          WHITESPACE@215..216 " "93          EXPR_INTRINSIC@216..23294            INTRINSIC@216..226 "$intrinsic"95            L_PAREN@226..227 "("96            NAME@227..23197              IDENT@227..231 "type"98            R_PAREN@231..232 ")"99      COMMA@232..233 ","100      WHITESPACE@233..236 "\n  "101      MEMBER_FIELD@236..269102        FIELD_NORMAL@236..269103          FIELD_NAME_FIXED@236..245104            NAME@236..245105              IDENT@236..245 "makeArray"106          COLONCOLON@245..247 "::"107          WHITESPACE@247..248 " "108          EXPR_INTRINSIC@248..269109            INTRINSIC@248..258 "$intrinsic"110            L_PAREN@258..259 "("111            NAME@259..268112              IDENT@259..268 "makeArray"113            R_PAREN@268..269 ")"114      COMMA@269..270 ","115      WHITESPACE@270..273 "\n  "116      MEMBER_FIELD@273..306117        FIELD_NORMAL@273..306118          FIELD_NAME_FIXED@273..282119            NAME@273..282120              IDENT@273..282 "codepoint"121          COLONCOLON@282..284 "::"122          WHITESPACE@284..285 " "123          EXPR_INTRINSIC@285..306124            INTRINSIC@285..295 "$intrinsic"125            L_PAREN@295..296 "("126            NAME@296..305127              IDENT@296..305 "codepoint"128            R_PAREN@305..306 ")"129      COMMA@306..307 ","130      WHITESPACE@307..310 "\n  "131      MEMBER_FIELD@310..353132        FIELD_NORMAL@310..353133          FIELD_NAME_FIXED@310..324134            NAME@310..324135              IDENT@310..324 "objectFieldsEx"136          COLONCOLON@324..326 "::"137          WHITESPACE@326..327 " "138          EXPR_INTRINSIC@327..353139            INTRINSIC@327..337 "$intrinsic"140            L_PAREN@337..338 "("141            NAME@338..352142              IDENT@338..352 "objectFieldsEx"143            R_PAREN@352..353 ")"144      COMMA@353..354 ","145      WHITESPACE@354..357 "\n  "146      MEMBER_FIELD@357..394147        FIELD_NORMAL@357..394148          FIELD_NAME_FIXED@357..368149            NAME@357..368150              IDENT@357..368 "objectHasEx"151          COLONCOLON@368..370 "::"152          WHITESPACE@370..371 " "153          EXPR_INTRINSIC@371..394154            INTRINSIC@371..381 "$intrinsic"155            L_PAREN@381..382 "("156            NAME@382..393157              IDENT@382..393 "objectHasEx"158            R_PAREN@393..394 ")"159      COMMA@394..395 ","160      WHITESPACE@395..398 "\n  "161      MEMBER_FIELD@398..443162        FIELD_NORMAL@398..443163          FIELD_NAME_FIXED@398..413164            NAME@398..413165              IDENT@398..413 "primitiveEquals"166          COLONCOLON@413..415 "::"167          WHITESPACE@415..416 " "168          EXPR_INTRINSIC@416..443169            INTRINSIC@416..426 "$intrinsic"170            L_PAREN@426..427 "("171            NAME@427..442172              IDENT@427..442 "primitiveEquals"173            R_PAREN@442..443 ")"174      COMMA@443..444 ","175      WHITESPACE@444..447 "\n  "176      MEMBER_FIELD@447..474177        FIELD_NORMAL@447..474178          FIELD_NAME_FIXED@447..453179            NAME@447..453180              IDENT@447..453 "modulo"181          COLONCOLON@453..455 "::"182          WHITESPACE@455..456 " "183          EXPR_INTRINSIC@456..474184            INTRINSIC@456..466 "$intrinsic"185            L_PAREN@466..467 "("186            NAME@467..473187              IDENT@467..473 "modulo"188            R_PAREN@473..474 ")"189      COMMA@474..475 ","190      WHITESPACE@475..478 "\n  "191      MEMBER_FIELD@478..503192        FIELD_NORMAL@478..503193          FIELD_NAME_FIXED@478..483194            NAME@478..483195              IDENT@478..483 "floor"196          COLONCOLON@483..485 "::"197          WHITESPACE@485..486 " "198          EXPR_INTRINSIC@486..503199            INTRINSIC@486..496 "$intrinsic"200            L_PAREN@496..497 "("201            NAME@497..502202              IDENT@497..502 "floor"203            R_PAREN@502..503 ")"204      COMMA@503..504 ","205      WHITESPACE@504..507 "\n  "206      MEMBER_FIELD@507..530207        FIELD_NORMAL@507..530208          FIELD_NAME_FIXED@507..511209            NAME@507..511210              IDENT@507..511 "ceil"211          COLONCOLON@511..513 "::"212          WHITESPACE@513..514 " "213          EXPR_INTRINSIC@514..530214            INTRINSIC@514..524 "$intrinsic"215            L_PAREN@524..525 "("216            NAME@525..529217              IDENT@525..529 "ceil"218            R_PAREN@529..530 ")"219      COMMA@530..531 ","220      WHITESPACE@531..534 "\n  "221      MEMBER_FIELD@534..561222        FIELD_NORMAL@534..561223          FIELD_NAME_FIXED@534..540224            NAME@534..540225              IDENT@534..540 "extVar"226          COLONCOLON@540..542 "::"227          WHITESPACE@542..543 " "228          EXPR_INTRINSIC@543..561229            INTRINSIC@543..553 "$intrinsic"230            L_PAREN@553..554 "("231            NAME@554..560232              IDENT@554..560 "extVar"233            R_PAREN@560..561 ")"234      COMMA@561..562 ","235      WHITESPACE@562..565 "\n  "236      MEMBER_FIELD@565..592237        FIELD_NORMAL@565..592238          FIELD_NAME_FIXED@565..571239            NAME@565..571240              IDENT@565..571 "native"241          COLONCOLON@571..573 "::"242          WHITESPACE@573..574 " "243          EXPR_INTRINSIC@574..592244            INTRINSIC@574..584 "$intrinsic"245            L_PAREN@584..585 "("246            NAME@585..591247              IDENT@585..591 "native"248            R_PAREN@591..592 ")"249      COMMA@592..593 ","250      WHITESPACE@593..596 "\n  "251      MEMBER_FIELD@596..623252        FIELD_NORMAL@596..623253          FIELD_NAME_FIXED@596..602254            NAME@596..602255              IDENT@596..602 "filter"256          COLONCOLON@602..604 "::"257          WHITESPACE@604..605 " "258          EXPR_INTRINSIC@605..623259            INTRINSIC@605..615 "$intrinsic"260            L_PAREN@615..616 "("261            NAME@616..622262              IDENT@616..622 "filter"263            R_PAREN@622..623 ")"264      COMMA@623..624 ","265      WHITESPACE@624..627 "\n  "266      MEMBER_FIELD@627..650267        FIELD_NORMAL@627..650268          FIELD_NAME_FIXED@627..631269            NAME@627..631270              IDENT@627..631 "char"271          COLONCOLON@631..633 "::"272          WHITESPACE@633..634 " "273          EXPR_INTRINSIC@634..650274            INTRINSIC@634..644 "$intrinsic"275            L_PAREN@644..645 "("276            NAME@645..649277              IDENT@645..649 "char"278            R_PAREN@649..650 ")"279      COMMA@650..651 ","280      WHITESPACE@651..654 "\n  "281      MEMBER_FIELD@654..689282        FIELD_NORMAL@654..689283          FIELD_NAME_FIXED@654..664284            NAME@654..664285              IDENT@654..664 "encodeUTF8"286          COLONCOLON@664..666 "::"287          WHITESPACE@666..667 " "288          EXPR_INTRINSIC@667..689289            INTRINSIC@667..677 "$intrinsic"290            L_PAREN@677..678 "("291            NAME@678..688292              IDENT@678..688 "encodeUTF8"293            R_PAREN@688..689 ")"294      COMMA@689..690 ","295      WHITESPACE@690..693 "\n  "296      MEMBER_FIELD@693..728297        FIELD_NORMAL@693..728298          FIELD_NAME_FIXED@693..703299            NAME@693..703300              IDENT@693..703 "decodeUTF8"301          COLONCOLON@703..705 "::"302          WHITESPACE@705..706 " "303          EXPR_INTRINSIC@706..728304            INTRINSIC@706..716 "$intrinsic"305            L_PAREN@716..717 "("306            NAME@717..727307              IDENT@717..727 "decodeUTF8"308            R_PAREN@727..728 ")"309      COMMA@728..729 ","310      WHITESPACE@729..732 "\n  "311      MEMBER_FIELD@732..753312        FIELD_NORMAL@732..753313          FIELD_NAME_FIXED@732..735314            NAME@732..735315              IDENT@732..735 "md5"316          COLONCOLON@735..737 "::"317          WHITESPACE@737..738 " "318          EXPR_INTRINSIC@738..753319            INTRINSIC@738..748 "$intrinsic"320            L_PAREN@748..749 "("321            NAME@749..752322              IDENT@749..752 "md5"323            R_PAREN@752..753 ")"324      COMMA@753..754 ","325      WHITESPACE@754..757 "\n  "326      MEMBER_FIELD@757..782327        FIELD_NORMAL@757..782328          FIELD_NAME_FIXED@757..762329            NAME@757..762330              IDENT@757..762 "trace"331          COLONCOLON@762..764 "::"332          WHITESPACE@764..765 " "333          EXPR_INTRINSIC@765..782334            INTRINSIC@765..775 "$intrinsic"335            L_PAREN@775..776 "("336            NAME@776..781337              IDENT@776..781 "trace"338            R_PAREN@781..782 ")"339      COMMA@782..783 ","340      WHITESPACE@783..786 "\n  "341      MEMBER_FIELD@786..819342        FIELD_NORMAL@786..819343          FIELD_NAME_FIXED@786..795344            NAME@786..795345              IDENT@786..795 "parseJson"346          COLONCOLON@795..797 "::"347          WHITESPACE@797..798 " "348          EXPR_INTRINSIC@798..819349            INTRINSIC@798..808 "$intrinsic"350            L_PAREN@808..809 "("351            NAME@809..818352              IDENT@809..818 "parseJson"353            R_PAREN@818..819 ")"354      COMMA@819..820 ","355      WHITESPACE@820..823 "\n  "356      MEMBER_FIELD@823..856357        FIELD_NORMAL@823..856358          FIELD_NAME_FIXED@823..832359            NAME@823..832360              IDENT@823..832 "parseYaml"361          COLONCOLON@832..834 "::"362          WHITESPACE@834..835 " "363          EXPR_INTRINSIC@835..856364            INTRINSIC@835..845 "$intrinsic"365            L_PAREN@845..846 "("366            NAME@846..855367              IDENT@846..855 "parseYaml"368            R_PAREN@855..856 ")"369      COMMA@856..857 ","370      WHITESPACE@857..861 "\n\n  "371      MEMBER_FIELD@861..882372        FIELD_NORMAL@861..882373          FIELD_NAME_FIXED@861..864374            NAME@861..864375              IDENT@861..864 "log"376          COLONCOLON@864..866 "::"377          WHITESPACE@866..867 " "378          EXPR_INTRINSIC@867..882379            INTRINSIC@867..877 "$intrinsic"380            L_PAREN@877..878 "("381            NAME@878..881382              IDENT@878..881 "log"383            R_PAREN@881..882 ")"384      COMMA@882..883 ","385      WHITESPACE@883..886 "\n  "386      MEMBER_FIELD@886..907387        FIELD_NORMAL@886..907388          FIELD_NAME_FIXED@886..889389            NAME@886..889390              IDENT@886..889 "pow"391          COLONCOLON@889..891 "::"392          WHITESPACE@891..892 " "393          EXPR_INTRINSIC@892..907394            INTRINSIC@892..902 "$intrinsic"395            L_PAREN@902..903 "("396            NAME@903..906397              IDENT@903..906 "pow"398            R_PAREN@906..907 ")"399      COMMA@907..908 ","400      WHITESPACE@908..911 "\n  "401      MEMBER_FIELD@911..934402        FIELD_NORMAL@911..934403          FIELD_NAME_FIXED@911..915404            NAME@911..915405              IDENT@911..915 "sqrt"406          COLONCOLON@915..917 "::"407          WHITESPACE@917..918 " "408          EXPR_INTRINSIC@918..934409            INTRINSIC@918..928 "$intrinsic"410            L_PAREN@928..929 "("411            NAME@929..933412              IDENT@929..933 "sqrt"413            R_PAREN@933..934 ")"414      COMMA@934..935 ","415      WHITESPACE@935..939 "\n\n  "416      MEMBER_FIELD@939..960417        FIELD_NORMAL@939..960418          FIELD_NAME_FIXED@939..942419            NAME@939..942420              IDENT@939..942 "sin"421          COLONCOLON@942..944 "::"422          WHITESPACE@944..945 " "423          EXPR_INTRINSIC@945..960424            INTRINSIC@945..955 "$intrinsic"425            L_PAREN@955..956 "("426            NAME@956..959427              IDENT@956..959 "sin"428            R_PAREN@959..960 ")"429      COMMA@960..961 ","430      WHITESPACE@961..964 "\n  "431      MEMBER_FIELD@964..985432        FIELD_NORMAL@964..985433          FIELD_NAME_FIXED@964..967434            NAME@964..967435              IDENT@964..967 "cos"436          COLONCOLON@967..969 "::"437          WHITESPACE@969..970 " "438          EXPR_INTRINSIC@970..985439            INTRINSIC@970..980 "$intrinsic"440            L_PAREN@980..981 "("441            NAME@981..984442              IDENT@981..984 "cos"443            R_PAREN@984..985 ")"444      COMMA@985..986 ","445      WHITESPACE@986..989 "\n  "446      MEMBER_FIELD@989..1010447        FIELD_NORMAL@989..1010448          FIELD_NAME_FIXED@989..992449            NAME@989..992450              IDENT@989..992 "tan"451          COLONCOLON@992..994 "::"452          WHITESPACE@994..995 " "453          EXPR_INTRINSIC@995..1010454            INTRINSIC@995..1005 "$intrinsic"455            L_PAREN@1005..1006 "("456            NAME@1006..1009457              IDENT@1006..1009 "tan"458            R_PAREN@1009..1010 ")"459      COMMA@1010..1011 ","460      WHITESPACE@1011..1014 "\n  "461      MEMBER_FIELD@1014..1037462        FIELD_NORMAL@1014..1037463          FIELD_NAME_FIXED@1014..1018464            NAME@1014..1018465              IDENT@1014..1018 "asin"466          COLONCOLON@1018..1020 "::"467          WHITESPACE@1020..1021 " "468          EXPR_INTRINSIC@1021..1037469            INTRINSIC@1021..1031 "$intrinsic"470            L_PAREN@1031..1032 "("471            NAME@1032..1036472              IDENT@1032..1036 "asin"473            R_PAREN@1036..1037 ")"474      COMMA@1037..1038 ","475      WHITESPACE@1038..1041 "\n  "476      MEMBER_FIELD@1041..1064477        FIELD_NORMAL@1041..1064478          FIELD_NAME_FIXED@1041..1045479            NAME@1041..1045480              IDENT@1041..1045 "acos"481          COLONCOLON@1045..1047 "::"482          WHITESPACE@1047..1048 " "483          EXPR_INTRINSIC@1048..1064484            INTRINSIC@1048..1058 "$intrinsic"485            L_PAREN@1058..1059 "("486            NAME@1059..1063487              IDENT@1059..1063 "acos"488            R_PAREN@1063..1064 ")"489      COMMA@1064..1065 ","490      WHITESPACE@1065..1068 "\n  "491      MEMBER_FIELD@1068..1091492        FIELD_NORMAL@1068..1091493          FIELD_NAME_FIXED@1068..1072494            NAME@1068..1072495              IDENT@1068..1072 "atan"496          COLONCOLON@1072..1074 "::"497          WHITESPACE@1074..1075 " "498          EXPR_INTRINSIC@1075..1091499            INTRINSIC@1075..1085 "$intrinsic"500            L_PAREN@1085..1086 "("501            NAME@1086..1090502              IDENT@1086..1090 "atan"503            R_PAREN@1090..1091 ")"504      COMMA@1091..1092 ","505      WHITESPACE@1092..1096 "\n\n  "506      MEMBER_FIELD@1096..1117507        FIELD_NORMAL@1096..1117508          FIELD_NAME_FIXED@1096..1099509            NAME@1096..1099510              IDENT@1096..1099 "exp"511          COLONCOLON@1099..1101 "::"512          WHITESPACE@1101..1102 " "513          EXPR_INTRINSIC@1102..1117514            INTRINSIC@1102..1112 "$intrinsic"515            L_PAREN@1112..1113 "("516            NAME@1113..1116517              IDENT@1113..1116 "exp"518            R_PAREN@1116..1117 ")"519      COMMA@1117..1118 ","520      WHITESPACE@1118..1121 "\n  "521      MEMBER_FIELD@1121..1152522        FIELD_NORMAL@1121..1152523          FIELD_NAME_FIXED@1121..1129524            NAME@1121..1129525              IDENT@1121..1129 "mantissa"526          COLONCOLON@1129..1131 "::"527          WHITESPACE@1131..1132 " "528          EXPR_INTRINSIC@1132..1152529            INTRINSIC@1132..1142 "$intrinsic"530            L_PAREN@1142..1143 "("531            NAME@1143..1151532              IDENT@1143..1151 "mantissa"533            R_PAREN@1151..1152 ")"534      COMMA@1152..1153 ","535      WHITESPACE@1153..1156 "\n  "536      MEMBER_FIELD@1156..1187537        FIELD_NORMAL@1156..1187538          FIELD_NAME_FIXED@1156..1164539            NAME@1156..1164540              IDENT@1156..1164 "exponent"541          COLONCOLON@1164..1166 "::"542          WHITESPACE@1166..1167 " "543          EXPR_INTRINSIC@1167..1187544            INTRINSIC@1167..1177 "$intrinsic"545            L_PAREN@1177..1178 "("546            NAME@1178..1186547              IDENT@1178..1186 "exponent"548            R_PAREN@1186..1187 ")"549      COMMA@1187..1188 ","550      WHITESPACE@1188..1192 "\n\n  "551      MEMBER_FIELD@1192..1213552        FIELD_NORMAL@1192..1213553          FIELD_NAME_FIXED@1192..1195554            NAME@1192..1195555              IDENT@1192..1195 "any"556          COLONCOLON@1195..1197 "::"557          WHITESPACE@1197..1198 " "558          EXPR_INTRINSIC@1198..1213559            INTRINSIC@1198..1208 "$intrinsic"560            L_PAREN@1208..1209 "("561            NAME@1209..1212562              IDENT@1209..1212 "any"563            R_PAREN@1212..1213 ")"564      COMMA@1213..1214 ","565      WHITESPACE@1214..1217 "\n  "566      MEMBER_FIELD@1217..1238567        FIELD_NORMAL@1217..1238568          FIELD_NAME_FIXED@1217..1220569            NAME@1217..1220570              IDENT@1217..1220 "all"571          COLONCOLON@1220..1222 "::"572          WHITESPACE@1222..1223 " "573          EXPR_INTRINSIC@1223..1238574            INTRINSIC@1223..1233 "$intrinsic"575            L_PAREN@1233..1234 "("576            NAME@1234..1237577              IDENT@1234..1237 "all"578            R_PAREN@1237..1238 ")"579      COMMA@1238..1239 ","580      WHITESPACE@1239..1243 "\n\n  "581      MEMBER_FIELD@1243..1280582        FIELD_METHOD@1243..1280583          FIELD_NAME_FIXED@1243..1251584            NAME@1243..1251585              IDENT@1243..1251 "isString"586          PARAMS_DESC@1251..1254587            L_PAREN@1251..1252 "("588            PARAM@1252..1253589              DESTRUCT_FULL@1252..1253590                NAME@1252..1253591                  IDENT@1252..1253 "v"592            R_PAREN@1253..1254 ")"593          COLONCOLON@1254..1256 "::"594          WHITESPACE@1256..1257 " "595          EXPR_BINARY@1257..1280596            LHS_EXPR@1257..1268597              EXPR_APPLY@1257..1268598                EXPR_INDEX@1257..1265599                  EXPR_VAR@1257..1260600                    NAME@1257..1260601                      IDENT@1257..1260 "std"602                  DOT@1260..1261 "."603                  NAME@1261..1265604                    IDENT@1261..1265 "type"605                ARGS_DESC@1265..1268606                  L_PAREN@1265..1266 "("607                  ARG@1266..1267608                    EXPR_VAR@1266..1267609                      NAME@1266..1267610                        IDENT@1266..1267 "v"611                  R_PAREN@1267..1268 ")"612            WHITESPACE@1268..1269 " "613            EQ@1269..1271 "=="614            WHITESPACE@1271..1272 " "615            EXPR_STRING@1272..1280616              STRING_SINGLE@1272..1280 "'string'"617      COMMA@1280..1281 ","618      WHITESPACE@1281..1284 "\n  "619      MEMBER_FIELD@1284..1321620        FIELD_METHOD@1284..1321621          FIELD_NAME_FIXED@1284..1292622            NAME@1284..1292623              IDENT@1284..1292 "isNumber"624          PARAMS_DESC@1292..1295625            L_PAREN@1292..1293 "("626            PARAM@1293..1294627              DESTRUCT_FULL@1293..1294628                NAME@1293..1294629                  IDENT@1293..1294 "v"630            R_PAREN@1294..1295 ")"631          COLONCOLON@1295..1297 "::"632          WHITESPACE@1297..1298 " "633          EXPR_BINARY@1298..1321634            LHS_EXPR@1298..1309635              EXPR_APPLY@1298..1309636                EXPR_INDEX@1298..1306637                  EXPR_VAR@1298..1301638                    NAME@1298..1301639                      IDENT@1298..1301 "std"640                  DOT@1301..1302 "."641                  NAME@1302..1306642                    IDENT@1302..1306 "type"643                ARGS_DESC@1306..1309644                  L_PAREN@1306..1307 "("645                  ARG@1307..1308646                    EXPR_VAR@1307..1308647                      NAME@1307..1308648                        IDENT@1307..1308 "v"649                  R_PAREN@1308..1309 ")"650            WHITESPACE@1309..1310 " "651            EQ@1310..1312 "=="652            WHITESPACE@1312..1313 " "653            EXPR_STRING@1313..1321654              STRING_SINGLE@1313..1321 "'number'"655      COMMA@1321..1322 ","656      WHITESPACE@1322..1325 "\n  "657      MEMBER_FIELD@1325..1364658        FIELD_METHOD@1325..1364659          FIELD_NAME_FIXED@1325..1334660            NAME@1325..1334661              IDENT@1325..1334 "isBoolean"662          PARAMS_DESC@1334..1337663            L_PAREN@1334..1335 "("664            PARAM@1335..1336665              DESTRUCT_FULL@1335..1336666                NAME@1335..1336667                  IDENT@1335..1336 "v"668            R_PAREN@1336..1337 ")"669          COLONCOLON@1337..1339 "::"670          WHITESPACE@1339..1340 " "671          EXPR_BINARY@1340..1364672            LHS_EXPR@1340..1351673              EXPR_APPLY@1340..1351674                EXPR_INDEX@1340..1348675                  EXPR_VAR@1340..1343676                    NAME@1340..1343677                      IDENT@1340..1343 "std"678                  DOT@1343..1344 "."679                  NAME@1344..1348680                    IDENT@1344..1348 "type"681                ARGS_DESC@1348..1351682                  L_PAREN@1348..1349 "("683                  ARG@1349..1350684                    EXPR_VAR@1349..1350685                      NAME@1349..1350686                        IDENT@1349..1350 "v"687                  R_PAREN@1350..1351 ")"688            WHITESPACE@1351..1352 " "689            EQ@1352..1354 "=="690            WHITESPACE@1354..1355 " "691            EXPR_STRING@1355..1364692              STRING_SINGLE@1355..1364 "'boolean'"693      COMMA@1364..1365 ","694      WHITESPACE@1365..1368 "\n  "695      MEMBER_FIELD@1368..1405696        FIELD_METHOD@1368..1405697          FIELD_NAME_FIXED@1368..1376698            NAME@1368..1376699              IDENT@1368..1376 "isObject"700          PARAMS_DESC@1376..1379701            L_PAREN@1376..1377 "("702            PARAM@1377..1378703              DESTRUCT_FULL@1377..1378704                NAME@1377..1378705                  IDENT@1377..1378 "v"706            R_PAREN@1378..1379 ")"707          COLONCOLON@1379..1381 "::"708          WHITESPACE@1381..1382 " "709          EXPR_BINARY@1382..1405710            LHS_EXPR@1382..1393711              EXPR_APPLY@1382..1393712                EXPR_INDEX@1382..1390713                  EXPR_VAR@1382..1385714                    NAME@1382..1385715                      IDENT@1382..1385 "std"716                  DOT@1385..1386 "."717                  NAME@1386..1390718                    IDENT@1386..1390 "type"719                ARGS_DESC@1390..1393720                  L_PAREN@1390..1391 "("721                  ARG@1391..1392722                    EXPR_VAR@1391..1392723                      NAME@1391..1392724                        IDENT@1391..1392 "v"725                  R_PAREN@1392..1393 ")"726            WHITESPACE@1393..1394 " "727            EQ@1394..1396 "=="728            WHITESPACE@1396..1397 " "729            EXPR_STRING@1397..1405730              STRING_SINGLE@1397..1405 "'object'"731      COMMA@1405..1406 ","732      WHITESPACE@1406..1409 "\n  "733      MEMBER_FIELD@1409..1444734        FIELD_METHOD@1409..1444735          FIELD_NAME_FIXED@1409..1416736            NAME@1409..1416737              IDENT@1409..1416 "isArray"738          PARAMS_DESC@1416..1419739            L_PAREN@1416..1417 "("740            PARAM@1417..1418741              DESTRUCT_FULL@1417..1418742                NAME@1417..1418743                  IDENT@1417..1418 "v"744            R_PAREN@1418..1419 ")"745          COLONCOLON@1419..1421 "::"746          WHITESPACE@1421..1422 " "747          EXPR_BINARY@1422..1444748            LHS_EXPR@1422..1433749              EXPR_APPLY@1422..1433750                EXPR_INDEX@1422..1430751                  EXPR_VAR@1422..1425752                    NAME@1422..1425753                      IDENT@1422..1425 "std"754                  DOT@1425..1426 "."755                  NAME@1426..1430756                    IDENT@1426..1430 "type"757                ARGS_DESC@1430..1433758                  L_PAREN@1430..1431 "("759                  ARG@1431..1432760                    EXPR_VAR@1431..1432761                      NAME@1431..1432762                        IDENT@1431..1432 "v"763                  R_PAREN@1432..1433 ")"764            WHITESPACE@1433..1434 " "765            EQ@1434..1436 "=="766            WHITESPACE@1436..1437 " "767            EXPR_STRING@1437..1444768              STRING_SINGLE@1437..1444 "'array'"769      COMMA@1444..1445 ","770      WHITESPACE@1445..1448 "\n  "771      MEMBER_FIELD@1448..1489772        FIELD_METHOD@1448..1489773          FIELD_NAME_FIXED@1448..1458774            NAME@1448..1458775              IDENT@1448..1458 "isFunction"776          PARAMS_DESC@1458..1461777            L_PAREN@1458..1459 "("778            PARAM@1459..1460779              DESTRUCT_FULL@1459..1460780                NAME@1459..1460781                  IDENT@1459..1460 "v"782            R_PAREN@1460..1461 ")"783          COLONCOLON@1461..1463 "::"784          WHITESPACE@1463..1464 " "785          EXPR_BINARY@1464..1489786            LHS_EXPR@1464..1475787              EXPR_APPLY@1464..1475788                EXPR_INDEX@1464..1472789                  EXPR_VAR@1464..1467790                    NAME@1464..1467791                      IDENT@1464..1467 "std"792                  DOT@1467..1468 "."793                  NAME@1468..1472794                    IDENT@1468..1472 "type"795                ARGS_DESC@1472..1475796                  L_PAREN@1472..1473 "("797                  ARG@1473..1474798                    EXPR_VAR@1473..1474799                      NAME@1473..1474800                        IDENT@1473..1474 "v"801                  R_PAREN@1474..1475 ")"802            WHITESPACE@1475..1476 " "803            EQ@1476..1478 "=="804            WHITESPACE@1478..1479 " "805            EXPR_STRING@1479..1489806              STRING_SINGLE@1479..1489 "'function'"807      COMMA@1489..1490 ","808      WHITESPACE@1490..1494 "\n\n  "809      MEMBER_FIELD@1494..1557810        FIELD_METHOD@1494..1557811          FIELD_NAME_FIXED@1494..1502812            NAME@1494..1502813              IDENT@1494..1502 "toString"814          PARAMS_DESC@1502..1505815            L_PAREN@1502..1503 "("816            PARAM@1503..1504817              DESTRUCT_FULL@1503..1504818                NAME@1503..1504819                  IDENT@1503..1504 "a"820            R_PAREN@1504..1505 ")"821          COLONCOLON@1505..1507 "::"822          WHITESPACE@1507..1512 "\n    "823          EXPR_IF_THEN_ELSE@1512..1557824            IF_KW@1512..1514 "if"825            WHITESPACE@1514..1515 " "826            EXPR_BINARY@1515..1538827              LHS_EXPR@1515..1526828                EXPR_APPLY@1515..1526829                  EXPR_INDEX@1515..1523830                    EXPR_VAR@1515..1518831                      NAME@1515..1518832                        IDENT@1515..1518 "std"833                    DOT@1518..1519 "."834                    NAME@1519..1523835                      IDENT@1519..1523 "type"836                  ARGS_DESC@1523..1526837                    L_PAREN@1523..1524 "("838                    ARG@1524..1525839                      EXPR_VAR@1524..1525840                        NAME@1524..1525841                          IDENT@1524..1525 "a"842                    R_PAREN@1525..1526 ")"843              WHITESPACE@1526..1527 " "844              EQ@1527..1529 "=="845              WHITESPACE@1529..1530 " "846              EXPR_STRING@1530..1538847                STRING_SINGLE@1530..1538 "'string'"848            WHITESPACE@1538..1539 " "849            THEN_KW@1539..1543 "then"850            WHITESPACE@1543..1544 " "851            TRUE_EXPR@1544..1545852              EXPR_VAR@1544..1545853                NAME@1544..1545854                  IDENT@1544..1545 "a"855            WHITESPACE@1545..1546 " "856            ELSE_KW@1546..1550 "else"857            WHITESPACE@1550..1551 " "858            FALSE_EXPR@1551..1557859              EXPR_BINARY@1551..1557860                LHS_EXPR@1551..1553861                  EXPR_STRING@1551..1553862                    STRING_SINGLE@1551..1553 "''"863                WHITESPACE@1553..1554 " "864                PLUS@1554..1555 "+"865                WHITESPACE@1555..1556 " "866                EXPR_VAR@1556..1557867                  NAME@1556..1557868                    IDENT@1556..1557 "a"869      COMMA@1557..1558 ","870      WHITESPACE@1558..1562 "\n\n  "871      MEMBER_FIELD@1562..1589872        FIELD_NORMAL@1562..1589873          FIELD_NAME_FIXED@1562..1568874            NAME@1562..1568875              IDENT@1562..1568 "substr"876          COLONCOLON@1568..1570 "::"877          WHITESPACE@1570..1571 " "878          EXPR_INTRINSIC@1571..1589879            INTRINSIC@1571..1581 "$intrinsic"880            L_PAREN@1581..1582 "("881            NAME@1582..1588882              IDENT@1582..1588 "substr"883            R_PAREN@1588..1589 ")"884      COMMA@1589..1590 ","885      WHITESPACE@1590..1594 "\n\n  "886      MEMBER_FIELD@1594..1718887        FIELD_METHOD@1594..1718888          FIELD_NAME_FIXED@1594..1604889            NAME@1594..1604890              IDENT@1594..1604 "startsWith"891          PARAMS_DESC@1604..1610892            L_PAREN@1604..1605 "("893            PARAM@1605..1606894              DESTRUCT_FULL@1605..1606895                NAME@1605..1606896                  IDENT@1605..1606 "a"897            COMMA@1606..1607 ","898            WHITESPACE@1607..1608 " "899            PARAM@1608..1609900              DESTRUCT_FULL@1608..1609901                NAME@1608..1609902                  IDENT@1608..1609 "b"903            R_PAREN@1609..1610 ")"904          COLONCOLON@1610..1612 "::"905          WHITESPACE@1612..1617 "\n    "906          EXPR_IF_THEN_ELSE@1617..1718907            IF_KW@1617..1619 "if"908            WHITESPACE@1619..1620 " "909            EXPR_BINARY@1620..1649910              LHS_EXPR@1620..1633911                EXPR_APPLY@1620..1633912                  EXPR_INDEX@1620..1630913                    EXPR_VAR@1620..1623914                      NAME@1620..1623915                        IDENT@1620..1623 "std"916                    DOT@1623..1624 "."917                    NAME@1624..1630918                      IDENT@1624..1630 "length"919                  ARGS_DESC@1630..1633920                    L_PAREN@1630..1631 "("921                    ARG@1631..1632922                      EXPR_VAR@1631..1632923                        NAME@1631..1632924                          IDENT@1631..1632 "a"925                    R_PAREN@1632..1633 ")"926              WHITESPACE@1633..1634 " "927              LT@1634..1635 "<"928              WHITESPACE@1635..1636 " "929              EXPR_APPLY@1636..1649930                EXPR_INDEX@1636..1646931                  EXPR_VAR@1636..1639932                    NAME@1636..1639933                      IDENT@1636..1639 "std"934                  DOT@1639..1640 "."935                  NAME@1640..1646936                    IDENT@1640..1646 "length"937                ARGS_DESC@1646..1649938                  L_PAREN@1646..1647 "("939                  ARG@1647..1648940                    EXPR_VAR@1647..1648941                      NAME@1647..1648942                        IDENT@1647..1648 "b"943                  R_PAREN@1648..1649 ")"944            WHITESPACE@1649..1650 " "945            THEN_KW@1650..1654 "then"946            WHITESPACE@1654..1661 "\n      "947            TRUE_EXPR@1661..1666948              EXPR_LITERAL@1661..1666949                FALSE_KW@1661..1666 "false"950            WHITESPACE@1666..1671 "\n    "951            ELSE_KW@1671..1675 "else"952            WHITESPACE@1675..1682 "\n      "953            FALSE_EXPR@1682..1718954              EXPR_BINARY@1682..1718955                LHS_EXPR@1682..1713956                  EXPR_APPLY@1682..1713957                    EXPR_INDEX@1682..1692958                      EXPR_VAR@1682..1685959                        NAME@1682..1685960                          IDENT@1682..1685 "std"961                      DOT@1685..1686 "."962                      NAME@1686..1692963                        IDENT@1686..1692 "substr"964                    ARGS_DESC@1692..1713965                      L_PAREN@1692..1693 "("966                      ARG@1693..1694967                        EXPR_VAR@1693..1694968                          NAME@1693..1694969                            IDENT@1693..1694 "a"970                      COMMA@1694..1695 ","971                      WHITESPACE@1695..1696 " "972                      ARG@1696..1697973                        EXPR_NUMBER@1696..1697974                          FLOAT@1696..1697 "0"975                      COMMA@1697..1698 ","976                      WHITESPACE@1698..1699 " "977                      ARG@1699..1712978                        EXPR_APPLY@1699..1712979                          EXPR_INDEX@1699..1709980                            EXPR_VAR@1699..1702981                              NAME@1699..1702982                                IDENT@1699..1702 "std"983                            DOT@1702..1703 "."984                            NAME@1703..1709985                              IDENT@1703..1709 "length"986                          ARGS_DESC@1709..1712987                            L_PAREN@1709..1710 "("988                            ARG@1710..1711989                              EXPR_VAR@1710..1711990                                NAME@1710..1711991                                  IDENT@1710..1711 "b"992                            R_PAREN@1711..1712 ")"993                      R_PAREN@1712..1713 ")"994                WHITESPACE@1713..1714 " "995                EQ@1714..1716 "=="996                WHITESPACE@1716..1717 " "997                EXPR_VAR@1717..1718998                  NAME@1717..1718999                    IDENT@1717..1718 "b"1000      COMMA@1718..1719 ","1001      WHITESPACE@1719..1723 "\n\n  "1002      MEMBER_FIELD@1723..18731003        FIELD_METHOD@1723..18731004          FIELD_NAME_FIXED@1723..17311005            NAME@1723..17311006              IDENT@1723..1731 "endsWith"1007          PARAMS_DESC@1731..17371008            L_PAREN@1731..1732 "("1009            PARAM@1732..17331010              DESTRUCT_FULL@1732..17331011                NAME@1732..17331012                  IDENT@1732..1733 "a"1013            COMMA@1733..1734 ","1014            WHITESPACE@1734..1735 " "1015            PARAM@1735..17361016              DESTRUCT_FULL@1735..17361017                NAME@1735..17361018                  IDENT@1735..1736 "b"1019            R_PAREN@1736..1737 ")"1020          COLONCOLON@1737..1739 "::"1021          WHITESPACE@1739..1744 "\n    "1022          EXPR_IF_THEN_ELSE@1744..18731023            IF_KW@1744..1746 "if"1024            WHITESPACE@1746..1747 " "1025            EXPR_BINARY@1747..17761026              LHS_EXPR@1747..17601027                EXPR_APPLY@1747..17601028                  EXPR_INDEX@1747..17571029                    EXPR_VAR@1747..17501030                      NAME@1747..17501031                        IDENT@1747..1750 "std"1032                    DOT@1750..1751 "."1033                    NAME@1751..17571034                      IDENT@1751..1757 "length"1035                  ARGS_DESC@1757..17601036                    L_PAREN@1757..1758 "("1037                    ARG@1758..17591038                      EXPR_VAR@1758..17591039                        NAME@1758..17591040                          IDENT@1758..1759 "a"1041                    R_PAREN@1759..1760 ")"1042              WHITESPACE@1760..1761 " "1043              LT@1761..1762 "<"1044              WHITESPACE@1762..1763 " "1045              EXPR_APPLY@1763..17761046                EXPR_INDEX@1763..17731047                  EXPR_VAR@1763..17661048                    NAME@1763..17661049                      IDENT@1763..1766 "std"1050                  DOT@1766..1767 "."1051                  NAME@1767..17731052                    IDENT@1767..1773 "length"1053                ARGS_DESC@1773..17761054                  L_PAREN@1773..1774 "("1055                  ARG@1774..17751056                    EXPR_VAR@1774..17751057                      NAME@1774..17751058                        IDENT@1774..1775 "b"1059                  R_PAREN@1775..1776 ")"1060            WHITESPACE@1776..1777 " "1061            THEN_KW@1777..1781 "then"1062            WHITESPACE@1781..1788 "\n      "1063            TRUE_EXPR@1788..17931064              EXPR_LITERAL@1788..17931065                FALSE_KW@1788..1793 "false"1066            WHITESPACE@1793..1798 "\n    "1067            ELSE_KW@1798..1802 "else"1068            WHITESPACE@1802..1809 "\n      "1069            FALSE_EXPR@1809..18731070              EXPR_BINARY@1809..18731071                LHS_EXPR@1809..18681072                  EXPR_APPLY@1809..18681073                    EXPR_INDEX@1809..18191074                      EXPR_VAR@1809..18121075                        NAME@1809..18121076                          IDENT@1809..1812 "std"1077                      DOT@1812..1813 "."1078                      NAME@1813..18191079                        IDENT@1813..1819 "substr"1080                    ARGS_DESC@1819..18681081                      L_PAREN@1819..1820 "("1082                      ARG@1820..18211083                        EXPR_VAR@1820..18211084                          NAME@1820..18211085                            IDENT@1820..1821 "a"1086                      COMMA@1821..1822 ","1087                      WHITESPACE@1822..1823 " "1088                      ARG@1823..18521089                        EXPR_BINARY@1823..18521090                          LHS_EXPR@1823..18361091                            EXPR_APPLY@1823..18361092                              EXPR_INDEX@1823..18331093                                EXPR_VAR@1823..18261094                                  NAME@1823..18261095                                    IDENT@1823..1826 "std"1096                                DOT@1826..1827 "."1097                                NAME@1827..18331098                                  IDENT@1827..1833 "length"1099                              ARGS_DESC@1833..18361100                                L_PAREN@1833..1834 "("1101                                ARG@1834..18351102                                  EXPR_VAR@1834..18351103                                    NAME@1834..18351104                                      IDENT@1834..1835 "a"1105                                R_PAREN@1835..1836 ")"1106                          WHITESPACE@1836..1837 " "1107                          MINUS@1837..1838 "-"1108                          WHITESPACE@1838..1839 " "1109                          EXPR_APPLY@1839..18521110                            EXPR_INDEX@1839..18491111                              EXPR_VAR@1839..18421112                                NAME@1839..18421113                                  IDENT@1839..1842 "std"1114                              DOT@1842..1843 "."1115                              NAME@1843..18491116                                IDENT@1843..1849 "length"1117                            ARGS_DESC@1849..18521118                              L_PAREN@1849..1850 "("1119                              ARG@1850..18511120                                EXPR_VAR@1850..18511121                                  NAME@1850..18511122                                    IDENT@1850..1851 "b"1123                              R_PAREN@1851..1852 ")"1124                      COMMA@1852..1853 ","1125                      WHITESPACE@1853..1854 " "1126                      ARG@1854..18671127                        EXPR_APPLY@1854..18671128                          EXPR_INDEX@1854..18641129                            EXPR_VAR@1854..18571130                              NAME@1854..18571131                                IDENT@1854..1857 "std"1132                            DOT@1857..1858 "."1133                            NAME@1858..18641134                              IDENT@1858..1864 "length"1135                          ARGS_DESC@1864..18671136                            L_PAREN@1864..1865 "("1137                            ARG@1865..18661138                              EXPR_VAR@1865..18661139                                NAME@1865..18661140                                  IDENT@1865..1866 "b"1141                            R_PAREN@1866..1867 ")"1142                      R_PAREN@1867..1868 ")"1143                WHITESPACE@1868..1869 " "1144                EQ@1869..1871 "=="1145                WHITESPACE@1871..1872 " "1146                EXPR_VAR@1872..18731147                  NAME@1872..18731148                    IDENT@1872..1873 "b"1149      COMMA@1873..1874 ","1150      WHITESPACE@1874..1878 "\n\n  "1151      MEMBER_FIELD@1878..20211152        FIELD_METHOD@1878..20211153          FIELD_NAME_FIXED@1878..18891154            NAME@1878..18891155              IDENT@1878..1889 "lstripChars"1156          PARAMS_DESC@1889..19011157            L_PAREN@1889..1890 "("1158            PARAM@1890..18931159              DESTRUCT_FULL@1890..18931160                NAME@1890..18931161                  IDENT@1890..1893 "str"1162            COMMA@1893..1894 ","1163            WHITESPACE@1894..1895 " "1164            PARAM@1895..19001165              DESTRUCT_FULL@1895..19001166                NAME@1895..19001167                  IDENT@1895..1900 "chars"1168            R_PAREN@1900..1901 ")"1169          COLONCOLON@1901..1903 "::"1170          WHITESPACE@1903..1908 "\n    "1171          EXPR_IF_THEN_ELSE@1908..20211172            IF_KW@1908..1910 "if"1173            WHITESPACE@1910..1911 " "1174            EXPR_BINARY@1911..19591175              LHS_EXPR@1911..19301176                EXPR_BINARY@1911..19301177                  LHS_EXPR@1911..19261178                    EXPR_APPLY@1911..19261179                      EXPR_INDEX@1911..19211180                        EXPR_VAR@1911..19141181                          NAME@1911..19141182                            IDENT@1911..1914 "std"1183                        DOT@1914..1915 "."1184                        NAME@1915..19211185                          IDENT@1915..1921 "length"1186                      ARGS_DESC@1921..19261187                        L_PAREN@1921..1922 "("1188                        ARG@1922..19251189                          EXPR_VAR@1922..19251190                            NAME@1922..19251191                              IDENT@1922..1925 "str"1192                        R_PAREN@1925..1926 ")"1193                  WHITESPACE@1926..1927 " "1194                  GT@1927..1928 ">"1195                  WHITESPACE@1928..1929 " "1196                  EXPR_NUMBER@1929..19301197                    FLOAT@1929..1930 "0"1198              WHITESPACE@1930..1931 " "1199              AND@1931..1933 "&&"1200              WHITESPACE@1933..1934 " "1201              EXPR_APPLY@1934..19591202                EXPR_INDEX@1934..19441203                  EXPR_VAR@1934..19371204                    NAME@1934..19371205                      IDENT@1934..1937 "std"1206                  DOT@1937..1938 "."1207                  NAME@1938..19441208                    IDENT@1938..1944 "member"1209                ARGS_DESC@1944..19591210                  L_PAREN@1944..1945 "("1211                  ARG@1945..19501212                    EXPR_VAR@1945..19501213                      NAME@1945..19501214                        IDENT@1945..1950 "chars"1215                  COMMA@1950..1951 ","1216                  WHITESPACE@1951..1952 " "1217                  ARG@1952..19581218                    EXPR_INDEX_EXPR@1952..19581219                      LHS_EXPR@1952..19551220                        EXPR_VAR@1952..19551221                          NAME@1952..19551222                            IDENT@1952..1955 "str"1223                      L_BRACK@1955..1956 "["1224                      EXPR_NUMBER@1956..19571225                        FLOAT@1956..1957 "0"1226                      R_BRACK@1957..1958 "]"1227                  R_PAREN@1958..1959 ")"1228            WHITESPACE@1959..1960 " "1229            THEN_KW@1960..1964 "then"1230            WHITESPACE@1964..1971 "\n      "1231            TRUE_EXPR@1971..20021232              EXPR_APPLY@1971..20021233                EXPR_INDEX@1971..19861234                  EXPR_VAR@1971..19741235                    NAME@1971..19741236                      IDENT@1971..1974 "std"1237                  DOT@1974..1975 "."1238                  NAME@1975..19861239                    IDENT@1975..1986 "lstripChars"1240                ARGS_DESC@1986..20021241                  L_PAREN@1986..1987 "("1242                  ARG@1987..19941243                    EXPR_SLICE@1987..19941244                      EXPR_VAR@1987..19901245                        NAME@1987..19901246                          IDENT@1987..1990 "str"1247                      SLICE_DESC@1990..19941248                        L_BRACK@1990..1991 "["1249                        EXPR_NUMBER@1991..19921250                          FLOAT@1991..1992 "1"1251                        COLON@1992..1993 ":"1252                        R_BRACK@1993..1994 "]"1253                  COMMA@1994..1995 ","1254                  WHITESPACE@1995..1996 " "1255                  ARG@1996..20011256                    EXPR_VAR@1996..20011257                      NAME@1996..20011258                        IDENT@1996..2001 "chars"1259                  R_PAREN@2001..2002 ")"1260            WHITESPACE@2002..2007 "\n    "1261            ELSE_KW@2007..2011 "else"1262            WHITESPACE@2011..2018 "\n      "1263            FALSE_EXPR@2018..20211264              EXPR_VAR@2018..20211265                NAME@2018..20211266                  IDENT@2018..2021 "str"1267      COMMA@2021..2022 ","1268      WHITESPACE@2022..2026 "\n\n  "1269      MEMBER_FIELD@2026..22021270        FIELD_METHOD@2026..22021271          FIELD_NAME_FIXED@2026..20371272            NAME@2026..20371273              IDENT@2026..2037 "rstripChars"1274          PARAMS_DESC@2037..20491275            L_PAREN@2037..2038 "("1276            PARAM@2038..20411277              DESTRUCT_FULL@2038..20411278                NAME@2038..20411279                  IDENT@2038..2041 "str"1280            COMMA@2041..2042 ","1281            WHITESPACE@2042..2043 " "1282            PARAM@2043..20481283              DESTRUCT_FULL@2043..20481284                NAME@2043..20481285                  IDENT@2043..2048 "chars"1286            R_PAREN@2048..2049 ")"1287          COLONCOLON@2049..2051 "::"1288          WHITESPACE@2051..2056 "\n    "1289          EXPR_LOCAL@2056..22021290            LOCAL_KW@2056..2061 "local"1291            WHITESPACE@2061..2062 " "1292            BIND_DESTRUCT@2062..20831293              DESTRUCT_FULL@2062..20651294                NAME@2062..20651295                  IDENT@2062..2065 "len"1296              WHITESPACE@2065..2066 " "1297              ASSIGN@2066..2067 "="1298              WHITESPACE@2067..2068 " "1299              EXPR_APPLY@2068..20831300                EXPR_INDEX@2068..20781301                  EXPR_VAR@2068..20711302                    NAME@2068..20711303                      IDENT@2068..2071 "std"1304                  DOT@2071..2072 "."1305                  NAME@2072..20781306                    IDENT@2072..2078 "length"1307                ARGS_DESC@2078..20831308                  L_PAREN@2078..2079 "("1309                  ARG@2079..20821310                    EXPR_VAR@2079..20821311                      NAME@2079..20821312                        IDENT@2079..2082 "str"1313                  R_PAREN@2082..2083 ")"1314            SEMI@2083..2084 ";"1315            WHITESPACE@2084..2089 "\n    "1316            EXPR_IF_THEN_ELSE@2089..22021317              IF_KW@2089..2091 "if"1318              WHITESPACE@2091..2092 " "1319              EXPR_BINARY@2092..21341320                LHS_EXPR@2092..20991321                  EXPR_BINARY@2092..20991322                    LHS_EXPR@2092..20951323                      EXPR_VAR@2092..20951324                        NAME@2092..20951325                          IDENT@2092..2095 "len"1326                    WHITESPACE@2095..2096 " "1327                    GT@2096..2097 ">"1328                    WHITESPACE@2097..2098 " "1329                    EXPR_NUMBER@2098..20991330                      FLOAT@2098..2099 "0"1331                WHITESPACE@2099..2100 " "1332                AND@2100..2102 "&&"1333                WHITESPACE@2102..2103 " "1334                EXPR_APPLY@2103..21341335                  EXPR_INDEX@2103..21131336                    EXPR_VAR@2103..21061337                      NAME@2103..21061338                        IDENT@2103..2106 "std"1339                    DOT@2106..2107 "."1340                    NAME@2107..21131341                      IDENT@2107..2113 "member"1342                  ARGS_DESC@2113..21341343                    L_PAREN@2113..2114 "("1344                    ARG@2114..21191345                      EXPR_VAR@2114..21191346                        NAME@2114..21191347                          IDENT@2114..2119 "chars"1348                    COMMA@2119..2120 ","1349                    WHITESPACE@2120..2121 " "1350                    ARG@2121..21331351                      EXPR_INDEX_EXPR@2121..21331352                        LHS_EXPR@2121..21241353                          EXPR_VAR@2121..21241354                            NAME@2121..21241355                              IDENT@2121..2124 "str"1356                        L_BRACK@2124..2125 "["1357                        EXPR_BINARY@2125..21321358                          LHS_EXPR@2125..21281359                            EXPR_VAR@2125..21281360                              NAME@2125..21281361                                IDENT@2125..2128 "len"1362                          WHITESPACE@2128..2129 " "1363                          MINUS@2129..2130 "-"1364                          WHITESPACE@2130..2131 " "1365                          EXPR_NUMBER@2131..21321366                            FLOAT@2131..2132 "1"1367                        R_BRACK@2132..2133 "]"1368                    R_PAREN@2133..2134 ")"1369              WHITESPACE@2134..2135 " "1370              THEN_KW@2135..2139 "then"1371              WHITESPACE@2139..2146 "\n      "1372              TRUE_EXPR@2146..21831373                EXPR_APPLY@2146..21831374                  EXPR_INDEX@2146..21611375                    EXPR_VAR@2146..21491376                      NAME@2146..21491377                        IDENT@2146..2149 "std"1378                    DOT@2149..2150 "."1379                    NAME@2150..21611380                      IDENT@2150..2161 "rstripChars"1381                  ARGS_DESC@2161..21831382                    L_PAREN@2161..2162 "("1383                    ARG@2162..21751384                      EXPR_SLICE@2162..21751385                        EXPR_VAR@2162..21651386                          NAME@2162..21651387                            IDENT@2162..2165 "str"1388                        SLICE_DESC@2165..21751389                          L_BRACK@2165..2166 "["1390                          COLON@2166..2167 ":"1391                          SLICE_DESC_END@2167..21741392                            EXPR_BINARY@2167..21741393                              LHS_EXPR@2167..21701394                                EXPR_VAR@2167..21701395                                  NAME@2167..21701396                                    IDENT@2167..2170 "len"1397                              WHITESPACE@2170..2171 " "1398                              MINUS@2171..2172 "-"1399                              WHITESPACE@2172..2173 " "1400                              EXPR_NUMBER@2173..21741401                                FLOAT@2173..2174 "1"1402                          R_BRACK@2174..2175 "]"1403                    COMMA@2175..2176 ","1404                    WHITESPACE@2176..2177 " "1405                    ARG@2177..21821406                      EXPR_VAR@2177..21821407                        NAME@2177..21821408                          IDENT@2177..2182 "chars"1409                    R_PAREN@2182..2183 ")"1410              WHITESPACE@2183..2188 "\n    "1411              ELSE_KW@2188..2192 "else"1412              WHITESPACE@2192..2199 "\n      "1413              FALSE_EXPR@2199..22021414                EXPR_VAR@2199..22021415                  NAME@2199..22021416                    IDENT@2199..2202 "str"1417      COMMA@2202..2203 ","1418      WHITESPACE@2203..2207 "\n\n  "1419      MEMBER_FIELD@2207..22871420        FIELD_METHOD@2207..22871421          FIELD_NAME_FIXED@2207..22171422            NAME@2207..22171423              IDENT@2207..2217 "stripChars"1424          PARAMS_DESC@2217..22291425            L_PAREN@2217..2218 "("1426            PARAM@2218..22211427              DESTRUCT_FULL@2218..22211428                NAME@2218..22211429                  IDENT@2218..2221 "str"1430            COMMA@2221..2222 ","1431            WHITESPACE@2222..2223 " "1432            PARAM@2223..22281433              DESTRUCT_FULL@2223..22281434                NAME@2223..22281435                  IDENT@2223..2228 "chars"1436            R_PAREN@2228..2229 ")"1437          COLONCOLON@2229..2231 "::"1438          WHITESPACE@2231..2236 "\n    "1439          EXPR_APPLY@2236..22871440            EXPR_INDEX@2236..22511441              EXPR_VAR@2236..22391442                NAME@2236..22391443                  IDENT@2236..2239 "std"1444              DOT@2239..2240 "."1445              NAME@2240..22511446                IDENT@2240..2251 "lstripChars"1447            ARGS_DESC@2251..22871448              L_PAREN@2251..2252 "("1449              ARG@2252..22791450                EXPR_APPLY@2252..22791451                  EXPR_INDEX@2252..22671452                    EXPR_VAR@2252..22551453                      NAME@2252..22551454                        IDENT@2252..2255 "std"1455                    DOT@2255..2256 "."1456                    NAME@2256..22671457                      IDENT@2256..2267 "rstripChars"1458                  ARGS_DESC@2267..22791459                    L_PAREN@2267..2268 "("1460                    ARG@2268..22711461                      EXPR_VAR@2268..22711462                        NAME@2268..22711463                          IDENT@2268..2271 "str"1464                    COMMA@2271..2272 ","1465                    WHITESPACE@2272..2273 " "1466                    ARG@2273..22781467                      EXPR_VAR@2273..22781468                        NAME@2273..22781469                          IDENT@2273..2278 "chars"1470                    R_PAREN@2278..2279 ")"1471              COMMA@2279..2280 ","1472              WHITESPACE@2280..2281 " "1473              ARG@2281..22861474                EXPR_VAR@2281..22861475                  NAME@2281..22861476                    IDENT@2281..2286 "chars"1477              R_PAREN@2286..2287 ")"1478      COMMA@2287..2288 ","1479      WHITESPACE@2288..2292 "\n\n  "1480      MEMBER_FIELD@2292..23651481        FIELD_METHOD@2292..23651482          FIELD_NAME_FIXED@2292..23031483            NAME@2292..23031484              IDENT@2292..2303 "stringChars"1485          PARAMS_DESC@2303..23081486            L_PAREN@2303..2304 "("1487            PARAM@2304..23071488              DESTRUCT_FULL@2304..23071489                NAME@2304..23071490                  IDENT@2304..2307 "str"1491            R_PAREN@2307..2308 ")"1492          COLONCOLON@2308..2310 "::"1493          WHITESPACE@2310..2315 "\n    "1494          EXPR_APPLY@2315..23651495            EXPR_INDEX@2315..23281496              EXPR_VAR@2315..23181497                NAME@2315..23181498                  IDENT@2315..2318 "std"1499              DOT@2318..2319 "."1500              NAME@2319..23281501                IDENT@2319..2328 "makeArray"1502            ARGS_DESC@2328..23651503              L_PAREN@2328..2329 "("1504              ARG@2329..23441505                EXPR_APPLY@2329..23441506                  EXPR_INDEX@2329..23391507                    EXPR_VAR@2329..23321508                      NAME@2329..23321509                        IDENT@2329..2332 "std"1510                    DOT@2332..2333 "."1511                    NAME@2333..23391512                      IDENT@2333..2339 "length"1513                  ARGS_DESC@2339..23441514                    L_PAREN@2339..2340 "("1515                    ARG@2340..23431516                      EXPR_VAR@2340..23431517                        NAME@2340..23431518                          IDENT@2340..2343 "str"1519                    R_PAREN@2343..2344 ")"1520              COMMA@2344..2345 ","1521              WHITESPACE@2345..2346 " "1522              ARG@2346..23641523                EXPR_FUNCTION@2346..23641524                  FUNCTION_KW@2346..2354 "function"1525                  PARAMS_DESC@2354..23571526                    L_PAREN@2354..2355 "("1527                    PARAM@2355..23561528                      DESTRUCT_FULL@2355..23561529                        NAME@2355..23561530                          IDENT@2355..2356 "i"1531                    R_PAREN@2356..2357 ")"1532                  WHITESPACE@2357..2358 " "1533                  EXPR_INDEX_EXPR@2358..23641534                    LHS_EXPR@2358..23611535                      EXPR_VAR@2358..23611536                        NAME@2358..23611537                          IDENT@2358..2361 "str"1538                    L_BRACK@2361..2362 "["1539                    EXPR_VAR@2362..23631540                      NAME@2362..23631541                        IDENT@2362..2363 "i"1542                    R_BRACK@2363..2364 "]"1543              R_PAREN@2364..2365 ")"1544      COMMA@2365..2366 ","1545      WHITESPACE@2366..2370 "\n\n  "1546      MEMBER_BIND_STMT@2370..30861547        OBJ_LOCAL@2370..30861548          LOCAL_KW@2370..2375 "local"1549          WHITESPACE@2375..2376 " "1550          BIND_FUNCTION@2376..30861551            NAME@2376..23851552              IDENT@2376..2385 "parse_nat"1553            PARAMS_DESC@2385..23961554              L_PAREN@2385..2386 "("1555              PARAM@2386..23891556                DESTRUCT_FULL@2386..23891557                  NAME@2386..23891558                    IDENT@2386..2389 "str"1559              COMMA@2389..2390 ","1560              WHITESPACE@2390..2391 " "1561              PARAM@2391..23951562                DESTRUCT_FULL@2391..23951563                  NAME@2391..23951564                    IDENT@2391..2395 "base"1565              R_PAREN@2395..2396 ")"1566            WHITESPACE@2396..2397 " "1567            ASSIGN@2397..2398 "="1568            WHITESPACE@2398..2403 "\n    "1569            EXPR_ASSERT@2403..30861570              ASSERTION@2403..24671571                ASSERT_KW@2403..2409 "assert"1572                WHITESPACE@2409..2410 " "1573                LHS_EXPR@2410..24321574                  EXPR_BINARY@2410..24321575                    LHS_EXPR@2410..24181576                      EXPR_BINARY@2410..24181577                        LHS_EXPR@2410..24141578                          EXPR_VAR@2410..24141579                            NAME@2410..24141580                              IDENT@2410..2414 "base"1581                        WHITESPACE@2414..2415 " "1582                        GT@2415..2416 ">"1583                        WHITESPACE@2416..2417 " "1584                        EXPR_NUMBER@2417..24181585                          FLOAT@2417..2418 "0"1586                    WHITESPACE@2418..2419 " "1587                    AND@2419..2421 "&&"1588                    WHITESPACE@2421..2422 " "1589                    EXPR_BINARY@2422..24321590                      LHS_EXPR@2422..24261591                        EXPR_VAR@2422..24261592                          NAME@2422..24261593                            IDENT@2422..2426 "base"1594                      WHITESPACE@2426..2427 " "1595                      LE@2427..2429 "<="1596                      WHITESPACE@2429..2430 " "1597                      EXPR_NUMBER@2430..24321598                        FLOAT@2430..2432 "16"1599                WHITESPACE@2432..2433 " "1600                COLON@2433..2434 ":"1601                WHITESPACE@2434..2435 " "1602                EXPR_BINARY@2435..24671603                  LHS_EXPR@2435..24601604                    EXPR_STRING@2435..24601605                      STRING_SINGLE@2435..2460 "'integer base %d inva ..."1606                  WHITESPACE@2460..2461 " "1607                  MODULO@2461..2462 "%"1608                  WHITESPACE@2462..2463 " "1609                  EXPR_VAR@2463..24671610                    NAME@2463..24671611                      IDENT@2463..2467 "base"1612              SEMI@2467..2468 ";"1613              WHITESPACE@2468..2473 "\n    "1614              SINGLE_LINE_SLASH_COMMENT@2473..2517 "// These codepoints a ..."1615              WHITESPACE@2517..2521 "    "1616              EXPR_LOCAL@2521..30861617                LOCAL_KW@2521..2526 "local"1618                WHITESPACE@2526..2527 " "1619                BIND_DESTRUCT@2527..25571620                  DESTRUCT_FULL@2527..25361621                    NAME@2527..25361622                      IDENT@2527..2536 "zero_code"1623                  WHITESPACE@2536..2537 " "1624                  ASSIGN@2537..2538 "="1625                  WHITESPACE@2538..2539 " "1626                  EXPR_APPLY@2539..25571627                    EXPR_INDEX@2539..25521628                      EXPR_VAR@2539..25421629                        NAME@2539..25421630                          IDENT@2539..2542 "std"1631                      DOT@2542..2543 "."1632                      NAME@2543..25521633                        IDENT@2543..2552 "codepoint"1634                    ARGS_DESC@2552..25571635                      L_PAREN@2552..2553 "("1636                      ARG@2553..25561637                        EXPR_STRING@2553..25561638                          STRING_SINGLE@2553..2556 "'0'"1639                      R_PAREN@2556..2557 ")"1640                SEMI@2557..2558 ";"1641                WHITESPACE@2558..2563 "\n    "1642                EXPR_LOCAL@2563..30861643                  LOCAL_KW@2563..2568 "local"1644                  WHITESPACE@2568..2569 " "1645                  BIND_DESTRUCT@2569..26021646                    DESTRUCT_FULL@2569..25811647                      NAME@2569..25811648                        IDENT@2569..2581 "upper_a_code"1649                    WHITESPACE@2581..2582 " "1650                    ASSIGN@2582..2583 "="1651                    WHITESPACE@2583..2584 " "1652                    EXPR_APPLY@2584..26021653                      EXPR_INDEX@2584..25971654                        EXPR_VAR@2584..25871655                          NAME@2584..25871656                            IDENT@2584..2587 "std"1657                        DOT@2587..2588 "."1658                        NAME@2588..25971659                          IDENT@2588..2597 "codepoint"1660                      ARGS_DESC@2597..26021661                        L_PAREN@2597..2598 "("1662                        ARG@2598..26011663                          EXPR_STRING@2598..26011664                            STRING_SINGLE@2598..2601 "'A'"1665                        R_PAREN@2601..2602 ")"1666                  SEMI@2602..2603 ";"1667                  WHITESPACE@2603..2608 "\n    "1668                  EXPR_LOCAL@2608..30861669                    LOCAL_KW@2608..2613 "local"1670                    WHITESPACE@2613..2614 " "1671                    BIND_DESTRUCT@2614..26471672                      DESTRUCT_FULL@2614..26261673                        NAME@2614..26261674                          IDENT@2614..2626 "lower_a_code"1675                      WHITESPACE@2626..2627 " "1676                      ASSIGN@2627..2628 "="1677                      WHITESPACE@2628..2629 " "1678                      EXPR_APPLY@2629..26471679                        EXPR_INDEX@2629..26421680                          EXPR_VAR@2629..26321681                            NAME@2629..26321682                              IDENT@2629..2632 "std"1683                          DOT@2632..2633 "."1684                          NAME@2633..26421685                            IDENT@2633..2642 "codepoint"1686                        ARGS_DESC@2642..26471687                          L_PAREN@2642..2643 "("1688                          ARG@2643..26461689                            EXPR_STRING@2643..26461690                              STRING_SINGLE@2643..2646 "'a'"1691                          R_PAREN@2646..2647 ")"1692                    SEMI@2647..2648 ";"1693                    WHITESPACE@2648..2653 "\n    "1694                    EXPR_LOCAL@2653..30861695                      LOCAL_KW@2653..2658 "local"1696                      WHITESPACE@2658..2659 " "1697                      BIND_FUNCTION@2659..30361698                        NAME@2659..26671699                          IDENT@2659..2667 "addDigit"1700                        PARAMS_DESC@2667..26841701                          L_PAREN@2667..2668 "("1702                          PARAM@2668..26771703                            DESTRUCT_FULL@2668..26771704                              NAME@2668..26771705                                IDENT@2668..2677 "aggregate"1706                          COMMA@2677..2678 ","1707                          WHITESPACE@2678..2679 " "1708                          PARAM@2679..26831709                            DESTRUCT_FULL@2679..26831710                              NAME@2679..26831711                                IDENT@2679..2683 "char"1712                          R_PAREN@2683..2684 ")"1713                        WHITESPACE@2684..2685 " "1714                        ASSIGN@2685..2686 "="1715                        WHITESPACE@2686..2693 "\n      "1716                        EXPR_LOCAL@2693..30361717                          LOCAL_KW@2693..2698 "local"1718                          WHITESPACE@2698..2699 " "1719                          BIND_DESTRUCT@2699..27251720                            DESTRUCT_FULL@2699..27031721                              NAME@2699..27031722                                IDENT@2699..2703 "code"1723                            WHITESPACE@2703..2704 " "1724                            ASSIGN@2704..2705 "="1725                            WHITESPACE@2705..2706 " "1726                            EXPR_APPLY@2706..27251727                              EXPR_INDEX@2706..27191728                                EXPR_VAR@2706..27091729                                  NAME@2706..27091730                                    IDENT@2706..2709 "std"1731                                DOT@2709..2710 "."1732                                NAME@2710..27191733                                  IDENT@2710..2719 "codepoint"1734                              ARGS_DESC@2719..27251735                                L_PAREN@2719..2720 "("1736                                ARG@2720..27241737                                  EXPR_VAR@2720..27241738                                    NAME@2720..27241739                                      IDENT@2720..2724 "char"1740                                R_PAREN@2724..2725 ")"1741                          SEMI@2725..2726 ";"1742                          WHITESPACE@2726..2733 "\n      "1743                          EXPR_LOCAL@2733..30361744                            LOCAL_KW@2733..2738 "local"1745                            WHITESPACE@2738..2739 " "1746                            BIND_DESTRUCT@2739..29171747                              DESTRUCT_FULL@2739..27441748                                NAME@2739..27441749                                  IDENT@2739..2744 "digit"1750                              WHITESPACE@2744..2745 " "1751                              ASSIGN@2745..2746 "="1752                              WHITESPACE@2746..2747 " "1753                              EXPR_IF_THEN_ELSE@2747..29171754                                IF_KW@2747..2749 "if"1755                                WHITESPACE@2749..2750 " "1756                                EXPR_BINARY@2750..27701757                                  LHS_EXPR@2750..27541758                                    EXPR_VAR@2750..27541759                                      NAME@2750..27541760                                        IDENT@2750..2754 "code"1761                                  WHITESPACE@2754..2755 " "1762                                  GE@2755..2757 ">="1763                                  WHITESPACE@2757..2758 " "1764                                  EXPR_VAR@2758..27701765                                    NAME@2758..27701766                                      IDENT@2758..2770 "lower_a_code"1767                                WHITESPACE@2770..2771 " "1768                                THEN_KW@2771..2775 "then"1769                                WHITESPACE@2775..2784 "\n        "1770                                TRUE_EXPR@2784..28081771                                  EXPR_BINARY@2784..28081772                                    LHS_EXPR@2784..28031773                                      EXPR_BINARY@2784..28031774                                        LHS_EXPR@2784..27881775                                          EXPR_VAR@2784..27881776                                            NAME@2784..27881777                                              IDENT@2784..2788 "code"1778                                        WHITESPACE@2788..2789 " "1779                                        MINUS@2789..2790 "-"1780                                        WHITESPACE@2790..2791 " "1781                                        EXPR_VAR@2791..28031782                                          NAME@2791..28031783                                            IDENT@2791..2803 "lower_a_code"1784                                    WHITESPACE@2803..2804 " "1785                                    PLUS@2804..2805 "+"1786                                    WHITESPACE@2805..2806 " "1787                                    EXPR_NUMBER@2806..28081788                                      FLOAT@2806..2808 "10"1789                                WHITESPACE@2808..2815 "\n      "1790                                ELSE_KW@2815..2819 "else"1791                                WHITESPACE@2819..2820 " "1792                                FALSE_EXPR@2820..29171793                                  EXPR_IF_THEN_ELSE@2820..29171794                                    IF_KW@2820..2822 "if"1795                                    WHITESPACE@2822..2823 " "1796                                    EXPR_BINARY@2823..28431797                                      LHS_EXPR@2823..28271798                                        EXPR_VAR@2823..28271799                                          NAME@2823..28271800                                            IDENT@2823..2827 "code"1801                                      WHITESPACE@2827..2828 " "1802                                      GE@2828..2830 ">="1803                                      WHITESPACE@2830..2831 " "1804                                      EXPR_VAR@2831..28431805                                        NAME@2831..28431806                                          IDENT@2831..2843 "upper_a_code"1807                                    WHITESPACE@2843..2844 " "1808                                    THEN_KW@2844..2848 "then"1809                                    WHITESPACE@2848..2857 "\n        "1810                                    TRUE_EXPR@2857..28811811                                      EXPR_BINARY@2857..28811812                                        LHS_EXPR@2857..28761813                                          EXPR_BINARY@2857..28761814                                            LHS_EXPR@2857..28611815                                              EXPR_VAR@2857..28611816                                                NAME@2857..28611817                                                  IDENT@2857..2861 "code"1818                                            WHITESPACE@2861..2862 " "1819                                            MINUS@2862..2863 "-"1820                                            WHITESPACE@2863..2864 " "1821                                            EXPR_VAR@2864..28761822                                              NAME@2864..28761823                                                IDENT@2864..2876 "upper_a_code"1824                                        WHITESPACE@2876..2877 " "1825                                        PLUS@2877..2878 "+"1826                                        WHITESPACE@2878..2879 " "1827                                        EXPR_NUMBER@2879..28811828                                          FLOAT@2879..2881 "10"1829                                    WHITESPACE@2881..2888 "\n      "1830                                    ELSE_KW@2888..2892 "else"1831                                    WHITESPACE@2892..2901 "\n        "1832                                    FALSE_EXPR@2901..29171833                                      EXPR_BINARY@2901..29171834                                        LHS_EXPR@2901..29051835                                          EXPR_VAR@2901..29051836                                            NAME@2901..29051837                                              IDENT@2901..2905 "code"1838                                        WHITESPACE@2905..2906 " "1839                                        MINUS@2906..2907 "-"1840                                        WHITESPACE@2907..2908 " "1841                                        EXPR_VAR@2908..29171842                                          NAME@2908..29171843                                            IDENT@2908..2917 "zero_code"1844                            SEMI@2917..2918 ";"1845                            WHITESPACE@2918..2925 "\n      "1846                            EXPR_ASSERT@2925..30361847                              ASSERTION@2925..30041848                                ASSERT_KW@2925..2931 "assert"1849                                WHITESPACE@2931..2932 " "1850                                LHS_EXPR@2932..29581851                                  EXPR_BINARY@2932..29581852                                    LHS_EXPR@2932..29421853                                      EXPR_BINARY@2932..29421854                                        LHS_EXPR@2932..29371855                                          EXPR_VAR@2932..29371856                                            NAME@2932..29371857                                              IDENT@2932..2937 "digit"1858                                        WHITESPACE@2937..2938 " "1859                                        GE@2938..2940 ">="1860                                        WHITESPACE@2940..2941 " "1861                                        EXPR_NUMBER@2941..29421862                                          FLOAT@2941..2942 "0"1863                                    WHITESPACE@2942..2943 " "1864                                    AND@2943..2945 "&&"1865                                    WHITESPACE@2945..2946 " "1866                                    EXPR_BINARY@2946..29581867                                      LHS_EXPR@2946..29511868                                        EXPR_VAR@2946..29511869                                          NAME@2946..29511870                                            IDENT@2946..2951 "digit"1871                                      WHITESPACE@2951..2952 " "1872                                      LT@2952..2953 "<"1873                                      WHITESPACE@2953..2954 " "1874                                      EXPR_VAR@2954..29581875                                        NAME@2954..29581876                                          IDENT@2954..2958 "base"1877                                WHITESPACE@2958..2959 " "1878                                COLON@2959..2960 ":"1879                                WHITESPACE@2960..2961 " "1880                                EXPR_BINARY@2961..30041881                                  LHS_EXPR@2961..29901882                                    EXPR_STRING@2961..29901883                                      STRING_SINGLE@2961..2990 "'%s is not a base %d  ..."1884                                  WHITESPACE@2990..2991 " "1885                                  MODULO@2991..2992 "%"1886                                  WHITESPACE@2992..2993 " "1887                                  EXPR_ARRAY@2993..30041888                                    L_BRACK@2993..2994 "["1889                                    EXPR_VAR@2994..29971890                                      NAME@2994..29971891                                        IDENT@2994..2997 "str"1892                                    COMMA@2997..2998 ","1893                                    WHITESPACE@2998..2999 " "1894                                    EXPR_VAR@2999..30031895                                      NAME@2999..30031896                                        IDENT@2999..3003 "base"1897                                    R_BRACK@3003..3004 "]"1898                              SEMI@3004..3005 ";"1899                              WHITESPACE@3005..3012 "\n      "1900                              EXPR_BINARY@3012..30361901                                LHS_EXPR@3012..30281902                                  EXPR_BINARY@3012..30281903                                    LHS_EXPR@3012..30161904                                      EXPR_VAR@3012..30161905                                        NAME@3012..30161906                                          IDENT@3012..3016 "base"1907                                    WHITESPACE@3016..3017 " "1908                                    MUL@3017..3018 "*"1909                                    WHITESPACE@3018..3019 " "1910                                    EXPR_VAR@3019..30281911                                      NAME@3019..30281912                                        IDENT@3019..3028 "aggregate"1913                                WHITESPACE@3028..3029 " "1914                                PLUS@3029..3030 "+"1915                                WHITESPACE@3030..3031 " "1916                                EXPR_VAR@3031..30361917                                  NAME@3031..30361918                                    IDENT@3031..3036 "digit"1919                      SEMI@3036..3037 ";"1920                      WHITESPACE@3037..3042 "\n    "1921                      EXPR_APPLY@3042..30861922                        EXPR_INDEX@3042..30511923                          EXPR_VAR@3042..30451924                            NAME@3042..30451925                              IDENT@3042..3045 "std"1926                          DOT@3045..3046 "."1927                          NAME@3046..30511928                            IDENT@3046..3051 "foldl"1929                        ARGS_DESC@3051..30861930                          L_PAREN@3051..3052 "("1931                          ARG@3052..30601932                            EXPR_VAR@3052..30601933                              NAME@3052..30601934                                IDENT@3052..3060 "addDigit"1935                          COMMA@3060..3061 ","1936                          WHITESPACE@3061..3062 " "1937                          ARG@3062..30821938                            EXPR_APPLY@3062..30821939                              EXPR_INDEX@3062..30771940                                EXPR_VAR@3062..30651941                                  NAME@3062..30651942                                    IDENT@3062..3065 "std"1943                                DOT@3065..3066 "."1944                                NAME@3066..30771945                                  IDENT@3066..3077 "stringChars"1946                              ARGS_DESC@3077..30821947                                L_PAREN@3077..3078 "("1948                                ARG@3078..30811949                                  EXPR_VAR@3078..30811950                                    NAME@3078..30811951                                      IDENT@3078..3081 "str"1952                                R_PAREN@3081..3082 ")"1953                          COMMA@3082..3083 ","1954                          WHITESPACE@3083..3084 " "1955                          ARG@3084..30851956                            EXPR_NUMBER@3084..30851957                              FLOAT@3084..3085 "0"1958                          R_PAREN@3085..3086 ")"1959      COMMA@3086..3087 ","1960      WHITESPACE@3087..3091 "\n\n  "1961      MEMBER_FIELD@3091..33471962        FIELD_METHOD@3091..33471963          FIELD_NAME_FIXED@3091..30991964            NAME@3091..30991965              IDENT@3091..3099 "parseInt"1966          PARAMS_DESC@3099..31041967            L_PAREN@3099..3100 "("1968            PARAM@3100..31031969              DESTRUCT_FULL@3100..31031970                NAME@3100..31031971                  IDENT@3100..3103 "str"1972            R_PAREN@3103..3104 ")"1973          COLONCOLON@3104..3106 "::"1974          WHITESPACE@3106..3111 "\n    "1975          EXPR_ASSERT@3111..33471976            ASSERTION@3111..31771977              ASSERT_KW@3111..3117 "assert"1978              WHITESPACE@3117..3118 " "1979              LHS_EXPR@3118..31351980                EXPR_APPLY@3118..31351981                  EXPR_INDEX@3118..31301982                    EXPR_VAR@3118..31211983                      NAME@3118..31211984                        IDENT@3118..3121 "std"1985                    DOT@3121..3122 "."1986                    NAME@3122..31301987                      IDENT@3122..3130 "isString"1988                  ARGS_DESC@3130..31351989                    L_PAREN@3130..3131 "("1990                    ARG@3131..31341991                      EXPR_VAR@3131..31341992                        NAME@3131..31341993                          IDENT@3131..3134 "str"1994                    R_PAREN@3134..3135 ")"1995              WHITESPACE@3135..3136 " "1996              COLON@3136..3137 ":"1997              WHITESPACE@3137..3138 " "1998              EXPR_BINARY@3138..31771999                LHS_EXPR@3138..31612000                  EXPR_STRING@3138..31612001                    STRING_SINGLE@3138..3161 "'Expected string, got '"2002                WHITESPACE@3161..3162 " "2003                PLUS@3162..3163 "+"2004                WHITESPACE@3163..3164 " "2005                EXPR_APPLY@3164..31772006                  EXPR_INDEX@3164..31722007                    EXPR_VAR@3164..31672008                      NAME@3164..31672009                        IDENT@3164..3167 "std"2010                    DOT@3167..3168 "."2011                    NAME@3168..31722012                      IDENT@3168..3172 "type"2013                  ARGS_DESC@3172..31772014                    L_PAREN@3172..3173 "("2015                    ARG@3173..31762016                      EXPR_VAR@3173..31762017                        NAME@3173..31762018                          IDENT@3173..3176 "str"2019                    R_PAREN@3176..3177 ")"2020            SEMI@3177..3178 ";"2021            WHITESPACE@3178..3183 "\n    "2022            EXPR_ASSERT@3183..33472023              ASSERTION@3183..32562024                ASSERT_KW@3183..3189 "assert"2025                WHITESPACE@3189..3190 " "2026                LHS_EXPR@3190..32232027                  EXPR_BINARY@3190..32232028                    LHS_EXPR@3190..32092029                      EXPR_BINARY@3190..32092030                        LHS_EXPR@3190..32052031                          EXPR_APPLY@3190..32052032                            EXPR_INDEX@3190..32002033                              EXPR_VAR@3190..31932034                                NAME@3190..31932035                                  IDENT@3190..3193 "std"2036                              DOT@3193..3194 "."2037                              NAME@3194..32002038                                IDENT@3194..3200 "length"2039                            ARGS_DESC@3200..32052040                              L_PAREN@3200..3201 "("2041                              ARG@3201..32042042                                EXPR_VAR@3201..32042043                                  NAME@3201..32042044                                    IDENT@3201..3204 "str"2045                              R_PAREN@3204..3205 ")"2046                        WHITESPACE@3205..3206 " "2047                        GT@3206..3207 ">"2048                        WHITESPACE@3207..3208 " "2049                        EXPR_NUMBER@3208..32092050                          FLOAT@3208..3209 "0"2051                    WHITESPACE@3209..3210 " "2052                    AND@3210..3212 "&&"2053                    WHITESPACE@3212..3213 " "2054                    EXPR_BINARY@3213..32232055                      LHS_EXPR@3213..32162056                        EXPR_VAR@3213..32162057                          NAME@3213..32162058                            IDENT@3213..3216 "str"2059                      WHITESPACE@3216..3217 " "2060                      NE@3217..3219 "!="2061                      WHITESPACE@3219..3220 " "2062                      EXPR_STRING@3220..32232063                        STRING_SINGLE@3220..3223 "'-'"2064                WHITESPACE@3223..3224 " "2065                COLON@3224..3225 ":"2066                WHITESPACE@3225..3226 " "2067                EXPR_BINARY@3226..32562068                  LHS_EXPR@3226..32482069                    EXPR_STRING@3226..32482070                      STRING_SINGLE@3226..3248 "'Not an integer: \"%s\"'"2071                  WHITESPACE@3248..3249 " "2072                  MODULO@3249..3250 "%"2073                  WHITESPACE@3250..3251 " "2074                  EXPR_ARRAY@3251..32562075                    L_BRACK@3251..3252 "["2076                    EXPR_VAR@3252..32552077                      NAME@3252..32552078                        IDENT@3252..3255 "str"2079                    R_BRACK@3255..3256 "]"2080              SEMI@3256..3257 ";"2081              WHITESPACE@3257..3262 "\n    "2082              EXPR_IF_THEN_ELSE@3262..33472083                IF_KW@3262..3264 "if"2084                WHITESPACE@3264..3265 " "2085                EXPR_BINARY@3265..32782086                  LHS_EXPR@3265..32712087                    EXPR_INDEX_EXPR@3265..32712088                      LHS_EXPR@3265..32682089                        EXPR_VAR@3265..32682090                          NAME@3265..32682091                            IDENT@3265..3268 "str"2092                      L_BRACK@3268..3269 "["2093                      EXPR_NUMBER@3269..32702094                        FLOAT@3269..3270 "0"2095                      R_BRACK@3270..3271 "]"2096                  WHITESPACE@3271..3272 " "2097                  EQ@3272..3274 "=="2098                  WHITESPACE@3274..3275 " "2099                  EXPR_STRING@3275..32782100                    STRING_SINGLE@3275..3278 "'-'"2101                WHITESPACE@3278..3279 " "2102                THEN_KW@3279..3283 "then"2103                WHITESPACE@3283..3290 "\n      "2104                TRUE_EXPR@3290..33132105                  EXPR_UNARY@3290..33132106                    MINUS@3290..3291 "-"2107                    EXPR_APPLY@3291..33132108                      EXPR_VAR@3291..33002109                        NAME@3291..33002110                          IDENT@3291..3300 "parse_nat"2111                      ARGS_DESC@3300..33132112                        L_PAREN@3300..3301 "("2113                        ARG@3301..33082114                          EXPR_SLICE@3301..33082115                            EXPR_VAR@3301..33042116                              NAME@3301..33042117                                IDENT@3301..3304 "str"2118                            SLICE_DESC@3304..33082119                              L_BRACK@3304..3305 "["2120                              EXPR_NUMBER@3305..33062121                                FLOAT@3305..3306 "1"2122                              COLON@3306..3307 ":"2123                              R_BRACK@3307..3308 "]"2124                        COMMA@3308..3309 ","2125                        WHITESPACE@3309..3310 " "2126                        ARG@3310..33122127                          EXPR_NUMBER@3310..33122128                            FLOAT@3310..3312 "10"2129                        R_PAREN@3312..3313 ")"2130                WHITESPACE@3313..3318 "\n    "2131                ELSE_KW@3318..3322 "else"2132                WHITESPACE@3322..3329 "\n      "2133                FALSE_EXPR@3329..33472134                  EXPR_APPLY@3329..33472135                    EXPR_VAR@3329..33382136                      NAME@3329..33382137                        IDENT@3329..3338 "parse_nat"2138                    ARGS_DESC@3338..33472139                      L_PAREN@3338..3339 "("2140                      ARG@3339..33422141                        EXPR_VAR@3339..33422142                          NAME@3339..33422143                            IDENT@3339..3342 "str"2144                      COMMA@3342..3343 ","2145                      WHITESPACE@3343..3344 " "2146                      ARG@3344..33462147                        EXPR_NUMBER@3344..33462148                          FLOAT@3344..3346 "10"2149                      R_PAREN@3346..3347 ")"2150      COMMA@3347..3348 ","2151      WHITESPACE@3348..3352 "\n\n  "2152      MEMBER_FIELD@3352..35232153        FIELD_METHOD@3352..35232154          FIELD_NAME_FIXED@3352..33622155            NAME@3352..33622156              IDENT@3352..3362 "parseOctal"2157          PARAMS_DESC@3362..33672158            L_PAREN@3362..3363 "("2159            PARAM@3363..33662160              DESTRUCT_FULL@3363..33662161                NAME@3363..33662162                  IDENT@3363..3366 "str"2163            R_PAREN@3366..3367 ")"2164          COLONCOLON@3367..3369 "::"2165          WHITESPACE@3369..3374 "\n    "2166          EXPR_ASSERT@3374..35232167            ASSERTION@3374..34402168              ASSERT_KW@3374..3380 "assert"2169              WHITESPACE@3380..3381 " "2170              LHS_EXPR@3381..33982171                EXPR_APPLY@3381..33982172                  EXPR_INDEX@3381..33932173                    EXPR_VAR@3381..33842174                      NAME@3381..33842175                        IDENT@3381..3384 "std"2176                    DOT@3384..3385 "."2177                    NAME@3385..33932178                      IDENT@3385..3393 "isString"2179                  ARGS_DESC@3393..33982180                    L_PAREN@3393..3394 "("2181                    ARG@3394..33972182                      EXPR_VAR@3394..33972183                        NAME@3394..33972184                          IDENT@3394..3397 "str"2185                    R_PAREN@3397..3398 ")"2186              WHITESPACE@3398..3399 " "2187              COLON@3399..3400 ":"2188              WHITESPACE@3400..3401 " "2189              EXPR_BINARY@3401..34402190                LHS_EXPR@3401..34242191                  EXPR_STRING@3401..34242192                    STRING_SINGLE@3401..3424 "'Expected string, got '"2193                WHITESPACE@3424..3425 " "2194                PLUS@3425..3426 "+"2195                WHITESPACE@3426..3427 " "2196                EXPR_APPLY@3427..34402197                  EXPR_INDEX@3427..34352198                    EXPR_VAR@3427..34302199                      NAME@3427..34302200                        IDENT@3427..3430 "std"2201                    DOT@3430..3431 "."2202                    NAME@3431..34352203                      IDENT@3431..3435 "type"2204                  ARGS_DESC@3435..34402205                    L_PAREN@3435..3436 "("2206                    ARG@3436..34392207                      EXPR_VAR@3436..34392208                        NAME@3436..34392209                          IDENT@3436..3439 "str"2210                    R_PAREN@3439..3440 ")"2211            SEMI@3440..3441 ";"2212            WHITESPACE@3441..3446 "\n    "2213            EXPR_ASSERT@3446..35232214              ASSERTION@3446..35002215                ASSERT_KW@3446..3452 "assert"2216                WHITESPACE@3452..3453 " "2217                LHS_EXPR@3453..34722218                  EXPR_BINARY@3453..34722219                    LHS_EXPR@3453..34682220                      EXPR_APPLY@3453..34682221                        EXPR_INDEX@3453..34632222                          EXPR_VAR@3453..34562223                            NAME@3453..34562224                              IDENT@3453..3456 "std"2225                          DOT@3456..3457 "."2226                          NAME@3457..34632227                            IDENT@3457..3463 "length"2228                        ARGS_DESC@3463..34682229                          L_PAREN@3463..3464 "("2230                          ARG@3464..34672231                            EXPR_VAR@3464..34672232                              NAME@3464..34672233                                IDENT@3464..3467 "str"2234                          R_PAREN@3467..3468 ")"2235                    WHITESPACE@3468..3469 " "2236                    GT@3469..3470 ">"2237                    WHITESPACE@3470..3471 " "2238                    EXPR_NUMBER@3471..34722239                      FLOAT@3471..3472 "0"2240                WHITESPACE@3472..3473 " "2241                COLON@3473..3474 ":"2242                WHITESPACE@3474..3475 " "2243                EXPR_STRING@3475..35002244                  STRING_SINGLE@3475..3500 "'Not an octal number: ..."2245              SEMI@3500..3501 ";"2246              WHITESPACE@3501..3506 "\n    "2247              EXPR_APPLY@3506..35232248                EXPR_VAR@3506..35152249                  NAME@3506..35152250                    IDENT@3506..3515 "parse_nat"2251                ARGS_DESC@3515..35232252                  L_PAREN@3515..3516 "("2253                  ARG@3516..35192254                    EXPR_VAR@3516..35192255                      NAME@3516..35192256                        IDENT@3516..3519 "str"2257                  COMMA@3519..3520 ","2258                  WHITESPACE@3520..3521 " "2259                  ARG@3521..35222260                    EXPR_NUMBER@3521..35222261                      FLOAT@3521..3522 "8"2262                  R_PAREN@3522..3523 ")"2263      COMMA@3523..3524 ","2264      WHITESPACE@3524..3528 "\n\n  "2265      MEMBER_FIELD@3528..36942266        FIELD_METHOD@3528..36942267          FIELD_NAME_FIXED@3528..35362268            NAME@3528..35362269              IDENT@3528..3536 "parseHex"2270          PARAMS_DESC@3536..35412271            L_PAREN@3536..3537 "("2272            PARAM@3537..35402273              DESTRUCT_FULL@3537..35402274                NAME@3537..35402275                  IDENT@3537..3540 "str"2276            R_PAREN@3540..3541 ")"2277          COLONCOLON@3541..3543 "::"2278          WHITESPACE@3543..3548 "\n    "2279          EXPR_ASSERT@3548..36942280            ASSERTION@3548..36142281              ASSERT_KW@3548..3554 "assert"2282              WHITESPACE@3554..3555 " "2283              LHS_EXPR@3555..35722284                EXPR_APPLY@3555..35722285                  EXPR_INDEX@3555..35672286                    EXPR_VAR@3555..35582287                      NAME@3555..35582288                        IDENT@3555..3558 "std"2289                    DOT@3558..3559 "."2290                    NAME@3559..35672291                      IDENT@3559..3567 "isString"2292                  ARGS_DESC@3567..35722293                    L_PAREN@3567..3568 "("2294                    ARG@3568..35712295                      EXPR_VAR@3568..35712296                        NAME@3568..35712297                          IDENT@3568..3571 "str"2298                    R_PAREN@3571..3572 ")"2299              WHITESPACE@3572..3573 " "2300              COLON@3573..3574 ":"2301              WHITESPACE@3574..3575 " "2302              EXPR_BINARY@3575..36142303                LHS_EXPR@3575..35982304                  EXPR_STRING@3575..35982305                    STRING_SINGLE@3575..3598 "'Expected string, got '"2306                WHITESPACE@3598..3599 " "2307                PLUS@3599..3600 "+"2308                WHITESPACE@3600..3601 " "2309                EXPR_APPLY@3601..36142310                  EXPR_INDEX@3601..36092311                    EXPR_VAR@3601..36042312                      NAME@3601..36042313                        IDENT@3601..3604 "std"2314                    DOT@3604..3605 "."2315                    NAME@3605..36092316                      IDENT@3605..3609 "type"2317                  ARGS_DESC@3609..36142318                    L_PAREN@3609..3610 "("2319                    ARG@3610..36132320                      EXPR_VAR@3610..36132321                        NAME@3610..36132322                          IDENT@3610..3613 "str"2323                    R_PAREN@3613..3614 ")"2324            SEMI@3614..3615 ";"2325            WHITESPACE@3615..3620 "\n    "2326            EXPR_ASSERT@3620..36942327              ASSERTION@3620..36702328                ASSERT_KW@3620..3626 "assert"2329                WHITESPACE@3626..3627 " "2330                LHS_EXPR@3627..36462331                  EXPR_BINARY@3627..36462332                    LHS_EXPR@3627..36422333                      EXPR_APPLY@3627..36422334                        EXPR_INDEX@3627..36372335                          EXPR_VAR@3627..36302336                            NAME@3627..36302337                              IDENT@3627..3630 "std"2338                          DOT@3630..3631 "."2339                          NAME@3631..36372340                            IDENT@3631..3637 "length"2341                        ARGS_DESC@3637..36422342                          L_PAREN@3637..3638 "("2343                          ARG@3638..36412344                            EXPR_VAR@3638..36412345                              NAME@3638..36412346                                IDENT@3638..3641 "str"2347                          R_PAREN@3641..3642 ")"2348                    WHITESPACE@3642..3643 " "2349                    GT@3643..3644 ">"2350                    WHITESPACE@3644..3645 " "2351                    EXPR_NUMBER@3645..36462352                      FLOAT@3645..3646 "0"2353                WHITESPACE@3646..3647 " "2354                COLON@3647..3648 ":"2355                WHITESPACE@3648..3649 " "2356                EXPR_STRING@3649..36702357                  STRING_SINGLE@3649..3670 "'Not hexadecimal: \"\"'"2358              SEMI@3670..3671 ";"2359              WHITESPACE@3671..3676 "\n    "2360              EXPR_APPLY@3676..36942361                EXPR_VAR@3676..36852362                  NAME@3676..36852363                    IDENT@3676..3685 "parse_nat"2364                ARGS_DESC@3685..36942365                  L_PAREN@3685..3686 "("2366                  ARG@3686..36892367                    EXPR_VAR@3686..36892368                      NAME@3686..36892369                        IDENT@3686..3689 "str"2370                  COMMA@3689..3690 ","2371                  WHITESPACE@3690..3691 " "2372                  ARG@3691..36932373                    EXPR_NUMBER@3691..36932374                      FLOAT@3691..3693 "16"2375                  R_PAREN@3693..3694 ")"2376      COMMA@3694..3695 ","2377      WHITESPACE@3695..3699 "\n\n  "2378      MEMBER_FIELD@3699..37412379        FIELD_METHOD@3699..37412380          FIELD_NAME_FIXED@3699..37042381            NAME@3699..37042382              IDENT@3699..3704 "split"2383          PARAMS_DESC@3704..37122384            L_PAREN@3704..3705 "("2385            PARAM@3705..37082386              DESTRUCT_FULL@3705..37082387                NAME@3705..37082388                  IDENT@3705..3708 "str"2389            COMMA@3708..3709 ","2390            WHITESPACE@3709..3710 " "2391            PARAM@3710..37112392              DESTRUCT_FULL@3710..37112393                NAME@3710..37112394                  IDENT@3710..3711 "c"2395            R_PAREN@3711..3712 ")"2396          COLONCOLON@3712..3714 "::"2397          WHITESPACE@3714..3715 " "2398          EXPR_APPLY@3715..37412399            EXPR_INDEX@3715..37292400              EXPR_VAR@3715..37182401                NAME@3715..37182402                  IDENT@3715..3718 "std"2403              DOT@3718..3719 "."2404              NAME@3719..37292405                IDENT@3719..3729 "splitLimit"2406            ARGS_DESC@3729..37412407              L_PAREN@3729..3730 "("2408              ARG@3730..37332409                EXPR_VAR@3730..37332410                  NAME@3730..37332411                    IDENT@3730..3733 "str"2412              COMMA@3733..3734 ","2413              WHITESPACE@3734..3735 " "2414              ARG@3735..37362415                EXPR_VAR@3735..37362416                  NAME@3735..37362417                    IDENT@3735..3736 "c"2418              COMMA@3736..3737 ","2419              WHITESPACE@3737..3738 " "2420              ARG@3738..37402421                EXPR_UNARY@3738..37402422                  MINUS@3738..3739 "-"2423                  EXPR_NUMBER@3739..37402424                    FLOAT@3739..3740 "1"2425              R_PAREN@3740..3741 ")"2426      COMMA@3741..3742 ","2427      WHITESPACE@3742..3746 "\n\n  "2428      MEMBER_FIELD@3746..37812429        FIELD_NORMAL@3746..37812430          FIELD_NAME_FIXED@3746..37562431            NAME@3746..37562432              IDENT@3746..3756 "splitLimit"2433          COLONCOLON@3756..3758 "::"2434          WHITESPACE@3758..3759 " "2435          EXPR_INTRINSIC@3759..37812436            INTRINSIC@3759..3769 "$intrinsic"2437            L_PAREN@3769..3770 "("2438            NAME@3770..37802439              IDENT@3770..3780 "splitLimit"2440            R_PAREN@3780..3781 ")"2441      COMMA@3781..3782 ","2442      WHITESPACE@3782..3786 "\n\n  "2443      MEMBER_FIELD@3786..38212444        FIELD_NORMAL@3786..38212445          FIELD_NAME_FIXED@3786..37962446            NAME@3786..37962447              IDENT@3786..3796 "strReplace"2448          COLONCOLON@3796..3798 "::"2449          WHITESPACE@3798..3799 " "2450          EXPR_INTRINSIC@3799..38212451            INTRINSIC@3799..3809 "$intrinsic"2452            L_PAREN@3809..3810 "("2453            NAME@3810..38202454              IDENT@3810..3820 "strReplace"2455            R_PAREN@3820..3821 ")"2456      COMMA@3821..3822 ","2457      WHITESPACE@3822..3826 "\n\n  "2458      MEMBER_FIELD@3826..38612459        FIELD_NORMAL@3826..38612460          FIELD_NAME_FIXED@3826..38362461            NAME@3826..38362462              IDENT@3826..3836 "asciiUpper"2463          COLONCOLON@3836..3838 "::"2464          WHITESPACE@3838..3839 " "2465          EXPR_INTRINSIC@3839..38612466            INTRINSIC@3839..3849 "$intrinsic"2467            L_PAREN@3849..3850 "("2468            NAME@3850..38602469              IDENT@3850..3860 "asciiUpper"2470            R_PAREN@3860..3861 ")"2471      COMMA@3861..3862 ","2472      WHITESPACE@3862..3866 "\n\n  "2473      MEMBER_FIELD@3866..39012474        FIELD_NORMAL@3866..39012475          FIELD_NAME_FIXED@3866..38762476            NAME@3866..38762477              IDENT@3866..3876 "asciiLower"2478          COLONCOLON@3876..3878 "::"2479          WHITESPACE@3878..3879 " "2480          EXPR_INTRINSIC@3879..39012481            INTRINSIC@3879..3889 "$intrinsic"2482            L_PAREN@3889..3890 "("2483            NAME@3890..39002484              IDENT@3890..3900 "asciiLower"2485            R_PAREN@3900..3901 ")"2486      COMMA@3901..3902 ","2487      WHITESPACE@3902..3906 "\n\n  "2488      MEMBER_FIELD@3906..39312489        FIELD_NORMAL@3906..39312490          FIELD_NAME_FIXED@3906..39112491            NAME@3906..39112492              IDENT@3906..3911 "range"2493          COLONCOLON@3911..3913 "::"2494          WHITESPACE@3913..3914 " "2495          EXPR_INTRINSIC@3914..39312496            INTRINSIC@3914..3924 "$intrinsic"2497            L_PAREN@3924..3925 "("2498            NAME@3925..39302499              IDENT@3925..3930 "range"2500            R_PAREN@3930..3931 ")"2501      COMMA@3931..3932 ","2502      WHITESPACE@3932..3936 "\n\n  "2503      MEMBER_FIELD@3936..41882504        FIELD_METHOD@3936..41882505          FIELD_NAME_FIXED@3936..39422506            NAME@3936..39422507              IDENT@3936..3942 "repeat"2508          PARAMS_DESC@3942..39552509            L_PAREN@3942..3943 "("2510            PARAM@3943..39472511              DESTRUCT_FULL@3943..39472512                NAME@3943..39472513                  IDENT@3943..3947 "what"2514            COMMA@3947..3948 ","2515            WHITESPACE@3948..3949 " "2516            PARAM@3949..39542517              DESTRUCT_FULL@3949..39542518                NAME@3949..39542519                  IDENT@3949..3954 "count"2520            R_PAREN@3954..3955 ")"2521          COLONCOLON@3955..3957 "::"2522          WHITESPACE@3957..3962 "\n    "2523          EXPR_LOCAL@3962..41882524            LOCAL_KW@3962..3967 "local"2525            WHITESPACE@3967..3968 " "2526            BIND_DESTRUCT@3968..41262527              DESTRUCT_FULL@3968..39742528                NAME@3968..39742529                  IDENT@3968..3974 "joiner"2530              WHITESPACE@3974..3975 " "2531              ASSIGN@3975..3976 "="2532              WHITESPACE@3976..3983 "\n      "2533              EXPR_IF_THEN_ELSE@3983..41262534                IF_KW@3983..3985 "if"2535                WHITESPACE@3985..3986 " "2536                EXPR_APPLY@3986..40042537                  EXPR_INDEX@3986..39982538                    EXPR_VAR@3986..39892539                      NAME@3986..39892540                        IDENT@3986..3989 "std"2541                    DOT@3989..3990 "."2542                    NAME@3990..39982543                      IDENT@3990..3998 "isString"2544                  ARGS_DESC@3998..40042545                    L_PAREN@3998..3999 "("2546                    ARG@3999..40032547                      EXPR_VAR@3999..40032548                        NAME@3999..40032549                          IDENT@3999..4003 "what"2550                    R_PAREN@4003..4004 ")"2551                WHITESPACE@4004..4005 " "2552                THEN_KW@4005..4009 "then"2553                WHITESPACE@4009..4010 " "2554                TRUE_EXPR@4010..40122555                  EXPR_STRING@4010..40122556                    STRING_SINGLE@4010..4012 "''"2557                WHITESPACE@4012..4019 "\n      "2558                ELSE_KW@4019..4023 "else"2559                WHITESPACE@4023..4024 " "2560                FALSE_EXPR@4024..41262561                  EXPR_IF_THEN_ELSE@4024..41262562                    IF_KW@4024..4026 "if"2563                    WHITESPACE@4026..4027 " "2564                    EXPR_APPLY@4027..40442565                      EXPR_INDEX@4027..40382566                        EXPR_VAR@4027..40302567                          NAME@4027..40302568                            IDENT@4027..4030 "std"2569                        DOT@4030..4031 "."2570                        NAME@4031..40382571                          IDENT@4031..4038 "isArray"2572                      ARGS_DESC@4038..40442573                        L_PAREN@4038..4039 "("2574                        ARG@4039..40432575                          EXPR_VAR@4039..40432576                            NAME@4039..40432577                              IDENT@4039..4043 "what"2578                        R_PAREN@4043..4044 ")"2579                    WHITESPACE@4044..4045 " "2580                    THEN_KW@4045..4049 "then"2581                    WHITESPACE@4049..4050 " "2582                    TRUE_EXPR@4050..40522583                      EXPR_ARRAY@4050..40522584                        L_BRACK@4050..4051 "["2585                        R_BRACK@4051..4052 "]"2586                    WHITESPACE@4052..4059 "\n      "2587                    ELSE_KW@4059..4063 "else"2588                    WHITESPACE@4063..4064 " "2589                    FALSE_EXPR@4064..41262590                      EXPR_ERROR@4064..41262591                        ERROR_KW@4064..4069 "error"2592                        WHITESPACE@4069..4070 " "2593                        EXPR_STRING@4070..41262594                          STRING_SINGLE@4070..4126 "'std.repeat first arg ..."2595            SEMI@4126..4127 ";"2596            WHITESPACE@4127..4132 "\n    "2597            EXPR_APPLY@4132..41882598              EXPR_INDEX@4132..41402599                EXPR_VAR@4132..41352600                  NAME@4132..41352601                    IDENT@4132..4135 "std"2602                DOT@4135..4136 "."2603                NAME@4136..41402604                  IDENT@4136..4140 "join"2605              ARGS_DESC@4140..41882606                L_PAREN@4140..4141 "("2607                ARG@4141..41472608                  EXPR_VAR@4141..41472609                    NAME@4141..41472610                      IDENT@4141..4147 "joiner"2611                COMMA@4147..4148 ","2612                WHITESPACE@4148..4149 " "2613                ARG@4149..41872614                  EXPR_APPLY@4149..41872615                    EXPR_INDEX@4149..41622616                      EXPR_VAR@4149..41522617                        NAME@4149..41522618                          IDENT@4149..4152 "std"2619                      DOT@4152..4153 "."2620                      NAME@4153..41622621                        IDENT@4153..4162 "makeArray"2622                    ARGS_DESC@4162..41872623                      L_PAREN@4162..4163 "("2624                      ARG@4163..41682625                        EXPR_VAR@4163..41682626                          NAME@4163..41682627                            IDENT@4163..4168 "count"2628                      COMMA@4168..4169 ","2629                      WHITESPACE@4169..4170 " "2630                      ARG@4170..41862631                        EXPR_FUNCTION@4170..41862632                          FUNCTION_KW@4170..4178 "function"2633                          PARAMS_DESC@4178..41812634                            L_PAREN@4178..4179 "("2635                            PARAM@4179..41802636                              DESTRUCT_FULL@4179..41802637                                NAME@4179..41802638                                  IDENT@4179..4180 "i"2639                            R_PAREN@4180..4181 ")"2640                          WHITESPACE@4181..4182 " "2641                          EXPR_VAR@4182..41862642                            NAME@4182..41862643                              IDENT@4182..4186 "what"2644                      R_PAREN@4186..4187 ")"2645                R_PAREN@4187..4188 ")"2646      COMMA@4188..4189 ","2647      WHITESPACE@4189..4193 "\n\n  "2648      MEMBER_FIELD@4193..42182649        FIELD_NORMAL@4193..42182650          FIELD_NAME_FIXED@4193..41982651            NAME@4193..41982652              IDENT@4193..4198 "slice"2653          COLONCOLON@4198..4200 "::"2654          WHITESPACE@4200..4201 " "2655          EXPR_INTRINSIC@4201..42182656            INTRINSIC@4201..4211 "$intrinsic"2657            L_PAREN@4211..4212 "("2658            NAME@4212..42172659              IDENT@4212..4217 "slice"2660            R_PAREN@4217..4218 ")"2661      COMMA@4218..4219 ","2662      WHITESPACE@4219..4223 "\n\n  "2663      MEMBER_FIELD@4223..42502664        FIELD_NORMAL@4223..42502665          FIELD_NAME_FIXED@4223..42292666            NAME@4223..42292667              IDENT@4223..4229 "member"2668          COLONCOLON@4229..4231 "::"2669          WHITESPACE@4231..4232 " "2670          EXPR_INTRINSIC@4232..42502671            INTRINSIC@4232..4242 "$intrinsic"2672            L_PAREN@4242..4243 "("2673            NAME@4243..42492674              IDENT@4243..4249 "member"2675            R_PAREN@4249..4250 ")"2676      COMMA@4250..4251 ","2677      WHITESPACE@4251..4255 "\n\n  "2678      MEMBER_FIELD@4255..42802679        FIELD_NORMAL@4255..42802680          FIELD_NAME_FIXED@4255..42602681            NAME@4255..42602682              IDENT@4255..4260 "count"2683          COLONCOLON@4260..4262 "::"2684          WHITESPACE@4262..4263 " "2685          EXPR_INTRINSIC@4263..42802686            INTRINSIC@4263..4273 "$intrinsic"2687            L_PAREN@4273..4274 "("2688            NAME@4274..42792689              IDENT@4274..4279 "count"2690            R_PAREN@4279..4280 ")"2691      COMMA@4280..4281 ","2692      WHITESPACE@4281..4285 "\n\n  "2693      MEMBER_FIELD@4285..43062694        FIELD_NORMAL@4285..43062695          FIELD_NAME_FIXED@4285..42882696            NAME@4285..42882697              IDENT@4285..4288 "mod"2698          COLONCOLON@4288..4290 "::"2699          WHITESPACE@4290..4291 " "2700          EXPR_INTRINSIC@4291..43062701            INTRINSIC@4291..4301 "$intrinsic"2702            L_PAREN@4301..4302 "("2703            NAME@4302..43052704              IDENT@4302..4305 "mod"2705            R_PAREN@4305..4306 ")"2706      COMMA@4306..4307 ","2707      WHITESPACE@4307..4311 "\n\n  "2708      MEMBER_FIELD@4311..43322709        FIELD_NORMAL@4311..43322710          FIELD_NAME_FIXED@4311..43142711            NAME@4311..43142712              IDENT@4311..4314 "map"2713          COLONCOLON@4314..4316 "::"2714          WHITESPACE@4316..4317 " "2715          EXPR_INTRINSIC@4317..43322716            INTRINSIC@4317..4327 "$intrinsic"2717            L_PAREN@4327..4328 "("2718            NAME@4328..43312719              IDENT@4328..4331 "map"2720            R_PAREN@4331..4332 ")"2721      COMMA@4332..4333 ","2722      WHITESPACE@4333..4337 "\n\n  "2723      MEMBER_FIELD@4337..46952724        FIELD_METHOD@4337..46952725          FIELD_NAME_FIXED@4337..43492726            NAME@4337..43492727              IDENT@4337..4349 "mapWithIndex"2728          PARAMS_DESC@4349..43602729            L_PAREN@4349..4350 "("2730            PARAM@4350..43542731              DESTRUCT_FULL@4350..43542732                NAME@4350..43542733                  IDENT@4350..4354 "func"2734            COMMA@4354..4355 ","2735            WHITESPACE@4355..4356 " "2736            PARAM@4356..43592737              DESTRUCT_FULL@4356..43592738                NAME@4356..43592739                  IDENT@4356..4359 "arr"2740            R_PAREN@4359..4360 ")"2741          COLONCOLON@4360..4362 "::"2742          WHITESPACE@4362..4367 "\n    "2743          EXPR_IF_THEN_ELSE@4367..46952744            IF_KW@4367..4369 "if"2745            WHITESPACE@4369..4370 " "2746            EXPR_UNARY@4370..43912747              NOT@4370..4371 "!"2748              EXPR_APPLY@4371..43912749                EXPR_INDEX@4371..43852750                  EXPR_VAR@4371..43742751                    NAME@4371..43742752                      IDENT@4371..4374 "std"2753                  DOT@4374..4375 "."2754                  NAME@4375..43852755                    IDENT@4375..4385 "isFunction"2756                ARGS_DESC@4385..43912757                  L_PAREN@4385..4386 "("2758                  ARG@4386..43902759                    EXPR_VAR@4386..43902760                      NAME@4386..43902761                        IDENT@4386..4390 "func"2762                  R_PAREN@4390..4391 ")"2763            WHITESPACE@4391..4392 " "2764            THEN_KW@4392..4396 "then"2765            WHITESPACE@4396..4403 "\n      "2766            TRUE_EXPR@4403..44812767              EXPR_ERROR@4403..44812768                ERROR_KW@4403..4408 "error"2769                WHITESPACE@4408..4409 " "2770                EXPR_PARENED@4409..44812771                  L_PAREN@4409..4410 "("2772                  EXPR_BINARY@4410..44802773                    LHS_EXPR@4410..44632774                      EXPR_STRING@4410..44632775                        STRING_SINGLE@4410..4463 "'std.mapWithIndex fir ..."2776                    WHITESPACE@4463..4464 " "2777                    PLUS@4464..4465 "+"2778                    WHITESPACE@4465..4466 " "2779                    EXPR_APPLY@4466..44802780                      EXPR_INDEX@4466..44742781                        EXPR_VAR@4466..44692782                          NAME@4466..44692783                            IDENT@4466..4469 "std"2784                        DOT@4469..4470 "."2785                        NAME@4470..44742786                          IDENT@4470..4474 "type"2787                      ARGS_DESC@4474..44802788                        L_PAREN@4474..4475 "("2789                        ARG@4475..44792790                          EXPR_VAR@4475..44792791                            NAME@4475..44792792                              IDENT@4475..4479 "func"2793                        R_PAREN@4479..4480 ")"2794                  R_PAREN@4480..4481 ")"2795            WHITESPACE@4481..4486 "\n    "2796            ELSE_KW@4486..4490 "else"2797            WHITESPACE@4490..4491 " "2798            FALSE_EXPR@4491..46952799              EXPR_IF_THEN_ELSE@4491..46952800                IF_KW@4491..4493 "if"2801                WHITESPACE@4493..4494 " "2802                EXPR_BINARY@4494..45332803                  LHS_EXPR@4494..45112804                    EXPR_UNARY@4494..45112805                      NOT@4494..4495 "!"2806                      EXPR_APPLY@4495..45112807                        EXPR_INDEX@4495..45062808                          EXPR_VAR@4495..44982809                            NAME@4495..44982810                              IDENT@4495..4498 "std"2811                          DOT@4498..4499 "."2812                          NAME@4499..45062813                            IDENT@4499..4506 "isArray"2814                        ARGS_DESC@4506..45112815                          L_PAREN@4506..4507 "("2816                          ARG@4507..45102817                            EXPR_VAR@4507..45102818                              NAME@4507..45102819                                IDENT@4507..4510 "arr"2820                          R_PAREN@4510..4511 ")"2821                  WHITESPACE@4511..4512 " "2822                  AND@4512..4514 "&&"2823                  WHITESPACE@4514..4515 " "2824                  EXPR_UNARY@4515..45332825                    NOT@4515..4516 "!"2826                    EXPR_APPLY@4516..45332827                      EXPR_INDEX@4516..45282828                        EXPR_VAR@4516..45192829                          NAME@4516..45192830                            IDENT@4516..4519 "std"2831                        DOT@4519..4520 "."2832                        NAME@4520..45282833                          IDENT@4520..4528 "isString"2834                      ARGS_DESC@4528..45332835                        L_PAREN@4528..4529 "("2836                        ARG@4529..45322837                          EXPR_VAR@4529..45322838                            NAME@4529..45322839                              IDENT@4529..4532 "arr"2840                        R_PAREN@4532..4533 ")"2841                WHITESPACE@4533..4534 " "2842                THEN_KW@4534..4538 "then"2843                WHITESPACE@4538..4545 "\n      "2844                TRUE_EXPR@4545..46202845                  EXPR_ERROR@4545..46202846                    ERROR_KW@4545..4550 "error"2847                    WHITESPACE@4550..4551 " "2848                    EXPR_PARENED@4551..46202849                      L_PAREN@4551..4552 "("2850                      EXPR_BINARY@4552..46192851                        LHS_EXPR@4552..46032852                          EXPR_STRING@4552..46032853                            STRING_SINGLE@4552..4603 "'std.mapWithIndex sec ..."2854                        WHITESPACE@4603..4604 " "2855                        PLUS@4604..4605 "+"2856                        WHITESPACE@4605..4606 " "2857                        EXPR_APPLY@4606..46192858                          EXPR_INDEX@4606..46142859                            EXPR_VAR@4606..46092860                              NAME@4606..46092861                                IDENT@4606..4609 "std"2862                            DOT@4609..4610 "."2863                            NAME@4610..46142864                              IDENT@4610..4614 "type"2865                          ARGS_DESC@4614..46192866                            L_PAREN@4614..4615 "("2867                            ARG@4615..46182868                              EXPR_VAR@4615..46182869                                NAME@4615..46182870                                  IDENT@4615..4618 "arr"2871                            R_PAREN@4618..4619 ")"2872                      R_PAREN@4619..4620 ")"2873                WHITESPACE@4620..4625 "\n    "2874                ELSE_KW@4625..4629 "else"2875                WHITESPACE@4629..4636 "\n      "2876                FALSE_EXPR@4636..46952877                  EXPR_APPLY@4636..46952878                    EXPR_INDEX@4636..46492879                      EXPR_VAR@4636..46392880                        NAME@4636..46392881                          IDENT@4636..4639 "std"2882                      DOT@4639..4640 "."2883                      NAME@4640..46492884                        IDENT@4640..4649 "makeArray"2885                    ARGS_DESC@4649..46952886                      L_PAREN@4649..4650 "("2887                      ARG@4650..46652888                        EXPR_APPLY@4650..46652889                          EXPR_INDEX@4650..46602890                            EXPR_VAR@4650..46532891                              NAME@4650..46532892                                IDENT@4650..4653 "std"2893                            DOT@4653..4654 "."2894                            NAME@4654..46602895                              IDENT@4654..4660 "length"2896                          ARGS_DESC@4660..46652897                            L_PAREN@4660..4661 "("2898                            ARG@4661..46642899                              EXPR_VAR@4661..46642900                                NAME@4661..46642901                                  IDENT@4661..4664 "arr"2902                            R_PAREN@4664..4665 ")"2903                      COMMA@4665..4666 ","2904                      WHITESPACE@4666..4667 " "2905                      ARG@4667..46942906                        EXPR_FUNCTION@4667..46942907                          FUNCTION_KW@4667..4675 "function"2908                          PARAMS_DESC@4675..46782909                            L_PAREN@4675..4676 "("2910                            PARAM@4676..46772911                              DESTRUCT_FULL@4676..46772912                                NAME@4676..46772913                                  IDENT@4676..4677 "i"2914                            R_PAREN@4677..4678 ")"2915                          WHITESPACE@4678..4679 " "2916                          EXPR_APPLY@4679..46942917                            EXPR_VAR@4679..46832918                              NAME@4679..46832919                                IDENT@4679..4683 "func"2920                            ARGS_DESC@4683..46942921                              L_PAREN@4683..4684 "("2922                              ARG@4684..46852923                                EXPR_VAR@4684..46852924                                  NAME@4684..46852925                                    IDENT@4684..4685 "i"2926                              COMMA@4685..4686 ","2927                              WHITESPACE@4686..4687 " "2928                              ARG@4687..46932929                                EXPR_INDEX_EXPR@4687..46932930                                  LHS_EXPR@4687..46902931                                    EXPR_VAR@4687..46902932                                      NAME@4687..46902933                                        IDENT@4687..4690 "arr"2934                                  L_BRACK@4690..4691 "["2935                                  EXPR_VAR@4691..46922936                                    NAME@4691..46922937                                      IDENT@4691..4692 "i"2938                                  R_BRACK@4692..4693 "]"2939                              R_PAREN@4693..4694 ")"2940                      R_PAREN@4694..4695 ")"2941      COMMA@4695..4696 ","2942      WHITESPACE@4696..4700 "\n\n  "2943      MEMBER_FIELD@4700..50282944        FIELD_METHOD@4700..50282945          FIELD_NAME_FIXED@4700..47102946            NAME@4700..47102947              IDENT@4700..4710 "mapWithKey"2948          PARAMS_DESC@4710..47212949            L_PAREN@4710..4711 "("2950            PARAM@4711..47152951              DESTRUCT_FULL@4711..47152952                NAME@4711..47152953                  IDENT@4711..4715 "func"2954            COMMA@4715..4716 ","2955            WHITESPACE@4716..4717 " "2956            PARAM@4717..47202957              DESTRUCT_FULL@4717..47202958                NAME@4717..47202959                  IDENT@4717..4720 "obj"2960            R_PAREN@4720..4721 ")"2961          COLONCOLON@4721..4723 "::"2962          WHITESPACE@4723..4728 "\n    "2963          EXPR_IF_THEN_ELSE@4728..50282964            IF_KW@4728..4730 "if"2965            WHITESPACE@4730..4731 " "2966            EXPR_UNARY@4731..47522967              NOT@4731..4732 "!"2968              EXPR_APPLY@4732..47522969                EXPR_INDEX@4732..47462970                  EXPR_VAR@4732..47352971                    NAME@4732..47352972                      IDENT@4732..4735 "std"2973                  DOT@4735..4736 "."2974                  NAME@4736..47462975                    IDENT@4736..4746 "isFunction"2976                ARGS_DESC@4746..47522977                  L_PAREN@4746..4747 "("2978                  ARG@4747..47512979                    EXPR_VAR@4747..47512980                      NAME@4747..47512981                        IDENT@4747..4751 "func"2982                  R_PAREN@4751..4752 ")"2983            WHITESPACE@4752..4753 " "2984            THEN_KW@4753..4757 "then"2985            WHITESPACE@4757..4764 "\n      "2986            TRUE_EXPR@4764..48402987              EXPR_ERROR@4764..48402988                ERROR_KW@4764..4769 "error"2989                WHITESPACE@4769..4770 " "2990                EXPR_PARENED@4770..48402991                  L_PAREN@4770..4771 "("2992                  EXPR_BINARY@4771..48392993                    LHS_EXPR@4771..48222994                      EXPR_STRING@4771..48222995                        STRING_SINGLE@4771..4822 "'std.mapWithKey first ..."2996                    WHITESPACE@4822..4823 " "2997                    PLUS@4823..4824 "+"2998                    WHITESPACE@4824..4825 " "2999                    EXPR_APPLY@4825..48393000                      EXPR_INDEX@4825..48333001                        EXPR_VAR@4825..48283002                          NAME@4825..48283003                            IDENT@4825..4828 "std"3004                        DOT@4828..4829 "."3005                        NAME@4829..48333006                          IDENT@4829..4833 "type"3007                      ARGS_DESC@4833..48393008                        L_PAREN@4833..4834 "("3009                        ARG@4834..48383010                          EXPR_VAR@4834..48383011                            NAME@4834..48383012                              IDENT@4834..4838 "func"3013                        R_PAREN@4838..4839 ")"3014                  R_PAREN@4839..4840 ")"3015            WHITESPACE@4840..4845 "\n    "3016            ELSE_KW@4845..4849 "else"3017            WHITESPACE@4849..4850 " "3018            FALSE_EXPR@4850..50283019              EXPR_IF_THEN_ELSE@4850..50283020                IF_KW@4850..4852 "if"3021                WHITESPACE@4852..4853 " "3022                EXPR_UNARY@4853..48713023                  NOT@4853..4854 "!"3024                  EXPR_APPLY@4854..48713025                    EXPR_INDEX@4854..48663026                      EXPR_VAR@4854..48573027                        NAME@4854..48573028                          IDENT@4854..4857 "std"3029                      DOT@4857..4858 "."3030                      NAME@4858..48663031                        IDENT@4858..4866 "isObject"3032                    ARGS_DESC@4866..48713033                      L_PAREN@4866..4867 "("3034                      ARG@4867..48703035                        EXPR_VAR@4867..48703036                          NAME@4867..48703037                            IDENT@4867..4870 "obj"3038                      R_PAREN@4870..4871 ")"3039                WHITESPACE@4871..4872 " "3040                THEN_KW@4872..4876 "then"3041                WHITESPACE@4876..4883 "\n      "3042                TRUE_EXPR@4883..49573043                  EXPR_ERROR@4883..49573044                    ERROR_KW@4883..4888 "error"3045                    WHITESPACE@4888..4889 " "3046                    EXPR_PARENED@4889..49573047                      L_PAREN@4889..4890 "("3048                      EXPR_BINARY@4890..49563049                        LHS_EXPR@4890..49403050                          EXPR_STRING@4890..49403051                            STRING_SINGLE@4890..4940 "'std.mapWithKey secon ..."3052                        WHITESPACE@4940..4941 " "3053                        PLUS@4941..4942 "+"3054                        WHITESPACE@4942..4943 " "3055                        EXPR_APPLY@4943..49563056                          EXPR_INDEX@4943..49513057                            EXPR_VAR@4943..49463058                              NAME@4943..49463059                                IDENT@4943..4946 "std"3060                            DOT@4946..4947 "."3061                            NAME@4947..49513062                              IDENT@4947..4951 "type"3063                          ARGS_DESC@4951..49563064                            L_PAREN@4951..4952 "("3065                            ARG@4952..49553066                              EXPR_VAR@4952..49553067                                NAME@4952..49553068                                  IDENT@4952..4955 "obj"3069                            R_PAREN@4955..4956 ")"3070                      R_PAREN@4956..4957 ")"3071                WHITESPACE@4957..4962 "\n    "3072                ELSE_KW@4962..4966 "else"3073                WHITESPACE@4966..4973 "\n      "3074                FALSE_EXPR@4973..50283075                  EXPR_OBJECT@4973..50283076                    OBJ_BODY_MEMBER_LIST@4973..50283077                      L_BRACE@4973..4974 "{"3078                      WHITESPACE@4974..4975 " "3079                      MEMBER_FIELD@4975..50263080                        FIELD_NORMAL@4975..49953081                          FIELD_NAME_DYNAMIC@4975..49783082                            L_BRACK@4975..4976 "["3083                            EXPR_VAR@4976..49773084                              NAME@4976..49773085                                IDENT@4976..4977 "k"3086                            R_BRACK@4977..4978 "]"3087                          COLON@4978..4979 ":"3088                          WHITESPACE@4979..4980 " "3089                          EXPR_APPLY@4980..49953090                            EXPR_VAR@4980..49843091                              NAME@4980..49843092                                IDENT@4980..4984 "func"3093                            ARGS_DESC@4984..49953094                              L_PAREN@4984..4985 "("3095                              ARG@4985..49863096                                EXPR_VAR@4985..49863097                                  NAME@4985..49863098                                    IDENT@4985..4986 "k"3099                              COMMA@4986..4987 ","3100                              WHITESPACE@4987..4988 " "3101                              ARG@4988..49943102                                EXPR_INDEX_EXPR@4988..49943103                                  LHS_EXPR@4988..49913104                                    EXPR_VAR@4988..49913105                                      NAME@4988..49913106                                        IDENT@4988..4991 "obj"3107                                  L_BRACK@4991..4992 "["3108                                  EXPR_VAR@4992..49933109                                    NAME@4992..49933110                                      IDENT@4992..4993 "k"3111                                  R_BRACK@4993..4994 "]"3112                              R_PAREN@4994..4995 ")"3113                        WHITESPACE@4995..4996 " "3114                        FOR_SPEC@4996..50263115                          FOR_KW@4996..4999 "for"3116                          WHITESPACE@4999..5000 " "3117                          NAME@5000..50013118                            IDENT@5000..5001 "k"3119                          WHITESPACE@5001..5002 " "3120                          IN_KW@5002..5004 "in"3121                          WHITESPACE@5004..5005 " "3122                          EXPR_APPLY@5005..50263123                            EXPR_INDEX@5005..50213124                              EXPR_VAR@5005..50083125                                NAME@5005..50083126                                  IDENT@5005..5008 "std"3127                              DOT@5008..5009 "."3128                              NAME@5009..50213129                                IDENT@5009..5021 "objectFields"3130                            ARGS_DESC@5021..50263131                              L_PAREN@5021..5022 "("3132                              ARG@5022..50253133                                EXPR_VAR@5022..50253134                                  NAME@5022..50253135                                    IDENT@5022..5025 "obj"3136                              R_PAREN@5025..5026 ")"3137                      WHITESPACE@5026..5027 " "3138                      R_BRACE@5027..5028 "}"3139      COMMA@5028..5029 ","3140      WHITESPACE@5029..5033 "\n\n  "3141      MEMBER_FIELD@5033..50623142        FIELD_NORMAL@5033..50623143          FIELD_NAME_FIXED@5033..50403144            NAME@5033..50403145              IDENT@5033..5040 "flatMap"3146          COLONCOLON@5040..5042 "::"3147          WHITESPACE@5042..5043 " "3148          EXPR_INTRINSIC@5043..50623149            INTRINSIC@5043..5053 "$intrinsic"3150            L_PAREN@5053..5054 "("3151            NAME@5054..50613152              IDENT@5054..5061 "flatMap"3153            R_PAREN@5061..5062 ")"3154      COMMA@5062..5063 ","3155      WHITESPACE@5063..5067 "\n\n  "3156      MEMBER_FIELD@5067..50903157        FIELD_NORMAL@5067..50903158          FIELD_NAME_FIXED@5067..50713159            NAME@5067..50713160              IDENT@5067..5071 "join"3161          COLONCOLON@5071..5073 "::"3162          WHITESPACE@5073..5074 " "3163          EXPR_INTRINSIC@5074..50903164            INTRINSIC@5074..5084 "$intrinsic"3165            L_PAREN@5084..5085 "("3166            NAME@5085..50893167              IDENT@5085..5089 "join"3168            R_PAREN@5089..5090 ")"3169      COMMA@5090..5091 ","3170      WHITESPACE@5091..5095 "\n\n  "3171      MEMBER_FIELD@5095..51383172        FIELD_METHOD@5095..51383173          FIELD_NAME_FIXED@5095..51003174            NAME@5095..51003175              IDENT@5095..5100 "lines"3176          PARAMS_DESC@5100..51053177            L_PAREN@5100..5101 "("3178            PARAM@5101..51043179              DESTRUCT_FULL@5101..51043180                NAME@5101..51043181                  IDENT@5101..5104 "arr"3182            R_PAREN@5104..5105 ")"3183          COLONCOLON@5105..5107 "::"3184          WHITESPACE@5107..5112 "\n    "3185          EXPR_APPLY@5112..51383186            EXPR_INDEX@5112..51203187              EXPR_VAR@5112..51153188                NAME@5112..51153189                  IDENT@5112..5115 "std"3190              DOT@5115..5116 "."3191              NAME@5116..51203192                IDENT@5116..5120 "join"3193            ARGS_DESC@5120..51383194              L_PAREN@5120..5121 "("3195              ARG@5121..51253196                EXPR_STRING@5121..51253197                  STRING_SINGLE@5121..5125 "'\\n'"3198              COMMA@5125..5126 ","3199              WHITESPACE@5126..5127 " "3200              ARG@5127..51373201                EXPR_BINARY@5127..51373202                  LHS_EXPR@5127..51303203                    EXPR_VAR@5127..51303204                      NAME@5127..51303205                        IDENT@5127..5130 "arr"3206                  WHITESPACE@5130..5131 " "3207                  PLUS@5131..5132 "+"3208                  WHITESPACE@5132..5133 " "3209                  EXPR_ARRAY@5133..51373210                    L_BRACK@5133..5134 "["3211                    EXPR_STRING@5134..51363212                      STRING_SINGLE@5134..5136 "''"3213                    R_BRACK@5136..5137 "]"3214              R_PAREN@5137..5138 ")"3215      COMMA@5138..5139 ","3216      WHITESPACE@5139..5143 "\n\n  "3217      MEMBER_FIELD@5143..53553218        FIELD_METHOD@5143..53553219          FIELD_NAME_FIXED@5143..51513220            NAME@5143..51513221              IDENT@5143..5151 "deepJoin"3222          PARAMS_DESC@5151..51563223            L_PAREN@5151..5152 "("3224            PARAM@5152..51553225              DESTRUCT_FULL@5152..51553226                NAME@5152..51553227                  IDENT@5152..5155 "arr"3228            R_PAREN@5155..5156 ")"3229          COLONCOLON@5156..5158 "::"3230          WHITESPACE@5158..5163 "\n    "3231          EXPR_IF_THEN_ELSE@5163..53553232            IF_KW@5163..5165 "if"3233            WHITESPACE@5165..5166 " "3234            EXPR_APPLY@5166..51833235              EXPR_INDEX@5166..51783236                EXPR_VAR@5166..51693237                  NAME@5166..51693238                    IDENT@5166..5169 "std"3239                DOT@5169..5170 "."3240                NAME@5170..51783241                  IDENT@5170..5178 "isString"3242              ARGS_DESC@5178..51833243                L_PAREN@5178..5179 "("3244                ARG@5179..51823245                  EXPR_VAR@5179..51823246                    NAME@5179..51823247                      IDENT@5179..5182 "arr"3248                R_PAREN@5182..5183 ")"3249            WHITESPACE@5183..5184 " "3250            THEN_KW@5184..5188 "then"3251            WHITESPACE@5188..5195 "\n      "3252            TRUE_EXPR@5195..51983253              EXPR_VAR@5195..51983254                NAME@5195..51983255                  IDENT@5195..5198 "arr"3256            WHITESPACE@5198..5203 "\n    "3257            ELSE_KW@5203..5207 "else"3258            WHITESPACE@5207..5208 " "3259            FALSE_EXPR@5208..53553260              EXPR_IF_THEN_ELSE@5208..53553261                IF_KW@5208..5210 "if"3262                WHITESPACE@5210..5211 " "3263                EXPR_APPLY@5211..52273264                  EXPR_INDEX@5211..52223265                    EXPR_VAR@5211..52143266                      NAME@5211..52143267                        IDENT@5211..5214 "std"3268                    DOT@5214..5215 "."3269                    NAME@5215..52223270                      IDENT@5215..5222 "isArray"3271                  ARGS_DESC@5222..52273272                    L_PAREN@5222..5223 "("3273                    ARG@5223..52263274                      EXPR_VAR@5223..52263275                        NAME@5223..52263276                          IDENT@5223..5226 "arr"3277                    R_PAREN@5226..5227 ")"3278                WHITESPACE@5227..5228 " "3279                THEN_KW@5228..5232 "then"3280                WHITESPACE@5232..5239 "\n      "3281                TRUE_EXPR@5239..52833282                  EXPR_APPLY@5239..52833283                    EXPR_INDEX@5239..52473284                      EXPR_VAR@5239..52423285                        NAME@5239..52423286                          IDENT@5239..5242 "std"3287                      DOT@5242..5243 "."3288                      NAME@5243..52473289                        IDENT@5243..5247 "join"3290                    ARGS_DESC@5247..52833291                      L_PAREN@5247..5248 "("3292                      ARG@5248..52503293                        EXPR_STRING@5248..52503294                          STRING_SINGLE@5248..5250 "''"3295                      COMMA@5250..5251 ","3296                      WHITESPACE@5251..5252 " "3297                      ARG@5252..52823298                        EXPR_ARRAY_COMP@5252..52823299                          L_BRACK@5252..5253 "["3300                          EXPR_APPLY@5253..52683301                            EXPR_INDEX@5253..52653302                              EXPR_VAR@5253..52563303                                NAME@5253..52563304                                  IDENT@5253..5256 "std"3305                              DOT@5256..5257 "."3306                              NAME@5257..52653307                                IDENT@5257..5265 "deepJoin"3308                            ARGS_DESC@5265..52683309                              L_PAREN@5265..5266 "("3310                              ARG@5266..52673311                                EXPR_VAR@5266..52673312                                  NAME@5266..52673313                                    IDENT@5266..5267 "x"3314                              R_PAREN@5267..5268 ")"3315                          WHITESPACE@5268..5269 " "3316                          FOR_SPEC@5269..52813317                            FOR_KW@5269..5272 "for"3318                            WHITESPACE@5272..5273 " "3319                            NAME@5273..52743320                              IDENT@5273..5274 "x"3321                            WHITESPACE@5274..5275 " "3322                            IN_KW@5275..5277 "in"3323                            WHITESPACE@5277..5278 " "3324                            EXPR_VAR@5278..52813325                              NAME@5278..52813326                                IDENT@5278..5281 "arr"3327                          R_BRACK@5281..5282 "]"3328                      R_PAREN@5282..5283 ")"3329                WHITESPACE@5283..5288 "\n    "3330                ELSE_KW@5288..5292 "else"3331                WHITESPACE@5292..5299 "\n      "3332                FALSE_EXPR@5299..53553333                  EXPR_ERROR@5299..53553334                    ERROR_KW@5299..5304 "error"3335                    WHITESPACE@5304..5305 " "3336                    EXPR_BINARY@5305..53553337                      LHS_EXPR@5305..53393338                        EXPR_STRING@5305..53393339                          STRING_SINGLE@5305..5339 "'Expected string or a ..."3340                      WHITESPACE@5339..5340 " "3341                      MODULO@5340..5341 "%"3342                      WHITESPACE@5341..5342 " "3343                      EXPR_APPLY@5342..53553344                        EXPR_INDEX@5342..53503345                          EXPR_VAR@5342..53453346                            NAME@5342..53453347                              IDENT@5342..5345 "std"3348                          DOT@5345..5346 "."3349                          NAME@5346..53503350                            IDENT@5346..5350 "type"3351                        ARGS_DESC@5350..53553352                          L_PAREN@5350..5351 "("3353                          ARG@5351..53543354                            EXPR_VAR@5351..53543355                              NAME@5351..53543356                                IDENT@5351..5354 "arr"3357                          R_PAREN@5354..5355 ")"3358      COMMA@5355..5356 ","3359      WHITESPACE@5356..5361 "\n\n\n  "3360      MEMBER_FIELD@5361..53883361        FIELD_NORMAL@5361..53883362          FIELD_NAME_FIXED@5361..53673363            NAME@5361..53673364              IDENT@5361..5367 "format"3365          COLONCOLON@5367..5369 "::"3366          WHITESPACE@5369..5370 " "3367          EXPR_INTRINSIC@5370..53883368            INTRINSIC@5370..5380 "$intrinsic"3369            L_PAREN@5380..5381 "("3370            NAME@5381..53873371              IDENT@5381..5387 "format"3372            R_PAREN@5387..5388 ")"3373      COMMA@5388..5389 ","3374      WHITESPACE@5389..5393 "\n\n  "3375      MEMBER_FIELD@5393..54183376        FIELD_NORMAL@5393..54183377          FIELD_NAME_FIXED@5393..53983378            NAME@5393..53983379              IDENT@5393..5398 "foldr"3380          COLONCOLON@5398..5400 "::"3381          WHITESPACE@5400..5401 " "3382          EXPR_INTRINSIC@5401..54183383            INTRINSIC@5401..5411 "$intrinsic"3384            L_PAREN@5411..5412 "("3385            NAME@5412..54173386              IDENT@5412..5417 "foldr"3387            R_PAREN@5417..5418 ")"3388      COMMA@5418..5419 ","3389      WHITESPACE@5419..5423 "\n\n  "3390      MEMBER_FIELD@5423..54483391        FIELD_NORMAL@5423..54483392          FIELD_NAME_FIXED@5423..54283393            NAME@5423..54283394              IDENT@5423..5428 "foldl"3395          COLONCOLON@5428..5430 "::"3396          WHITESPACE@5430..5431 " "3397          EXPR_INTRINSIC@5431..54483398            INTRINSIC@5431..5441 "$intrinsic"3399            L_PAREN@5441..5442 "("3400            NAME@5442..54473401              IDENT@5442..5447 "foldl"3402            R_PAREN@5447..5448 ")"3403      COMMA@5448..5449 ","3404      WHITESPACE@5449..5453 "\n\n  "3405      MEMBER_FIELD@5453..59283406        FIELD_METHOD@5453..59283407          FIELD_NAME_FIXED@5453..54623408            NAME@5453..54623409              IDENT@5453..5462 "filterMap"3410          PARAMS_DESC@5462..54903411            L_PAREN@5462..5463 "("3412            PARAM@5463..54743413              DESTRUCT_FULL@5463..54743414                NAME@5463..54743415                  IDENT@5463..5474 "filter_func"3416            COMMA@5474..5475 ","3417            WHITESPACE@5475..5476 " "3418            PARAM@5476..54843419              DESTRUCT_FULL@5476..54843420                NAME@5476..54843421                  IDENT@5476..5484 "map_func"3422            COMMA@5484..5485 ","3423            WHITESPACE@5485..5486 " "3424            PARAM@5486..54893425              DESTRUCT_FULL@5486..54893426                NAME@5486..54893427                  IDENT@5486..5489 "arr"3428            R_PAREN@5489..5490 ")"3429          COLONCOLON@5490..5492 "::"3430          WHITESPACE@5492..5497 "\n    "3431          EXPR_IF_THEN_ELSE@5497..59283432            IF_KW@5497..5499 "if"3433            WHITESPACE@5499..5500 " "3434            EXPR_UNARY@5500..55283435              NOT@5500..5501 "!"3436              EXPR_APPLY@5501..55283437                EXPR_INDEX@5501..55153438                  EXPR_VAR@5501..55043439                    NAME@5501..55043440                      IDENT@5501..5504 "std"3441                  DOT@5504..5505 "."3442                  NAME@5505..55153443                    IDENT@5505..5515 "isFunction"3444                ARGS_DESC@5515..55283445                  L_PAREN@5515..5516 "("3446                  ARG@5516..55273447                    EXPR_VAR@5516..55273448                      NAME@5516..55273449                        IDENT@5516..5527 "filter_func"3450                  R_PAREN@5527..5528 ")"3451            WHITESPACE@5528..5529 " "3452            THEN_KW@5529..5533 "then"3453            WHITESPACE@5533..5540 "\n      "3454            TRUE_EXPR@5540..56223455              EXPR_ERROR@5540..56223456                ERROR_KW@5540..5545 "error"3457                WHITESPACE@5545..5546 " "3458                EXPR_PARENED@5546..56223459                  L_PAREN@5546..5547 "("3460                  EXPR_BINARY@5547..56213461                    LHS_EXPR@5547..55973462                      EXPR_STRING@5547..55973463                        STRING_SINGLE@5547..5597 "'std.filterMap first  ..."3464                    WHITESPACE@5597..5598 " "3465                    PLUS@5598..5599 "+"3466                    WHITESPACE@5599..5600 " "3467                    EXPR_APPLY@5600..56213468                      EXPR_INDEX@5600..56083469                        EXPR_VAR@5600..56033470                          NAME@5600..56033471                            IDENT@5600..5603 "std"3472                        DOT@5603..5604 "."3473                        NAME@5604..56083474                          IDENT@5604..5608 "type"3475                      ARGS_DESC@5608..56213476                        L_PAREN@5608..5609 "("3477                        ARG@5609..56203478                          EXPR_VAR@5609..56203479                            NAME@5609..56203480                              IDENT@5609..5620 "filter_func"3481                        R_PAREN@5620..5621 ")"3482                  R_PAREN@5621..5622 ")"3483            WHITESPACE@5622..5627 "\n    "3484            ELSE_KW@5627..5631 "else"3485            WHITESPACE@5631..5632 " "3486            FALSE_EXPR@5632..59283487              EXPR_IF_THEN_ELSE@5632..59283488                IF_KW@5632..5634 "if"3489                WHITESPACE@5634..5635 " "3490                EXPR_UNARY@5635..56603491                  NOT@5635..5636 "!"3492                  EXPR_APPLY@5636..56603493                    EXPR_INDEX@5636..56503494                      EXPR_VAR@5636..56393495                        NAME@5636..56393496                          IDENT@5636..5639 "std"3497                      DOT@5639..5640 "."3498                      NAME@5640..56503499                        IDENT@5640..5650 "isFunction"3500                    ARGS_DESC@5650..56603501                      L_PAREN@5650..5651 "("3502                      ARG@5651..56593503                        EXPR_VAR@5651..56593504                          NAME@5651..56593505                            IDENT@5651..5659 "map_func"3506                      R_PAREN@5659..5660 ")"3507                WHITESPACE@5660..5661 " "3508                THEN_KW@5661..5665 "then"3509                WHITESPACE@5665..5672 "\n      "3510                TRUE_EXPR@5672..57523511                  EXPR_ERROR@5672..57523512                    ERROR_KW@5672..5677 "error"3513                    WHITESPACE@5677..5678 " "3514                    EXPR_PARENED@5678..57523515                      L_PAREN@5678..5679 "("3516                      EXPR_BINARY@5679..57513517                        LHS_EXPR@5679..57303518                          EXPR_STRING@5679..57303519                            STRING_SINGLE@5679..5730 "'std.filterMap second ..."3520                        WHITESPACE@5730..5731 " "3521                        PLUS@5731..5732 "+"3522                        WHITESPACE@5732..5733 " "3523                        EXPR_APPLY@5733..57513524                          EXPR_INDEX@5733..57413525                            EXPR_VAR@5733..57363526                              NAME@5733..57363527                                IDENT@5733..5736 "std"3528                            DOT@5736..5737 "."3529                            NAME@5737..57413530                              IDENT@5737..5741 "type"3531                          ARGS_DESC@5741..57513532                            L_PAREN@5741..5742 "("3533                            ARG@5742..57503534                              EXPR_VAR@5742..57503535                                NAME@5742..57503536                                  IDENT@5742..5750 "map_func"3537                            R_PAREN@5750..5751 ")"3538                      R_PAREN@5751..5752 ")"3539                WHITESPACE@5752..5757 "\n    "3540                ELSE_KW@5757..5761 "else"3541                WHITESPACE@5761..5762 " "3542                FALSE_EXPR@5762..59283543                  EXPR_IF_THEN_ELSE@5762..59283544                    IF_KW@5762..5764 "if"3545                    WHITESPACE@5764..5765 " "3546                    EXPR_UNARY@5765..57823547                      NOT@5765..5766 "!"3548                      EXPR_APPLY@5766..57823549                        EXPR_INDEX@5766..57773550                          EXPR_VAR@5766..57693551                            NAME@5766..57693552                              IDENT@5766..5769 "std"3553                          DOT@5769..5770 "."3554                          NAME@5770..57773555                            IDENT@5770..5777 "isArray"3556                        ARGS_DESC@5777..57823557                          L_PAREN@5777..5778 "("3558                          ARG@5778..57813559                            EXPR_VAR@5778..57813560                              NAME@5778..57813561                                IDENT@5778..5781 "arr"3562                          R_PAREN@5781..5782 ")"3563                    WHITESPACE@5782..5783 " "3564                    THEN_KW@5783..5787 "then"3565                    WHITESPACE@5787..5794 "\n      "3566                    TRUE_EXPR@5794..58653567                      EXPR_ERROR@5794..58653568                        ERROR_KW@5794..5799 "error"3569                        WHITESPACE@5799..5800 " "3570                        EXPR_PARENED@5800..58653571                          L_PAREN@5800..5801 "("3572                          EXPR_BINARY@5801..58643573                            LHS_EXPR@5801..58483574                              EXPR_STRING@5801..58483575                                STRING_SINGLE@5801..5848 "'std.filterMap third  ..."3576                            WHITESPACE@5848..5849 " "3577                            PLUS@5849..5850 "+"3578                            WHITESPACE@5850..5851 " "3579                            EXPR_APPLY@5851..58643580                              EXPR_INDEX@5851..58593581                                EXPR_VAR@5851..58543582                                  NAME@5851..58543583                                    IDENT@5851..5854 "std"3584                                DOT@5854..5855 "."3585                                NAME@5855..58593586                                  IDENT@5855..5859 "type"3587                              ARGS_DESC@5859..58643588                                L_PAREN@5859..5860 "("3589                                ARG@5860..58633590                                  EXPR_VAR@5860..58633591                                    NAME@5860..58633592                                      IDENT@5860..5863 "arr"3593                                R_PAREN@5863..5864 ")"3594                          R_PAREN@5864..5865 ")"3595                    WHITESPACE@5865..5870 "\n    "3596                    ELSE_KW@5870..5874 "else"3597                    WHITESPACE@5874..5881 "\n      "3598                    FALSE_EXPR@5881..59283599                      EXPR_APPLY@5881..59283600                        EXPR_INDEX@5881..58883601                          EXPR_VAR@5881..58843602                            NAME@5881..58843603                              IDENT@5881..5884 "std"3604                          DOT@5884..5885 "."3605                          NAME@5885..58883606                            IDENT@5885..5888 "map"3607                        ARGS_DESC@5888..59283608                          L_PAREN@5888..5889 "("3609                          ARG@5889..58973610                            EXPR_VAR@5889..58973611                              NAME@5889..58973612                                IDENT@5889..5897 "map_func"3613                          COMMA@5897..5898 ","3614                          WHITESPACE@5898..5899 " "3615                          ARG@5899..59273616                            EXPR_APPLY@5899..59273617                              EXPR_INDEX@5899..59093618                                EXPR_VAR@5899..59023619                                  NAME@5899..59023620                                    IDENT@5899..5902 "std"3621                                DOT@5902..5903 "."3622                                NAME@5903..59093623                                  IDENT@5903..5909 "filter"3624                              ARGS_DESC@5909..59273625                                L_PAREN@5909..5910 "("3626                                ARG@5910..59213627                                  EXPR_VAR@5910..59213628                                    NAME@5910..59213629                                      IDENT@5910..5921 "filter_func"3630                                COMMA@5921..5922 ","3631                                WHITESPACE@5922..5923 " "3632                                ARG@5923..59263633                                  EXPR_VAR@5923..59263634                                    NAME@5923..59263635                                      IDENT@5923..5926 "arr"3636                                R_PAREN@5926..5927 ")"3637                          R_PAREN@5927..5928 ")"3638      COMMA@5928..5929 ","3639      WHITESPACE@5929..5933 "\n\n  "3640      MEMBER_FIELD@5933..60413641        FIELD_METHOD@5933..60413642          FIELD_NAME_FIXED@5933..59443643            NAME@5933..59443644              IDENT@5933..5944 "assertEqual"3645          PARAMS_DESC@5944..59503646            L_PAREN@5944..5945 "("3647            PARAM@5945..59463648              DESTRUCT_FULL@5945..59463649                NAME@5945..59463650                  IDENT@5945..5946 "a"3651            COMMA@5946..5947 ","3652            WHITESPACE@5947..5948 " "3653            PARAM@5948..59493654              DESTRUCT_FULL@5948..59493655                NAME@5948..59493656                  IDENT@5948..5949 "b"3657            R_PAREN@5949..5950 ")"3658          COLONCOLON@5950..5952 "::"3659          WHITESPACE@5952..5957 "\n    "3660          EXPR_IF_THEN_ELSE@5957..60413661            IF_KW@5957..5959 "if"3662            WHITESPACE@5959..5960 " "3663            EXPR_BINARY@5960..59663664              LHS_EXPR@5960..59613665                EXPR_VAR@5960..59613666                  NAME@5960..59613667                    IDENT@5960..5961 "a"3668              WHITESPACE@5961..5962 " "3669              EQ@5962..5964 "=="3670              WHITESPACE@5964..5965 " "3671              EXPR_VAR@5965..59663672                NAME@5965..59663673                  IDENT@5965..5966 "b"3674            WHITESPACE@5966..5967 " "3675            THEN_KW@5967..5971 "then"3676            WHITESPACE@5971..5978 "\n      "3677            TRUE_EXPR@5978..59823678              EXPR_LITERAL@5978..59823679                TRUE_KW@5978..5982 "true"3680            WHITESPACE@5982..5987 "\n    "3681            ELSE_KW@5987..5991 "else"3682            WHITESPACE@5991..5998 "\n      "3683            FALSE_EXPR@5998..60413684              EXPR_ERROR@5998..60413685                ERROR_KW@5998..6003 "error"3686                WHITESPACE@6003..6004 " "3687                EXPR_BINARY@6004..60413688                  LHS_EXPR@6004..60373689                    EXPR_BINARY@6004..60373690                      LHS_EXPR@6004..60283691                        EXPR_BINARY@6004..60283692                          LHS_EXPR@6004..60243693                            EXPR_STRING@6004..60243694                              STRING_SINGLE@6004..6024 "'Assertion failed. '"3695                          WHITESPACE@6024..6025 " "3696                          PLUS@6025..6026 "+"3697                          WHITESPACE@6026..6027 " "3698                          EXPR_VAR@6027..60283699                            NAME@6027..60283700                              IDENT@6027..6028 "a"3701                      WHITESPACE@6028..6029 " "3702                      PLUS@6029..6030 "+"3703                      WHITESPACE@6030..6031 " "3704                      EXPR_STRING@6031..60373705                        STRING_SINGLE@6031..6037 "' != '"3706                  WHITESPACE@6037..6038 " "3707                  PLUS@6038..6039 "+"3708                  WHITESPACE@6039..6040 " "3709                  EXPR_VAR@6040..60413710                    NAME@6040..60413711                      IDENT@6040..6041 "b"3712      COMMA@6041..6042 ","3713      WHITESPACE@6042..6046 "\n\n  "3714      MEMBER_FIELD@6046..61803715        FIELD_METHOD@6046..61803716          FIELD_NAME_FIXED@6046..60493717            NAME@6046..60493718              IDENT@6046..6049 "abs"3719          PARAMS_DESC@6049..60523720            L_PAREN@6049..6050 "("3721            PARAM@6050..60513722              DESTRUCT_FULL@6050..60513723                NAME@6050..60513724                  IDENT@6050..6051 "n"3725            R_PAREN@6051..6052 ")"3726          COLONCOLON@6052..6054 "::"3727          WHITESPACE@6054..6059 "\n    "3728          EXPR_IF_THEN_ELSE@6059..61803729            IF_KW@6059..6061 "if"3730            WHITESPACE@6061..6062 " "3731            EXPR_UNARY@6062..60783732              NOT@6062..6063 "!"3733              EXPR_APPLY@6063..60783734                EXPR_INDEX@6063..60753735                  EXPR_VAR@6063..60663736                    NAME@6063..60663737                      IDENT@6063..6066 "std"3738                  DOT@6066..6067 "."3739                  NAME@6067..60753740                    IDENT@6067..6075 "isNumber"3741                ARGS_DESC@6075..60783742                  L_PAREN@6075..6076 "("3743                  ARG@6076..60773744                    EXPR_VAR@6076..60773745                      NAME@6076..60773746                        IDENT@6076..6077 "n"3747                  R_PAREN@6077..6078 ")"3748            WHITESPACE@6078..6079 " "3749            THEN_KW@6079..6083 "then"3750            WHITESPACE@6083..6090 "\n      "3751            TRUE_EXPR@6090..61413752              EXPR_ERROR@6090..61413753                ERROR_KW@6090..6095 "error"3754                WHITESPACE@6095..6096 " "3755                EXPR_BINARY@6096..61413756                  LHS_EXPR@6096..61273757                    EXPR_STRING@6096..61273758                      STRING_SINGLE@6096..6127 "'std.abs expected num ..."3759                  WHITESPACE@6127..6128 " "3760                  PLUS@6128..6129 "+"3761                  WHITESPACE@6129..6130 " "3762                  EXPR_APPLY@6130..61413763                    EXPR_INDEX@6130..61383764                      EXPR_VAR@6130..61333765                        NAME@6130..61333766                          IDENT@6130..6133 "std"3767                      DOT@6133..6134 "."3768                      NAME@6134..61383769                        IDENT@6134..6138 "type"3770                    ARGS_DESC@6138..61413771                      L_PAREN@6138..6139 "("3772                      ARG@6139..61403773                        EXPR_VAR@6139..61403774                          NAME@6139..61403775                            IDENT@6139..6140 "n"3776                      R_PAREN@6140..6141 ")"3777            WHITESPACE@6141..6146 "\n    "3778            ELSE_KW@6146..6150 "else"3779            WHITESPACE@6150..6157 "\n      "3780            FALSE_EXPR@6157..61803781              EXPR_IF_THEN_ELSE@6157..61803782                IF_KW@6157..6159 "if"3783                WHITESPACE@6159..6160 " "3784                EXPR_BINARY@6160..61653785                  LHS_EXPR@6160..61613786                    EXPR_VAR@6160..61613787                      NAME@6160..61613788                        IDENT@6160..6161 "n"3789                  WHITESPACE@6161..6162 " "3790                  GT@6162..6163 ">"3791                  WHITESPACE@6163..6164 " "3792                  EXPR_NUMBER@6164..61653793                    FLOAT@6164..6165 "0"3794                WHITESPACE@6165..6166 " "3795                THEN_KW@6166..6170 "then"3796                WHITESPACE@6170..6171 " "3797                TRUE_EXPR@6171..61723798                  EXPR_VAR@6171..61723799                    NAME@6171..61723800                      IDENT@6171..6172 "n"3801                WHITESPACE@6172..6173 " "3802                ELSE_KW@6173..6177 "else"3803                WHITESPACE@6177..6178 " "3804                FALSE_EXPR@6178..61803805                  EXPR_UNARY@6178..61803806                    MINUS@6178..6179 "-"3807                    EXPR_VAR@6179..61803808                      NAME@6179..61803809                        IDENT@6179..6180 "n"3810      COMMA@6180..6181 ","3811      WHITESPACE@6181..6185 "\n\n  "3812      MEMBER_FIELD@6185..63703813        FIELD_METHOD@6185..63703814          FIELD_NAME_FIXED@6185..61893815            NAME@6185..61893816              IDENT@6185..6189 "sign"3817          PARAMS_DESC@6189..61923818            L_PAREN@6189..6190 "("3819            PARAM@6190..61913820              DESTRUCT_FULL@6190..61913821                NAME@6190..61913822                  IDENT@6190..6191 "n"3823            R_PAREN@6191..6192 ")"3824          COLONCOLON@6192..6194 "::"3825          WHITESPACE@6194..6199 "\n    "3826          EXPR_IF_THEN_ELSE@6199..63703827            IF_KW@6199..6201 "if"3828            WHITESPACE@6201..6202 " "3829            EXPR_UNARY@6202..62183830              NOT@6202..6203 "!"3831              EXPR_APPLY@6203..62183832                EXPR_INDEX@6203..62153833                  EXPR_VAR@6203..62063834                    NAME@6203..62063835                      IDENT@6203..6206 "std"3836                  DOT@6206..6207 "."3837                  NAME@6207..62153838                    IDENT@6207..6215 "isNumber"3839                ARGS_DESC@6215..62183840                  L_PAREN@6215..6216 "("3841                  ARG@6216..62173842                    EXPR_VAR@6216..62173843                      NAME@6216..62173844                        IDENT@6216..6217 "n"3845                  R_PAREN@6217..6218 ")"3846            WHITESPACE@6218..6219 " "3847            THEN_KW@6219..6223 "then"3848            WHITESPACE@6223..6230 "\n      "3849            TRUE_EXPR@6230..62823850              EXPR_ERROR@6230..62823851                ERROR_KW@6230..6235 "error"3852                WHITESPACE@6235..6236 " "3853                EXPR_BINARY@6236..62823854                  LHS_EXPR@6236..62683855                    EXPR_STRING@6236..62683856                      STRING_SINGLE@6236..6268 "'std.sign expected nu ..."3857                  WHITESPACE@6268..6269 " "3858                  PLUS@6269..6270 "+"3859                  WHITESPACE@6270..6271 " "3860                  EXPR_APPLY@6271..62823861                    EXPR_INDEX@6271..62793862                      EXPR_VAR@6271..62743863                        NAME@6271..62743864                          IDENT@6271..6274 "std"3865                      DOT@6274..6275 "."3866                      NAME@6275..62793867                        IDENT@6275..6279 "type"3868                    ARGS_DESC@6279..62823869                      L_PAREN@6279..6280 "("3870                      ARG@6280..62813871                        EXPR_VAR@6280..62813872                          NAME@6280..62813873                            IDENT@6280..6281 "n"3874                      R_PAREN@6281..6282 ")"3875            WHITESPACE@6282..6287 "\n    "3876            ELSE_KW@6287..6291 "else"3877            WHITESPACE@6291..6298 "\n      "3878            FALSE_EXPR@6298..63703879              EXPR_IF_THEN_ELSE@6298..63703880                IF_KW@6298..6300 "if"3881                WHITESPACE@6300..6301 " "3882                EXPR_BINARY@6301..63063883                  LHS_EXPR@6301..63023884                    EXPR_VAR@6301..63023885                      NAME@6301..63023886                        IDENT@6301..6302 "n"3887                  WHITESPACE@6302..6303 " "3888                  GT@6303..6304 ">"3889                  WHITESPACE@6304..6305 " "3890                  EXPR_NUMBER@6305..63063891                    FLOAT@6305..6306 "0"3892                WHITESPACE@6306..6307 " "3893                THEN_KW@6307..6311 "then"3894                WHITESPACE@6311..6320 "\n        "3895                TRUE_EXPR@6320..63213896                  EXPR_NUMBER@6320..63213897                    FLOAT@6320..6321 "1"3898                WHITESPACE@6321..6328 "\n      "3899                ELSE_KW@6328..6332 "else"3900                WHITESPACE@6332..6333 " "3901                FALSE_EXPR@6333..63703902                  EXPR_IF_THEN_ELSE@6333..63703903                    IF_KW@6333..6335 "if"3904                    WHITESPACE@6335..6336 " "3905                    EXPR_BINARY@6336..63413906                      LHS_EXPR@6336..63373907                        EXPR_VAR@6336..63373908                          NAME@6336..63373909                            IDENT@6336..6337 "n"3910                      WHITESPACE@6337..6338 " "3911                      LT@6338..6339 "<"3912                      WHITESPACE@6339..6340 " "3913                      EXPR_NUMBER@6340..63413914                        FLOAT@6340..6341 "0"3915                    WHITESPACE@6341..6342 " "3916                    THEN_KW@6342..6346 "then"3917                    WHITESPACE@6346..6355 "\n        "3918                    TRUE_EXPR@6355..63573919                      EXPR_UNARY@6355..63573920                        MINUS@6355..6356 "-"3921                        EXPR_NUMBER@6356..63573922                          FLOAT@6356..6357 "1"3923                    WHITESPACE@6357..6364 "\n      "3924                    ELSE_KW@6364..6368 "else"3925                    WHITESPACE@6368..6369 " "3926                    FALSE_EXPR@6369..63703927                      EXPR_NUMBER@6369..63703928                        FLOAT@6369..6370 "0"3929      COMMA@6370..6371 ","3930      WHITESPACE@6371..6375 "\n\n  "3931      MEMBER_FIELD@6375..66283932        FIELD_METHOD@6375..66283933          FIELD_NAME_FIXED@6375..63783934            NAME@6375..63783935              IDENT@6375..6378 "max"3936          PARAMS_DESC@6378..63843937            L_PAREN@6378..6379 "("3938            PARAM@6379..63803939              DESTRUCT_FULL@6379..63803940                NAME@6379..63803941                  IDENT@6379..6380 "a"3942            COMMA@6380..6381 ","3943            WHITESPACE@6381..6382 " "3944            PARAM@6382..63833945              DESTRUCT_FULL@6382..63833946                NAME@6382..63833947                  IDENT@6382..6383 "b"3948            R_PAREN@6383..6384 ")"3949          COLONCOLON@6384..6386 "::"3950          WHITESPACE@6386..6391 "\n    "3951          EXPR_IF_THEN_ELSE@6391..66283952            IF_KW@6391..6393 "if"3953            WHITESPACE@6393..6394 " "3954            EXPR_UNARY@6394..64103955              NOT@6394..6395 "!"3956              EXPR_APPLY@6395..64103957                EXPR_INDEX@6395..64073958                  EXPR_VAR@6395..63983959                    NAME@6395..63983960                      IDENT@6395..6398 "std"3961                  DOT@6398..6399 "."3962                  NAME@6399..64073963                    IDENT@6399..6407 "isNumber"3964                ARGS_DESC@6407..64103965                  L_PAREN@6407..6408 "("3966                  ARG@6408..64093967                    EXPR_VAR@6408..64093968                      NAME@6408..64093969                        IDENT@6408..6409 "a"3970                  R_PAREN@6409..6410 ")"3971            WHITESPACE@6410..6411 " "3972            THEN_KW@6411..6415 "then"3973            WHITESPACE@6415..6422 "\n      "3974            TRUE_EXPR@6422..64853975              EXPR_ERROR@6422..64853976                ERROR_KW@6422..6427 "error"3977                WHITESPACE@6427..6428 " "3978                EXPR_BINARY@6428..64853979                  LHS_EXPR@6428..64713980                    EXPR_STRING@6428..64713981                      STRING_SINGLE@6428..6471 "'std.max first param  ..."3982                  WHITESPACE@6471..6472 " "3983                  PLUS@6472..6473 "+"3984                  WHITESPACE@6473..6474 " "3985                  EXPR_APPLY@6474..64853986                    EXPR_INDEX@6474..64823987                      EXPR_VAR@6474..64773988                        NAME@6474..64773989                          IDENT@6474..6477 "std"3990                      DOT@6477..6478 "."3991                      NAME@6478..64823992                        IDENT@6478..6482 "type"3993                    ARGS_DESC@6482..64853994                      L_PAREN@6482..6483 "("3995                      ARG@6483..64843996                        EXPR_VAR@6483..64843997                          NAME@6483..64843998                            IDENT@6483..6484 "a"3999                      R_PAREN@6484..6485 ")"4000            WHITESPACE@6485..6490 "\n    "4001            ELSE_KW@6490..6494 "else"4002            WHITESPACE@6494..6495 " "4003            FALSE_EXPR@6495..66284004              EXPR_IF_THEN_ELSE@6495..66284005                IF_KW@6495..6497 "if"4006                WHITESPACE@6497..6498 " "4007                EXPR_UNARY@6498..65144008                  NOT@6498..6499 "!"4009                  EXPR_APPLY@6499..65144010                    EXPR_INDEX@6499..65114011                      EXPR_VAR@6499..65024012                        NAME@6499..65024013                          IDENT@6499..6502 "std"4014                      DOT@6502..6503 "."4015                      NAME@6503..65114016                        IDENT@6503..6511 "isNumber"4017                    ARGS_DESC@6511..65144018                      L_PAREN@6511..6512 "("4019                      ARG@6512..65134020                        EXPR_VAR@6512..65134021                          NAME@6512..65134022                            IDENT@6512..6513 "b"4023                      R_PAREN@6513..6514 ")"4024                WHITESPACE@6514..6515 " "4025                THEN_KW@6515..6519 "then"4026                WHITESPACE@6519..6526 "\n      "4027                TRUE_EXPR@6526..65904028                  EXPR_ERROR@6526..65904029                    ERROR_KW@6526..6531 "error"4030                    WHITESPACE@6531..6532 " "4031                    EXPR_BINARY@6532..65904032                      LHS_EXPR@6532..65764033                        EXPR_STRING@6532..65764034                          STRING_SINGLE@6532..6576 "'std.max second param ..."4035                      WHITESPACE@6576..6577 " "4036                      PLUS@6577..6578 "+"4037                      WHITESPACE@6578..6579 " "4038                      EXPR_APPLY@6579..65904039                        EXPR_INDEX@6579..65874040                          EXPR_VAR@6579..65824041                            NAME@6579..65824042                              IDENT@6579..6582 "std"4043                          DOT@6582..6583 "."4044                          NAME@6583..65874045                            IDENT@6583..6587 "type"4046                        ARGS_DESC@6587..65904047                          L_PAREN@6587..6588 "("4048                          ARG@6588..65894049                            EXPR_VAR@6588..65894050                              NAME@6588..65894051                                IDENT@6588..6589 "b"4052                          R_PAREN@6589..6590 ")"4053                WHITESPACE@6590..6595 "\n    "4054                ELSE_KW@6595..6599 "else"4055                WHITESPACE@6599..6606 "\n      "4056                FALSE_EXPR@6606..66284057                  EXPR_IF_THEN_ELSE@6606..66284058                    IF_KW@6606..6608 "if"4059                    WHITESPACE@6608..6609 " "4060                    EXPR_BINARY@6609..66144061                      LHS_EXPR@6609..66104062                        EXPR_VAR@6609..66104063                          NAME@6609..66104064                            IDENT@6609..6610 "a"4065                      WHITESPACE@6610..6611 " "4066                      GT@6611..6612 ">"4067                      WHITESPACE@6612..6613 " "4068                      EXPR_VAR@6613..66144069                        NAME@6613..66144070                          IDENT@6613..6614 "b"4071                    WHITESPACE@6614..6615 " "4072                    THEN_KW@6615..6619 "then"4073                    WHITESPACE@6619..6620 " "4074                    TRUE_EXPR@6620..66214075                      EXPR_VAR@6620..66214076                        NAME@6620..66214077                          IDENT@6620..6621 "a"4078                    WHITESPACE@6621..6622 " "4079                    ELSE_KW@6622..6626 "else"4080                    WHITESPACE@6626..6627 " "4081                    FALSE_EXPR@6627..66284082                      EXPR_VAR@6627..66284083                        NAME@6627..66284084                          IDENT@6627..6628 "b"4085      COMMA@6628..6629 ","4086      WHITESPACE@6629..6633 "\n\n  "4087      MEMBER_FIELD@6633..68864088        FIELD_METHOD@6633..68864089          FIELD_NAME_FIXED@6633..66364090            NAME@6633..66364091              IDENT@6633..6636 "min"4092          PARAMS_DESC@6636..66424093            L_PAREN@6636..6637 "("4094            PARAM@6637..66384095              DESTRUCT_FULL@6637..66384096                NAME@6637..66384097                  IDENT@6637..6638 "a"4098            COMMA@6638..6639 ","4099            WHITESPACE@6639..6640 " "4100            PARAM@6640..66414101              DESTRUCT_FULL@6640..66414102                NAME@6640..66414103                  IDENT@6640..6641 "b"4104            R_PAREN@6641..6642 ")"4105          COLONCOLON@6642..6644 "::"4106          WHITESPACE@6644..6649 "\n    "4107          EXPR_IF_THEN_ELSE@6649..68864108            IF_KW@6649..6651 "if"4109            WHITESPACE@6651..6652 " "4110            EXPR_UNARY@6652..66684111              NOT@6652..6653 "!"4112              EXPR_APPLY@6653..66684113                EXPR_INDEX@6653..66654114                  EXPR_VAR@6653..66564115                    NAME@6653..66564116                      IDENT@6653..6656 "std"4117                  DOT@6656..6657 "."4118                  NAME@6657..66654119                    IDENT@6657..6665 "isNumber"4120                ARGS_DESC@6665..66684121                  L_PAREN@6665..6666 "("4122                  ARG@6666..66674123                    EXPR_VAR@6666..66674124                      NAME@6666..66674125                        IDENT@6666..6667 "a"4126                  R_PAREN@6667..6668 ")"4127            WHITESPACE@6668..6669 " "4128            THEN_KW@6669..6673 "then"4129            WHITESPACE@6673..6680 "\n      "4130            TRUE_EXPR@6680..67434131              EXPR_ERROR@6680..67434132                ERROR_KW@6680..6685 "error"4133                WHITESPACE@6685..6686 " "4134                EXPR_BINARY@6686..67434135                  LHS_EXPR@6686..67294136                    EXPR_STRING@6686..67294137                      STRING_SINGLE@6686..6729 "'std.min first param  ..."4138                  WHITESPACE@6729..6730 " "4139                  PLUS@6730..6731 "+"4140                  WHITESPACE@6731..6732 " "4141                  EXPR_APPLY@6732..67434142                    EXPR_INDEX@6732..67404143                      EXPR_VAR@6732..67354144                        NAME@6732..67354145                          IDENT@6732..6735 "std"4146                      DOT@6735..6736 "."4147                      NAME@6736..67404148                        IDENT@6736..6740 "type"4149                    ARGS_DESC@6740..67434150                      L_PAREN@6740..6741 "("4151                      ARG@6741..67424152                        EXPR_VAR@6741..67424153                          NAME@6741..67424154                            IDENT@6741..6742 "a"4155                      R_PAREN@6742..6743 ")"4156            WHITESPACE@6743..6748 "\n    "4157            ELSE_KW@6748..6752 "else"4158            WHITESPACE@6752..6753 " "4159            FALSE_EXPR@6753..68864160              EXPR_IF_THEN_ELSE@6753..68864161                IF_KW@6753..6755 "if"4162                WHITESPACE@6755..6756 " "4163                EXPR_UNARY@6756..67724164                  NOT@6756..6757 "!"4165                  EXPR_APPLY@6757..67724166                    EXPR_INDEX@6757..67694167                      EXPR_VAR@6757..67604168                        NAME@6757..67604169                          IDENT@6757..6760 "std"4170                      DOT@6760..6761 "."4171                      NAME@6761..67694172                        IDENT@6761..6769 "isNumber"4173                    ARGS_DESC@6769..67724174                      L_PAREN@6769..6770 "("4175                      ARG@6770..67714176                        EXPR_VAR@6770..67714177                          NAME@6770..67714178                            IDENT@6770..6771 "b"4179                      R_PAREN@6771..6772 ")"4180                WHITESPACE@6772..6773 " "4181                THEN_KW@6773..6777 "then"4182                WHITESPACE@6777..6784 "\n      "4183                TRUE_EXPR@6784..68484184                  EXPR_ERROR@6784..68484185                    ERROR_KW@6784..6789 "error"4186                    WHITESPACE@6789..6790 " "4187                    EXPR_BINARY@6790..68484188                      LHS_EXPR@6790..68344189                        EXPR_STRING@6790..68344190                          STRING_SINGLE@6790..6834 "'std.min second param ..."4191                      WHITESPACE@6834..6835 " "4192                      PLUS@6835..6836 "+"4193                      WHITESPACE@6836..6837 " "4194                      EXPR_APPLY@6837..68484195                        EXPR_INDEX@6837..68454196                          EXPR_VAR@6837..68404197                            NAME@6837..68404198                              IDENT@6837..6840 "std"4199                          DOT@6840..6841 "."4200                          NAME@6841..68454201                            IDENT@6841..6845 "type"4202                        ARGS_DESC@6845..68484203                          L_PAREN@6845..6846 "("4204                          ARG@6846..68474205                            EXPR_VAR@6846..68474206                              NAME@6846..68474207                                IDENT@6846..6847 "b"4208                          R_PAREN@6847..6848 ")"4209                WHITESPACE@6848..6853 "\n    "4210                ELSE_KW@6853..6857 "else"4211                WHITESPACE@6857..6864 "\n      "4212                FALSE_EXPR@6864..68864213                  EXPR_IF_THEN_ELSE@6864..68864214                    IF_KW@6864..6866 "if"4215                    WHITESPACE@6866..6867 " "4216                    EXPR_BINARY@6867..68724217                      LHS_EXPR@6867..68684218                        EXPR_VAR@6867..68684219                          NAME@6867..68684220                            IDENT@6867..6868 "a"4221                      WHITESPACE@6868..6869 " "4222                      LT@6869..6870 "<"4223                      WHITESPACE@6870..6871 " "4224                      EXPR_VAR@6871..68724225                        NAME@6871..68724226                          IDENT@6871..6872 "b"4227                    WHITESPACE@6872..6873 " "4228                    THEN_KW@6873..6877 "then"4229                    WHITESPACE@6877..6878 " "4230                    TRUE_EXPR@6878..68794231                      EXPR_VAR@6878..68794232                        NAME@6878..68794233                          IDENT@6878..6879 "a"4234                    WHITESPACE@6879..6880 " "4235                    ELSE_KW@6880..6884 "else"4236                    WHITESPACE@6884..6885 " "4237                    FALSE_EXPR@6885..68864238                      EXPR_VAR@6885..68864239                        NAME@6885..68864240                          IDENT@6885..6886 "b"4241      COMMA@6886..6887 ","4242      WHITESPACE@6887..6891 "\n\n  "4243      MEMBER_FIELD@6891..69934244        FIELD_METHOD@6891..69934245          FIELD_NAME_FIXED@6891..68964246            NAME@6891..68964247              IDENT@6891..6896 "clamp"4248          PARAMS_DESC@6896..69154249            L_PAREN@6896..6897 "("4250            PARAM@6897..68984251              DESTRUCT_FULL@6897..68984252                NAME@6897..68984253                  IDENT@6897..6898 "x"4254            COMMA@6898..6899 ","4255            WHITESPACE@6899..6900 " "4256            PARAM@6900..69064257              DESTRUCT_FULL@6900..69064258                NAME@6900..69064259                  IDENT@6900..6906 "minVal"4260            COMMA@6906..6907 ","4261            WHITESPACE@6907..6908 " "4262            PARAM@6908..69144263              DESTRUCT_FULL@6908..69144264                NAME@6908..69144265                  IDENT@6908..6914 "maxVal"4266            R_PAREN@6914..6915 ")"4267          COLONCOLON@6915..6917 "::"4268          WHITESPACE@6917..6922 "\n    "4269          EXPR_IF_THEN_ELSE@6922..69934270            IF_KW@6922..6924 "if"4271            WHITESPACE@6924..6925 " "4272            EXPR_BINARY@6925..69354273              LHS_EXPR@6925..69264274                EXPR_VAR@6925..69264275                  NAME@6925..69264276                    IDENT@6925..6926 "x"4277              WHITESPACE@6926..6927 " "4278              LT@6927..6928 "<"4279              WHITESPACE@6928..6929 " "4280              EXPR_VAR@6929..69354281                NAME@6929..69354282                  IDENT@6929..6935 "minVal"4283            WHITESPACE@6935..6936 " "4284            THEN_KW@6936..6940 "then"4285            WHITESPACE@6940..6941 " "4286            TRUE_EXPR@6941..69474287              EXPR_VAR@6941..69474288                NAME@6941..69474289                  IDENT@6941..6947 "minVal"4290            WHITESPACE@6947..6952 "\n    "4291            ELSE_KW@6952..6956 "else"4292            WHITESPACE@6956..6957 " "4293            FALSE_EXPR@6957..69934294              EXPR_IF_THEN_ELSE@6957..69934295                IF_KW@6957..6959 "if"4296                WHITESPACE@6959..6960 " "4297                EXPR_BINARY@6960..69704298                  LHS_EXPR@6960..69614299                    EXPR_VAR@6960..69614300                      NAME@6960..69614301                        IDENT@6960..6961 "x"4302                  WHITESPACE@6961..6962 " "4303                  GT@6962..6963 ">"4304                  WHITESPACE@6963..6964 " "4305                  EXPR_VAR@6964..69704306                    NAME@6964..69704307                      IDENT@6964..6970 "maxVal"4308                WHITESPACE@6970..6971 " "4309                THEN_KW@6971..6975 "then"4310                WHITESPACE@6975..6976 " "4311                TRUE_EXPR@6976..69824312                  EXPR_VAR@6976..69824313                    NAME@6976..69824314                      IDENT@6976..6982 "maxVal"4315                WHITESPACE@6982..6987 "\n    "4316                ELSE_KW@6987..6991 "else"4317                WHITESPACE@6991..6992 " "4318                FALSE_EXPR@6992..69934319                  EXPR_VAR@6992..69934320                    NAME@6992..69934321                      IDENT@6992..6993 "x"4322      COMMA@6993..6994 ","4323      WHITESPACE@6994..6998 "\n\n  "4324      MEMBER_FIELD@6998..70654325        FIELD_METHOD@6998..70654326          FIELD_NAME_FIXED@6998..70114327            NAME@6998..70114328              IDENT@6998..7011 "flattenArrays"4329          PARAMS_DESC@7011..70174330            L_PAREN@7011..7012 "("4331            PARAM@7012..70164332              DESTRUCT_FULL@7012..70164333                NAME@7012..70164334                  IDENT@7012..7016 "arrs"4335            R_PAREN@7016..7017 ")"4336          COLONCOLON@7017..7019 "::"4337          WHITESPACE@7019..7024 "\n    "4338          EXPR_APPLY@7024..70654339            EXPR_INDEX@7024..70334340              EXPR_VAR@7024..70274341                NAME@7024..70274342                  IDENT@7024..7027 "std"4343              DOT@7027..7028 "."4344              NAME@7028..70334345                IDENT@7028..7033 "foldl"4346            ARGS_DESC@7033..70654347              L_PAREN@7033..7034 "("4348              ARG@7034..70544349                EXPR_FUNCTION@7034..70544350                  FUNCTION_KW@7034..7042 "function"4351                  PARAMS_DESC@7042..70484352                    L_PAREN@7042..7043 "("4353                    PARAM@7043..70444354                      DESTRUCT_FULL@7043..70444355                        NAME@7043..70444356                          IDENT@7043..7044 "a"4357                    COMMA@7044..7045 ","4358                    WHITESPACE@7045..7046 " "4359                    PARAM@7046..70474360                      DESTRUCT_FULL@7046..70474361                        NAME@7046..70474362                          IDENT@7046..7047 "b"4363                    R_PAREN@7047..7048 ")"4364                  WHITESPACE@7048..7049 " "4365                  EXPR_BINARY@7049..70544366                    LHS_EXPR@7049..70504367                      EXPR_VAR@7049..70504368                        NAME@7049..70504369                          IDENT@7049..7050 "a"4370                    WHITESPACE@7050..7051 " "4371                    PLUS@7051..7052 "+"4372                    WHITESPACE@7052..7053 " "4373                    EXPR_VAR@7053..70544374                      NAME@7053..70544375                        IDENT@7053..7054 "b"4376              COMMA@7054..7055 ","4377              WHITESPACE@7055..7056 " "4378              ARG@7056..70604379                EXPR_VAR@7056..70604380                  NAME@7056..70604381                    IDENT@7056..7060 "arrs"4382              COMMA@7060..7061 ","4383              WHITESPACE@7061..7062 " "4384              ARG@7062..70644385                EXPR_ARRAY@7062..70644386                  L_BRACK@7062..7063 "["4387                  R_BRACK@7063..7064 "]"4388              R_PAREN@7064..7065 ")"4389      COMMA@7065..7066 ","4390      WHITESPACE@7066..7070 "\n\n  "4391      MEMBER_FIELD@7070..77564392        FIELD_METHOD@7070..77564393          FIELD_NAME_FIXED@7070..70814394            NAME@7070..70814395              IDENT@7070..7081 "manifestIni"4396          PARAMS_DESC@7081..70864397            L_PAREN@7081..7082 "("4398            PARAM@7082..70854399              DESTRUCT_FULL@7082..70854400                NAME@7082..70854401                  IDENT@7082..7085 "ini"4402            R_PAREN@7085..7086 ")"4403          COLONCOLON@7086..7088 "::"4404          WHITESPACE@7088..7093 "\n    "4405          EXPR_LOCAL@7093..77564406            LOCAL_KW@7093..7098 "local"4407            WHITESPACE@7098..7099 " "4408            BIND_FUNCTION@7099..73964409              NAME@7099..71094410                IDENT@7099..7109 "body_lines"4411              PARAMS_DESC@7109..71154412                L_PAREN@7109..7110 "("4413                PARAM@7110..71144414                  DESTRUCT_FULL@7110..71144415                    NAME@7110..71144416                      IDENT@7110..7114 "body"4417                R_PAREN@7114..7115 ")"4418              WHITESPACE@7115..7116 " "4419              ASSIGN@7116..7117 "="4420              WHITESPACE@7117..7124 "\n      "4421              EXPR_APPLY@7124..73964422                EXPR_INDEX@7124..71324423                  EXPR_VAR@7124..71274424                    NAME@7124..71274425                      IDENT@7124..7127 "std"4426                  DOT@7127..7128 "."4427                  NAME@7128..71324428                    IDENT@7128..7132 "join"4429                ARGS_DESC@7132..73964430                  L_PAREN@7132..7133 "("4431                  ARG@7133..71354432                    EXPR_ARRAY@7133..71354433                      L_BRACK@7133..7134 "["4434                      R_BRACK@7134..7135 "]"4435                  COMMA@7135..7136 ","4436                  WHITESPACE@7136..7137 " "4437                  ARG@7137..73954438                    EXPR_ARRAY_COMP@7137..73954439                      L_BRACK@7137..7138 "["4440                      WHITESPACE@7138..7147 "\n        "4441                      EXPR_LOCAL@7147..73464442                        LOCAL_KW@7147..7152 "local"4443                        WHITESPACE@7152..7153 " "4444                        BIND_DESTRUCT@7153..71784445                          DESTRUCT_FULL@7153..71684446                            NAME@7153..71684447                              IDENT@7153..7168 "value_or_values"4448                          WHITESPACE@7168..7169 " "4449                          ASSIGN@7169..7170 "="4450                          WHITESPACE@7170..7171 " "4451                          EXPR_INDEX_EXPR@7171..71784452                            LHS_EXPR@7171..71754453                              EXPR_VAR@7171..71754454                                NAME@7171..71754455                                  IDENT@7171..7175 "body"4456                            L_BRACK@7175..7176 "["4457                            EXPR_VAR@7176..71774458                              NAME@7176..71774459                                IDENT@7176..7177 "k"4460                            R_BRACK@7177..7178 "]"4461                        SEMI@7178..7179 ";"4462                        WHITESPACE@7179..7188 "\n        "4463                        EXPR_IF_THEN_ELSE@7188..73464464                          IF_KW@7188..7190 "if"4465                          WHITESPACE@7190..7191 " "4466                          EXPR_APPLY@7191..72194467                            EXPR_INDEX@7191..72024468                              EXPR_VAR@7191..71944469                                NAME@7191..71944470                                  IDENT@7191..7194 "std"4471                              DOT@7194..7195 "."4472                              NAME@7195..72024473                                IDENT@7195..7202 "isArray"4474                            ARGS_DESC@7202..72194475                              L_PAREN@7202..7203 "("4476                              ARG@7203..72184477                                EXPR_VAR@7203..72184478                                  NAME@7203..72184479                                    IDENT@7203..7218 "value_or_values"4480                              R_PAREN@7218..7219 ")"4481                          WHITESPACE@7219..7220 " "4482                          THEN_KW@7220..7224 "then"4483                          WHITESPACE@7224..7235 "\n          "4484                          TRUE_EXPR@7235..72884485                            EXPR_ARRAY_COMP@7235..72884486                              L_BRACK@7235..7236 "["4487                              EXPR_BINARY@7236..72584488                                LHS_EXPR@7236..72454489                                  EXPR_STRING@7236..72454490                                    STRING_SINGLE@7236..7245 "'%s = %s'"4491                                WHITESPACE@7245..7246 " "4492                                MODULO@7246..7247 "%"4493                                WHITESPACE@7247..7248 " "4494                                EXPR_ARRAY@7248..72584495                                  L_BRACK@7248..7249 "["4496                                  EXPR_VAR@7249..72504497                                    NAME@7249..72504498                                      IDENT@7249..7250 "k"4499                                  COMMA@7250..7251 ","4500                                  WHITESPACE@7251..7252 " "4501                                  EXPR_VAR@7252..72574502                                    NAME@7252..72574503                                      IDENT@7252..7257 "value"4504                                  R_BRACK@7257..7258 "]"4505                              WHITESPACE@7258..7259 " "4506                              FOR_SPEC@7259..72874507                                FOR_KW@7259..7262 "for"4508                                WHITESPACE@7262..7263 " "4509                                NAME@7263..72684510                                  IDENT@7263..7268 "value"4511                                WHITESPACE@7268..7269 " "4512                                IN_KW@7269..7271 "in"4513                                WHITESPACE@7271..7272 " "4514                                EXPR_VAR@7272..72874515                                  NAME@7272..72874516                                    IDENT@7272..7287 "value_or_values"4517                              R_BRACK@7287..7288 "]"4518                          WHITESPACE@7288..7297 "\n        "4519                          ELSE_KW@7297..7301 "else"4520                          WHITESPACE@7301..7312 "\n          "4521                          FALSE_EXPR@7312..73464522                            EXPR_ARRAY@7312..73464523                              L_BRACK@7312..7313 "["4524                              EXPR_BINARY@7313..73454525                                LHS_EXPR@7313..73224526                                  EXPR_STRING@7313..73224527                                    STRING_SINGLE@7313..7322 "'%s = %s'"4528                                WHITESPACE@7322..7323 " "4529                                MODULO@7323..7324 "%"4530                                WHITESPACE@7324..7325 " "4531                                EXPR_ARRAY@7325..73454532                                  L_BRACK@7325..7326 "["4533                                  EXPR_VAR@7326..73274534                                    NAME@7326..73274535                                      IDENT@7326..7327 "k"4536                                  COMMA@7327..7328 ","4537                                  WHITESPACE@7328..7329 " "4538                                  EXPR_VAR@7329..73444539                                    NAME@7329..73444540                                      IDENT@7329..7344 "value_or_values"4541                                  R_BRACK@7344..7345 "]"4542                              R_BRACK@7345..7346 "]"4543                      WHITESPACE@7346..7356 "\n\n        "4544                      FOR_SPEC@7356..73874545                        FOR_KW@7356..7359 "for"4546                        WHITESPACE@7359..7360 " "4547                        NAME@7360..73614548                          IDENT@7360..7361 "k"4549                        WHITESPACE@7361..7362 " "4550                        IN_KW@7362..7364 "in"4551                        WHITESPACE@7364..7365 " "4552                        EXPR_APPLY@7365..73874553                          EXPR_INDEX@7365..73814554                            EXPR_VAR@7365..73684555                              NAME@7365..73684556                                IDENT@7365..7368 "std"4557                            DOT@7368..7369 "."4558                            NAME@7369..73814559                              IDENT@7369..7381 "objectFields"4560                          ARGS_DESC@7381..73874561                            L_PAREN@7381..7382 "("4562                            ARG@7382..73864563                              EXPR_VAR@7382..73864564                                NAME@7382..73864565                                  IDENT@7382..7386 "body"4566                            R_PAREN@7386..7387 ")"4567                      WHITESPACE@7387..7394 "\n      "4568                      R_BRACK@7394..7395 "]"4569                  R_PAREN@7395..7396 ")"4570            SEMI@7396..7397 ";"4571            WHITESPACE@7397..7403 "\n\n    "4572            EXPR_LOCAL@7403..77564573              LOCAL_KW@7403..7408 "local"4574              WHITESPACE@7408..7409 " "4575              BIND_FUNCTION@7409..74774576                NAME@7409..74224577                  IDENT@7409..7422 "section_lines"4578                PARAMS_DESC@7422..74364579                  L_PAREN@7422..7423 "("4580                  PARAM@7423..74284581                    DESTRUCT_FULL@7423..74284582                      NAME@7423..74284583                        IDENT@7423..7428 "sname"4584                  COMMA@7428..7429 ","4585                  WHITESPACE@7429..7430 " "4586                  PARAM@7430..74354587                    DESTRUCT_FULL@7430..74354588                      NAME@7430..74354589                        IDENT@7430..7435 "sbody"4590                  R_PAREN@7435..7436 ")"4591                WHITESPACE@7436..7437 " "4592                ASSIGN@7437..7438 "="4593                WHITESPACE@7438..7439 " "4594                EXPR_BINARY@7439..74774595                  LHS_EXPR@7439..74574596                    EXPR_ARRAY@7439..74574597                      L_BRACK@7439..7440 "["4598                      EXPR_BINARY@7440..74564599                        LHS_EXPR@7440..74464600                          EXPR_STRING@7440..74464601                            STRING_SINGLE@7440..7446 "'[%s]'"4602                        WHITESPACE@7446..7447 " "4603                        MODULO@7447..7448 "%"4604                        WHITESPACE@7448..7449 " "4605                        EXPR_ARRAY@7449..74564606                          L_BRACK@7449..7450 "["4607                          EXPR_VAR@7450..74554608                            NAME@7450..74554609                              IDENT@7450..7455 "sname"4610                          R_BRACK@7455..7456 "]"4611                      R_BRACK@7456..7457 "]"4612                  WHITESPACE@7457..7458 " "4613                  PLUS@7458..7459 "+"4614                  WHITESPACE@7459..7460 " "4615                  EXPR_APPLY@7460..74774616                    EXPR_VAR@7460..74704617                      NAME@7460..74704618                        IDENT@7460..7470 "body_lines"4619                    ARGS_DESC@7470..74774620                      L_PAREN@7470..7471 "("4621                      ARG@7471..74764622                        EXPR_VAR@7471..74764623                          NAME@7471..74764624                            IDENT@7471..7476 "sbody"4625                      R_PAREN@7476..7477 ")"4626              COMMA@7477..7478 ","4627              WHITESPACE@7478..7489 "\n          "4628              BIND_DESTRUCT@7489..75644629                DESTRUCT_FULL@7489..74984630                  NAME@7489..74984631                    IDENT@7489..7498 "main_body"4632                WHITESPACE@7498..7499 " "4633                ASSIGN@7499..7500 "="4634                WHITESPACE@7500..7501 " "4635                EXPR_IF_THEN_ELSE@7501..75644636                  IF_KW@7501..7503 "if"4637                  WHITESPACE@7503..7504 " "4638                  EXPR_APPLY@7504..75304639                    EXPR_INDEX@7504..75174640                      EXPR_VAR@7504..75074641                        NAME@7504..75074642                          IDENT@7504..7507 "std"4643                      DOT@7507..7508 "."4644                      NAME@7508..75174645                        IDENT@7508..7517 "objectHas"4646                    ARGS_DESC@7517..75304647                      L_PAREN@7517..7518 "("4648                      ARG@7518..75214649                        EXPR_VAR@7518..75214650                          NAME@7518..75214651                            IDENT@7518..7521 "ini"4652                      COMMA@7521..7522 ","4653                      WHITESPACE@7522..7523 " "4654                      ARG@7523..75294655                        EXPR_STRING@7523..75294656                          STRING_SINGLE@7523..7529 "'main'"4657                      R_PAREN@7529..7530 ")"4658                  WHITESPACE@7530..7531 " "4659                  THEN_KW@7531..7535 "then"4660                  WHITESPACE@7535..7536 " "4661                  TRUE_EXPR@7536..75564662                    EXPR_APPLY@7536..75564663                      EXPR_VAR@7536..75464664                        NAME@7536..75464665                          IDENT@7536..7546 "body_lines"4666                      ARGS_DESC@7546..75564667                        L_PAREN@7546..7547 "("4668                        ARG@7547..75554669                          EXPR_INDEX@7547..75554670                            EXPR_VAR@7547..75504671                              NAME@7547..75504672                                IDENT@7547..7550 "ini"4673                            DOT@7550..7551 "."4674                            NAME@7551..75554675                              IDENT@7551..7555 "main"4676                        R_PAREN@7555..7556 ")"4677                  WHITESPACE@7556..7557 " "4678                  ELSE_KW@7557..7561 "else"4679                  WHITESPACE@7561..7562 " "4680                  FALSE_EXPR@7562..75644681                    EXPR_ARRAY@7562..75644682                      L_BRACK@7562..7563 "["4683                      R_BRACK@7563..7564 "]"4684              COMMA@7564..7565 ","4685              WHITESPACE@7565..7576 "\n          "4686              BIND_DESTRUCT@7576..76844687                DESTRUCT_FULL@7576..75884688                  NAME@7576..75884689                    IDENT@7576..7588 "all_sections"4690                WHITESPACE@7588..7589 " "4691                ASSIGN@7589..7590 "="4692                WHITESPACE@7590..7591 " "4693                EXPR_ARRAY_COMP@7591..76844694                  L_BRACK@7591..7592 "["4695                  WHITESPACE@7592..7599 "\n      "4696                  EXPR_APPLY@7599..76324697                    EXPR_VAR@7599..76124698                      NAME@7599..76124699                        IDENT@7599..7612 "section_lines"4700                    ARGS_DESC@7612..76324701                      L_PAREN@7612..7613 "("4702                      ARG@7613..76144703                        EXPR_VAR@7613..76144704                          NAME@7613..76144705                            IDENT@7613..7614 "k"4706                      COMMA@7614..7615 ","4707                      WHITESPACE@7615..7616 " "4708                      ARG@7616..76314709                        EXPR_INDEX_EXPR@7616..76314710                          LHS_EXPR@7616..76284711                            EXPR_INDEX@7616..76284712                              EXPR_VAR@7616..76194713                                NAME@7616..76194714                                  IDENT@7616..7619 "ini"4715                              DOT@7619..7620 "."4716                              NAME@7620..76284717                                IDENT@7620..7628 "sections"4718                          L_BRACK@7628..7629 "["4719                          EXPR_VAR@7629..76304720                            NAME@7629..76304721                              IDENT@7629..7630 "k"4722                          R_BRACK@7630..7631 "]"4723                      R_PAREN@7631..7632 ")"4724                  WHITESPACE@7632..7639 "\n      "4725                  FOR_SPEC@7639..76784726                    FOR_KW@7639..7642 "for"4727                    WHITESPACE@7642..7643 " "4728                    NAME@7643..76444729                      IDENT@7643..7644 "k"4730                    WHITESPACE@7644..7645 " "4731                    IN_KW@7645..7647 "in"4732                    WHITESPACE@7647..7648 " "4733                    EXPR_APPLY@7648..76784734                      EXPR_INDEX@7648..76644735                        EXPR_VAR@7648..76514736                          NAME@7648..76514737                            IDENT@7648..7651 "std"4738                        DOT@7651..7652 "."4739                        NAME@7652..76644740                          IDENT@7652..7664 "objectFields"4741                      ARGS_DESC@7664..76784742                        L_PAREN@7664..7665 "("4743                        ARG@7665..76774744                          EXPR_INDEX@7665..76774745                            EXPR_VAR@7665..76684746                              NAME@7665..76684747                                IDENT@7665..7668 "ini"4748                            DOT@7668..7669 "."4749                            NAME@7669..76774750                              IDENT@7669..7677 "sections"4751                        R_PAREN@7677..7678 ")"4752                  WHITESPACE@7678..7683 "\n    "4753                  R_BRACK@7683..7684 "]"4754              SEMI@7684..7685 ";"4755              WHITESPACE@7685..7690 "\n    "4756              EXPR_APPLY@7690..77564757                EXPR_INDEX@7690..76984758                  EXPR_VAR@7690..76934759                    NAME@7690..76934760                      IDENT@7690..7693 "std"4761                  DOT@7693..7694 "."4762                  NAME@7694..76984763                    IDENT@7694..7698 "join"4764                ARGS_DESC@7698..77564765                  L_PAREN@7698..7699 "("4766                  ARG@7699..77034767                    EXPR_STRING@7699..77034768                      STRING_SINGLE@7699..7703 "'\\n'"4769                  COMMA@7703..7704 ","4770                  WHITESPACE@7704..7705 " "4771                  ARG@7705..77554772                    EXPR_BINARY@7705..77554773                      LHS_EXPR@7705..77484774                        EXPR_BINARY@7705..77484775                          LHS_EXPR@7705..77144776                            EXPR_VAR@7705..77144777                              NAME@7705..77144778                                IDENT@7705..7714 "main_body"4779                          WHITESPACE@7714..7715 " "4780                          PLUS@7715..7716 "+"4781                          WHITESPACE@7716..7717 " "4782                          EXPR_APPLY@7717..77484783                            EXPR_INDEX@7717..77344784                              EXPR_VAR@7717..77204785                                NAME@7717..77204786                                  IDENT@7717..7720 "std"4787                              DOT@7720..7721 "."4788                              NAME@7721..77344789                                IDENT@7721..7734 "flattenArrays"4790                            ARGS_DESC@7734..77484791                              L_PAREN@7734..7735 "("4792                              ARG@7735..77474793                                EXPR_VAR@7735..77474794                                  NAME@7735..77474795                                    IDENT@7735..7747 "all_sections"4796                              R_PAREN@7747..7748 ")"4797                      WHITESPACE@7748..7749 " "4798                      PLUS@7749..7750 "+"4799                      WHITESPACE@7750..7751 " "4800                      EXPR_ARRAY@7751..77554801                        L_BRACK@7751..7752 "["4802                        EXPR_STRING@7752..77544803                          STRING_SINGLE@7752..7754 "''"4804                        R_BRACK@7754..7755 "]"4805                  R_PAREN@7755..7756 ")"4806      COMMA@7756..7757 ","4807      WHITESPACE@7757..7761 "\n\n  "4808      MEMBER_FIELD@7761..78144809        FIELD_METHOD@7761..78144810          FIELD_NAME_FIXED@7761..77734811            NAME@7761..77734812              IDENT@7761..7773 "manifestToml"4813          PARAMS_DESC@7773..77804814            L_PAREN@7773..7774 "("4815            PARAM@7774..77794816              DESTRUCT_FULL@7774..77794817                NAME@7774..77794818                  IDENT@7774..7779 "value"4819            R_PAREN@7779..7780 ")"4820          COLONCOLON@7780..7782 "::"4821          WHITESPACE@7782..7783 " "4822          EXPR_APPLY@7783..78144823            EXPR_INDEX@7783..78014824              EXPR_VAR@7783..77864825                NAME@7783..77864826                  IDENT@7783..7786 "std"4827              DOT@7786..7787 "."4828              NAME@7787..78014829                IDENT@7787..7801 "manifestTomlEx"4830            ARGS_DESC@7801..78144831              L_PAREN@7801..7802 "("4832              ARG@7802..78074833                EXPR_VAR@7802..78074834                  NAME@7802..78074835                    IDENT@7802..7807 "value"4836              COMMA@7807..7808 ","4837              WHITESPACE@7808..7809 " "4838              ARG@7809..78134839                EXPR_STRING@7809..78134840                  STRING_SINGLE@7809..7813 "'  '"4841              R_PAREN@7813..7814 ")"4842      COMMA@7814..7815 ","4843      WHITESPACE@7815..7819 "\n\n  "4844      MEMBER_FIELD@7819..114764845        FIELD_METHOD@7819..114764846          FIELD_NAME_FIXED@7819..78334847            NAME@7819..78334848              IDENT@7819..7833 "manifestTomlEx"4849          PARAMS_DESC@7833..78484850            L_PAREN@7833..7834 "("4851            PARAM@7834..78394852              DESTRUCT_FULL@7834..78394853                NAME@7834..78394854                  IDENT@7834..7839 "value"4855            COMMA@7839..7840 ","4856            WHITESPACE@7840..7841 " "4857            PARAM@7841..78474858              DESTRUCT_FULL@7841..78474859                NAME@7841..78474860                  IDENT@7841..7847 "indent"4861            R_PAREN@7847..7848 ")"4862          COLONCOLON@7848..7850 "::"4863          WHITESPACE@7850..7855 "\n    "4864          EXPR_LOCAL@7855..114764865            LOCAL_KW@7855..7860 "local"4866            WHITESPACE@7860..7867 "\n      "4867            BIND_DESTRUCT@7867..79064868              DESTRUCT_FULL@7867..78834869                NAME@7867..78834870                  IDENT@7867..7883 "escapeStringToml"4871              WHITESPACE@7883..7884 " "4872              ASSIGN@7884..7885 "="4873              WHITESPACE@7885..7886 " "4874              EXPR_INDEX@7886..79064875                EXPR_VAR@7886..78894876                  NAME@7886..78894877                    IDENT@7886..7889 "std"4878                DOT@7889..7890 "."4879                NAME@7890..79064880                  IDENT@7890..7906 "escapeStringJson"4881            COMMA@7906..7907 ","4882            WHITESPACE@7907..7914 "\n      "4883            BIND_FUNCTION@7914..81784884              NAME@7914..79274885                IDENT@7914..7927 "escapeKeyToml"4886              PARAMS_DESC@7927..79324887                L_PAREN@7927..7928 "("4888                PARAM@7928..79314889                  DESTRUCT_FULL@7928..79314890                    NAME@7928..79314891                      IDENT@7928..7931 "key"4892                R_PAREN@7931..7932 ")"4893              WHITESPACE@7932..7933 " "4894              ASSIGN@7933..7934 "="4895              WHITESPACE@7934..7943 "\n        "4896              EXPR_LOCAL@7943..81784897                LOCAL_KW@7943..7948 "local"4898                WHITESPACE@7948..7949 " "4899                BIND_DESTRUCT@7949..80564900                  DESTRUCT_FULL@7949..79614901                    NAME@7949..79614902                      IDENT@7949..7961 "bare_allowed"4903                  WHITESPACE@7961..7962 " "4904                  ASSIGN@7962..7963 "="4905                  WHITESPACE@7963..7964 " "4906                  EXPR_APPLY@7964..80564907                    EXPR_INDEX@7964..79714908                      EXPR_VAR@7964..79674909                        NAME@7964..79674910                          IDENT@7964..7967 "std"4911                      DOT@7967..7968 "."4912                      NAME@7968..79714913                        IDENT@7968..7971 "set"4914                    ARGS_DESC@7971..80564915                      L_PAREN@7971..7972 "("4916                      ARG@7972..80554917                        EXPR_APPLY@7972..80554918                          EXPR_INDEX@7972..79874919                            EXPR_VAR@7972..79754920                              NAME@7972..79754921                                IDENT@7972..7975 "std"4922                            DOT@7975..7976 "."4923                            NAME@7976..79874924                              IDENT@7976..7987 "stringChars"4925                          ARGS_DESC@7987..80554926                            L_PAREN@7987..7988 "("4927                            ARG@7988..80544928                              EXPR_STRING@7988..80544929                                STRING_SINGLE@7988..8054 "'ABCDEFGHIJKLMNOPQRST ..."4930                            R_PAREN@8054..8055 ")"4931                      R_PAREN@8055..8056 ")"4932                SEMI@8056..8057 ";"4933                WHITESPACE@8057..8066 "\n        "4934                EXPR_IF_THEN_ELSE@8066..81784935                  IF_KW@8066..8068 "if"4936                  WHITESPACE@8068..8069 " "4937                  EXPR_BINARY@8069..81424938                    LHS_EXPR@8069..81264939                      EXPR_APPLY@8069..81264940                        EXPR_INDEX@8069..80814941                          EXPR_VAR@8069..80724942                            NAME@8069..80724943                              IDENT@8069..8072 "std"4944                          DOT@8072..8073 "."4945                          NAME@8073..80814946                            IDENT@8073..8081 "setUnion"4947                        ARGS_DESC@8081..81264948                          L_PAREN@8081..8082 "("4949                          ARG@8082..81114950                            EXPR_APPLY@8082..81114951                              EXPR_INDEX@8082..80894952                                EXPR_VAR@8082..80854953                                  NAME@8082..80854954                                    IDENT@8082..8085 "std"4955                                DOT@8085..8086 "."4956                                NAME@8086..80894957                                  IDENT@8086..8089 "set"4958                              ARGS_DESC@8089..81114959                                L_PAREN@8089..8090 "("4960                                ARG@8090..81104961                                  EXPR_APPLY@8090..81104962                                    EXPR_INDEX@8090..81054963                                      EXPR_VAR@8090..80934964                                        NAME@8090..80934965                                          IDENT@8090..8093 "std"4966                                      DOT@8093..8094 "."4967                                      NAME@8094..81054968                                        IDENT@8094..8105 "stringChars"4969                                    ARGS_DESC@8105..81104970                                      L_PAREN@8105..8106 "("4971                                      ARG@8106..81094972                                        EXPR_VAR@8106..81094973                                          NAME@8106..81094974                                            IDENT@8106..8109 "key"4975                                      R_PAREN@8109..8110 ")"4976                                R_PAREN@8110..8111 ")"4977                          COMMA@8111..8112 ","4978                          WHITESPACE@8112..8113 " "4979                          ARG@8113..81254980                            EXPR_VAR@8113..81254981                              NAME@8113..81254982                                IDENT@8113..8125 "bare_allowed"4983                          R_PAREN@8125..8126 ")"4984                    WHITESPACE@8126..8127 " "4985                    EQ@8127..8129 "=="4986                    WHITESPACE@8129..8130 " "4987                    EXPR_VAR@8130..81424988                      NAME@8130..81424989                        IDENT@8130..8142 "bare_allowed"4990                  WHITESPACE@8142..8143 " "4991                  THEN_KW@8143..8147 "then"4992                  WHITESPACE@8147..8148 " "4993                  TRUE_EXPR@8148..81514994                    EXPR_VAR@8148..81514995                      NAME@8148..81514996                        IDENT@8148..8151 "key"4997                  WHITESPACE@8151..8152 " "4998                  ELSE_KW@8152..8156 "else"4999                  WHITESPACE@8156..8157 " "5000                  FALSE_EXPR@8157..81785001                    EXPR_APPLY@8157..81785002                      EXPR_VAR@8157..81735003                        NAME@8157..81735004                          IDENT@8157..8173 "escapeStringToml"5005                      ARGS_DESC@8173..81785006                        L_PAREN@8173..8174 "("5007                        ARG@8174..81775008                          EXPR_VAR@8174..81775009                            NAME@8174..81775010                              IDENT@8174..8177 "key"5011                        R_PAREN@8177..8178 ")"5012            COMMA@8178..8179 ","5013            WHITESPACE@8179..8186 "\n      "5014            BIND_FUNCTION@8186..82985015              NAME@8186..81985016                IDENT@8186..8198 "isTableArray"5017              PARAMS_DESC@8198..82015018                L_PAREN@8198..8199 "("5019                PARAM@8199..82005020                  DESTRUCT_FULL@8199..82005021                    NAME@8199..82005022                      IDENT@8199..8200 "v"5023                R_PAREN@8200..8201 ")"5024              WHITESPACE@8201..8202 " "5025              ASSIGN@8202..8203 "="5026              WHITESPACE@8203..8204 " "5027              EXPR_BINARY@8204..82985028                LHS_EXPR@8204..82395029                  EXPR_BINARY@8204..82395030                    LHS_EXPR@8204..82185031                      EXPR_APPLY@8204..82185032                        EXPR_INDEX@8204..82155033                          EXPR_VAR@8204..82075034                            NAME@8204..82075035                              IDENT@8204..8207 "std"5036                          DOT@8207..8208 "."5037                          NAME@8208..82155038                            IDENT@8208..8215 "isArray"5039                        ARGS_DESC@8215..82185040                          L_PAREN@8215..8216 "("5041                          ARG@8216..82175042                            EXPR_VAR@8216..82175043                              NAME@8216..82175044                                IDENT@8216..8217 "v"5045                          R_PAREN@8217..8218 ")"5046                    WHITESPACE@8218..8219 " "5047                    AND@8219..8221 "&&"5048                    WHITESPACE@8221..8222 " "5049                    EXPR_BINARY@8222..82395050                      LHS_EXPR@8222..82355051                        EXPR_APPLY@8222..82355052                          EXPR_INDEX@8222..82325053                            EXPR_VAR@8222..82255054                              NAME@8222..82255055                                IDENT@8222..8225 "std"5056                            DOT@8225..8226 "."5057                            NAME@8226..82325058                              IDENT@8226..8232 "length"5059                          ARGS_DESC@8232..82355060                            L_PAREN@8232..8233 "("5061                            ARG@8233..82345062                              EXPR_VAR@8233..82345063                                NAME@8233..82345064                                  IDENT@8233..8234 "v"5065                            R_PAREN@8234..8235 ")"5066                      WHITESPACE@8235..8236 " "5067                      GT@8236..8237 ">"5068                      WHITESPACE@8237..8238 " "5069                      EXPR_NUMBER@8238..82395070                        FLOAT@8238..8239 "0"5071                WHITESPACE@8239..8240 " "5072                AND@8240..8242 "&&"5073                WHITESPACE@8242..8243 " "5074                EXPR_APPLY@8243..82985075                  EXPR_INDEX@8243..82525076                    EXPR_VAR@8243..82465077                      NAME@8243..82465078                        IDENT@8243..8246 "std"5079                    DOT@8246..8247 "."5080                    NAME@8247..82525081                      IDENT@8247..8252 "foldl"5082                  ARGS_DESC@8252..82985083                    L_PAREN@8252..8253 "("5084                    ARG@8253..82885085                      EXPR_FUNCTION@8253..82885086                        FUNCTION_KW@8253..8261 "function"5087                        PARAMS_DESC@8261..82675088                          L_PAREN@8261..8262 "("5089                          PARAM@8262..82635090                            DESTRUCT_FULL@8262..82635091                              NAME@8262..82635092                                IDENT@8262..8263 "a"5093                          COMMA@8263..8264 ","5094                          WHITESPACE@8264..8265 " "5095                          PARAM@8265..82665096                            DESTRUCT_FULL@8265..82665097                              NAME@8265..82665098                                IDENT@8265..8266 "b"5099                          R_PAREN@8266..8267 ")"5100                        WHITESPACE@8267..8268 " "5101                        EXPR_BINARY@8268..82885102                          LHS_EXPR@8268..82695103                            EXPR_VAR@8268..82695104                              NAME@8268..82695105                                IDENT@8268..8269 "a"5106                          WHITESPACE@8269..8270 " "5107                          AND@8270..8272 "&&"5108                          WHITESPACE@8272..8273 " "5109                          EXPR_APPLY@8273..82885110                            EXPR_INDEX@8273..82855111                              EXPR_VAR@8273..82765112                                NAME@8273..82765113                                  IDENT@8273..8276 "std"5114                              DOT@8276..8277 "."5115                              NAME@8277..82855116                                IDENT@8277..8285 "isObject"5117                            ARGS_DESC@8285..82885118                              L_PAREN@8285..8286 "("5119                              ARG@8286..82875120                                EXPR_VAR@8286..82875121                                  NAME@8286..82875122                                    IDENT@8286..8287 "b"5123                              R_PAREN@8287..8288 ")"5124                    COMMA@8288..8289 ","5125                    WHITESPACE@8289..8290 " "5126                    ARG@8290..82915127                      EXPR_VAR@8290..82915128                        NAME@8290..82915129                          IDENT@8290..8291 "v"5130                    COMMA@8291..8292 ","5131                    WHITESPACE@8292..8293 " "5132                    ARG@8293..82975133                      EXPR_LITERAL@8293..82975134                        TRUE_KW@8293..8297 "true"5135                    R_PAREN@8297..8298 ")"5136            COMMA@8298..8299 ","5137            WHITESPACE@8299..8306 "\n      "5138            BIND_FUNCTION@8306..83555139              NAME@8306..83155140                IDENT@8306..8315 "isSection"5141              PARAMS_DESC@8315..83185142                L_PAREN@8315..8316 "("5143                PARAM@8316..83175144                  DESTRUCT_FULL@8316..83175145                    NAME@8316..83175146                      IDENT@8316..8317 "v"5147                R_PAREN@8317..8318 ")"5148              WHITESPACE@8318..8319 " "5149              ASSIGN@8319..8320 "="5150              WHITESPACE@8320..8321 " "5151              EXPR_BINARY@8321..83555152                LHS_EXPR@8321..83365153                  EXPR_APPLY@8321..83365154                    EXPR_INDEX@8321..83335155                      EXPR_VAR@8321..83245156                        NAME@8321..83245157                          IDENT@8321..8324 "std"5158                      DOT@8324..8325 "."5159                      NAME@8325..83335160                        IDENT@8325..8333 "isObject"5161                    ARGS_DESC@8333..83365162                      L_PAREN@8333..8334 "("5163                      ARG@8334..83355164                        EXPR_VAR@8334..83355165                          NAME@8334..83355166                            IDENT@8334..8335 "v"5167                      R_PAREN@8335..8336 ")"5168                WHITESPACE@8336..8337 " "5169                OR@8337..8339 "||"5170                WHITESPACE@8339..8340 " "5171                EXPR_APPLY@8340..83555172                  EXPR_VAR@8340..83525173                    NAME@8340..83525174                      IDENT@8340..8352 "isTableArray"5175                  ARGS_DESC@8352..83555176                    L_PAREN@8352..8353 "("5177                    ARG@8353..83545178                      EXPR_VAR@8353..83545179                        NAME@8353..83545180                          IDENT@8353..8354 "v"5181                    R_PAREN@8354..8355 ")"5182            COMMA@8355..8356 ","5183            WHITESPACE@8356..8363 "\n      "5184            BIND_FUNCTION@8363..99905185              NAME@8363..83745186                IDENT@8363..8374 "renderValue"5187              PARAMS_DESC@8374..84075188                L_PAREN@8374..8375 "("5189                PARAM@8375..83765190                  DESTRUCT_FULL@8375..83765191                    NAME@8375..83765192                      IDENT@8375..8376 "v"5193                COMMA@8376..8377 ","5194                WHITESPACE@8377..8378 " "5195                PARAM@8378..83895196                  DESTRUCT_FULL@8378..83895197                    NAME@8378..83895198                      IDENT@8378..8389 "indexedPath"5199                COMMA@8389..8390 ","5200                WHITESPACE@8390..8391 " "5201                PARAM@8391..83975202                  DESTRUCT_FULL@8391..83975203                    NAME@8391..83975204                      IDENT@8391..8397 "inline"5205                COMMA@8397..8398 ","5206                WHITESPACE@8398..8399 " "5207                PARAM@8399..84065208                  DESTRUCT_FULL@8399..84065209                    NAME@8399..84065210                      IDENT@8399..8406 "cindent"5211                R_PAREN@8406..8407 ")"5212              WHITESPACE@8407..8408 " "5213              ASSIGN@8408..8409 "="5214              WHITESPACE@8409..8418 "\n        "5215              EXPR_IF_THEN_ELSE@8418..99905216                IF_KW@8418..8420 "if"5217                WHITESPACE@8420..8421 " "5218                EXPR_BINARY@8421..84305219                  LHS_EXPR@8421..84225220                    EXPR_VAR@8421..84225221                      NAME@8421..84225222                        IDENT@8421..8422 "v"5223                  WHITESPACE@8422..8423 " "5224                  EQ@8423..8425 "=="5225                  WHITESPACE@8425..8426 " "5226                  EXPR_LITERAL@8426..84305227                    TRUE_KW@8426..8430 "true"5228                WHITESPACE@8430..8431 " "5229                THEN_KW@8431..8435 "then"5230                WHITESPACE@8435..8446 "\n          "5231                TRUE_EXPR@8446..84525232                  EXPR_STRING@8446..84525233                    STRING_SINGLE@8446..8452 "'true'"5234                WHITESPACE@8452..8461 "\n        "5235                ELSE_KW@8461..8465 "else"5236                WHITESPACE@8465..8466 " "5237                FALSE_EXPR@8466..99905238                  EXPR_IF_THEN_ELSE@8466..99905239                    IF_KW@8466..8468 "if"5240                    WHITESPACE@8468..8469 " "5241                    EXPR_BINARY@8469..84795242                      LHS_EXPR@8469..84705243                        EXPR_VAR@8469..84705244                          NAME@8469..84705245                            IDENT@8469..8470 "v"5246                      WHITESPACE@8470..8471 " "5247                      EQ@8471..8473 "=="5248                      WHITESPACE@8473..8474 " "5249                      EXPR_LITERAL@8474..84795250                        FALSE_KW@8474..8479 "false"5251                    WHITESPACE@8479..8480 " "5252                    THEN_KW@8480..8484 "then"5253                    WHITESPACE@8484..8495 "\n          "5254                    TRUE_EXPR@8495..85025255                      EXPR_STRING@8495..85025256                        STRING_SINGLE@8495..8502 "'false'"5257                    WHITESPACE@8502..8511 "\n        "5258                    ELSE_KW@8511..8515 "else"5259                    WHITESPACE@8515..8516 " "5260                    FALSE_EXPR@8516..99905261                      EXPR_IF_THEN_ELSE@8516..99905262                        IF_KW@8516..8518 "if"5263                        WHITESPACE@8518..8519 " "5264                        EXPR_BINARY@8519..85285265                          LHS_EXPR@8519..85205266                            EXPR_VAR@8519..85205267                              NAME@8519..85205268                                IDENT@8519..8520 "v"5269                          WHITESPACE@8520..8521 " "5270                          EQ@8521..8523 "=="5271                          WHITESPACE@8523..8524 " "5272                          EXPR_LITERAL@8524..85285273                            NULL_KW@8524..8528 "null"5274                        WHITESPACE@8528..8529 " "5275                        THEN_KW@8529..8533 "then"5276                        WHITESPACE@8533..8544 "\n          "5277                        TRUE_EXPR@8544..85945278                          EXPR_ERROR@8544..85945279                            ERROR_KW@8544..8549 "error"5280                            WHITESPACE@8549..8550 " "5281                            EXPR_BINARY@8550..85945282                              LHS_EXPR@8550..85805283                                EXPR_STRING@8550..85805284                                  STRING_SINGLE@8550..8580 "'Tried to manifest \"n ..."5285                              WHITESPACE@8580..8581 " "5286                              PLUS@8581..8582 "+"5287                              WHITESPACE@8582..8583 " "5288                              EXPR_VAR@8583..85945289                                NAME@8583..85945290                                  IDENT@8583..8594 "indexedPath"5291                        WHITESPACE@8594..8603 "\n        "5292                        ELSE_KW@8603..8607 "else"5293                        WHITESPACE@8607..8608 " "5294                        FALSE_EXPR@8608..99905295                          EXPR_IF_THEN_ELSE@8608..99905296                            IF_KW@8608..8610 "if"5297                            WHITESPACE@8610..8611 " "5298                            EXPR_APPLY@8611..86265299                              EXPR_INDEX@8611..86235300                                EXPR_VAR@8611..86145301                                  NAME@8611..86145302                                    IDENT@8611..8614 "std"5303                                DOT@8614..8615 "."5304                                NAME@8615..86235305                                  IDENT@8615..8623 "isNumber"5306                              ARGS_DESC@8623..86265307                                L_PAREN@8623..8624 "("5308                                ARG@8624..86255309                                  EXPR_VAR@8624..86255310                                    NAME@8624..86255311                                      IDENT@8624..8625 "v"5312                                R_PAREN@8625..8626 ")"5313                            WHITESPACE@8626..8627 " "5314                            THEN_KW@8627..8631 "then"5315                            WHITESPACE@8631..8642 "\n          "5316                            TRUE_EXPR@8642..86485317                              EXPR_BINARY@8642..86485318                                LHS_EXPR@8642..86445319                                  EXPR_STRING@8642..86445320                                    STRING_SINGLE@8642..8644 "''"5321                                WHITESPACE@8644..8645 " "5322                                PLUS@8645..8646 "+"5323                                WHITESPACE@8646..8647 " "5324                                EXPR_VAR@8647..86485325                                  NAME@8647..86485326                                    IDENT@8647..8648 "v"5327                            WHITESPACE@8648..8657 "\n        "5328                            ELSE_KW@8657..8661 "else"5329                            WHITESPACE@8661..8662 " "5330                            FALSE_EXPR@8662..99905331                              EXPR_IF_THEN_ELSE@8662..99905332                                IF_KW@8662..8664 "if"5333                                WHITESPACE@8664..8665 " "5334                                EXPR_APPLY@8665..86805335                                  EXPR_INDEX@8665..86775336                                    EXPR_VAR@8665..86685337                                      NAME@8665..86685338                                        IDENT@8665..8668 "std"5339                                    DOT@8668..8669 "."5340                                    NAME@8669..86775341                                      IDENT@8669..8677 "isString"5342                                  ARGS_DESC@8677..86805343                                    L_PAREN@8677..8678 "("5344                                    ARG@8678..86795345                                      EXPR_VAR@8678..86795346                                        NAME@8678..86795347                                          IDENT@8678..8679 "v"5348                                    R_PAREN@8679..8680 ")"5349                                WHITESPACE@8680..8681 " "5350                                THEN_KW@8681..8685 "then"5351                                WHITESPACE@8685..8696 "\n          "5352                                TRUE_EXPR@8696..87155353                                  EXPR_APPLY@8696..87155354                                    EXPR_VAR@8696..87125355                                      NAME@8696..87125356                                        IDENT@8696..8712 "escapeStringToml"5357                                    ARGS_DESC@8712..87155358                                      L_PAREN@8712..8713 "("5359                                      ARG@8713..87145360                                        EXPR_VAR@8713..87145361                                          NAME@8713..87145362                                            IDENT@8713..8714 "v"5363                                      R_PAREN@8714..8715 ")"5364                                WHITESPACE@8715..8724 "\n        "5365                                ELSE_KW@8724..8728 "else"5366                                WHITESPACE@8728..8729 " "5367                                FALSE_EXPR@8729..99905368                                  EXPR_IF_THEN_ELSE@8729..99905369                                    IF_KW@8729..8731 "if"5370                                    WHITESPACE@8731..8732 " "5371                                    EXPR_APPLY@8732..87495372                                      EXPR_INDEX@8732..87465373                                        EXPR_VAR@8732..87355374                                          NAME@8732..87355375                                            IDENT@8732..8735 "std"5376                                        DOT@8735..8736 "."5377                                        NAME@8736..87465378                                          IDENT@8736..8746 "isFunction"5379                                      ARGS_DESC@8746..87495380                                        L_PAREN@8746..8747 "("5381                                        ARG@8747..87485382                                          EXPR_VAR@8747..87485383                                            NAME@8747..87485384                                              IDENT@8747..8748 "v"5385                                        R_PAREN@8748..8749 ")"5386                                    WHITESPACE@8749..8750 " "5387                                    THEN_KW@8750..8754 "then"5388                                    WHITESPACE@8754..8765 "\n          "5389                                    TRUE_EXPR@8765..88175390                                      EXPR_ERROR@8765..88175391                                        ERROR_KW@8765..8770 "error"5392                                        WHITESPACE@8770..8771 " "5393                                        EXPR_BINARY@8771..88175394                                          LHS_EXPR@8771..88035395                                            EXPR_STRING@8771..88035396                                              STRING_SINGLE@8771..8803 "'Tried to manifest fu ..."5397                                          WHITESPACE@8803..8804 " "5398                                          PLUS@8804..8805 "+"5399                                          WHITESPACE@8805..8806 " "5400                                          EXPR_VAR@8806..88175401                                            NAME@8806..88175402                                              IDENT@8806..8817 "indexedPath"5403                                    WHITESPACE@8817..8826 "\n        "5404                                    ELSE_KW@8826..8830 "else"5405                                    WHITESPACE@8830..8831 " "5406                                    FALSE_EXPR@8831..99905407                                      EXPR_IF_THEN_ELSE@8831..99905408                                        IF_KW@8831..8833 "if"5409                                        WHITESPACE@8833..8834 " "5410                                        EXPR_APPLY@8834..88485411                                          EXPR_INDEX@8834..88455412                                            EXPR_VAR@8834..88375413                                              NAME@8834..88375414                                                IDENT@8834..8837 "std"5415                                            DOT@8837..8838 "."5416                                            NAME@8838..88455417                                              IDENT@8838..8845 "isArray"5418                                          ARGS_DESC@8845..88485419                                            L_PAREN@8845..8846 "("5420                                            ARG@8846..88475421                                              EXPR_VAR@8846..88475422                                                NAME@8846..88475423                                                  IDENT@8846..8847 "v"5424                                            R_PAREN@8847..8848 ")"5425                                        WHITESPACE@8848..8849 " "5426                                        THEN_KW@8849..8853 "then"5427                                        WHITESPACE@8853..8864 "\n          "5428                                        TRUE_EXPR@8864..95615429                                          EXPR_IF_THEN_ELSE@8864..95615430                                            IF_KW@8864..8866 "if"5431                                            WHITESPACE@8866..8867 " "5432                                            EXPR_BINARY@8867..88855433                                              LHS_EXPR@8867..88805434                                                EXPR_APPLY@8867..88805435                                                  EXPR_INDEX@8867..88775436                                                    EXPR_VAR@8867..88705437                                                      NAME@8867..88705438                                                        IDENT@8867..8870 "std"5439                                                    DOT@8870..8871 "."5440                                                    NAME@8871..88775441                                                      IDENT@8871..8877 "length"5442                                                  ARGS_DESC@8877..88805443                                                    L_PAREN@8877..8878 "("5444                                                    ARG@8878..88795445                                                      EXPR_VAR@8878..88795446                                                        NAME@8878..88795447                                                          IDENT@8878..8879 "v"5448                                                    R_PAREN@8879..8880 ")"5449                                              WHITESPACE@8880..8881 " "5450                                              EQ@8881..8883 "=="5451                                              WHITESPACE@8883..8884 " "5452                                              EXPR_NUMBER@8884..88855453                                                FLOAT@8884..8885 "0"5454                                            WHITESPACE@8885..8886 " "5455                                            THEN_KW@8886..8890 "then"5456                                            WHITESPACE@8890..8903 "\n            "5457                                            TRUE_EXPR@8903..89075458                                              EXPR_STRING@8903..89075459                                                STRING_SINGLE@8903..8907 "'[]'"5460                                            WHITESPACE@8907..8918 "\n          "5461                                            ELSE_KW@8918..8922 "else"5462                                            WHITESPACE@8922..8935 "\n            "5463                                            FALSE_EXPR@8935..95615464                                              EXPR_LOCAL@8935..95615465                                                LOCAL_KW@8935..8940 "local"5466                                                WHITESPACE@8940..8941 " "5467                                                BIND_DESTRUCT@8941..89805468                                                  DESTRUCT_FULL@8941..89465469                                                    NAME@8941..89465470                                                      IDENT@8941..8946 "range"5471                                                  WHITESPACE@8946..8947 " "5472                                                  ASSIGN@8947..8948 "="5473                                                  WHITESPACE@8948..8949 " "5474                                                  EXPR_APPLY@8949..89805475                                                    EXPR_INDEX@8949..89585476                                                      EXPR_VAR@8949..89525477                                                        NAME@8949..89525478                                                          IDENT@8949..8952 "std"5479                                                      DOT@8952..8953 "."5480                                                      NAME@8953..89585481                                                        IDENT@8953..8958 "range"5482                                                    ARGS_DESC@8958..89805483                                                      L_PAREN@8958..8959 "("5484                                                      ARG@8959..89605485                                                        EXPR_NUMBER@8959..89605486                                                          FLOAT@8959..8960 "0"5487                                                      COMMA@8960..8961 ","5488                                                      WHITESPACE@8961..8962 " "5489                                                      ARG@8962..89795490                                                        EXPR_BINARY@8962..89795491                                                          LHS_EXPR@8962..89755492                                                            EXPR_APPLY@8962..89755493                                                              EXPR_INDEX@8962..89725494                                                                EXPR_VAR@8962..89655495                                                                  NAME@8962..89655496                                                                    IDENT@8962..8965 "std"5497                                                                DOT@8965..8966 "."5498                                                                NAME@8966..89725499                                                                  IDENT@8966..8972 "length"5500                                                              ARGS_DESC@8972..89755501                                                                L_PAREN@8972..8973 "("5502                                                                ARG@8973..89745503                                                                  EXPR_VAR@8973..89745504                                                                    NAME@8973..89745505                                                                      IDENT@8973..8974 "v"5506                                                                R_PAREN@8974..8975 ")"5507                                                          WHITESPACE@8975..8976 " "5508                                                          MINUS@8976..8977 "-"5509                                                          WHITESPACE@8977..8978 " "5510                                                          EXPR_NUMBER@8978..89795511                                                            FLOAT@8978..8979 "1"5512                                                      R_PAREN@8979..8980 ")"5513                                                SEMI@8980..8981 ";"5514                                                WHITESPACE@8981..8994 "\n            "5515                                                EXPR_LOCAL@8994..95615516                                                  LOCAL_KW@8994..8999 "local"5517                                                  WHITESPACE@8999..9000 " "5518                                                  BIND_DESTRUCT@9000..90525519                                                    DESTRUCT_FULL@9000..90105520                                                      NAME@9000..90105521                                                        IDENT@9000..9010 "new_indent"5522                                                    WHITESPACE@9010..9011 " "5523                                                    ASSIGN@9011..9012 "="5524                                                    WHITESPACE@9012..9013 " "5525                                                    EXPR_IF_THEN_ELSE@9013..90525526                                                      IF_KW@9013..9015 "if"5527                                                      WHITESPACE@9015..9016 " "5528                                                      EXPR_VAR@9016..90225529                                                        NAME@9016..90225530                                                          IDENT@9016..9022 "inline"5531                                                      WHITESPACE@9022..9023 " "5532                                                      THEN_KW@9023..9027 "then"5533                                                      WHITESPACE@9027..9028 " "5534                                                      TRUE_EXPR@9028..90305535                                                        EXPR_STRING@9028..90305536                                                          STRING_SINGLE@9028..9030 "''"5537                                                      WHITESPACE@9030..9031 " "5538                                                      ELSE_KW@9031..9035 "else"5539                                                      WHITESPACE@9035..9036 " "5540                                                      FALSE_EXPR@9036..90525541                                                        EXPR_BINARY@9036..90525542                                                          LHS_EXPR@9036..90435543                                                            EXPR_VAR@9036..90435544                                                              NAME@9036..90435545                                                                IDENT@9036..9043 "cindent"5546                                                          WHITESPACE@9043..9044 " "5547                                                          PLUS@9044..9045 "+"5548                                                          WHITESPACE@9045..9046 " "5549                                                          EXPR_VAR@9046..90525550                                                            NAME@9046..90525551                                                              IDENT@9046..9052 "indent"5552                                                  SEMI@9052..9053 ";"5553                                                  WHITESPACE@9053..9066 "\n            "5554                                                  EXPR_LOCAL@9066..95615555                                                    LOCAL_KW@9066..9071 "local"5556                                                    WHITESPACE@9071..9072 " "5557                                                    BIND_DESTRUCT@9072..91125558                                                      DESTRUCT_FULL@9072..90815559                                                        NAME@9072..90815560                                                          IDENT@9072..9081 "separator"5561                                                      WHITESPACE@9081..9082 " "5562                                                      ASSIGN@9082..9083 "="5563                                                      WHITESPACE@9083..9084 " "5564                                                      EXPR_IF_THEN_ELSE@9084..91125565                                                        IF_KW@9084..9086 "if"5566                                                        WHITESPACE@9086..9087 " "5567                                                        EXPR_VAR@9087..90935568                                                          NAME@9087..90935569                                                            IDENT@9087..9093 "inline"5570                                                        WHITESPACE@9093..9094 " "5571                                                        THEN_KW@9094..9098 "then"5572                                                        WHITESPACE@9098..9099 " "5573                                                        TRUE_EXPR@9099..91025574                                                          EXPR_STRING@9099..91025575                                                            STRING_SINGLE@9099..9102 "' '"5576                                                        WHITESPACE@9102..9103 " "5577                                                        ELSE_KW@9103..9107 "else"5578                                                        WHITESPACE@9107..9108 " "5579                                                        FALSE_EXPR@9108..91125580                                                          EXPR_STRING@9108..91125581                                                            STRING_SINGLE@9108..9112 "'\\n'"5582                                                    SEMI@9112..9113 ";"5583                                                    WHITESPACE@9113..9126 "\n            "5584                                                    EXPR_LOCAL@9126..95615585                                                      LOCAL_KW@9126..9131 "local"5586                                                      WHITESPACE@9131..9132 " "5587                                                      BIND_DESTRUCT@9132..95285588                                                        DESTRUCT_FULL@9132..91375589                                                          NAME@9132..91375590                                                            IDENT@9132..9137 "lines"5591                                                        WHITESPACE@9137..9138 " "5592                                                        ASSIGN@9138..9139 "="5593                                                        WHITESPACE@9139..9140 " "5594                                                        EXPR_BINARY@9140..95285595                                                          LHS_EXPR@9140..94475596                                                            EXPR_BINARY@9140..94475597                                                              LHS_EXPR@9140..91575598                                                                EXPR_ARRAY@9140..91575599                                                                  L_BRACK@9140..9141 "["5600                                                                  EXPR_BINARY@9141..91565601                                                                    LHS_EXPR@9141..91445602                                                                      EXPR_STRING@9141..91445603                                                                        STRING_SINGLE@9141..9144 "'['"5604                                                                    WHITESPACE@9144..9145 " "5605                                                                    PLUS@9145..9146 "+"5606                                                                    WHITESPACE@9146..9147 " "5607                                                                    EXPR_VAR@9147..91565608                                                                      NAME@9147..91565609                                                                        IDENT@9147..9156 "separator"5610                                                                  R_BRACK@9156..9157 "]"5611                                                              WHITESPACE@9157..9184 "\n                     ..."5612                                                              PLUS@9184..9185 "+"5613                                                              WHITESPACE@9185..9186 " "5614                                                              EXPR_APPLY@9186..94475615                                                                EXPR_INDEX@9186..91945616                                                                  EXPR_VAR@9186..91895617                                                                    NAME@9186..91895618                                                                      IDENT@9186..9189 "std"5619                                                                  DOT@9189..9190 "."5620                                                                  NAME@9190..91945621                                                                    IDENT@9190..9194 "join"5622                                                                ARGS_DESC@9194..94475623                                                                  L_PAREN@9194..9195 "("5624                                                                  ARG@9195..92125625                                                                    EXPR_ARRAY@9195..92125626                                                                      L_BRACK@9195..9196 "["5627                                                                      EXPR_BINARY@9196..92115628                                                                        LHS_EXPR@9196..91995629                                                                          EXPR_STRING@9196..91995630                                                                            STRING_SINGLE@9196..9199 "','"5631                                                                        WHITESPACE@9199..9200 " "5632                                                                        PLUS@9200..9201 "+"5633                                                                        WHITESPACE@9201..9202 " "5634                                                                        EXPR_VAR@9202..92115635                                                                          NAME@9202..92115636                                                                            IDENT@9202..9211 "separator"5637                                                                      R_BRACK@9211..9212 "]"5638                                                                  COMMA@9212..9213 ","5639                                                                  WHITESPACE@9213..9251 "\n                     ..."5640                                                                  ARG@9251..94465641                                                                    EXPR_ARRAY_COMP@9251..94465642                                                                      L_BRACK@9251..9252 "["5643                                                                      WHITESPACE@9252..9292 "\n                     ..."5644                                                                      EXPR_ARRAY@9292..93535645                                                                        L_BRACK@9292..9293 "["5646                                                                        EXPR_BINARY@9293..93525647                                                                          LHS_EXPR@9293..93035648                                                                            EXPR_VAR@9293..93035649                                                                              NAME@9293..93035650                                                                                IDENT@9293..9303 "new_indent"5651                                                                          WHITESPACE@9303..9304 " "5652                                                                          PLUS@9304..9305 "+"5653                                                                          WHITESPACE@9305..9306 " "5654                                                                          EXPR_APPLY@9306..93525655                                                                            EXPR_VAR@9306..93175656                                                                              NAME@9306..93175657                                                                                IDENT@9306..9317 "renderValue"5658                                                                            ARGS_DESC@9317..93525659                                                                              L_PAREN@9317..9318 "("5660                                                                              ARG@9318..93225661                                                                                EXPR_INDEX_EXPR@9318..93225662                                                                                  LHS_EXPR@9318..93195663                                                                                    EXPR_VAR@9318..93195664                                                                                      NAME@9318..93195665                                                                                        IDENT@9318..9319 "v"5666                                                                                  L_BRACK@9319..9320 "["5667                                                                                  EXPR_VAR@9320..93215668                                                                                    NAME@9320..93215669                                                                                      IDENT@9320..9321 "i"5670                                                                                  R_BRACK@9321..9322 "]"5671                                                                              COMMA@9322..9323 ","5672                                                                              WHITESPACE@9323..9324 " "5673                                                                              ARG@9324..93415674                                                                                EXPR_BINARY@9324..93415675                                                                                  LHS_EXPR@9324..93355676                                                                                    EXPR_VAR@9324..93355677                                                                                      NAME@9324..93355678                                                                                        IDENT@9324..9335 "indexedPath"5679                                                                                  WHITESPACE@9335..9336 " "5680                                                                                  PLUS@9336..9337 "+"5681                                                                                  WHITESPACE@9337..9338 " "5682                                                                                  EXPR_ARRAY@9338..93415683                                                                                    L_BRACK@9338..9339 "["5684                                                                                    EXPR_VAR@9339..93405685                                                                                      NAME@9339..93405686                                                                                        IDENT@9339..9340 "i"5687                                                                                    R_BRACK@9340..9341 "]"5688                                                                              COMMA@9341..9342 ","5689                                                                              WHITESPACE@9342..9343 " "5690                                                                              ARG@9343..93475691                                                                                EXPR_LITERAL@9343..93475692                                                                                  TRUE_KW@9343..9347 "true"5693                                                                              COMMA@9347..9348 ","5694                                                                              WHITESPACE@9348..9349 " "5695                                                                              ARG@9349..93515696                                                                                EXPR_STRING@9349..93515697                                                                                  STRING_SINGLE@9349..9351 "''"5698                                                                              R_PAREN@9351..9352 ")"5699                                                                        R_BRACK@9352..9353 "]"5700                                                                      WHITESPACE@9353..9393 "\n                     ..."5701                                                                      FOR_SPEC@9393..94075702                                                                        FOR_KW@9393..9396 "for"5703                                                                        WHITESPACE@9396..9397 " "5704                                                                        NAME@9397..93985705                                                                          IDENT@9397..9398 "i"5706                                                                        WHITESPACE@9398..9399 " "5707                                                                        IN_KW@9399..9401 "in"5708                                                                        WHITESPACE@9401..9402 " "5709                                                                        EXPR_VAR@9402..94075710                                                                          NAME@9402..94075711                                                                            IDENT@9402..9407 "range"5712                                                                      WHITESPACE@9407..9445 "\n                     ..."5713                                                                      R_BRACK@9445..9446 "]"5714                                                                  R_PAREN@9446..9447 ")"5715                                                          WHITESPACE@9447..9474 "\n                     ..."5716                                                          PLUS@9474..9475 "+"5717                                                          WHITESPACE@9475..9476 " "5718                                                          EXPR_ARRAY@9476..95285719                                                            L_BRACK@9476..9477 "["5720                                                            EXPR_BINARY@9477..95275721                                                              LHS_EXPR@9477..95215722                                                                EXPR_BINARY@9477..95215723                                                                  LHS_EXPR@9477..94865724                                                                    EXPR_VAR@9477..94865725                                                                      NAME@9477..94865726                                                                        IDENT@9477..9486 "separator"5727                                                                  WHITESPACE@9486..9487 " "5728                                                                  PLUS@9487..9488 "+"5729                                                                  WHITESPACE@9488..9489 " "5730                                                                  EXPR_PARENED@9489..95215731                                                                    L_PAREN@9489..9490 "("5732                                                                    EXPR_IF_THEN_ELSE@9490..95205733                                                                      IF_KW@9490..9492 "if"5734                                                                      WHITESPACE@9492..9493 " "5735                                                                      EXPR_VAR@9493..94995736                                                                        NAME@9493..94995737                                                                          IDENT@9493..9499 "inline"5738                                                                      WHITESPACE@9499..9500 " "5739                                                                      THEN_KW@9500..9504 "then"5740                                                                      WHITESPACE@9504..9505 " "5741                                                                      TRUE_EXPR@9505..95075742                                                                        EXPR_STRING@9505..95075743                                                                          STRING_SINGLE@9505..9507 "''"5744                                                                      WHITESPACE@9507..9508 " "5745                                                                      ELSE_KW@9508..9512 "else"5746                                                                      WHITESPACE@9512..9513 " "5747                                                                      FALSE_EXPR@9513..95205748                                                                        EXPR_VAR@9513..95205749                                                                          NAME@9513..95205750                                                                            IDENT@9513..9520 "cindent"5751                                                                    R_PAREN@9520..9521 ")"5752                                                              WHITESPACE@9521..9522 " "5753                                                              PLUS@9522..9523 "+"5754                                                              WHITESPACE@9523..9524 " "5755                                                              EXPR_STRING@9524..95275756                                                                STRING_SINGLE@9524..9527 "']'"5757                                                            R_BRACK@9527..9528 "]"5758                                                      SEMI@9528..9529 ";"5759                                                      WHITESPACE@9529..9542 "\n            "5760                                                      EXPR_APPLY@9542..95615761                                                        EXPR_INDEX@9542..95505762                                                          EXPR_VAR@9542..95455763                                                            NAME@9542..95455764                                                              IDENT@9542..9545 "std"5765                                                          DOT@9545..9546 "."5766                                                          NAME@9546..95505767                                                            IDENT@9546..9550 "join"5768                                                        ARGS_DESC@9550..95615769                                                          L_PAREN@9550..9551 "("5770                                                          ARG@9551..95535771                                                            EXPR_STRING@9551..95535772                                                              STRING_SINGLE@9551..9553 "''"5773                                                          COMMA@9553..9554 ","5774                                                          WHITESPACE@9554..9555 " "5775                                                          ARG@9555..95605776                                                            EXPR_VAR@9555..95605777                                                              NAME@9555..95605778                                                                IDENT@9555..9560 "lines"5779                                                          R_PAREN@9560..9561 ")"5780                                        WHITESPACE@9561..9570 "\n        "5781                                        ELSE_KW@9570..9574 "else"5782                                        WHITESPACE@9574..9575 " "5783                                        FALSE_EXPR@9575..99905784                                          EXPR_IF_THEN_ELSE@9575..99905785                                            IF_KW@9575..9577 "if"5786                                            WHITESPACE@9577..9578 " "5787                                            EXPR_APPLY@9578..95935788                                              EXPR_INDEX@9578..95905789                                                EXPR_VAR@9578..95815790                                                  NAME@9578..95815791                                                    IDENT@9578..9581 "std"5792                                                DOT@9581..9582 "."5793                                                NAME@9582..95905794                                                  IDENT@9582..9590 "isObject"5795                                              ARGS_DESC@9590..95935796                                                L_PAREN@9590..9591 "("5797                                                ARG@9591..95925798                                                  EXPR_VAR@9591..95925799                                                    NAME@9591..95925800                                                      IDENT@9591..9592 "v"5801                                                R_PAREN@9592..9593 ")"5802                                            WHITESPACE@9593..9594 " "5803                                            THEN_KW@9594..9598 "then"5804                                            WHITESPACE@9598..9609 "\n          "5805                                            TRUE_EXPR@9609..99905806                                              EXPR_LOCAL@9609..99905807                                                LOCAL_KW@9609..9614 "local"5808                                                WHITESPACE@9614..9615 " "5809                                                BIND_DESTRUCT@9615..99595810                                                  DESTRUCT_FULL@9615..96205811                                                    NAME@9615..96205812                                                      IDENT@9615..9620 "lines"5813                                                  WHITESPACE@9620..9621 " "5814                                                  ASSIGN@9621..9622 "="5815                                                  WHITESPACE@9622..9623 " "5816                                                  EXPR_BINARY@9623..99595817                                                    LHS_EXPR@9623..99265818                                                      EXPR_BINARY@9623..99265819                                                        LHS_EXPR@9623..96295820                                                          EXPR_ARRAY@9623..96295821                                                            L_BRACK@9623..9624 "["5822                                                            EXPR_STRING@9624..96285823                                                              STRING_SINGLE@9624..9628 "'{ '"5824                                                            R_BRACK@9628..9629 "]"5825                                                        WHITESPACE@9629..9654 "\n                     ..."5826                                                        PLUS@9654..9655 "+"5827                                                        WHITESPACE@9655..9656 " "5828                                                        EXPR_APPLY@9656..99265829                                                          EXPR_INDEX@9656..96645830                                                            EXPR_VAR@9656..96595831                                                              NAME@9656..96595832                                                                IDENT@9656..9659 "std"5833                                                            DOT@9659..9660 "."5834                                                            NAME@9660..96645835                                                              IDENT@9660..9664 "join"5836                                                          ARGS_DESC@9664..99265837                                                            L_PAREN@9664..9665 "("5838                                                            ARG@9665..96715839                                                              EXPR_ARRAY@9665..96715840                                                                L_BRACK@9665..9666 "["5841                                                                EXPR_STRING@9666..96705842                                                                  STRING_SINGLE@9666..9670 "', '"5843                                                                R_BRACK@9670..9671 "]"5844                                                            COMMA@9671..9672 ","5845                                                            WHITESPACE@9672..9708 "\n                     ..."5846                                                            ARG@9708..99255847                                                              EXPR_ARRAY_COMP@9708..99255848                                                                L_BRACK@9708..9709 "["5849                                                                WHITESPACE@9709..9747 "\n                     ..."5850                                                                EXPR_ARRAY@9747..98225851                                                                  L_BRACK@9747..9748 "["5852                                                                  EXPR_BINARY@9748..98215853                                                                    LHS_EXPR@9748..97725854                                                                      EXPR_BINARY@9748..97725855                                                                        LHS_EXPR@9748..97645856                                                                          EXPR_APPLY@9748..97645857                                                                            EXPR_VAR@9748..97615858                                                                              NAME@9748..97615859                                                                                IDENT@9748..9761 "escapeKeyToml"5860                                                                            ARGS_DESC@9761..97645861                                                                              L_PAREN@9761..9762 "("5862                                                                              ARG@9762..97635863                                                                                EXPR_VAR@9762..97635864                                                                                  NAME@9762..97635865                                                                                    IDENT@9762..9763 "k"5866                                                                              R_PAREN@9763..9764 ")"5867                                                                        WHITESPACE@9764..9765 " "5868                                                                        PLUS@9765..9766 "+"5869                                                                        WHITESPACE@9766..9767 " "5870                                                                        EXPR_STRING@9767..97725871                                                                          STRING_SINGLE@9767..9772 "' = '"5872                                                                    WHITESPACE@9772..9773 " "5873                                                                    PLUS@9773..9774 "+"5874                                                                    WHITESPACE@9774..9775 " "5875                                                                    EXPR_APPLY@9775..98215876                                                                      EXPR_VAR@9775..97865877                                                                        NAME@9775..97865878                                                                          IDENT@9775..9786 "renderValue"5879                                                                      ARGS_DESC@9786..98215880                                                                        L_PAREN@9786..9787 "("5881                                                                        ARG@9787..97915882                                                                          EXPR_INDEX_EXPR@9787..97915883                                                                            LHS_EXPR@9787..97885884                                                                              EXPR_VAR@9787..97885885                                                                                NAME@9787..97885886                                                                                  IDENT@9787..9788 "v"5887                                                                            L_BRACK@9788..9789 "["5888                                                                            EXPR_VAR@9789..97905889                                                                              NAME@9789..97905890                                                                                IDENT@9789..9790 "k"5891                                                                            R_BRACK@9790..9791 "]"5892                                                                        COMMA@9791..9792 ","5893                                                                        WHITESPACE@9792..9793 " "5894                                                                        ARG@9793..98105895                                                                          EXPR_BINARY@9793..98105896                                                                            LHS_EXPR@9793..98045897                                                                              EXPR_VAR@9793..98045898                                                                                NAME@9793..98045899                                                                                  IDENT@9793..9804 "indexedPath"5900                                                                            WHITESPACE@9804..9805 " "5901                                                                            PLUS@9805..9806 "+"5902                                                                            WHITESPACE@9806..9807 " "5903                                                                            EXPR_ARRAY@9807..98105904                                                                              L_BRACK@9807..9808 "["5905                                                                              EXPR_VAR@9808..98095906                                                                                NAME@9808..98095907                                                                                  IDENT@9808..9809 "k"5908                                                                              R_BRACK@9809..9810 "]"5909                                                                        COMMA@9810..9811 ","5910                                                                        WHITESPACE@9811..9812 " "5911                                                                        ARG@9812..98165912                                                                          EXPR_LITERAL@9812..98165913                                                                            TRUE_KW@9812..9816 "true"5914                                                                        COMMA@9816..9817 ","5915                                                                        WHITESPACE@9817..9818 " "5916                                                                        ARG@9818..98205917                                                                          EXPR_STRING@9818..98205918                                                                            STRING_SINGLE@9818..9820 "''"5919                                                                        R_PAREN@9820..9821 ")"5920                                                                  R_BRACK@9821..9822 "]"5921                                                                WHITESPACE@9822..9860 "\n                     ..."5922                                                                FOR_SPEC@9860..98885923                                                                  FOR_KW@9860..9863 "for"5924                                                                  WHITESPACE@9863..9864 " "5925                                                                  NAME@9864..98655926                                                                    IDENT@9864..9865 "k"5927                                                                  WHITESPACE@9865..9866 " "5928                                                                  IN_KW@9866..9868 "in"5929                                                                  WHITESPACE@9868..9869 " "5930                                                                  EXPR_APPLY@9869..98885931                                                                    EXPR_INDEX@9869..98855932                                                                      EXPR_VAR@9869..98725933                                                                        NAME@9869..98725934                                                                          IDENT@9869..9872 "std"5935                                                                      DOT@9872..9873 "."5936                                                                      NAME@9873..98855937                                                                        IDENT@9873..9885 "objectFields"5938                                                                    ARGS_DESC@9885..98885939                                                                      L_PAREN@9885..9886 "("5940                                                                      ARG@9886..98875941                                                                        EXPR_VAR@9886..98875942                                                                          NAME@9886..98875943                                                                            IDENT@9886..9887 "v"5944                                                                      R_PAREN@9887..9888 ")"5945                                                                WHITESPACE@9888..9924 "\n                     ..."5946                                                                R_BRACK@9924..9925 "]"5947                                                            R_PAREN@9925..9926 ")"5948                                                    WHITESPACE@9926..9951 "\n                     ..."5949                                                    PLUS@9951..9952 "+"5950                                                    WHITESPACE@9952..9953 " "5951                                                    EXPR_ARRAY@9953..99595952                                                      L_BRACK@9953..9954 "["5953                                                      EXPR_STRING@9954..99585954                                                        STRING_SINGLE@9954..9958 "' }'"5955                                                      R_BRACK@9958..9959 "]"5956                                                SEMI@9959..9960 ";"5957                                                WHITESPACE@9960..9971 "\n          "5958                                                EXPR_APPLY@9971..99905959                                                  EXPR_INDEX@9971..99795960                                                    EXPR_VAR@9971..99745961                                                      NAME@9971..99745962                                                        IDENT@9971..9974 "std"5963                                                    DOT@9974..9975 "."5964                                                    NAME@9975..99795965                                                      IDENT@9975..9979 "join"5966                                                  ARGS_DESC@9979..99905967                                                    L_PAREN@9979..9980 "("5968                                                    ARG@9980..99825969                                                      EXPR_STRING@9980..99825970                                                        STRING_SINGLE@9980..9982 "''"5971                                                    COMMA@9982..9983 ","5972                                                    WHITESPACE@9983..9984 " "5973                                                    ARG@9984..99895974                                                      EXPR_VAR@9984..99895975                                                        NAME@9984..99895976                                                          IDENT@9984..9989 "lines"5977                                                    R_PAREN@9989..9990 ")"5978            COMMA@9990..9991 ","5979            WHITESPACE@9991..9998 "\n      "5980            BIND_FUNCTION@9998..106675981              NAME@9998..100175982                IDENT@9998..10017 "renderTableInternal"5983              PARAMS_DESC@10017..100485984                L_PAREN@10017..10018 "("5985                PARAM@10018..100195986                  DESTRUCT_FULL@10018..100195987                    NAME@10018..100195988                      IDENT@10018..10019 "v"5989                COMMA@10019..10020 ","5990                WHITESPACE@10020..10021 " "5991                PARAM@10021..100255992                  DESTRUCT_FULL@10021..100255993                    NAME@10021..100255994                      IDENT@10021..10025 "path"5995                COMMA@10025..10026 ","5996                WHITESPACE@10026..10027 " "5997                PARAM@10027..100385998                  DESTRUCT_FULL@10027..100385999                    NAME@10027..100386000                      IDENT@10027..10038 "indexedPath"6001                COMMA@10038..10039 ","6002                WHITESPACE@10039..10040 " "6003                PARAM@10040..100476004                  DESTRUCT_FULL@10040..100476005                    NAME@10040..100476006                      IDENT@10040..10047 "cindent"6007                R_PAREN@10047..10048 ")"6008              WHITESPACE@10048..10049 " "6009              ASSIGN@10049..10050 "="6010              WHITESPACE@10050..10059 "\n        "6011              EXPR_LOCAL@10059..106676012                LOCAL_KW@10059..10064 "local"6013                WHITESPACE@10064..10065 " "6014                BIND_DESTRUCT@10065..102726015                  DESTRUCT_FULL@10065..100686016                    NAME@10065..100686017                      IDENT@10065..10068 "kvp"6018                  WHITESPACE@10068..10069 " "6019                  ASSIGN@10069..10070 "="6020                  WHITESPACE@10070..10071 " "6021                  EXPR_APPLY@10071..102726022                    EXPR_INDEX@10071..100886023                      EXPR_VAR@10071..100746024                        NAME@10071..100746025                          IDENT@10071..10074 "std"6026                      DOT@10074..10075 "."6027                      NAME@10075..100886028                        IDENT@10075..10088 "flattenArrays"6029                    ARGS_DESC@10088..102726030                      L_PAREN@10088..10089 "("6031                      ARG@10089..102716032                        EXPR_ARRAY_COMP@10089..102716033                          L_BRACK@10089..10090 "["6034                          WHITESPACE@10090..10101 "\n          "6035                          EXPR_ARRAY@10101..101926036                            L_BRACK@10101..10102 "["6037                            EXPR_BINARY@10102..101916038                              LHS_EXPR@10102..101366039                                EXPR_BINARY@10102..101366040                                  LHS_EXPR@10102..101286041                                    EXPR_BINARY@10102..101286042                                      LHS_EXPR@10102..101096043                                        EXPR_VAR@10102..101096044                                          NAME@10102..101096045                                            IDENT@10102..10109 "cindent"6046                                      WHITESPACE@10109..10110 " "6047                                      PLUS@10110..10111 "+"6048                                      WHITESPACE@10111..10112 " "6049                                      EXPR_APPLY@10112..101286050                                        EXPR_VAR@10112..101256051                                          NAME@10112..101256052                                            IDENT@10112..10125 "escapeKeyToml"6053                                        ARGS_DESC@10125..101286054                                          L_PAREN@10125..10126 "("6055                                          ARG@10126..101276056                                            EXPR_VAR@10126..101276057                                              NAME@10126..101276058                                                IDENT@10126..10127 "k"6059                                          R_PAREN@10127..10128 ")"6060                                  WHITESPACE@10128..10129 " "6061                                  PLUS@10129..10130 "+"6062                                  WHITESPACE@10130..10131 " "6063                                  EXPR_STRING@10131..101366064                                    STRING_SINGLE@10131..10136 "' = '"6065                              WHITESPACE@10136..10137 " "6066                              PLUS@10137..10138 "+"6067                              WHITESPACE@10138..10139 " "6068                              EXPR_APPLY@10139..101916069                                EXPR_VAR@10139..101506070                                  NAME@10139..101506071                                    IDENT@10139..10150 "renderValue"6072                                ARGS_DESC@10150..101916073                                  L_PAREN@10150..10151 "("6074                                  ARG@10151..101556075                                    EXPR_INDEX_EXPR@10151..101556076                                      LHS_EXPR@10151..101526077                                        EXPR_VAR@10151..101526078                                          NAME@10151..101526079                                            IDENT@10151..10152 "v"6080                                      L_BRACK@10152..10153 "["6081                                      EXPR_VAR@10153..101546082                                        NAME@10153..101546083                                          IDENT@10153..10154 "k"6084                                      R_BRACK@10154..10155 "]"6085                                  COMMA@10155..10156 ","6086                                  WHITESPACE@10156..10157 " "6087                                  ARG@10157..101746088                                    EXPR_BINARY@10157..101746089                                      LHS_EXPR@10157..101686090                                        EXPR_VAR@10157..101686091                                          NAME@10157..101686092                                            IDENT@10157..10168 "indexedPath"6093                                      WHITESPACE@10168..10169 " "6094                                      PLUS@10169..10170 "+"6095                                      WHITESPACE@10170..10171 " "6096                                      EXPR_ARRAY@10171..101746097                                        L_BRACK@10171..10172 "["6098                                        EXPR_VAR@10172..101736099                                          NAME@10172..101736100                                            IDENT@10172..10173 "k"6101                                        R_BRACK@10173..10174 "]"6102                                  COMMA@10174..10175 ","6103                                  WHITESPACE@10175..10176 " "6104                                  ARG@10176..101816105                                    EXPR_LITERAL@10176..101816106                                      FALSE_KW@10176..10181 "false"6107                                  COMMA@10181..10182 ","6108                                  WHITESPACE@10182..10183 " "6109                                  ARG@10183..101906110                                    EXPR_VAR@10183..101906111                                      NAME@10183..101906112                                        IDENT@10183..10190 "cindent"6113                                  R_PAREN@10190..10191 ")"6114                            R_BRACK@10191..10192 "]"6115                          WHITESPACE@10192..10203 "\n          "6116                          FOR_SPEC@10203..102316117                            FOR_KW@10203..10206 "for"6118                            WHITESPACE@10206..10207 " "6119                            NAME@10207..102086120                              IDENT@10207..10208 "k"6121                            WHITESPACE@10208..10209 " "6122                            IN_KW@10209..10211 "in"6123                            WHITESPACE@10211..10212 " "6124                            EXPR_APPLY@10212..102316125                              EXPR_INDEX@10212..102286126                                EXPR_VAR@10212..102156127                                  NAME@10212..102156128                                    IDENT@10212..10215 "std"6129                                DOT@10215..10216 "."6130                                NAME@10216..102286131                                  IDENT@10216..10228 "objectFields"6132                              ARGS_DESC@10228..102316133                                L_PAREN@10228..10229 "("6134                                ARG@10229..102306135                                  EXPR_VAR@10229..102306136                                    NAME@10229..102306137                                      IDENT@10229..10230 "v"6138                                R_PAREN@10230..10231 ")"6139                          WHITESPACE@10231..10242 "\n          "6140                          IF_SPEC@10242..102616141                            IF_KW@10242..10244 "if"6142                            WHITESPACE@10244..10245 " "6143                            EXPR_UNARY@10245..102616144                              NOT@10245..10246 "!"6145                              EXPR_APPLY@10246..102616146                                EXPR_VAR@10246..102556147                                  NAME@10246..102556148                                    IDENT@10246..10255 "isSection"6149                                ARGS_DESC@10255..102616150                                  L_PAREN@10255..10256 "("6151                                  ARG@10256..102606152                                    EXPR_INDEX_EXPR@10256..102606153                                      LHS_EXPR@10256..102576154                                        EXPR_VAR@10256..102576155                                          NAME@10256..102576156                                            IDENT@10256..10257 "v"6157                                      L_BRACK@10257..10258 "["6158                                      EXPR_VAR@10258..102596159                                        NAME@10258..102596160                                          IDENT@10258..10259 "k"6161                                      R_BRACK@10259..10260 "]"6162                                  R_PAREN@10260..10261 ")"6163                          WHITESPACE@10261..10270 "\n        "6164                          R_BRACK@10270..10271 "]"6165                      R_PAREN@10271..10272 ")"6166                SEMI@10272..10273 ";"6167                WHITESPACE@10273..10282 "\n        "6168                EXPR_LOCAL@10282..106676169                  LOCAL_KW@10282..10287 "local"6170                  WHITESPACE@10287..10288 " "6171                  BIND_DESTRUCT@10288..106316172                    DESTRUCT_FULL@10288..102966173                      NAME@10288..102966174                        IDENT@10288..10296 "sections"6175                    WHITESPACE@10296..10297 " "6176                    ASSIGN@10297..10298 "="6177                    WHITESPACE@10298..10299 " "6178                    EXPR_BINARY@10299..106316179                      LHS_EXPR@10299..103206180                        EXPR_ARRAY@10299..103206181                          L_BRACK@10299..10300 "["6182                          EXPR_APPLY@10300..103196183                            EXPR_INDEX@10300..103086184                              EXPR_VAR@10300..103036185                                NAME@10300..103036186                                  IDENT@10300..10303 "std"6187                              DOT@10303..10304 "."6188                              NAME@10304..103086189                                IDENT@10304..10308 "join"6190                            ARGS_DESC@10308..103196191                              L_PAREN@10308..10309 "("6192                              ARG@10309..103136193                                EXPR_STRING@10309..103136194                                  STRING_SINGLE@10309..10313 "'\\n'"6195                              COMMA@10313..10314 ","6196                              WHITESPACE@10314..10315 " "6197                              ARG@10315..103186198                                EXPR_VAR@10315..103186199                                  NAME@10315..103186200                                    IDENT@10315..10318 "kvp"6201                              R_PAREN@10318..10319 ")"6202                          R_BRACK@10319..10320 "]"6203                      WHITESPACE@10320..10321 " "6204                      PLUS@10321..10322 "+"6205                      WHITESPACE@10322..10323 " "6206                      EXPR_ARRAY_COMP@10323..106316207                        L_BRACK@10323..10324 "["6208                        WHITESPACE@10324..10335 "\n          "6209                        EXPR_PARENED@10335..105536210                          L_PAREN@10335..10336 "("6211                          WHITESPACE@10336..10349 "\n            "6212                          EXPR_IF_THEN_ELSE@10349..105416213                            IF_KW@10349..10351 "if"6214                            WHITESPACE@10351..10352 " "6215                            EXPR_APPLY@10352..103706216                              EXPR_INDEX@10352..103646217                                EXPR_VAR@10352..103556218                                  NAME@10352..103556219                                    IDENT@10352..10355 "std"6220                                DOT@10355..10356 "."6221                                NAME@10356..103646222                                  IDENT@10356..10364 "isObject"6223                              ARGS_DESC@10364..103706224                                L_PAREN@10364..10365 "("6225                                ARG@10365..103696226                                  EXPR_INDEX_EXPR@10365..103696227                                    LHS_EXPR@10365..103666228                                      EXPR_VAR@10365..103666229                                        NAME@10365..103666230                                          IDENT@10365..10366 "v"6231                                    L_BRACK@10366..10367 "["6232                                    EXPR_VAR@10367..103686233                                      NAME@10367..103686234                                        IDENT@10367..10368 "k"6235                                    R_BRACK@10368..10369 "]"6236                                R_PAREN@10369..10370 ")"6237                            WHITESPACE@10370..10371 " "6238                            THEN_KW@10371..10375 "then"6239                            WHITESPACE@10375..10390 "\n              "6240                            TRUE_EXPR@10390..104476241                              EXPR_APPLY@10390..104476242                                EXPR_VAR@10390..104016243                                  NAME@10390..104016244                                    IDENT@10390..10401 "renderTable"6245                                ARGS_DESC@10401..104476246                                  L_PAREN@10401..10402 "("6247                                  ARG@10402..104066248                                    EXPR_INDEX_EXPR@10402..104066249                                      LHS_EXPR@10402..104036250                                        EXPR_VAR@10402..104036251                                          NAME@10402..104036252                                            IDENT@10402..10403 "v"6253                                      L_BRACK@10403..10404 "["6254                                      EXPR_VAR@10404..104056255                                        NAME@10404..104056256                                          IDENT@10404..10405 "k"6257                                      R_BRACK@10405..10406 "]"6258                                  COMMA@10406..10407 ","6259                                  WHITESPACE@10407..10408 " "6260                                  ARG@10408..104186261                                    EXPR_BINARY@10408..104186262                                      LHS_EXPR@10408..104126263                                        EXPR_VAR@10408..104126264                                          NAME@10408..104126265                                            IDENT@10408..10412 "path"6266                                      WHITESPACE@10412..10413 " "6267                                      PLUS@10413..10414 "+"6268                                      WHITESPACE@10414..10415 " "6269                                      EXPR_ARRAY@10415..104186270                                        L_BRACK@10415..10416 "["6271                                        EXPR_VAR@10416..104176272                                          NAME@10416..104176273                                            IDENT@10416..10417 "k"6274                                        R_BRACK@10417..10418 "]"6275                                  COMMA@10418..10419 ","6276                                  WHITESPACE@10419..10420 " "6277                                  ARG@10420..104376278                                    EXPR_BINARY@10420..104376279                                      LHS_EXPR@10420..104316280                                        EXPR_VAR@10420..104316281                                          NAME@10420..104316282                                            IDENT@10420..10431 "indexedPath"6283                                      WHITESPACE@10431..10432 " "6284                                      PLUS@10432..10433 "+"6285                                      WHITESPACE@10433..10434 " "6286                                      EXPR_ARRAY@10434..104376287                                        L_BRACK@10434..10435 "["6288                                        EXPR_VAR@10435..104366289                                          NAME@10435..104366290                                            IDENT@10435..10436 "k"6291                                        R_BRACK@10436..10437 "]"6292                                  COMMA@10437..10438 ","6293                                  WHITESPACE@10438..10439 " "6294                                  ARG@10439..104466295                                    EXPR_VAR@10439..104466296                                      NAME@10439..104466297                                        IDENT@10439..10446 "cindent"6298                                  R_PAREN@10446..10447 ")"6299                            WHITESPACE@10447..10460 "\n            "6300                            ELSE_KW@10460..10464 "else"6301                            WHITESPACE@10464..10479 "\n              "6302                            FALSE_EXPR@10479..105416303                              EXPR_APPLY@10479..105416304                                EXPR_VAR@10479..104956305                                  NAME@10479..104956306                                    IDENT@10479..10495 "renderTableArray"6307                                ARGS_DESC@10495..105416308                                  L_PAREN@10495..10496 "("6309                                  ARG@10496..105006310                                    EXPR_INDEX_EXPR@10496..105006311                                      LHS_EXPR@10496..104976312                                        EXPR_VAR@10496..104976313                                          NAME@10496..104976314                                            IDENT@10496..10497 "v"6315                                      L_BRACK@10497..10498 "["6316                                      EXPR_VAR@10498..104996317                                        NAME@10498..104996318                                          IDENT@10498..10499 "k"6319                                      R_BRACK@10499..10500 "]"6320                                  COMMA@10500..10501 ","6321                                  WHITESPACE@10501..10502 " "6322                                  ARG@10502..105126323                                    EXPR_BINARY@10502..105126324                                      LHS_EXPR@10502..105066325                                        EXPR_VAR@10502..105066326                                          NAME@10502..105066327                                            IDENT@10502..10506 "path"6328                                      WHITESPACE@10506..10507 " "6329                                      PLUS@10507..10508 "+"6330                                      WHITESPACE@10508..10509 " "6331                                      EXPR_ARRAY@10509..105126332                                        L_BRACK@10509..10510 "["6333                                        EXPR_VAR@10510..105116334                                          NAME@10510..105116335                                            IDENT@10510..10511 "k"6336                                        R_BRACK@10511..10512 "]"6337                                  COMMA@10512..10513 ","6338                                  WHITESPACE@10513..10514 " "6339                                  ARG@10514..105316340                                    EXPR_BINARY@10514..105316341                                      LHS_EXPR@10514..105256342                                        EXPR_VAR@10514..105256343                                          NAME@10514..105256344                                            IDENT@10514..10525 "indexedPath"6345                                      WHITESPACE@10525..10526 " "6346                                      PLUS@10526..10527 "+"6347                                      WHITESPACE@10527..10528 " "6348                                      EXPR_ARRAY@10528..105316349                                        L_BRACK@10528..10529 "["6350                                        EXPR_VAR@10529..105306351                                          NAME@10529..105306352                                            IDENT@10529..10530 "k"6353                                        R_BRACK@10530..10531 "]"6354                                  COMMA@10531..10532 ","6355                                  WHITESPACE@10532..10533 " "6356                                  ARG@10533..105406357                                    EXPR_VAR@10533..105406358                                      NAME@10533..105406359                                        IDENT@10533..10540 "cindent"6360                                  R_PAREN@10540..10541 ")"6361                          WHITESPACE@10541..10552 "\n          "6362                          R_PAREN@10552..10553 ")"6363                        WHITESPACE@10553..10564 "\n          "6364                        FOR_SPEC@10564..105926365                          FOR_KW@10564..10567 "for"6366                          WHITESPACE@10567..10568 " "6367                          NAME@10568..105696368                            IDENT@10568..10569 "k"6369                          WHITESPACE@10569..10570 " "6370                          IN_KW@10570..10572 "in"6371                          WHITESPACE@10572..10573 " "6372                          EXPR_APPLY@10573..105926373                            EXPR_INDEX@10573..105896374                              EXPR_VAR@10573..105766375                                NAME@10573..105766376                                  IDENT@10573..10576 "std"6377                              DOT@10576..10577 "."6378                              NAME@10577..105896379                                IDENT@10577..10589 "objectFields"6380                            ARGS_DESC@10589..105926381                              L_PAREN@10589..10590 "("6382                              ARG@10590..105916383                                EXPR_VAR@10590..105916384                                  NAME@10590..105916385                                    IDENT@10590..10591 "v"6386                              R_PAREN@10591..10592 ")"6387                        WHITESPACE@10592..10603 "\n          "6388                        IF_SPEC@10603..106216389                          IF_KW@10603..10605 "if"6390                          WHITESPACE@10605..10606 " "6391                          EXPR_APPLY@10606..106216392                            EXPR_VAR@10606..106156393                              NAME@10606..106156394                                IDENT@10606..10615 "isSection"6395                            ARGS_DESC@10615..106216396                              L_PAREN@10615..10616 "("6397                              ARG@10616..106206398                                EXPR_INDEX_EXPR@10616..106206399                                  LHS_EXPR@10616..106176400                                    EXPR_VAR@10616..106176401                                      NAME@10616..106176402                                        IDENT@10616..10617 "v"6403                                  L_BRACK@10617..10618 "["6404                                  EXPR_VAR@10618..106196405                                    NAME@10618..106196406                                      IDENT@10618..10619 "k"6407                                  R_BRACK@10619..10620 "]"6408                              R_PAREN@10620..10621 ")"6409                        WHITESPACE@10621..10630 "\n        "6410                        R_BRACK@10630..10631 "]"6411                  SEMI@10631..10632 ";"6412                  WHITESPACE@10632..10641 "\n        "6413                  EXPR_APPLY@10641..106676414                    EXPR_INDEX@10641..106496415                      EXPR_VAR@10641..106446416                        NAME@10641..106446417                          IDENT@10641..10644 "std"6418                      DOT@10644..10645 "."6419                      NAME@10645..106496420                        IDENT@10645..10649 "join"6421                    ARGS_DESC@10649..106676422                      L_PAREN@10649..10650 "("6423                      ARG@10650..106566424                        EXPR_STRING@10650..106566425                          STRING_SINGLE@10650..10656 "'\\n\\n'"6426                      COMMA@10656..10657 ","6427                      WHITESPACE@10657..10658 " "6428                      ARG@10658..106666429                        EXPR_VAR@10658..106666430                          NAME@10658..106666431                            IDENT@10658..10666 "sections"6432                      R_PAREN@10666..10667 ")"6433            COMMA@10667..10668 ","6434            WHITESPACE@10668..10675 "\n      "6435            BIND_FUNCTION@10675..109046436              NAME@10675..106866437                IDENT@10675..10686 "renderTable"6438              PARAMS_DESC@10686..107176439                L_PAREN@10686..10687 "("6440                PARAM@10687..106886441                  DESTRUCT_FULL@10687..106886442                    NAME@10687..106886443                      IDENT@10687..10688 "v"6444                COMMA@10688..10689 ","6445                WHITESPACE@10689..10690 " "6446                PARAM@10690..106946447                  DESTRUCT_FULL@10690..106946448                    NAME@10690..106946449                      IDENT@10690..10694 "path"6450                COMMA@10694..10695 ","6451                WHITESPACE@10695..10696 " "6452                PARAM@10696..107076453                  DESTRUCT_FULL@10696..107076454                    NAME@10696..107076455                      IDENT@10696..10707 "indexedPath"6456                COMMA@10707..10708 ","6457                WHITESPACE@10708..10709 " "6458                PARAM@10709..107166459                  DESTRUCT_FULL@10709..107166460                    NAME@10709..107166461                      IDENT@10709..10716 "cindent"6462                R_PAREN@10716..10717 ")"6463              WHITESPACE@10717..10718 " "6464              ASSIGN@10718..10719 "="6465              WHITESPACE@10719..10728 "\n        "6466              EXPR_BINARY@10728..109046467                LHS_EXPR@10728..108346468                  EXPR_BINARY@10728..108346469                    LHS_EXPR@10728..107936470                      EXPR_BINARY@10728..107936471                        LHS_EXPR@10728..107876472                          EXPR_BINARY@10728..107876473                            LHS_EXPR@10728..107416474                              EXPR_BINARY@10728..107416475                                LHS_EXPR@10728..107356476                                  EXPR_VAR@10728..107356477                                    NAME@10728..107356478                                      IDENT@10728..10735 "cindent"6479                                WHITESPACE@10735..10736 " "6480                                PLUS@10736..10737 "+"6481                                WHITESPACE@10737..10738 " "6482                                EXPR_STRING@10738..107416483                                  STRING_SINGLE@10738..10741 "'['"6484                            WHITESPACE@10741..10742 " "6485                            PLUS@10742..10743 "+"6486                            WHITESPACE@10743..10744 " "6487                            EXPR_APPLY@10744..107876488                              EXPR_INDEX@10744..107526489                                EXPR_VAR@10744..107476490                                  NAME@10744..107476491                                    IDENT@10744..10747 "std"6492                                DOT@10747..10748 "."6493                                NAME@10748..107526494                                  IDENT@10748..10752 "join"6495                              ARGS_DESC@10752..107876496                                L_PAREN@10752..10753 "("6497                                ARG@10753..107566498                                  EXPR_STRING@10753..107566499                                    STRING_SINGLE@10753..10756 "'.'"6500                                COMMA@10756..10757 ","6501                                WHITESPACE@10757..10758 " "6502                                ARG@10758..107866503                                  EXPR_APPLY@10758..107866504                                    EXPR_INDEX@10758..107656505                                      EXPR_VAR@10758..107616506                                        NAME@10758..107616507                                          IDENT@10758..10761 "std"6508                                      DOT@10761..10762 "."6509                                      NAME@10762..107656510                                        IDENT@10762..10765 "map"6511                                    ARGS_DESC@10765..107866512                                      L_PAREN@10765..10766 "("6513                                      ARG@10766..107796514                                        EXPR_VAR@10766..107796515                                          NAME@10766..107796516                                            IDENT@10766..10779 "escapeKeyToml"6517                                      COMMA@10779..10780 ","6518                                      WHITESPACE@10780..10781 " "6519                                      ARG@10781..107856520                                        EXPR_VAR@10781..107856521                                          NAME@10781..107856522                                            IDENT@10781..10785 "path"6523                                      R_PAREN@10785..10786 ")"6524                                R_PAREN@10786..10787 ")"6525                        WHITESPACE@10787..10788 " "6526                        PLUS@10788..10789 "+"6527                        WHITESPACE@10789..10790 " "6528                        EXPR_STRING@10790..107936529                          STRING_SINGLE@10790..10793 "']'"6530                    WHITESPACE@10793..10802 "\n        "6531                    PLUS@10802..10803 "+"6532                    WHITESPACE@10803..10804 " "6533                    EXPR_PARENED@10804..108346534                      L_PAREN@10804..10805 "("6535                      EXPR_IF_THEN_ELSE@10805..108336536                        IF_KW@10805..10807 "if"6537                        WHITESPACE@10807..10808 " "6538                        EXPR_BINARY@10808..108156539                          LHS_EXPR@10808..108096540                            EXPR_VAR@10808..108096541                              NAME@10808..108096542                                IDENT@10808..10809 "v"6543                          WHITESPACE@10809..10810 " "6544                          EQ@10810..10812 "=="6545                          WHITESPACE@10812..10813 " "6546                          EXPR_OBJECT@10813..108156547                            OBJ_BODY_MEMBER_LIST@10813..108156548                              L_BRACE@10813..10814 "{"6549                              R_BRACE@10814..10815 "}"6550                        WHITESPACE@10815..10816 " "6551                        THEN_KW@10816..10820 "then"6552                        WHITESPACE@10820..10821 " "6553                        TRUE_EXPR@10821..108236554                          EXPR_STRING@10821..108236555                            STRING_SINGLE@10821..10823 "''"6556                        WHITESPACE@10823..10824 " "6557                        ELSE_KW@10824..10828 "else"6558                        WHITESPACE@10828..10829 " "6559                        FALSE_EXPR@10829..108336560                          EXPR_STRING@10829..108336561                            STRING_SINGLE@10829..10833 "'\\n'"6562                      R_PAREN@10833..10834 ")"6563                WHITESPACE@10834..10843 "\n        "6564                PLUS@10843..10844 "+"6565                WHITESPACE@10844..10845 " "6566                EXPR_APPLY@10845..109046567                  EXPR_VAR@10845..108646568                    NAME@10845..108646569                      IDENT@10845..10864 "renderTableInternal"6570                  ARGS_DESC@10864..109046571                    L_PAREN@10864..10865 "("6572                    ARG@10865..108666573                      EXPR_VAR@10865..108666574                        NAME@10865..108666575                          IDENT@10865..10866 "v"6576                    COMMA@10866..10867 ","6577                    WHITESPACE@10867..10868 " "6578                    ARG@10868..108726579                      EXPR_VAR@10868..108726580                        NAME@10868..108726581                          IDENT@10868..10872 "path"6582                    COMMA@10872..10873 ","6583                    WHITESPACE@10873..10874 " "6584                    ARG@10874..108856585                      EXPR_VAR@10874..108856586                        NAME@10874..108856587                          IDENT@10874..10885 "indexedPath"6588                    COMMA@10885..10886 ","6589                    WHITESPACE@10886..10887 " "6590                    ARG@10887..109036591                      EXPR_BINARY@10887..109036592                        LHS_EXPR@10887..108946593                          EXPR_VAR@10887..108946594                            NAME@10887..108946595                              IDENT@10887..10894 "cindent"6596                        WHITESPACE@10894..10895 " "6597                        PLUS@10895..10896 "+"6598                        WHITESPACE@10896..10897 " "6599                        EXPR_VAR@10897..109036600                          NAME@10897..109036601                            IDENT@10897..10903 "indent"6602                    R_PAREN@10903..10904 ")"6603            COMMA@10904..10905 ","6604            WHITESPACE@10905..10912 "\n      "6605            BIND_FUNCTION@10912..113236606              NAME@10912..109286607                IDENT@10912..10928 "renderTableArray"6608              PARAMS_DESC@10928..109596609                L_PAREN@10928..10929 "("6610                PARAM@10929..109306611                  DESTRUCT_FULL@10929..109306612                    NAME@10929..109306613                      IDENT@10929..10930 "v"6614                COMMA@10930..10931 ","6615                WHITESPACE@10931..10932 " "6616                PARAM@10932..109366617                  DESTRUCT_FULL@10932..109366618                    NAME@10932..109366619                      IDENT@10932..10936 "path"6620                COMMA@10936..10937 ","6621                WHITESPACE@10937..10938 " "6622                PARAM@10938..109496623                  DESTRUCT_FULL@10938..109496624                    NAME@10938..109496625                      IDENT@10938..10949 "indexedPath"6626                COMMA@10949..10950 ","6627                WHITESPACE@10950..10951 " "6628                PARAM@10951..109586629                  DESTRUCT_FULL@10951..109586630                    NAME@10951..109586631                      IDENT@10951..10958 "cindent"6632                R_PAREN@10958..10959 ")"6633              WHITESPACE@10959..10960 " "6634              ASSIGN@10960..10961 "="6635              WHITESPACE@10961..10970 "\n        "6636              EXPR_LOCAL@10970..113236637                LOCAL_KW@10970..10975 "local"6638                WHITESPACE@10975..10976 " "6639                BIND_DESTRUCT@10976..110156640                  DESTRUCT_FULL@10976..109816641                    NAME@10976..109816642                      IDENT@10976..10981 "range"6643                  WHITESPACE@10981..10982 " "6644                  ASSIGN@10982..10983 "="6645                  WHITESPACE@10983..10984 " "6646                  EXPR_APPLY@10984..110156647                    EXPR_INDEX@10984..109936648                      EXPR_VAR@10984..109876649                        NAME@10984..109876650                          IDENT@10984..10987 "std"6651                      DOT@10987..10988 "."6652                      NAME@10988..109936653                        IDENT@10988..10993 "range"6654                    ARGS_DESC@10993..110156655                      L_PAREN@10993..10994 "("6656                      ARG@10994..109956657                        EXPR_NUMBER@10994..109956658                          FLOAT@10994..10995 "0"6659                      COMMA@10995..10996 ","6660                      WHITESPACE@10996..10997 " "6661                      ARG@10997..110146662                        EXPR_BINARY@10997..110146663                          LHS_EXPR@10997..110106664                            EXPR_APPLY@10997..110106665                              EXPR_INDEX@10997..110076666                                EXPR_VAR@10997..110006667                                  NAME@10997..110006668                                    IDENT@10997..11000 "std"6669                                DOT@11000..11001 "."6670                                NAME@11001..110076671                                  IDENT@11001..11007 "length"6672                              ARGS_DESC@11007..110106673                                L_PAREN@11007..11008 "("6674                                ARG@11008..110096675                                  EXPR_VAR@11008..110096676                                    NAME@11008..110096677                                      IDENT@11008..11009 "v"6678                                R_PAREN@11009..11010 ")"6679                          WHITESPACE@11010..11011 " "6680                          MINUS@11011..11012 "-"6681                          WHITESPACE@11012..11013 " "6682                          EXPR_NUMBER@11013..110146683                            FLOAT@11013..11014 "1"6684                      R_PAREN@11014..11015 ")"6685                SEMI@11015..11016 ";"6686                WHITESPACE@11016..11025 "\n        "6687                EXPR_LOCAL@11025..113236688                  LOCAL_KW@11025..11030 "local"6689                  WHITESPACE@11030..11031 " "6690                  BIND_DESTRUCT@11031..112876691                    DESTRUCT_FULL@11031..110396692                      NAME@11031..110396693                        IDENT@11031..11039 "sections"6694                    WHITESPACE@11039..11040 " "6695                    ASSIGN@11040..11041 "="6696                    WHITESPACE@11041..11042 " "6697                    EXPR_ARRAY_COMP@11042..112876698                      L_BRACK@11042..11043 "["6699                      WHITESPACE@11043..11054 "\n          "6700                      EXPR_PARENED@11054..112526701                        L_PAREN@11054..11055 "("6702                        EXPR_BINARY@11055..112516703                          LHS_EXPR@11055..111696704                            EXPR_BINARY@11055..111696705                              LHS_EXPR@11055..111226706                                EXPR_BINARY@11055..111226707                                  LHS_EXPR@11055..111156708                                    EXPR_BINARY@11055..111156709                                      LHS_EXPR@11055..110696710                                        EXPR_BINARY@11055..110696711                                          LHS_EXPR@11055..110626712                                            EXPR_VAR@11055..110626713                                              NAME@11055..110626714                                                IDENT@11055..11062 "cindent"6715                                          WHITESPACE@11062..11063 " "6716                                          PLUS@11063..11064 "+"6717                                          WHITESPACE@11064..11065 " "6718                                          EXPR_STRING@11065..110696719                                            STRING_SINGLE@11065..11069 "'[['"6720                                      WHITESPACE@11069..11070 " "6721                                      PLUS@11070..11071 "+"6722                                      WHITESPACE@11071..11072 " "6723                                      EXPR_APPLY@11072..111156724                                        EXPR_INDEX@11072..110806725                                          EXPR_VAR@11072..110756726                                            NAME@11072..110756727                                              IDENT@11072..11075 "std"6728                                          DOT@11075..11076 "."6729                                          NAME@11076..110806730                                            IDENT@11076..11080 "join"6731                                        ARGS_DESC@11080..111156732                                          L_PAREN@11080..11081 "("6733                                          ARG@11081..110846734                                            EXPR_STRING@11081..110846735                                              STRING_SINGLE@11081..11084 "'.'"6736                                          COMMA@11084..11085 ","6737                                          WHITESPACE@11085..11086 " "6738                                          ARG@11086..111146739                                            EXPR_APPLY@11086..111146740                                              EXPR_INDEX@11086..110936741                                                EXPR_VAR@11086..110896742                                                  NAME@11086..110896743                                                    IDENT@11086..11089 "std"6744                                                DOT@11089..11090 "."6745                                                NAME@11090..110936746                                                  IDENT@11090..11093 "map"6747                                              ARGS_DESC@11093..111146748                                                L_PAREN@11093..11094 "("6749                                                ARG@11094..111076750                                                  EXPR_VAR@11094..111076751                                                    NAME@11094..111076752                                                      IDENT@11094..11107 "escapeKeyToml"6753                                                COMMA@11107..11108 ","6754                                                WHITESPACE@11108..11109 " "6755                                                ARG@11109..111136756                                                  EXPR_VAR@11109..111136757                                                    NAME@11109..111136758                                                      IDENT@11109..11113 "path"6759                                                R_PAREN@11113..11114 ")"6760                                          R_PAREN@11114..11115 ")"6761                                  WHITESPACE@11115..11116 " "6762                                  PLUS@11116..11117 "+"6763                                  WHITESPACE@11117..11118 " "6764                                  EXPR_STRING@11118..111226765                                    STRING_SINGLE@11118..11122 "']]'"6766                              WHITESPACE@11122..11134 "\n           "6767                              PLUS@11134..11135 "+"6768                              WHITESPACE@11135..11136 " "6769                              EXPR_PARENED@11136..111696770                                L_PAREN@11136..11137 "("6771                                EXPR_IF_THEN_ELSE@11137..111686772                                  IF_KW@11137..11139 "if"6773                                  WHITESPACE@11139..11140 " "6774                                  EXPR_BINARY@11140..111506775                                    LHS_EXPR@11140..111446776                                      EXPR_INDEX_EXPR@11140..111446777                                        LHS_EXPR@11140..111416778                                          EXPR_VAR@11140..111416779                                            NAME@11140..111416780                                              IDENT@11140..11141 "v"6781                                        L_BRACK@11141..11142 "["6782                                        EXPR_VAR@11142..111436783                                          NAME@11142..111436784                                            IDENT@11142..11143 "i"6785                                        R_BRACK@11143..11144 "]"6786                                    WHITESPACE@11144..11145 " "6787                                    EQ@11145..11147 "=="6788                                    WHITESPACE@11147..11148 " "6789                                    EXPR_OBJECT@11148..111506790                                      OBJ_BODY_MEMBER_LIST@11148..111506791                                        L_BRACE@11148..11149 "{"6792                                        R_BRACE@11149..11150 "}"6793                                  WHITESPACE@11150..11151 " "6794                                  THEN_KW@11151..11155 "then"6795                                  WHITESPACE@11155..11156 " "6796                                  TRUE_EXPR@11156..111586797                                    EXPR_STRING@11156..111586798                                      STRING_SINGLE@11156..11158 "''"6799                                  WHITESPACE@11158..11159 " "6800                                  ELSE_KW@11159..11163 "else"6801                                  WHITESPACE@11163..11164 " "6802                                  FALSE_EXPR@11164..111686803                                    EXPR_STRING@11164..111686804                                      STRING_SINGLE@11164..11168 "'\\n'"6805                                R_PAREN@11168..11169 ")"6806                          WHITESPACE@11169..11181 "\n           "6807                          PLUS@11181..11182 "+"6808                          WHITESPACE@11182..11183 " "6809                          EXPR_APPLY@11183..112516810                            EXPR_VAR@11183..112026811                              NAME@11183..112026812                                IDENT@11183..11202 "renderTableInternal"6813                            ARGS_DESC@11202..112516814                              L_PAREN@11202..11203 "("6815                              ARG@11203..112076816                                EXPR_INDEX_EXPR@11203..112076817                                  LHS_EXPR@11203..112046818                                    EXPR_VAR@11203..112046819                                      NAME@11203..112046820                                        IDENT@11203..11204 "v"6821                                  L_BRACK@11204..11205 "["6822                                  EXPR_VAR@11205..112066823                                    NAME@11205..112066824                                      IDENT@11205..11206 "i"6825                                  R_BRACK@11206..11207 "]"6826                              COMMA@11207..11208 ","6827                              WHITESPACE@11208..11209 " "6828                              ARG@11209..112136829                                EXPR_VAR@11209..112136830                                  NAME@11209..112136831                                    IDENT@11209..11213 "path"6832                              COMMA@11213..11214 ","6833                              WHITESPACE@11214..11215 " "6834                              ARG@11215..112326835                                EXPR_BINARY@11215..112326836                                  LHS_EXPR@11215..112266837                                    EXPR_VAR@11215..112266838                                      NAME@11215..112266839                                        IDENT@11215..11226 "indexedPath"6840                                  WHITESPACE@11226..11227 " "6841                                  PLUS@11227..11228 "+"6842                                  WHITESPACE@11228..11229 " "6843                                  EXPR_ARRAY@11229..112326844                                    L_BRACK@11229..11230 "["6845                                    EXPR_VAR@11230..112316846                                      NAME@11230..112316847                                        IDENT@11230..11231 "i"6848                                    R_BRACK@11231..11232 "]"6849                              COMMA@11232..11233 ","6850                              WHITESPACE@11233..11234 " "6851                              ARG@11234..112506852                                EXPR_BINARY@11234..112506853                                  LHS_EXPR@11234..112416854                                    EXPR_VAR@11234..112416855                                      NAME@11234..112416856                                        IDENT@11234..11241 "cindent"6857                                  WHITESPACE@11241..11242 " "6858                                  PLUS@11242..11243 "+"6859                                  WHITESPACE@11243..11244 " "6860                                  EXPR_VAR@11244..112506861                                    NAME@11244..112506862                                      IDENT@11244..11250 "indent"6863                              R_PAREN@11250..11251 ")"6864                        R_PAREN@11251..11252 ")"6865                      WHITESPACE@11252..11263 "\n          "6866                      FOR_SPEC@11263..112776867                        FOR_KW@11263..11266 "for"6868                        WHITESPACE@11266..11267 " "6869                        NAME@11267..112686870                          IDENT@11267..11268 "i"6871                        WHITESPACE@11268..11269 " "6872                        IN_KW@11269..11271 "in"6873                        WHITESPACE@11271..11272 " "6874                        EXPR_VAR@11272..112776875                          NAME@11272..112776876                            IDENT@11272..11277 "range"6877                      WHITESPACE@11277..11286 "\n        "6878                      R_BRACK@11286..11287 "]"6879                  SEMI@11287..11288 ";"6880                  WHITESPACE@11288..11297 "\n        "6881                  EXPR_APPLY@11297..113236882                    EXPR_INDEX@11297..113056883                      EXPR_VAR@11297..113006884                        NAME@11297..113006885                          IDENT@11297..11300 "std"6886                      DOT@11300..11301 "."6887                      NAME@11301..113056888                        IDENT@11301..11305 "join"6889                    ARGS_DESC@11305..113236890                      L_PAREN@11305..11306 "("6891                      ARG@11306..113126892                        EXPR_STRING@11306..113126893                          STRING_SINGLE@11306..11312 "'\\n\\n'"6894                      COMMA@11312..11313 ","6895                      WHITESPACE@11313..11314 " "6896                      ARG@11314..113226897                        EXPR_VAR@11314..113226898                          NAME@11314..113226899                            IDENT@11314..11322 "sections"6900                      R_PAREN@11322..11323 ")"6901            SEMI@11323..11324 ";"6902            WHITESPACE@11324..11329 "\n    "6903            EXPR_IF_THEN_ELSE@11329..114766904              IF_KW@11329..11331 "if"6905              WHITESPACE@11331..11332 " "6906              EXPR_APPLY@11332..113516907                EXPR_INDEX@11332..113446908                  EXPR_VAR@11332..113356909                    NAME@11332..113356910                      IDENT@11332..11335 "std"6911                  DOT@11335..11336 "."6912                  NAME@11336..113446913                    IDENT@11336..11344 "isObject"6914                ARGS_DESC@11344..113516915                  L_PAREN@11344..11345 "("6916                  ARG@11345..113506917                    EXPR_VAR@11345..113506918                      NAME@11345..113506919                        IDENT@11345..11350 "value"6920                  R_PAREN@11350..11351 ")"6921              WHITESPACE@11351..11352 " "6922              THEN_KW@11352..11356 "then"6923              WHITESPACE@11356..11363 "\n      "6924              TRUE_EXPR@11363..114016925                EXPR_APPLY@11363..114016926                  EXPR_VAR@11363..113826927                    NAME@11363..113826928                      IDENT@11363..11382 "renderTableInternal"6929                  ARGS_DESC@11382..114016930                    L_PAREN@11382..11383 "("6931                    ARG@11383..113886932                      EXPR_VAR@11383..113886933                        NAME@11383..113886934                          IDENT@11383..11388 "value"6935                    COMMA@11388..11389 ","6936                    WHITESPACE@11389..11390 " "6937                    ARG@11390..113926938                      EXPR_ARRAY@11390..113926939                        L_BRACK@11390..11391 "["6940                        R_BRACK@11391..11392 "]"6941                    COMMA@11392..11393 ","6942                    WHITESPACE@11393..11394 " "6943                    ARG@11394..113966944                      EXPR_ARRAY@11394..113966945                        L_BRACK@11394..11395 "["6946                        R_BRACK@11395..11396 "]"6947                    COMMA@11396..11397 ","6948                    WHITESPACE@11397..11398 " "6949                    ARG@11398..114006950                      EXPR_STRING@11398..114006951                        STRING_SINGLE@11398..11400 "''"6952                    R_PAREN@11400..11401 ")"6953              WHITESPACE@11401..11406 "\n    "6954              ELSE_KW@11406..11410 "else"6955              WHITESPACE@11410..11417 "\n      "6956              FALSE_EXPR@11417..114766957                EXPR_ERROR@11417..114766958                  ERROR_KW@11417..11422 "error"6959                  WHITESPACE@11422..11423 " "6960                  EXPR_BINARY@11423..114766961                    LHS_EXPR@11423..114586962                      EXPR_STRING@11423..114586963                        STRING_SINGLE@11423..11458 "'TOML body must be an ..."6964                    WHITESPACE@11458..11459 " "6965                    PLUS@11459..11460 "+"6966                    WHITESPACE@11460..11461 " "6967                    EXPR_APPLY@11461..114766968                      EXPR_INDEX@11461..114696969                        EXPR_VAR@11461..114646970                          NAME@11461..114646971                            IDENT@11461..11464 "std"6972                        DOT@11464..11465 "."6973                        NAME@11465..114696974                          IDENT@11465..11469 "type"6975                      ARGS_DESC@11469..114766976                        L_PAREN@11469..11470 "("6977                        ARG@11470..114756978                          EXPR_VAR@11470..114756979                            NAME@11470..114756980                              IDENT@11470..11475 "value"6981                        R_PAREN@11475..11476 ")"6982      COMMA@11476..11477 ","6983      WHITESPACE@11477..11481 "\n\n  "6984      MEMBER_FIELD@11481..115286985        FIELD_NORMAL@11481..115286986          FIELD_NAME_FIXED@11481..114976987            NAME@11481..114976988              IDENT@11481..11497 "escapeStringJson"6989          COLONCOLON@11497..11499 "::"6990          WHITESPACE@11499..11500 " "6991          EXPR_INTRINSIC@11500..115286992            INTRINSIC@11500..11510 "$intrinsic"6993            L_PAREN@11510..11511 "("6994            NAME@11511..115276995              IDENT@11511..11527 "escapeStringJson"6996            R_PAREN@11527..11528 ")"6997      COMMA@11528..11529 ","6998      WHITESPACE@11529..11533 "\n\n  "6999      MEMBER_FIELD@11533..115887000        FIELD_METHOD@11533..115887001          FIELD_NAME_FIXED@11533..115517002            NAME@11533..115517003              IDENT@11533..11551 "escapeStringPython"7004          PARAMS_DESC@11551..115567005            L_PAREN@11551..11552 "("7006            PARAM@11552..115557007              DESTRUCT_FULL@11552..115557008                NAME@11552..115557009                  IDENT@11552..11555 "str"7010            R_PAREN@11555..11556 ")"7011          COLONCOLON@11556..11558 "::"7012          WHITESPACE@11558..11563 "\n    "7013          EXPR_APPLY@11563..115887014            EXPR_INDEX@11563..115837015              EXPR_VAR@11563..115667016                NAME@11563..115667017                  IDENT@11563..11566 "std"7018              DOT@11566..11567 "."7019              NAME@11567..115837020                IDENT@11567..11583 "escapeStringJson"7021            ARGS_DESC@11583..115887022              L_PAREN@11583..11584 "("7023              ARG@11584..115877024                EXPR_VAR@11584..115877025                  NAME@11584..115877026                    IDENT@11584..11587 "str"7027              R_PAREN@11587..11588 ")"7028      COMMA@11588..11589 ","7029      WHITESPACE@11589..11593 "\n\n  "7030      MEMBER_FIELD@11593..118107031        FIELD_METHOD@11593..118107032          FIELD_NAME_FIXED@11593..116097033            NAME@11593..116097034              IDENT@11593..11609 "escapeStringBash"7035          PARAMS_DESC@11609..116157036            L_PAREN@11609..11610 "("7037            PARAM@11610..116147038              DESTRUCT_FULL@11610..116147039                NAME@11610..116147040                  IDENT@11610..11614 "str_"7041            R_PAREN@11614..11615 ")"7042          COLONCOLON@11615..11617 "::"7043          WHITESPACE@11617..11622 "\n    "7044          EXPR_LOCAL@11622..118107045            LOCAL_KW@11622..11627 "local"7046            WHITESPACE@11627..11628 " "7047            BIND_DESTRUCT@11628..116527048              DESTRUCT_FULL@11628..116317049                NAME@11628..116317050                  IDENT@11628..11631 "str"7051              WHITESPACE@11631..11632 " "7052              ASSIGN@11632..11633 "="7053              WHITESPACE@11633..11634 " "7054              EXPR_APPLY@11634..116527055                EXPR_INDEX@11634..116467056                  EXPR_VAR@11634..116377057                    NAME@11634..116377058                      IDENT@11634..11637 "std"7059                  DOT@11637..11638 "."7060                  NAME@11638..116467061                    IDENT@11638..11646 "toString"7062                ARGS_DESC@11646..116527063                  L_PAREN@11646..11647 "("7064                  ARG@11647..116517065                    EXPR_VAR@11647..116517066                      NAME@11647..116517067                        IDENT@11647..11651 "str_"7068                  R_PAREN@11651..11652 ")"7069            SEMI@11652..11653 ";"7070            WHITESPACE@11653..11658 "\n    "7071            EXPR_LOCAL@11658..118107072              LOCAL_KW@11658..11663 "local"7073              WHITESPACE@11663..11664 " "7074              BIND_FUNCTION@11664..117397075                NAME@11664..116697076                  IDENT@11664..11669 "trans"7077                PARAMS_DESC@11669..116737078                  L_PAREN@11669..11670 "("7079                  PARAM@11670..116727080                    DESTRUCT_FULL@11670..116727081                      NAME@11670..116727082                        IDENT@11670..11672 "ch"7083                  R_PAREN@11672..11673 ")"7084                WHITESPACE@11673..11674 " "7085                ASSIGN@11674..11675 "="7086                WHITESPACE@11675..11682 "\n      "7087                EXPR_IF_THEN_ELSE@11682..117397088                  IF_KW@11682..11684 "if"7089                  WHITESPACE@11684..11685 " "7090                  EXPR_BINARY@11685..116947091                    LHS_EXPR@11685..116877092                      EXPR_VAR@11685..116877093                        NAME@11685..116877094                          IDENT@11685..11687 "ch"7095                    WHITESPACE@11687..11688 " "7096                    EQ@11688..11690 "=="7097                    WHITESPACE@11690..11691 " "7098                    EXPR_STRING@11691..116947099                      STRING_DOUBLE@11691..11694 "\"'\""7100                  WHITESPACE@11694..11695 " "7101                  THEN_KW@11695..11699 "then"7102                  WHITESPACE@11699..11708 "\n        "7103                  TRUE_EXPR@11708..117177104                    EXPR_STRING@11708..117177105                      STRING_DOUBLE@11708..11717 "\"'\\\"'\\\"'\""7106                  WHITESPACE@11717..11724 "\n      "7107                  ELSE_KW@11724..11728 "else"7108                  WHITESPACE@11728..11737 "\n        "7109                  FALSE_EXPR@11737..117397110                    EXPR_VAR@11737..117397111                      NAME@11737..117397112                        IDENT@11737..11739 "ch"7113              SEMI@11739..11740 ";"7114              WHITESPACE@11740..11745 "\n    "7115              EXPR_BINARY@11745..118107116                LHS_EXPR@11745..117517117                  EXPR_STRING@11745..117517118                    STRING_DOUBLE@11745..11751 "\"'%s'\""7119                WHITESPACE@11751..11752 " "7120                MODULO@11752..11753 "%"7121                WHITESPACE@11753..11754 " "7122                EXPR_APPLY@11754..118107123                  EXPR_INDEX@11754..117627124                    EXPR_VAR@11754..117577125                      NAME@11754..117577126                        IDENT@11754..11757 "std"7127                    DOT@11757..11758 "."7128                    NAME@11758..117627129                      IDENT@11758..11762 "join"7130                  ARGS_DESC@11762..118107131                    L_PAREN@11762..11763 "("7132                    ARG@11763..117657133                      EXPR_STRING@11763..117657134                        STRING_SINGLE@11763..11765 "''"7135                    COMMA@11765..11766 ","7136                    WHITESPACE@11766..11767 " "7137                    ARG@11767..118097138                      EXPR_ARRAY_COMP@11767..118097139                        L_BRACK@11767..11768 "["7140                        EXPR_APPLY@11768..117777141                          EXPR_VAR@11768..117737142                            NAME@11768..117737143                              IDENT@11768..11773 "trans"7144                          ARGS_DESC@11773..117777145                            L_PAREN@11773..11774 "("7146                            ARG@11774..117767147                              EXPR_VAR@11774..117767148                                NAME@11774..117767149                                  IDENT@11774..11776 "ch"7150                            R_PAREN@11776..11777 ")"7151                        WHITESPACE@11777..11778 " "7152                        FOR_SPEC@11778..118087153                          FOR_KW@11778..11781 "for"7154                          WHITESPACE@11781..11782 " "7155                          NAME@11782..117847156                            IDENT@11782..11784 "ch"7157                          WHITESPACE@11784..11785 " "7158                          IN_KW@11785..11787 "in"7159                          WHITESPACE@11787..11788 " "7160                          EXPR_APPLY@11788..118087161                            EXPR_INDEX@11788..118037162                              EXPR_VAR@11788..117917163                                NAME@11788..117917164                                  IDENT@11788..11791 "std"7165                              DOT@11791..11792 "."7166                              NAME@11792..118037167                                IDENT@11792..11803 "stringChars"7168                            ARGS_DESC@11803..118087169                              L_PAREN@11803..11804 "("7170                              ARG@11804..118077171                                EXPR_VAR@11804..118077172                                  NAME@11804..118077173                                    IDENT@11804..11807 "str"7174                              R_PAREN@11807..11808 ")"7175                        R_BRACK@11808..11809 "]"7176                    R_PAREN@11809..11810 ")"7177      COMMA@11810..11811 ","7178      WHITESPACE@11811..11815 "\n\n  "7179      MEMBER_FIELD@11815..120297180        FIELD_METHOD@11815..120297181          FIELD_NAME_FIXED@11815..118347182            NAME@11815..118347183              IDENT@11815..11834 "escapeStringDollars"7184          PARAMS_DESC@11834..118407185            L_PAREN@11834..11835 "("7186            PARAM@11835..118397187              DESTRUCT_FULL@11835..118397188                NAME@11835..118397189                  IDENT@11835..11839 "str_"7190            R_PAREN@11839..11840 ")"7191          COLONCOLON@11840..11842 "::"7192          WHITESPACE@11842..11847 "\n    "7193          EXPR_LOCAL@11847..120297194            LOCAL_KW@11847..11852 "local"7195            WHITESPACE@11852..11853 " "7196            BIND_DESTRUCT@11853..118777197              DESTRUCT_FULL@11853..118567198                NAME@11853..118567199                  IDENT@11853..11856 "str"7200              WHITESPACE@11856..11857 " "7201              ASSIGN@11857..11858 "="7202              WHITESPACE@11858..11859 " "7203              EXPR_APPLY@11859..118777204                EXPR_INDEX@11859..118717205                  EXPR_VAR@11859..118627206                    NAME@11859..118627207                      IDENT@11859..11862 "std"7208                  DOT@11862..11863 "."7209                  NAME@11863..118717210                    IDENT@11863..11871 "toString"7211                ARGS_DESC@11871..118777212                  L_PAREN@11871..11872 "("7213                  ARG@11872..118767214                    EXPR_VAR@11872..118767215                      NAME@11872..118767216                        IDENT@11872..11876 "str_"7217                  R_PAREN@11876..11877 ")"7218            SEMI@11877..11878 ";"7219            WHITESPACE@11878..11883 "\n    "7220            EXPR_LOCAL@11883..120297221              LOCAL_KW@11883..11888 "local"7222              WHITESPACE@11888..11889 " "7223              BIND_FUNCTION@11889..119597224                NAME@11889..118947225                  IDENT@11889..11894 "trans"7226                PARAMS_DESC@11894..118987227                  L_PAREN@11894..11895 "("7228                  PARAM@11895..118977229                    DESTRUCT_FULL@11895..118977230                      NAME@11895..118977231                        IDENT@11895..11897 "ch"7232                  R_PAREN@11897..11898 ")"7233                WHITESPACE@11898..11899 " "7234                ASSIGN@11899..11900 "="7235                WHITESPACE@11900..11907 "\n      "7236                EXPR_IF_THEN_ELSE@11907..119597237                  IF_KW@11907..11909 "if"7238                  WHITESPACE@11909..11910 " "7239                  EXPR_BINARY@11910..119197240                    LHS_EXPR@11910..119127241                      EXPR_VAR@11910..119127242                        NAME@11910..119127243                          IDENT@11910..11912 "ch"7244                    WHITESPACE@11912..11913 " "7245                    EQ@11913..11915 "=="7246                    WHITESPACE@11915..11916 " "7247                    EXPR_STRING@11916..119197248                      STRING_SINGLE@11916..11919 "'$'"7249                  WHITESPACE@11919..11920 " "7250                  THEN_KW@11920..11924 "then"7251                  WHITESPACE@11924..11933 "\n        "7252                  TRUE_EXPR@11933..119377253                    EXPR_STRING@11933..119377254                      STRING_SINGLE@11933..11937 "'$$'"7255                  WHITESPACE@11937..11944 "\n      "7256                  ELSE_KW@11944..11948 "else"7257                  WHITESPACE@11948..11957 "\n        "7258                  FALSE_EXPR@11957..119597259                    EXPR_VAR@11957..119597260                      NAME@11957..119597261                        IDENT@11957..11959 "ch"7262              SEMI@11959..11960 ";"7263              WHITESPACE@11960..11965 "\n    "7264              EXPR_APPLY@11965..120297265                EXPR_INDEX@11965..119747266                  EXPR_VAR@11965..119687267                    NAME@11965..119687268                      IDENT@11965..11968 "std"7269                  DOT@11968..11969 "."7270                  NAME@11969..119747271                    IDENT@11969..11974 "foldl"7272                ARGS_DESC@11974..120297273                  L_PAREN@11974..11975 "("7274                  ARG@11975..120027275                    EXPR_FUNCTION@11975..120027276                      FUNCTION_KW@11975..11983 "function"7277                      PARAMS_DESC@11983..119897278                        L_PAREN@11983..11984 "("7279                        PARAM@11984..119857280                          DESTRUCT_FULL@11984..119857281                            NAME@11984..119857282                              IDENT@11984..11985 "a"7283                        COMMA@11985..11986 ","7284                        WHITESPACE@11986..11987 " "7285                        PARAM@11987..119887286                          DESTRUCT_FULL@11987..119887287                            NAME@11987..119887288                              IDENT@11987..11988 "b"7289                        R_PAREN@11988..11989 ")"7290                      WHITESPACE@11989..11990 " "7291                      EXPR_BINARY@11990..120027292                        LHS_EXPR@11990..119917293                          EXPR_VAR@11990..119917294                            NAME@11990..119917295                              IDENT@11990..11991 "a"7296                        WHITESPACE@11991..11992 " "7297                        PLUS@11992..11993 "+"7298                        WHITESPACE@11993..11994 " "7299                        EXPR_APPLY@11994..120027300                          EXPR_VAR@11994..119997301                            NAME@11994..119997302                              IDENT@11994..11999 "trans"7303                          ARGS_DESC@11999..120027304                            L_PAREN@11999..12000 "("7305                            ARG@12000..120017306                              EXPR_VAR@12000..120017307                                NAME@12000..120017308                                  IDENT@12000..12001 "b"7309                            R_PAREN@12001..12002 ")"7310                  COMMA@12002..12003 ","7311                  WHITESPACE@12003..12004 " "7312                  ARG@12004..120247313                    EXPR_APPLY@12004..120247314                      EXPR_INDEX@12004..120197315                        EXPR_VAR@12004..120077316                          NAME@12004..120077317                            IDENT@12004..12007 "std"7318                        DOT@12007..12008 "."7319                        NAME@12008..120197320                          IDENT@12008..12019 "stringChars"7321                      ARGS_DESC@12019..120247322                        L_PAREN@12019..12020 "("7323                        ARG@12020..120237324                          EXPR_VAR@12020..120237325                            NAME@12020..120237326                              IDENT@12020..12023 "str"7327                        R_PAREN@12023..12024 ")"7328                  COMMA@12024..12025 ","7329                  WHITESPACE@12025..12026 " "7330                  ARG@12026..120287331                    EXPR_STRING@12026..120287332                      STRING_SINGLE@12026..12028 "''"7333                  R_PAREN@12028..12029 ")"7334      COMMA@12029..12030 ","7335      WHITESPACE@12030..12034 "\n\n  "7336      MEMBER_FIELD@12034..121007337        FIELD_METHOD@12034..121007338          FIELD_NAME_FIXED@12034..120467339            NAME@12034..120467340              IDENT@12034..12046 "manifestJson"7341          PARAMS_DESC@12046..120537342            L_PAREN@12046..12047 "("7343            PARAM@12047..120527344              DESTRUCT_FULL@12047..120527345                NAME@12047..120527346                  IDENT@12047..12052 "value"7347            R_PAREN@12052..12053 ")"7348          COLONCOLON@12053..12055 "::"7349          WHITESPACE@12055..12056 " "7350          EXPR_APPLY@12056..121007351            EXPR_INDEX@12056..120747352              EXPR_VAR@12056..120597353                NAME@12056..120597354                  IDENT@12056..12059 "std"7355              DOT@12059..12060 "."7356              NAME@12060..120747357                IDENT@12060..12074 "manifestJsonEx"7358            ARGS_DESC@12074..121007359              L_PAREN@12074..12075 "("7360              ARG@12075..120807361                EXPR_VAR@12075..120807362                  NAME@12075..120807363                    IDENT@12075..12080 "value"7364              COMMA@12080..12081 ","7365              WHITESPACE@12081..12082 " "7366              ARG@12082..120887367                EXPR_STRING@12082..120887368                  STRING_SINGLE@12082..12088 "'    '"7369              R_PAREN@12088..12089 ")"7370              WHITESPACE@12089..12090 " "7371              TAILSTRICT_KW@12090..12100 "tailstrict"7372      COMMA@12100..12101 ","7373      WHITESPACE@12101..12105 "\n\n  "7374      MEMBER_FIELD@12105..121737375        FIELD_METHOD@12105..121737376          FIELD_NAME_FIXED@12105..121257377            NAME@12105..121257378              IDENT@12105..12125 "manifestJsonMinified"7379          PARAMS_DESC@12125..121327380            L_PAREN@12125..12126 "("7381            PARAM@12126..121317382              DESTRUCT_FULL@12126..121317383                NAME@12126..121317384                  IDENT@12126..12131 "value"7385            R_PAREN@12131..12132 ")"7386          COLONCOLON@12132..12134 "::"7387          WHITESPACE@12134..12135 " "7388          EXPR_APPLY@12135..121737389            EXPR_INDEX@12135..121537390              EXPR_VAR@12135..121387391                NAME@12135..121387392                  IDENT@12135..12138 "std"7393              DOT@12138..12139 "."7394              NAME@12139..121537395                IDENT@12139..12153 "manifestJsonEx"7396            ARGS_DESC@12153..121737397              L_PAREN@12153..12154 "("7398              ARG@12154..121597399                EXPR_VAR@12154..121597400                  NAME@12154..121597401                    IDENT@12154..12159 "value"7402              COMMA@12159..12160 ","7403              WHITESPACE@12160..12161 " "7404              ARG@12161..121637405                EXPR_STRING@12161..121637406                  STRING_SINGLE@12161..12163 "''"7407              COMMA@12163..12164 ","7408              WHITESPACE@12164..12165 " "7409              ARG@12165..121677410                EXPR_STRING@12165..121677411                  STRING_SINGLE@12165..12167 "''"7412              COMMA@12167..12168 ","7413              WHITESPACE@12168..12169 " "7414              ARG@12169..121727415                EXPR_STRING@12169..121727416                  STRING_SINGLE@12169..12172 "':'"7417              R_PAREN@12172..12173 ")"7418      COMMA@12173..12174 ","7419      WHITESPACE@12174..12178 "\n\n  "7420      MEMBER_FIELD@12178..122217421        FIELD_NORMAL@12178..122217422          FIELD_NAME_FIXED@12178..121927423            NAME@12178..121927424              IDENT@12178..12192 "manifestJsonEx"7425          COLONCOLON@12192..12194 "::"7426          WHITESPACE@12194..12195 " "7427          EXPR_INTRINSIC@12195..122217428            INTRINSIC@12195..12205 "$intrinsic"7429            L_PAREN@12205..12206 "("7430            NAME@12206..122207431              IDENT@12206..12220 "manifestJsonEx"7432            R_PAREN@12220..12221 ")"7433      COMMA@12221..12222 ","7434      WHITESPACE@12222..12226 "\n\n  "7435      MEMBER_FIELD@12226..122717436        FIELD_NORMAL@12226..122717437          FIELD_NAME_FIXED@12226..122417438            NAME@12226..122417439              IDENT@12226..12241 "manifestYamlDoc"7440          COLONCOLON@12241..12243 "::"7441          WHITESPACE@12243..12244 " "7442          EXPR_INTRINSIC@12244..122717443            INTRINSIC@12244..12254 "$intrinsic"7444            L_PAREN@12254..12255 "("7445            NAME@12255..122707446              IDENT@12255..12270 "manifestYamlDoc"7447            R_PAREN@12270..12271 ")"7448      COMMA@12271..12272 ","7449      WHITESPACE@12272..12276 "\n\n  "7450      MEMBER_FIELD@12276..126327451        FIELD_METHOD@12276..126327452          FIELD_NAME_FIXED@12276..122947453            NAME@12276..122947454              IDENT@12276..12294 "manifestYamlStream"7455          PARAMS_DESC@12294..123527456            L_PAREN@12294..12295 "("7457            PARAM@12295..123007458              DESTRUCT_FULL@12295..123007459                NAME@12295..123007460                  IDENT@12295..12300 "value"7461            COMMA@12300..12301 ","7462            WHITESPACE@12301..12302 " "7463            PARAM@12302..123307464              DESTRUCT_FULL@12302..123247465                NAME@12302..123247466                  IDENT@12302..12324 "indent_array_in_object"7467              ASSIGN@12324..12325 "="7468              EXPR_LITERAL@12325..123307469                FALSE_KW@12325..12330 "false"7470            COMMA@12330..12331 ","7471            WHITESPACE@12331..12332 " "7472            PARAM@12332..123517473              DESTRUCT_FULL@12332..123467474                NAME@12332..123467475                  IDENT@12332..12346 "c_document_end"7476              ASSIGN@12346..12347 "="7477              EXPR_LITERAL@12347..123517478                TRUE_KW@12347..12351 "true"7479            R_PAREN@12351..12352 ")"7480          COLONCOLON@12352..12354 "::"7481          WHITESPACE@12354..12359 "\n    "7482          EXPR_IF_THEN_ELSE@12359..126327483            IF_KW@12359..12361 "if"7484            WHITESPACE@12361..12362 " "7485            EXPR_UNARY@12362..123817486              NOT@12362..12363 "!"7487              EXPR_APPLY@12363..123817488                EXPR_INDEX@12363..123747489                  EXPR_VAR@12363..123667490                    NAME@12363..123667491                      IDENT@12363..12366 "std"7492                  DOT@12366..12367 "."7493                  NAME@12367..123747494                    IDENT@12367..12374 "isArray"7495                ARGS_DESC@12374..123817496                  L_PAREN@12374..12375 "("7497                  ARG@12375..123807498                    EXPR_VAR@12375..123807499                      NAME@12375..123807500                        IDENT@12375..12380 "value"7501                  R_PAREN@12380..12381 ")"7502            WHITESPACE@12381..12382 " "7503            THEN_KW@12382..12386 "then"7504            WHITESPACE@12386..12393 "\n      "7505            TRUE_EXPR@12393..124617506              EXPR_ERROR@12393..124617507                ERROR_KW@12393..12398 "error"7508                WHITESPACE@12398..12399 " "7509                EXPR_BINARY@12399..124617510                  LHS_EXPR@12399..124437511                    EXPR_STRING@12399..124437512                      STRING_SINGLE@12399..12443 "'manifestYamlStream o ..."7513                  WHITESPACE@12443..12444 " "7514                  PLUS@12444..12445 "+"7515                  WHITESPACE@12445..12446 " "7516                  EXPR_APPLY@12446..124617517                    EXPR_INDEX@12446..124547518                      EXPR_VAR@12446..124497519                        NAME@12446..124497520                          IDENT@12446..12449 "std"7521                      DOT@12449..12450 "."7522                      NAME@12450..124547523                        IDENT@12450..12454 "type"7524                    ARGS_DESC@12454..124617525                      L_PAREN@12454..12455 "("7526                      ARG@12455..124607527                        EXPR_VAR@12455..124607528                          NAME@12455..124607529                            IDENT@12455..12460 "value"7530                      R_PAREN@12460..12461 ")"7531            WHITESPACE@12461..12466 "\n    "7532            ELSE_KW@12466..12470 "else"7533            WHITESPACE@12470..12477 "\n      "7534            FALSE_EXPR@12477..126327535              EXPR_BINARY@12477..126327536                LHS_EXPR@12477..125877537                  EXPR_BINARY@12477..125877538                    LHS_EXPR@12477..124847539                      EXPR_STRING@12477..124847540                        STRING_SINGLE@12477..12484 "'---\\n'"7541                    WHITESPACE@12484..12485 " "7542                    PLUS@12485..12486 "+"7543                    WHITESPACE@12486..12487 " "7544                    EXPR_APPLY@12487..125877545                      EXPR_INDEX@12487..124957546                        EXPR_VAR@12487..124907547                          NAME@12487..124907548                            IDENT@12487..12490 "std"7549                        DOT@12490..12491 "."7550                        NAME@12491..124957551                          IDENT@12491..12495 "join"7552                      ARGS_DESC@12495..125877553                        L_PAREN@12495..12496 "("7554                        WHITESPACE@12496..12505 "\n        "7555                        ARG@12505..125147556                          EXPR_STRING@12505..125147557                            STRING_SINGLE@12505..12514 "'\\n---\\n'"7558                        COMMA@12514..12515 ","7559                        WHITESPACE@12515..12516 " "7560                        ARG@12516..125797561                          EXPR_ARRAY_COMP@12516..125797562                            L_BRACK@12516..12517 "["7563                            EXPR_APPLY@12517..125637564                              EXPR_INDEX@12517..125367565                                EXPR_VAR@12517..125207566                                  NAME@12517..125207567                                    IDENT@12517..12520 "std"7568                                DOT@12520..12521 "."7569                                NAME@12521..125367570                                  IDENT@12521..12536 "manifestYamlDoc"7571                              ARGS_DESC@12536..125637572                                L_PAREN@12536..12537 "("7573                                ARG@12537..125387574                                  EXPR_VAR@12537..125387575                                    NAME@12537..125387576                                      IDENT@12537..12538 "e"7577                                COMMA@12538..12539 ","7578                                WHITESPACE@12539..12540 " "7579                                ARG@12540..125627580                                  EXPR_VAR@12540..125627581                                    NAME@12540..125627582                                      IDENT@12540..12562 "indent_array_in_object"7583                                R_PAREN@12562..12563 ")"7584                            WHITESPACE@12563..12564 " "7585                            FOR_SPEC@12564..125787586                              FOR_KW@12564..12567 "for"7587                              WHITESPACE@12567..12568 " "7588                              NAME@12568..125697589                                IDENT@12568..12569 "e"7590                              WHITESPACE@12569..12570 " "7591                              IN_KW@12570..12572 "in"7592                              WHITESPACE@12572..12573 " "7593                              EXPR_VAR@12573..125787594                                NAME@12573..125787595                                  IDENT@12573..12578 "value"7596                            R_BRACK@12578..12579 "]"7597                        WHITESPACE@12579..12586 "\n      "7598                        R_PAREN@12586..12587 ")"7599                WHITESPACE@12587..12588 " "7600                PLUS@12588..12589 "+"7601                WHITESPACE@12589..12590 " "7602                EXPR_IF_THEN_ELSE@12590..126327603                  IF_KW@12590..12592 "if"7604                  WHITESPACE@12592..12593 " "7605                  EXPR_VAR@12593..126077606                    NAME@12593..126077607                      IDENT@12593..12607 "c_document_end"7608                  WHITESPACE@12607..12608 " "7609                  THEN_KW@12608..12612 "then"7610                  WHITESPACE@12612..12613 " "7611                  TRUE_EXPR@12613..126227612                    EXPR_STRING@12613..126227613                      STRING_SINGLE@12613..12622 "'\\n...\\n'"7614                  WHITESPACE@12622..12623 " "7615                  ELSE_KW@12623..12627 "else"7616                  WHITESPACE@12627..12628 " "7617                  FALSE_EXPR@12628..126327618                    EXPR_STRING@12628..126327619                      STRING_SINGLE@12628..12632 "'\\n'"7620      COMMA@12632..12633 ","7621      WHITESPACE@12633..12638 "\n\n\n  "7622      MEMBER_FIELD@12638..132947623        FIELD_METHOD@12638..132947624          FIELD_NAME_FIXED@12638..126527625            NAME@12638..126527626              IDENT@12638..12652 "manifestPython"7627          PARAMS_DESC@12652..126557628            L_PAREN@12652..12653 "("7629            PARAM@12653..126547630              DESTRUCT_FULL@12653..126547631                NAME@12653..126547632                  IDENT@12653..12654 "v"7633            R_PAREN@12654..12655 ")"7634          COLONCOLON@12655..12657 "::"7635          WHITESPACE@12657..12662 "\n    "7636          EXPR_IF_THEN_ELSE@12662..132947637            IF_KW@12662..12664 "if"7638            WHITESPACE@12664..12665 " "7639            EXPR_APPLY@12665..126807640              EXPR_INDEX@12665..126777641                EXPR_VAR@12665..126687642                  NAME@12665..126687643                    IDENT@12665..12668 "std"7644                DOT@12668..12669 "."7645                NAME@12669..126777646                  IDENT@12669..12677 "isObject"7647              ARGS_DESC@12677..126807648                L_PAREN@12677..12678 "("7649                ARG@12678..126797650                  EXPR_VAR@12678..126797651                    NAME@12678..126797652                      IDENT@12678..12679 "v"7653                R_PAREN@12679..12680 ")"7654            WHITESPACE@12680..12681 " "7655            THEN_KW@12681..12685 "then"7656            WHITESPACE@12685..12692 "\n      "7657            TRUE_EXPR@12692..128677658              EXPR_LOCAL@12692..128677659                LOCAL_KW@12692..12697 "local"7660                WHITESPACE@12697..12698 " "7661                BIND_DESTRUCT@12698..128267662                  DESTRUCT_FULL@12698..127047663                    NAME@12698..127047664                      IDENT@12698..12704 "fields"7665                  WHITESPACE@12704..12705 " "7666                  ASSIGN@12705..12706 "="7667                  WHITESPACE@12706..12707 " "7668                  EXPR_ARRAY_COMP@12707..128267669                    L_BRACK@12707..12708 "["7670                    WHITESPACE@12708..12717 "\n        "7671                    EXPR_BINARY@12717..127817672                      LHS_EXPR@12717..127257673                        EXPR_STRING@12717..127257674                          STRING_SINGLE@12717..12725 "'%s: %s'"7675                      WHITESPACE@12725..12726 " "7676                      MODULO@12726..12727 "%"7677                      WHITESPACE@12727..12728 " "7678                      EXPR_ARRAY@12728..127817679                        L_BRACK@12728..12729 "["7680                        EXPR_APPLY@12729..127547681                          EXPR_INDEX@12729..127517682                            EXPR_VAR@12729..127327683                              NAME@12729..127327684                                IDENT@12729..12732 "std"7685                            DOT@12732..12733 "."7686                            NAME@12733..127517687                              IDENT@12733..12751 "escapeStringPython"7688                          ARGS_DESC@12751..127547689                            L_PAREN@12751..12752 "("7690                            ARG@12752..127537691                              EXPR_VAR@12752..127537692                                NAME@12752..127537693                                  IDENT@12752..12753 "k"7694                            R_PAREN@12753..12754 ")"7695                        COMMA@12754..12755 ","7696                        WHITESPACE@12755..12756 " "7697                        EXPR_APPLY@12756..127807698                          EXPR_INDEX@12756..127747699                            EXPR_VAR@12756..127597700                              NAME@12756..127597701                                IDENT@12756..12759 "std"7702                            DOT@12759..12760 "."7703                            NAME@12760..127747704                              IDENT@12760..12774 "manifestPython"7705                          ARGS_DESC@12774..127807706                            L_PAREN@12774..12775 "("7707                            ARG@12775..127797708                              EXPR_INDEX_EXPR@12775..127797709                                LHS_EXPR@12775..127767710                                  EXPR_VAR@12775..127767711                                    NAME@12775..127767712                                      IDENT@12775..12776 "v"7713                                L_BRACK@12776..12777 "["7714                                EXPR_VAR@12777..127787715                                  NAME@12777..127787716                                    IDENT@12777..12778 "k"7717                                R_BRACK@12778..12779 "]"7718                            R_PAREN@12779..12780 ")"7719                        R_BRACK@12780..12781 "]"7720                    WHITESPACE@12781..12790 "\n        "7721                    FOR_SPEC@12790..128187722                      FOR_KW@12790..12793 "for"7723                      WHITESPACE@12793..12794 " "7724                      NAME@12794..127957725                        IDENT@12794..12795 "k"7726                      WHITESPACE@12795..12796 " "7727                      IN_KW@12796..12798 "in"7728                      WHITESPACE@12798..12799 " "7729                      EXPR_APPLY@12799..128187730                        EXPR_INDEX@12799..128157731                          EXPR_VAR@12799..128027732                            NAME@12799..128027733                              IDENT@12799..12802 "std"7734                          DOT@12802..12803 "."7735                          NAME@12803..128157736                            IDENT@12803..12815 "objectFields"7737                        ARGS_DESC@12815..128187738                          L_PAREN@12815..12816 "("7739                          ARG@12816..128177740                            EXPR_VAR@12816..128177741                              NAME@12816..128177742                                IDENT@12816..12817 "v"7743                          R_PAREN@12817..12818 ")"7744                    WHITESPACE@12818..12825 "\n      "7745                    R_BRACK@12825..12826 "]"7746                SEMI@12826..12827 ";"7747                WHITESPACE@12827..12834 "\n      "7748                EXPR_BINARY@12834..128677749                  LHS_EXPR@12834..128407750                    EXPR_STRING@12834..128407751                      STRING_SINGLE@12834..12840 "'{%s}'"7752                  WHITESPACE@12840..12841 " "7753                  MODULO@12841..12842 "%"7754                  WHITESPACE@12842..12843 " "7755                  EXPR_ARRAY@12843..128677756                    L_BRACK@12843..12844 "["7757                    EXPR_APPLY@12844..128667758                      EXPR_INDEX@12844..128527759                        EXPR_VAR@12844..128477760                          NAME@12844..128477761                            IDENT@12844..12847 "std"7762                        DOT@12847..12848 "."7763                        NAME@12848..128527764                          IDENT@12848..12852 "join"7765                      ARGS_DESC@12852..128667766                        L_PAREN@12852..12853 "("7767                        ARG@12853..128577768                          EXPR_STRING@12853..128577769                            STRING_SINGLE@12853..12857 "', '"7770                        COMMA@12857..12858 ","7771                        WHITESPACE@12858..12859 " "7772                        ARG@12859..128657773                          EXPR_VAR@12859..128657774                            NAME@12859..128657775                              IDENT@12859..12865 "fields"7776                        R_PAREN@12865..12866 ")"7777                    R_BRACK@12866..12867 "]"7778            WHITESPACE@12867..12872 "\n    "7779            ELSE_KW@12872..12876 "else"7780            WHITESPACE@12876..12877 " "7781            FALSE_EXPR@12877..132947782              EXPR_IF_THEN_ELSE@12877..132947783                IF_KW@12877..12879 "if"7784                WHITESPACE@12879..12880 " "7785                EXPR_APPLY@12880..128947786                  EXPR_INDEX@12880..128917787                    EXPR_VAR@12880..128837788                      NAME@12880..128837789                        IDENT@12880..12883 "std"7790                    DOT@12883..12884 "."7791                    NAME@12884..128917792                      IDENT@12884..12891 "isArray"7793                  ARGS_DESC@12891..128947794                    L_PAREN@12891..12892 "("7795                    ARG@12892..128937796                      EXPR_VAR@12892..128937797                        NAME@12892..128937798                          IDENT@12892..12893 "v"7799                    R_PAREN@12893..12894 ")"7800                WHITESPACE@12894..12895 " "7801                THEN_KW@12895..12899 "then"7802                WHITESPACE@12899..12906 "\n      "7803                TRUE_EXPR@12906..129697804                  EXPR_BINARY@12906..129697805                    LHS_EXPR@12906..129127806                      EXPR_STRING@12906..129127807                        STRING_SINGLE@12906..12912 "'[%s]'"7808                    WHITESPACE@12912..12913 " "7809                    MODULO@12913..12914 "%"7810                    WHITESPACE@12914..12915 " "7811                    EXPR_ARRAY@12915..129697812                      L_BRACK@12915..12916 "["7813                      EXPR_APPLY@12916..129687814                        EXPR_INDEX@12916..129247815                          EXPR_VAR@12916..129197816                            NAME@12916..129197817                              IDENT@12916..12919 "std"7818                          DOT@12919..12920 "."7819                          NAME@12920..129247820                            IDENT@12920..12924 "join"7821                        ARGS_DESC@12924..129687822                          L_PAREN@12924..12925 "("7823                          ARG@12925..129297824                            EXPR_STRING@12925..129297825                              STRING_SINGLE@12925..12929 "', '"7826                          COMMA@12929..12930 ","7827                          WHITESPACE@12930..12931 " "7828                          ARG@12931..129677829                            EXPR_ARRAY_COMP@12931..129677830                              L_BRACK@12931..12932 "["7831                              EXPR_APPLY@12932..129547832                                EXPR_INDEX@12932..129507833                                  EXPR_VAR@12932..129357834                                    NAME@12932..129357835                                      IDENT@12932..12935 "std"7836                                  DOT@12935..12936 "."7837                                  NAME@12936..129507838                                    IDENT@12936..12950 "manifestPython"7839                                ARGS_DESC@12950..129547840                                  L_PAREN@12950..12951 "("7841                                  ARG@12951..129537842                                    EXPR_VAR@12951..129537843                                      NAME@12951..129537844                                        IDENT@12951..12953 "v2"7845                                  R_PAREN@12953..12954 ")"7846                              WHITESPACE@12954..12955 " "7847                              FOR_SPEC@12955..129667848                                FOR_KW@12955..12958 "for"7849                                WHITESPACE@12958..12959 " "7850                                NAME@12959..129617851                                  IDENT@12959..12961 "v2"7852                                WHITESPACE@12961..12962 " "7853                                IN_KW@12962..12964 "in"7854                                WHITESPACE@12964..12965 " "7855                                EXPR_VAR@12965..129667856                                  NAME@12965..129667857                                    IDENT@12965..12966 "v"7858                              R_BRACK@12966..12967 "]"7859                          R_PAREN@12967..12968 ")"7860                      R_BRACK@12968..12969 "]"7861                WHITESPACE@12969..12974 "\n    "7862                ELSE_KW@12974..12978 "else"7863                WHITESPACE@12978..12979 " "7864                FALSE_EXPR@12979..132947865                  EXPR_IF_THEN_ELSE@12979..132947866                    IF_KW@12979..12981 "if"7867                    WHITESPACE@12981..12982 " "7868                    EXPR_APPLY@12982..129977869                      EXPR_INDEX@12982..129947870                        EXPR_VAR@12982..129857871                          NAME@12982..129857872                            IDENT@12982..12985 "std"7873                        DOT@12985..12986 "."7874                        NAME@12986..129947875                          IDENT@12986..12994 "isString"7876                      ARGS_DESC@12994..129977877                        L_PAREN@12994..12995 "("7878                        ARG@12995..129967879                          EXPR_VAR@12995..129967880                            NAME@12995..129967881                              IDENT@12995..12996 "v"7882                        R_PAREN@12996..12997 ")"7883                    WHITESPACE@12997..12998 " "7884                    THEN_KW@12998..13002 "then"7885                    WHITESPACE@13002..13009 "\n      "7886                    TRUE_EXPR@13009..130437887                      EXPR_BINARY@13009..130437888                        LHS_EXPR@13009..130137889                          EXPR_STRING@13009..130137890                            STRING_SINGLE@13009..13013 "'%s'"7891                        WHITESPACE@13013..13014 " "7892                        MODULO@13014..13015 "%"7893                        WHITESPACE@13015..13016 " "7894                        EXPR_ARRAY@13016..130437895                          L_BRACK@13016..13017 "["7896                          EXPR_APPLY@13017..130427897                            EXPR_INDEX@13017..130397898                              EXPR_VAR@13017..130207899                                NAME@13017..130207900                                  IDENT@13017..13020 "std"7901                              DOT@13020..13021 "."7902                              NAME@13021..130397903                                IDENT@13021..13039 "escapeStringPython"7904                            ARGS_DESC@13039..130427905                              L_PAREN@13039..13040 "("7906                              ARG@13040..130417907                                EXPR_VAR@13040..130417908                                  NAME@13040..130417909                                    IDENT@13040..13041 "v"7910                              R_PAREN@13041..13042 ")"7911                          R_BRACK@13042..13043 "]"7912                    WHITESPACE@13043..13048 "\n    "7913                    ELSE_KW@13048..13052 "else"7914                    WHITESPACE@13052..13053 " "7915                    FALSE_EXPR@13053..132947916                      EXPR_IF_THEN_ELSE@13053..132947917                        IF_KW@13053..13055 "if"7918                        WHITESPACE@13055..13056 " "7919                        EXPR_APPLY@13056..130737920                          EXPR_INDEX@13056..130707921                            EXPR_VAR@13056..130597922                              NAME@13056..130597923                                IDENT@13056..13059 "std"7924                            DOT@13059..13060 "."7925                            NAME@13060..130707926                              IDENT@13060..13070 "isFunction"7927                          ARGS_DESC@13070..130737928                            L_PAREN@13070..13071 "("7929                            ARG@13071..130727930                              EXPR_VAR@13071..130727931                                NAME@13071..130727932                                  IDENT@13071..13072 "v"7933                            R_PAREN@13072..13073 ")"7934                        WHITESPACE@13073..13074 " "7935                        THEN_KW@13074..13078 "then"7936                        WHITESPACE@13078..13085 "\n      "7937                        TRUE_EXPR@13085..131177938                          EXPR_ERROR@13085..131177939                            ERROR_KW@13085..13090 "error"7940                            WHITESPACE@13090..13091 " "7941                            EXPR_STRING@13091..131177942                              STRING_SINGLE@13091..13117 "'cannot manifest func ..."7943                        WHITESPACE@13117..13122 "\n    "7944                        ELSE_KW@13122..13126 "else"7945                        WHITESPACE@13126..13127 " "7946                        FALSE_EXPR@13127..132947947                          EXPR_IF_THEN_ELSE@13127..132947948                            IF_KW@13127..13129 "if"7949                            WHITESPACE@13129..13130 " "7950                            EXPR_APPLY@13130..131457951                              EXPR_INDEX@13130..131427952                                EXPR_VAR@13130..131337953                                  NAME@13130..131337954                                    IDENT@13130..13133 "std"7955                                DOT@13133..13134 "."7956                                NAME@13134..131427957                                  IDENT@13134..13142 "isNumber"7958                              ARGS_DESC@13142..131457959                                L_PAREN@13142..13143 "("7960                                ARG@13143..131447961                                  EXPR_VAR@13143..131447962                                    NAME@13143..131447963                                      IDENT@13143..13144 "v"7964                                R_PAREN@13144..13145 ")"7965                            WHITESPACE@13145..13146 " "7966                            THEN_KW@13146..13150 "then"7967                            WHITESPACE@13150..13157 "\n      "7968                            TRUE_EXPR@13157..131727969                              EXPR_APPLY@13157..131727970                                EXPR_INDEX@13157..131697971                                  EXPR_VAR@13157..131607972                                    NAME@13157..131607973                                      IDENT@13157..13160 "std"7974                                  DOT@13160..13161 "."7975                                  NAME@13161..131697976                                    IDENT@13161..13169 "toString"7977                                ARGS_DESC@13169..131727978                                  L_PAREN@13169..13170 "("7979                                  ARG@13170..131717980                                    EXPR_VAR@13170..131717981                                      NAME@13170..131717982                                        IDENT@13170..13171 "v"7983                                  R_PAREN@13171..13172 ")"7984                            WHITESPACE@13172..13177 "\n    "7985                            ELSE_KW@13177..13181 "else"7986                            WHITESPACE@13181..13182 " "7987                            FALSE_EXPR@13182..132947988                              EXPR_IF_THEN_ELSE@13182..132947989                                IF_KW@13182..13184 "if"7990                                WHITESPACE@13184..13185 " "7991                                EXPR_BINARY@13185..131947992                                  LHS_EXPR@13185..131867993                                    EXPR_VAR@13185..131867994                                      NAME@13185..131867995                                        IDENT@13185..13186 "v"7996                                  WHITESPACE@13186..13187 " "7997                                  EQ@13187..13189 "=="7998                                  WHITESPACE@13189..13190 " "7999                                  EXPR_LITERAL@13190..131948000                                    TRUE_KW@13190..13194 "true"8001                                WHITESPACE@13194..13195 " "8002                                THEN_KW@13195..13199 "then"8003                                WHITESPACE@13199..13206 "\n      "8004                                TRUE_EXPR@13206..132128005                                  EXPR_STRING@13206..132128006                                    STRING_SINGLE@13206..13212 "'True'"8007                                WHITESPACE@13212..13217 "\n    "8008                                ELSE_KW@13217..13221 "else"8009                                WHITESPACE@13221..13222 " "8010                                FALSE_EXPR@13222..132948011                                  EXPR_IF_THEN_ELSE@13222..132948012                                    IF_KW@13222..13224 "if"8013                                    WHITESPACE@13224..13225 " "8014                                    EXPR_BINARY@13225..132358015                                      LHS_EXPR@13225..132268016                                        EXPR_VAR@13225..132268017                                          NAME@13225..132268018                                            IDENT@13225..13226 "v"8019                                      WHITESPACE@13226..13227 " "8020                                      EQ@13227..13229 "=="8021                                      WHITESPACE@13229..13230 " "8022                                      EXPR_LITERAL@13230..132358023                                        FALSE_KW@13230..13235 "false"8024                                    WHITESPACE@13235..13236 " "8025                                    THEN_KW@13236..13240 "then"8026                                    WHITESPACE@13240..13247 "\n      "8027                                    TRUE_EXPR@13247..132548028                                      EXPR_STRING@13247..132548029                                        STRING_SINGLE@13247..13254 "'False'"8030                                    WHITESPACE@13254..13259 "\n    "8031                                    ELSE_KW@13259..13263 "else"8032                                    WHITESPACE@13263..13264 " "8033                                    FALSE_EXPR@13264..132948034                                      EXPR_IF_THEN_ELSE@13264..132948035                                        IF_KW@13264..13266 "if"8036                                        WHITESPACE@13266..13267 " "8037                                        EXPR_BINARY@13267..132768038                                          LHS_EXPR@13267..132688039                                            EXPR_VAR@13267..132688040                                              NAME@13267..132688041                                                IDENT@13267..13268 "v"8042                                          WHITESPACE@13268..13269 " "8043                                          EQ@13269..13271 "=="8044                                          WHITESPACE@13271..13272 " "8045                                          EXPR_LITERAL@13272..132768046                                            NULL_KW@13272..13276 "null"8047                                        WHITESPACE@13276..13277 " "8048                                        THEN_KW@13277..13281 "then"8049                                        WHITESPACE@13281..13288 "\n      "8050                                        TRUE_EXPR@13288..132948051                                          EXPR_STRING@13288..132948052                                            STRING_SINGLE@13288..13294 "'None'"8053      COMMA@13294..13295 ","8054      WHITESPACE@13295..13299 "\n\n  "8055      MEMBER_FIELD@13299..134548056        FIELD_METHOD@13299..134548057          FIELD_NAME_FIXED@13299..133178058            NAME@13299..133178059              IDENT@13299..13317 "manifestPythonVars"8060          PARAMS_DESC@13317..133238061            L_PAREN@13317..13318 "("8062            PARAM@13318..133228063              DESTRUCT_FULL@13318..133228064                NAME@13318..133228065                  IDENT@13318..13322 "conf"8066            R_PAREN@13322..13323 ")"8067          COLONCOLON@13323..13325 "::"8068          WHITESPACE@13325..13330 "\n    "8069          EXPR_LOCAL@13330..134548070            LOCAL_KW@13330..13335 "local"8071            WHITESPACE@13335..13336 " "8072            BIND_DESTRUCT@13336..134218073              DESTRUCT_FULL@13336..133408074                NAME@13336..133408075                  IDENT@13336..13340 "vars"8076              WHITESPACE@13340..13341 " "8077              ASSIGN@13341..13342 "="8078              WHITESPACE@13342..13343 " "8079              EXPR_ARRAY_COMP@13343..134218080                L_BRACK@13343..13344 "["8081                EXPR_BINARY@13344..133888082                  LHS_EXPR@13344..133538083                    EXPR_STRING@13344..133538084                      STRING_SINGLE@13344..13353 "'%s = %s'"8085                  WHITESPACE@13353..13354 " "8086                  MODULO@13354..13355 "%"8087                  WHITESPACE@13355..13356 " "8088                  EXPR_ARRAY@13356..133888089                    L_BRACK@13356..13357 "["8090                    EXPR_VAR@13357..133588091                      NAME@13357..133588092                        IDENT@13357..13358 "k"8093                    COMMA@13358..13359 ","8094                    WHITESPACE@13359..13360 " "8095                    EXPR_APPLY@13360..133878096                      EXPR_INDEX@13360..133788097                        EXPR_VAR@13360..133638098                          NAME@13360..133638099                            IDENT@13360..13363 "std"8100                        DOT@13363..13364 "."8101                        NAME@13364..133788102                          IDENT@13364..13378 "manifestPython"8103                      ARGS_DESC@13378..133878104                        L_PAREN@13378..13379 "("8105                        ARG@13379..133868106                          EXPR_INDEX_EXPR@13379..133868107                            LHS_EXPR@13379..133838108                              EXPR_VAR@13379..133838109                                NAME@13379..133838110                                  IDENT@13379..13383 "conf"8111                            L_BRACK@13383..13384 "["8112                            EXPR_VAR@13384..133858113                              NAME@13384..133858114                                IDENT@13384..13385 "k"8115                            R_BRACK@13385..13386 "]"8116                        R_PAREN@13386..13387 ")"8117                    R_BRACK@13387..13388 "]"8118                WHITESPACE@13388..13389 " "8119                FOR_SPEC@13389..134208120                  FOR_KW@13389..13392 "for"8121                  WHITESPACE@13392..13393 " "8122                  NAME@13393..133948123                    IDENT@13393..13394 "k"8124                  WHITESPACE@13394..13395 " "8125                  IN_KW@13395..13397 "in"8126                  WHITESPACE@13397..13398 " "8127                  EXPR_APPLY@13398..134208128                    EXPR_INDEX@13398..134148129                      EXPR_VAR@13398..134018130                        NAME@13398..134018131                          IDENT@13398..13401 "std"8132                      DOT@13401..13402 "."8133                      NAME@13402..134148134                        IDENT@13402..13414 "objectFields"8135                    ARGS_DESC@13414..134208136                      L_PAREN@13414..13415 "("8137                      ARG@13415..134198138                        EXPR_VAR@13415..134198139                          NAME@13415..134198140                            IDENT@13415..13419 "conf"8141                      R_PAREN@13419..13420 ")"8142                R_BRACK@13420..13421 "]"8143            SEMI@13421..13422 ";"8144            WHITESPACE@13422..13427 "\n    "8145            EXPR_APPLY@13427..134548146              EXPR_INDEX@13427..134358147                EXPR_VAR@13427..134308148                  NAME@13427..134308149                    IDENT@13427..13430 "std"8150                DOT@13430..13431 "."8151                NAME@13431..134358152                  IDENT@13431..13435 "join"8153              ARGS_DESC@13435..134548154                L_PAREN@13435..13436 "("8155                ARG@13436..134408156                  EXPR_STRING@13436..134408157                    STRING_SINGLE@13436..13440 "'\\n'"8158                COMMA@13440..13441 ","8159                WHITESPACE@13441..13442 " "8160                ARG@13442..134538161                  EXPR_BINARY@13442..134538162                    LHS_EXPR@13442..134468163                      EXPR_VAR@13442..134468164                        NAME@13442..134468165                          IDENT@13442..13446 "vars"8166                    WHITESPACE@13446..13447 " "8167                    PLUS@13447..13448 "+"8168                    WHITESPACE@13448..13449 " "8169                    EXPR_ARRAY@13449..134538170                      L_BRACK@13449..13450 "["8171                      EXPR_STRING@13450..134528172                        STRING_SINGLE@13450..13452 "''"8173                      R_BRACK@13452..13453 "]"8174                R_PAREN@13453..13454 ")"8175      COMMA@13454..13455 ","8176      WHITESPACE@13455..13459 "\n\n  "8177      MEMBER_FIELD@13459..141268178        FIELD_METHOD@13459..141268179          FIELD_NAME_FIXED@13459..134768180            NAME@13459..134768181              IDENT@13459..13476 "manifestXmlJsonml"8182          PARAMS_DESC@13476..134838183            L_PAREN@13476..13477 "("8184            PARAM@13477..134828185              DESTRUCT_FULL@13477..134828186                NAME@13477..134828187                  IDENT@13477..13482 "value"8188            R_PAREN@13482..13483 ")"8189          COLONCOLON@13483..13485 "::"8190          WHITESPACE@13485..13490 "\n    "8191          EXPR_IF_THEN_ELSE@13490..141268192            IF_KW@13490..13492 "if"8193            WHITESPACE@13492..13493 " "8194            EXPR_UNARY@13493..135128195              NOT@13493..13494 "!"8196              EXPR_APPLY@13494..135128197                EXPR_INDEX@13494..135058198                  EXPR_VAR@13494..134978199                    NAME@13494..134978200                      IDENT@13494..13497 "std"8201                  DOT@13497..13498 "."8202                  NAME@13498..135058203                    IDENT@13498..13505 "isArray"8204                ARGS_DESC@13505..135128205                  L_PAREN@13505..13506 "("8206                  ARG@13506..135118207                    EXPR_VAR@13506..135118208                      NAME@13506..135118209                        IDENT@13506..13511 "value"8210                  R_PAREN@13511..13512 ")"8211            WHITESPACE@13512..13513 " "8212            THEN_KW@13513..13517 "then"8213            WHITESPACE@13517..13524 "\n      "8214            TRUE_EXPR@13524..135928215              EXPR_ERROR@13524..135928216                ERROR_KW@13524..13529 "error"8217                WHITESPACE@13529..13530 " "8218                EXPR_BINARY@13530..135928219                  LHS_EXPR@13530..135748220                    EXPR_STRING@13530..135748221                      STRING_SINGLE@13530..13574 "'Expected a JSONML va ..."8222                  WHITESPACE@13574..13575 " "8223                  MODULO@13575..13576 "%"8224                  WHITESPACE@13576..13577 " "8225                  EXPR_APPLY@13577..135928226                    EXPR_INDEX@13577..135858227                      EXPR_VAR@13577..135808228                        NAME@13577..135808229                          IDENT@13577..13580 "std"8230                      DOT@13580..13581 "."8231                      NAME@13581..135858232                        IDENT@13581..13585 "type"8233                    ARGS_DESC@13585..135928234                      L_PAREN@13585..13586 "("8235                      ARG@13586..135918236                        EXPR_VAR@13586..135918237                          NAME@13586..135918238                            IDENT@13586..13591 "value"8239                      R_PAREN@13591..13592 ")"8240            WHITESPACE@13592..13597 "\n    "8241            ELSE_KW@13597..13601 "else"8242            WHITESPACE@13601..13608 "\n      "8243            FALSE_EXPR@13608..141268244              EXPR_LOCAL@13608..141268245                LOCAL_KW@13608..13613 "local"8246                WHITESPACE@13613..13614 " "8247                BIND_FUNCTION@13614..141078248                  NAME@13614..136178249                    IDENT@13614..13617 "aux"8250                  PARAMS_DESC@13617..136208251                    L_PAREN@13617..13618 "("8252                    PARAM@13618..136198253                      DESTRUCT_FULL@13618..136198254                        NAME@13618..136198255                          IDENT@13618..13619 "v"8256                    R_PAREN@13619..13620 ")"8257                  WHITESPACE@13620..13621 " "8258                  ASSIGN@13621..13622 "="8259                  WHITESPACE@13622..13631 "\n        "8260                  EXPR_IF_THEN_ELSE@13631..141078261                    IF_KW@13631..13633 "if"8262                    WHITESPACE@13633..13634 " "8263                    EXPR_APPLY@13634..136498264                      EXPR_INDEX@13634..136468265                        EXPR_VAR@13634..136378266                          NAME@13634..136378267                            IDENT@13634..13637 "std"8268                        DOT@13637..13638 "."8269                        NAME@13638..136468270                          IDENT@13638..13646 "isString"8271                      ARGS_DESC@13646..136498272                        L_PAREN@13646..13647 "("8273                        ARG@13647..136488274                          EXPR_VAR@13647..136488275                            NAME@13647..136488276                              IDENT@13647..13648 "v"8277                        R_PAREN@13648..13649 ")"8278                    WHITESPACE@13649..13650 " "8279                    THEN_KW@13650..13654 "then"8280                    WHITESPACE@13654..13665 "\n          "8281                    TRUE_EXPR@13665..136668282                      EXPR_VAR@13665..136668283                        NAME@13665..136668284                          IDENT@13665..13666 "v"8285                    WHITESPACE@13666..13675 "\n        "8286                    ELSE_KW@13675..13679 "else"8287                    WHITESPACE@13679..13690 "\n          "8288                    FALSE_EXPR@13690..141078289                      EXPR_LOCAL@13690..141078290                        LOCAL_KW@13690..13695 "local"8291                        WHITESPACE@13695..13696 " "8292                        BIND_DESTRUCT@13696..137068293                          DESTRUCT_FULL@13696..136998294                            NAME@13696..136998295                              IDENT@13696..13699 "tag"8296                          WHITESPACE@13699..13700 " "8297                          ASSIGN@13700..13701 "="8298                          WHITESPACE@13701..13702 " "8299                          EXPR_INDEX_EXPR@13702..137068300                            LHS_EXPR@13702..137038301                              EXPR_VAR@13702..137038302                                NAME@13702..137038303                                  IDENT@13702..13703 "v"8304                            L_BRACK@13703..13704 "["8305                            EXPR_NUMBER@13704..137058306                              FLOAT@13704..13705 "0"8307                            R_BRACK@13705..13706 "]"8308                        SEMI@13706..13707 ";"8309                        WHITESPACE@13707..13718 "\n          "8310                        EXPR_LOCAL@13718..141078311                          LOCAL_KW@13718..13723 "local"8312                          WHITESPACE@13723..13724 " "8313                          BIND_DESTRUCT@13724..137758314                            DESTRUCT_FULL@13724..137338315                              NAME@13724..137338316                                IDENT@13724..13733 "has_attrs"8317                            WHITESPACE@13733..13734 " "8318                            ASSIGN@13734..13735 "="8319                            WHITESPACE@13735..13736 " "8320                            EXPR_BINARY@13736..137758321                              LHS_EXPR@13736..137538322                                EXPR_BINARY@13736..137538323                                  LHS_EXPR@13736..137498324                                    EXPR_APPLY@13736..137498325                                      EXPR_INDEX@13736..137468326                                        EXPR_VAR@13736..137398327                                          NAME@13736..137398328                                            IDENT@13736..13739 "std"8329                                        DOT@13739..13740 "."8330                                        NAME@13740..137468331                                          IDENT@13740..13746 "length"8332                                      ARGS_DESC@13746..137498333                                        L_PAREN@13746..13747 "("8334                                        ARG@13747..137488335                                          EXPR_VAR@13747..137488336                                            NAME@13747..137488337                                              IDENT@13747..13748 "v"8338                                        R_PAREN@13748..13749 ")"8339                                  WHITESPACE@13749..13750 " "8340                                  GT@13750..13751 ">"8341                                  WHITESPACE@13751..13752 " "8342                                  EXPR_NUMBER@13752..137538343                                    FLOAT@13752..13753 "1"8344                              WHITESPACE@13753..13754 " "8345                              AND@13754..13756 "&&"8346                              WHITESPACE@13756..13757 " "8347                              EXPR_APPLY@13757..137758348                                EXPR_INDEX@13757..137698349                                  EXPR_VAR@13757..137608350                                    NAME@13757..137608351                                      IDENT@13757..13760 "std"8352                                  DOT@13760..13761 "."8353                                  NAME@13761..137698354                                    IDENT@13761..13769 "isObject"8355                                ARGS_DESC@13769..137758356                                  L_PAREN@13769..13770 "("8357                                  ARG@13770..137748358                                    EXPR_INDEX_EXPR@13770..137748359                                      LHS_EXPR@13770..137718360                                        EXPR_VAR@13770..137718361                                          NAME@13770..137718362                                            IDENT@13770..13771 "v"8363                                      L_BRACK@13771..13772 "["8364                                      EXPR_NUMBER@13772..137738365                                        FLOAT@13772..13773 "1"8366                                      R_BRACK@13773..13774 "]"8367                                  R_PAREN@13774..13775 ")"8368                          SEMI@13775..13776 ";"8369                          WHITESPACE@13776..13787 "\n          "8370                          EXPR_LOCAL@13787..141078371                            LOCAL_KW@13787..13792 "local"8372                            WHITESPACE@13792..13793 " "8373                            BIND_DESTRUCT@13793..138318374                              DESTRUCT_FULL@13793..137988375                                NAME@13793..137988376                                  IDENT@13793..13798 "attrs"8377                              WHITESPACE@13798..13799 " "8378                              ASSIGN@13799..13800 "="8379                              WHITESPACE@13800..13801 " "8380                              EXPR_IF_THEN_ELSE@13801..138318381                                IF_KW@13801..13803 "if"8382                                WHITESPACE@13803..13804 " "8383                                EXPR_VAR@13804..138138384                                  NAME@13804..138138385                                    IDENT@13804..13813 "has_attrs"8386                                WHITESPACE@13813..13814 " "8387                                THEN_KW@13814..13818 "then"8388                                WHITESPACE@13818..13819 " "8389                                TRUE_EXPR@13819..138238390                                  EXPR_INDEX_EXPR@13819..138238391                                    LHS_EXPR@13819..138208392                                      EXPR_VAR@13819..138208393                                        NAME@13819..138208394                                          IDENT@13819..13820 "v"8395                                    L_BRACK@13820..13821 "["8396                                    EXPR_NUMBER@13821..138228397                                      FLOAT@13821..13822 "1"8398                                    R_BRACK@13822..13823 "]"8399                                WHITESPACE@13823..13824 " "8400                                ELSE_KW@13824..13828 "else"8401                                WHITESPACE@13828..13829 " "8402                                FALSE_EXPR@13829..138318403                                  EXPR_OBJECT@13829..138318404                                    OBJ_BODY_MEMBER_LIST@13829..138318405                                      L_BRACE@13829..13830 "{"8406                                      R_BRACE@13830..13831 "}"8407                            SEMI@13831..13832 ";"8408                            WHITESPACE@13832..13843 "\n          "8409                            EXPR_LOCAL@13843..141078410                              LOCAL_KW@13843..13848 "local"8411                              WHITESPACE@13848..13849 " "8412                              BIND_DESTRUCT@13849..138948413                                DESTRUCT_FULL@13849..138578414                                  NAME@13849..138578415                                    IDENT@13849..13857 "children"8416                                WHITESPACE@13857..13858 " "8417                                ASSIGN@13858..13859 "="8418                                WHITESPACE@13859..13860 " "8419                                EXPR_IF_THEN_ELSE@13860..138948420                                  IF_KW@13860..13862 "if"8421                                  WHITESPACE@13862..13863 " "8422                                  EXPR_VAR@13863..138728423                                    NAME@13863..138728424                                      IDENT@13863..13872 "has_attrs"8425                                  WHITESPACE@13872..13873 " "8426                                  THEN_KW@13873..13877 "then"8427                                  WHITESPACE@13877..13878 " "8428                                  TRUE_EXPR@13878..138838429                                    EXPR_SLICE@13878..138838430                                      EXPR_VAR@13878..138798431                                        NAME@13878..138798432                                          IDENT@13878..13879 "v"8433                                      SLICE_DESC@13879..138838434                                        L_BRACK@13879..13880 "["8435                                        EXPR_NUMBER@13880..138818436                                          FLOAT@13880..13881 "2"8437                                        COLON@13881..13882 ":"8438                                        R_BRACK@13882..13883 "]"8439                                  WHITESPACE@13883..13884 " "8440                                  ELSE_KW@13884..13888 "else"8441                                  WHITESPACE@13888..13889 " "8442                                  FALSE_EXPR@13889..138948443                                    EXPR_SLICE@13889..138948444                                      EXPR_VAR@13889..138908445                                        NAME@13889..138908446                                          IDENT@13889..13890 "v"8447                                      SLICE_DESC@13890..138948448                                        L_BRACK@13890..13891 "["8449                                        EXPR_NUMBER@13891..138928450                                          FLOAT@13891..13892 "1"8451                                        COLON@13892..13893 ":"8452                                        R_BRACK@13893..13894 "]"8453                              SEMI@13894..13895 ";"8454                              WHITESPACE@13895..13906 "\n          "8455                              EXPR_LOCAL@13906..141078456                                LOCAL_KW@13906..13911 "local"8457                                WHITESPACE@13911..13912 " "8458                                BIND_DESTRUCT@13912..140118459                                  DESTRUCT_FULL@13912..139218460                                    NAME@13912..139218461                                      IDENT@13912..13921 "attrs_str"8462                                  WHITESPACE@13921..13922 " "8463                                  ASSIGN@13922..13923 "="8464                                  WHITESPACE@13923..13936 "\n            "8465                                  EXPR_APPLY@13936..140118466                                    EXPR_INDEX@13936..139448467                                      EXPR_VAR@13936..139398468                                        NAME@13936..139398469                                          IDENT@13936..13939 "std"8470                                      DOT@13939..13940 "."8471                                      NAME@13940..139448472                                        IDENT@13940..13944 "join"8473                                    ARGS_DESC@13944..140118474                                      L_PAREN@13944..13945 "("8475                                      ARG@13945..139478476                                        EXPR_STRING@13945..139478477                                          STRING_SINGLE@13945..13947 "''"8478                                      COMMA@13947..13948 ","8479                                      WHITESPACE@13948..13949 " "8480                                      ARG@13949..140108481                                        EXPR_ARRAY_COMP@13949..140108482                                          L_BRACK@13949..13950 "["8483                                          EXPR_BINARY@13950..139768484                                            LHS_EXPR@13950..139608485                                              EXPR_STRING@13950..139608486                                                STRING_SINGLE@13950..13960 "' %s=\"%s\"'"8487                                            WHITESPACE@13960..13961 " "8488                                            MODULO@13961..13962 "%"8489                                            WHITESPACE@13962..13963 " "8490                                            EXPR_ARRAY@13963..139768491                                              L_BRACK@13963..13964 "["8492                                              EXPR_VAR@13964..139658493                                                NAME@13964..139658494                                                  IDENT@13964..13965 "k"8495                                              COMMA@13965..13966 ","8496                                              WHITESPACE@13966..13967 " "8497                                              EXPR_INDEX_EXPR@13967..139758498                                                LHS_EXPR@13967..139728499                                                  EXPR_VAR@13967..139728500                                                    NAME@13967..139728501                                                      IDENT@13967..13972 "attrs"8502                                                L_BRACK@13972..13973 "["8503                                                EXPR_VAR@13973..139748504                                                  NAME@13973..139748505                                                    IDENT@13973..13974 "k"8506                                                R_BRACK@13974..13975 "]"8507                                              R_BRACK@13975..13976 "]"8508                                          WHITESPACE@13976..13977 " "8509                                          FOR_SPEC@13977..140098510                                            FOR_KW@13977..13980 "for"8511                                            WHITESPACE@13980..13981 " "8512                                            NAME@13981..139828513                                              IDENT@13981..13982 "k"8514                                            WHITESPACE@13982..13983 " "8515                                            IN_KW@13983..13985 "in"8516                                            WHITESPACE@13985..13986 " "8517                                            EXPR_APPLY@13986..140098518                                              EXPR_INDEX@13986..140028519                                                EXPR_VAR@13986..139898520                                                  NAME@13986..139898521                                                    IDENT@13986..13989 "std"8522                                                DOT@13989..13990 "."8523                                                NAME@13990..140028524                                                  IDENT@13990..14002 "objectFields"8525                                              ARGS_DESC@14002..140098526                                                L_PAREN@14002..14003 "("8527                                                ARG@14003..140088528                                                  EXPR_VAR@14003..140088529                                                    NAME@14003..140088530                                                      IDENT@14003..14008 "attrs"8531                                                R_PAREN@14008..14009 ")"8532                                          R_BRACK@14009..14010 "]"8533                                      R_PAREN@14010..14011 ")"8534                                SEMI@14011..14012 ";"8535                                WHITESPACE@14012..14023 "\n          "8536                                EXPR_APPLY@14023..141078537                                  EXPR_INDEX@14023..140358538                                    EXPR_VAR@14023..140268539                                      NAME@14023..140268540                                        IDENT@14023..14026 "std"8541                                    DOT@14026..14027 "."8542                                    NAME@14027..140358543                                      IDENT@14027..14035 "deepJoin"8544                                  ARGS_DESC@14035..141078545                                    L_PAREN@14035..14036 "("8546                                    ARG@14036..141068547                                      EXPR_ARRAY@14036..141068548                                        L_BRACK@14036..14037 "["8549                                        EXPR_STRING@14037..140408550                                          STRING_SINGLE@14037..14040 "'<'"8551                                        COMMA@14040..14041 ","8552                                        WHITESPACE@14041..14042 " "8553                                        EXPR_VAR@14042..140458554                                          NAME@14042..140458555                                            IDENT@14042..14045 "tag"8556                                        COMMA@14045..14046 ","8557                                        WHITESPACE@14046..14047 " "8558                                        EXPR_VAR@14047..140568559                                          NAME@14047..140568560                                            IDENT@14047..14056 "attrs_str"8561                                        COMMA@14056..14057 ","8562                                        WHITESPACE@14057..14058 " "8563                                        EXPR_STRING@14058..140618564                                          STRING_SINGLE@14058..14061 "'>'"8565                                        COMMA@14061..14062 ","8566                                        WHITESPACE@14062..14063 " "8567                                        EXPR_ARRAY_COMP@14063..140898568                                          L_BRACK@14063..14064 "["8569                                          EXPR_APPLY@14064..140708570                                            EXPR_VAR@14064..140678571                                              NAME@14064..140678572                                                IDENT@14064..14067 "aux"8573                                            ARGS_DESC@14067..140708574                                              L_PAREN@14067..14068 "("8575                                              ARG@14068..140698576                                                EXPR_VAR@14068..140698577                                                  NAME@14068..140698578                                                    IDENT@14068..14069 "x"8579                                              R_PAREN@14069..14070 ")"8580                                          WHITESPACE@14070..14071 " "8581                                          FOR_SPEC@14071..140888582                                            FOR_KW@14071..14074 "for"8583                                            WHITESPACE@14074..14075 " "8584                                            NAME@14075..140768585                                              IDENT@14075..14076 "x"8586                                            WHITESPACE@14076..14077 " "8587                                            IN_KW@14077..14079 "in"8588                                            WHITESPACE@14079..14080 " "8589                                            EXPR_VAR@14080..140888590                                              NAME@14080..140888591                                                IDENT@14080..14088 "children"8592                                          R_BRACK@14088..14089 "]"8593                                        COMMA@14089..14090 ","8594                                        WHITESPACE@14090..14091 " "8595                                        EXPR_STRING@14091..140958596                                          STRING_SINGLE@14091..14095 "'</'"8597                                        COMMA@14095..14096 ","8598                                        WHITESPACE@14096..14097 " "8599                                        EXPR_VAR@14097..141008600                                          NAME@14097..141008601                                            IDENT@14097..14100 "tag"8602                                        COMMA@14100..14101 ","8603                                        WHITESPACE@14101..14102 " "8604                                        EXPR_STRING@14102..141058605                                          STRING_SINGLE@14102..14105 "'>'"8606                                        R_BRACK@14105..14106 "]"8607                                    R_PAREN@14106..14107 ")"8608                SEMI@14107..14108 ";"8609                WHITESPACE@14108..14116 "\n\n      "8610                EXPR_APPLY@14116..141268611                  EXPR_VAR@14116..141198612                    NAME@14116..141198613                      IDENT@14116..14119 "aux"8614                  ARGS_DESC@14119..141268615                    L_PAREN@14119..14120 "("8616                    ARG@14120..141258617                      EXPR_VAR@14120..141258618                        NAME@14120..141258619                          IDENT@14120..14125 "value"8620                    R_PAREN@14125..14126 ")"8621      COMMA@14126..14127 ","8622      WHITESPACE@14127..14131 "\n\n  "8623      MEMBER_BIND_STMT@14131..142188624        OBJ_LOCAL@14131..142188625          LOCAL_KW@14131..14136 "local"8626          WHITESPACE@14136..14137 " "8627          BIND_DESTRUCT@14137..142188628            DESTRUCT_FULL@14137..141498629              NAME@14137..141498630                IDENT@14137..14149 "base64_table"8631            WHITESPACE@14149..14150 " "8632            ASSIGN@14150..14151 "="8633            WHITESPACE@14151..14152 " "8634            EXPR_STRING@14152..142188635              STRING_SINGLE@14152..14218 "'ABCDEFGHIJKLMNOPQRST ..."8636      COMMA@14218..14219 ","8637      WHITESPACE@14219..14222 "\n  "8638      MEMBER_BIND_STMT@14222..142918639        OBJ_LOCAL@14222..142918640          LOCAL_KW@14222..14227 "local"8641          WHITESPACE@14227..14228 " "8642          BIND_DESTRUCT@14228..142918643            DESTRUCT_FULL@14228..142388644              NAME@14228..142388645                IDENT@14228..14238 "base64_inv"8646            WHITESPACE@14238..14239 " "8647            ASSIGN@14239..14240 "="8648            WHITESPACE@14240..14241 " "8649            EXPR_OBJECT@14241..142918650              OBJ_BODY_MEMBER_LIST@14241..142918651                L_BRACE@14241..14242 "{"8652                WHITESPACE@14242..14243 " "8653                MEMBER_FIELD@14243..142898654                  FIELD_NORMAL@14243..142638655                    FIELD_NAME_DYNAMIC@14243..142608656                      L_BRACK@14243..14244 "["8657                      EXPR_INDEX_EXPR@14244..142598658                        LHS_EXPR@14244..142568659                          EXPR_VAR@14244..142568660                            NAME@14244..142568661                              IDENT@14244..14256 "base64_table"8662                        L_BRACK@14256..14257 "["8663                        EXPR_VAR@14257..142588664                          NAME@14257..142588665                            IDENT@14257..14258 "i"8666                        R_BRACK@14258..14259 "]"8667                      R_BRACK@14259..14260 "]"8668                    COLON@14260..14261 ":"8669                    WHITESPACE@14261..14262 " "8670                    EXPR_VAR@14262..142638671                      NAME@14262..142638672                        IDENT@14262..14263 "i"8673                  WHITESPACE@14263..14264 " "8674                  FOR_SPEC@14264..142898675                    FOR_KW@14264..14267 "for"8676                    WHITESPACE@14267..14268 " "8677                    NAME@14268..142698678                      IDENT@14268..14269 "i"8679                    WHITESPACE@14269..14270 " "8680                    IN_KW@14270..14272 "in"8681                    WHITESPACE@14272..14273 " "8682                    EXPR_APPLY@14273..142898683                      EXPR_INDEX@14273..142828684                        EXPR_VAR@14273..142768685                          NAME@14273..142768686                            IDENT@14273..14276 "std"8687                        DOT@14276..14277 "."8688                        NAME@14277..142828689                          IDENT@14277..14282 "range"8690                      ARGS_DESC@14282..142898691                        L_PAREN@14282..14283 "("8692                        ARG@14283..142848693                          EXPR_NUMBER@14283..142848694                            FLOAT@14283..14284 "0"8695                        COMMA@14284..14285 ","8696                        WHITESPACE@14285..14286 " "8697                        ARG@14286..142888698                          EXPR_NUMBER@14286..142888699                            FLOAT@14286..14288 "63"8700                        R_PAREN@14288..14289 ")"8701                WHITESPACE@14289..14290 " "8702                R_BRACE@14290..14291 "}"8703      COMMA@14291..14292 ","8704      WHITESPACE@14292..14296 "\n\n  "8705      MEMBER_FIELD@14296..143238706        FIELD_NORMAL@14296..143238707          FIELD_NAME_FIXED@14296..143028708            NAME@14296..143028709              IDENT@14296..14302 "base64"8710          COLONCOLON@14302..14304 "::"8711          WHITESPACE@14304..14305 " "8712          EXPR_INTRINSIC@14305..143238713            INTRINSIC@14305..14315 "$intrinsic"8714            L_PAREN@14315..14316 "("8715            NAME@14316..143228716              IDENT@14316..14322 "base64"8717            R_PAREN@14322..14323 ")"8718      COMMA@14323..14324 ","8719      WHITESPACE@14324..14328 "\n\n  "8720      MEMBER_FIELD@14328..143778721        FIELD_NORMAL@14328..143778722          FIELD_NAME_FIXED@14328..143458723            NAME@14328..143458724              IDENT@14328..14345 "base64DecodeBytes"8725          COLONCOLON@14345..14347 "::"8726          WHITESPACE@14347..14348 " "8727          EXPR_INTRINSIC@14348..143778728            INTRINSIC@14348..14358 "$intrinsic"8729            L_PAREN@14358..14359 "("8730            NAME@14359..143768731              IDENT@14359..14376 "base64DecodeBytes"8732            R_PAREN@14376..14377 ")"8733      COMMA@14377..14378 ","8734      WHITESPACE@14378..14382 "\n\n  "8735      MEMBER_FIELD@14382..144218736        FIELD_NORMAL@14382..144218737          FIELD_NAME_FIXED@14382..143948738            NAME@14382..143948739              IDENT@14382..14394 "base64Decode"8740          COLONCOLON@14394..14396 "::"8741          WHITESPACE@14396..14397 " "8742          EXPR_INTRINSIC@14397..144218743            INTRINSIC@14397..14407 "$intrinsic"8744            L_PAREN@14407..14408 "("8745            NAME@14408..144208746              IDENT@14408..14420 "base64Decode"8747            R_PAREN@14420..14421 ")"8748      COMMA@14421..14422 ","8749      WHITESPACE@14422..14426 "\n\n  "8750      MEMBER_FIELD@14426..144558751        FIELD_NORMAL@14426..144558752          FIELD_NAME_FIXED@14426..144338753            NAME@14426..144338754              IDENT@14426..14433 "reverse"8755          COLONCOLON@14433..14435 "::"8756          WHITESPACE@14435..14436 " "8757          EXPR_INTRINSIC@14436..144558758            INTRINSIC@14436..14446 "$intrinsic"8759            L_PAREN@14446..14447 "("8760            NAME@14447..144548761              IDENT@14447..14454 "reverse"8762            R_PAREN@14454..14455 ")"8763      COMMA@14455..14456 ","8764      WHITESPACE@14456..14460 "\n\n  "8765      MEMBER_FIELD@14460..144838766        FIELD_NORMAL@14460..144838767          FIELD_NAME_FIXED@14460..144648768            NAME@14460..144648769              IDENT@14460..14464 "sort"8770          COLONCOLON@14464..14466 "::"8771          WHITESPACE@14466..14467 " "8772          EXPR_INTRINSIC@14467..144838773            INTRINSIC@14467..14477 "$intrinsic"8774            L_PAREN@14477..14478 "("8775            NAME@14478..144828776              IDENT@14478..14482 "sort"8777            R_PAREN@14482..14483 ")"8778      COMMA@14483..14484 ","8779      WHITESPACE@14484..14488 "\n\n  "8780      MEMBER_FIELD@14488..146948781        FIELD_METHOD@14488..146948782          FIELD_NAME_FIXED@14488..144928783            NAME@14488..144928784              IDENT@14488..14492 "uniq"8785          PARAMS_DESC@14492..145068786            L_PAREN@14492..14493 "("8787            PARAM@14493..144968788              DESTRUCT_FULL@14493..144968789                NAME@14493..144968790                  IDENT@14493..14496 "arr"8791            COMMA@14496..14497 ","8792            WHITESPACE@14497..14498 " "8793            PARAM@14498..145058794              DESTRUCT_FULL@14498..145028795                NAME@14498..145028796                  IDENT@14498..14502 "keyF"8797              ASSIGN@14502..14503 "="8798              EXPR_VAR@14503..145058799                NAME@14503..145058800                  IDENT@14503..14505 "id"8801            R_PAREN@14505..14506 ")"8802          COLONCOLON@14506..14508 "::"8803          WHITESPACE@14508..14513 "\n    "8804          EXPR_LOCAL@14513..146948805            LOCAL_KW@14513..14518 "local"8806            WHITESPACE@14518..14519 " "8807            BIND_FUNCTION@14519..146678808              NAME@14519..145208809                IDENT@14519..14520 "f"8810              PARAMS_DESC@14520..145268811                L_PAREN@14520..14521 "("8812                PARAM@14521..145228813                  DESTRUCT_FULL@14521..145228814                    NAME@14521..145228815                      IDENT@14521..14522 "a"8816                COMMA@14522..14523 ","8817                WHITESPACE@14523..14524 " "8818                PARAM@14524..145258819                  DESTRUCT_FULL@14524..145258820                    NAME@14524..145258821                      IDENT@14524..14525 "b"8822                R_PAREN@14525..14526 ")"8823              WHITESPACE@14526..14527 " "8824              ASSIGN@14527..14528 "="8825              WHITESPACE@14528..14535 "\n      "8826              EXPR_IF_THEN_ELSE@14535..146678827                IF_KW@14535..14537 "if"8828                WHITESPACE@14537..14538 " "8829                EXPR_BINARY@14538..145568830                  LHS_EXPR@14538..145518831                    EXPR_APPLY@14538..145518832                      EXPR_INDEX@14538..145488833                        EXPR_VAR@14538..145418834                          NAME@14538..145418835                            IDENT@14538..14541 "std"8836                        DOT@14541..14542 "."8837                        NAME@14542..145488838                          IDENT@14542..14548 "length"8839                      ARGS_DESC@14548..145518840                        L_PAREN@14548..14549 "("8841                        ARG@14549..145508842                          EXPR_VAR@14549..145508843                            NAME@14549..145508844                              IDENT@14549..14550 "a"8845                        R_PAREN@14550..14551 ")"8846                  WHITESPACE@14551..14552 " "8847                  EQ@14552..14554 "=="8848                  WHITESPACE@14554..14555 " "8849                  EXPR_NUMBER@14555..145568850                    FLOAT@14555..14556 "0"8851                WHITESPACE@14556..14557 " "8852                THEN_KW@14557..14561 "then"8853                WHITESPACE@14561..14570 "\n        "8854                TRUE_EXPR@14570..145738855                  EXPR_ARRAY@14570..145738856                    L_BRACK@14570..14571 "["8857                    EXPR_VAR@14571..145728858                      NAME@14571..145728859                        IDENT@14571..14572 "b"8860                    R_BRACK@14572..14573 "]"8861                WHITESPACE@14573..14580 "\n      "8862                ELSE_KW@14580..14584 "else"8863                WHITESPACE@14584..14585 " "8864                FALSE_EXPR@14585..146678865                  EXPR_IF_THEN_ELSE@14585..146678866                    IF_KW@14585..14587 "if"8867                    WHITESPACE@14587..14588 " "8868                    EXPR_BINARY@14588..146258869                      LHS_EXPR@14588..146148870                        EXPR_APPLY@14588..146148871                          EXPR_VAR@14588..145928872                            NAME@14588..145928873                              IDENT@14588..14592 "keyF"8874                          ARGS_DESC@14592..146148875                            L_PAREN@14592..14593 "("8876                            ARG@14593..146138877                              EXPR_INDEX_EXPR@14593..146138878                                LHS_EXPR@14593..145948879                                  EXPR_VAR@14593..145948880                                    NAME@14593..145948881                                      IDENT@14593..14594 "a"8882                                L_BRACK@14594..14595 "["8883                                EXPR_BINARY@14595..146128884                                  LHS_EXPR@14595..146088885                                    EXPR_APPLY@14595..146088886                                      EXPR_INDEX@14595..146058887                                        EXPR_VAR@14595..145988888                                          NAME@14595..145988889                                            IDENT@14595..14598 "std"8890                                        DOT@14598..14599 "."8891                                        NAME@14599..146058892                                          IDENT@14599..14605 "length"8893                                      ARGS_DESC@14605..146088894                                        L_PAREN@14605..14606 "("8895                                        ARG@14606..146078896                                          EXPR_VAR@14606..146078897                                            NAME@14606..146078898                                              IDENT@14606..14607 "a"8899                                        R_PAREN@14607..14608 ")"8900                                  WHITESPACE@14608..14609 " "8901                                  MINUS@14609..14610 "-"8902                                  WHITESPACE@14610..14611 " "8903                                  EXPR_NUMBER@14611..146128904                                    FLOAT@14611..14612 "1"8905                                R_BRACK@14612..14613 "]"8906                            R_PAREN@14613..14614 ")"8907                      WHITESPACE@14614..14615 " "8908                      EQ@14615..14617 "=="8909                      WHITESPACE@14617..14618 " "8910                      EXPR_APPLY@14618..146258911                        EXPR_VAR@14618..146228912                          NAME@14618..146228913                            IDENT@14618..14622 "keyF"8914                        ARGS_DESC@14622..146258915                          L_PAREN@14622..14623 "("8916                          ARG@14623..146248917                            EXPR_VAR@14623..146248918                              NAME@14623..146248919                                IDENT@14623..14624 "b"8920                          R_PAREN@14624..14625 ")"8921                    WHITESPACE@14625..14626 " "8922                    THEN_KW@14626..14630 "then"8923                    WHITESPACE@14630..14639 "\n        "8924                    TRUE_EXPR@14639..146408925                      EXPR_VAR@14639..146408926                        NAME@14639..146408927                          IDENT@14639..14640 "a"8928                    WHITESPACE@14640..14647 "\n      "8929                    ELSE_KW@14647..14651 "else"8930                    WHITESPACE@14651..14660 "\n        "8931                    FALSE_EXPR@14660..146678932                      EXPR_BINARY@14660..146678933                        LHS_EXPR@14660..146618934                          EXPR_VAR@14660..146618935                            NAME@14660..146618936                              IDENT@14660..14661 "a"8937                        WHITESPACE@14661..14662 " "8938                        PLUS@14662..14663 "+"8939                        WHITESPACE@14663..14664 " "8940                        EXPR_ARRAY@14664..146678941                          L_BRACK@14664..14665 "["8942                          EXPR_VAR@14665..146668943                            NAME@14665..146668944                              IDENT@14665..14666 "b"8945                          R_BRACK@14666..14667 "]"8946            SEMI@14667..14668 ";"8947            WHITESPACE@14668..14673 "\n    "8948            EXPR_APPLY@14673..146948949              EXPR_INDEX@14673..146828950                EXPR_VAR@14673..146768951                  NAME@14673..146768952                    IDENT@14673..14676 "std"8953                DOT@14676..14677 "."8954                NAME@14677..146828955                  IDENT@14677..14682 "foldl"8956              ARGS_DESC@14682..146948957                L_PAREN@14682..14683 "("8958                ARG@14683..146848959                  EXPR_VAR@14683..146848960                    NAME@14683..146848961                      IDENT@14683..14684 "f"8962                COMMA@14684..14685 ","8963                WHITESPACE@14685..14686 " "8964                ARG@14686..146898965                  EXPR_VAR@14686..146898966                    NAME@14686..146898967                      IDENT@14686..14689 "arr"8968                COMMA@14689..14690 ","8969                WHITESPACE@14690..14691 " "8970                ARG@14691..146938971                  EXPR_ARRAY@14691..146938972                    L_BRACK@14691..14692 "["8973                    R_BRACK@14692..14693 "]"8974                R_PAREN@14693..14694 ")"8975      COMMA@14694..14695 ","8976      WHITESPACE@14695..14699 "\n\n  "8977      MEMBER_FIELD@14699..147588978        FIELD_METHOD@14699..147588979          FIELD_NAME_FIXED@14699..147028980            NAME@14699..147028981              IDENT@14699..14702 "set"8982          PARAMS_DESC@14702..147168983            L_PAREN@14702..14703 "("8984            PARAM@14703..147068985              DESTRUCT_FULL@14703..147068986                NAME@14703..147068987                  IDENT@14703..14706 "arr"8988            COMMA@14706..14707 ","8989            WHITESPACE@14707..14708 " "8990            PARAM@14708..147158991              DESTRUCT_FULL@14708..147128992                NAME@14708..147128993                  IDENT@14708..14712 "keyF"8994              ASSIGN@14712..14713 "="8995              EXPR_VAR@14713..147158996                NAME@14713..147158997                  IDENT@14713..14715 "id"8998            R_PAREN@14715..14716 ")"8999          COLONCOLON@14716..14718 "::"9000          WHITESPACE@14718..14723 "\n    "9001          EXPR_APPLY@14723..147589002            EXPR_INDEX@14723..147319003              EXPR_VAR@14723..147269004                NAME@14723..147269005                  IDENT@14723..14726 "std"9006              DOT@14726..14727 "."9007              NAME@14727..147319008                IDENT@14727..14731 "uniq"9009            ARGS_DESC@14731..147589010              L_PAREN@14731..14732 "("9011              ARG@14732..147519012                EXPR_APPLY@14732..147519013                  EXPR_INDEX@14732..147409014                    EXPR_VAR@14732..147359015                      NAME@14732..147359016                        IDENT@14732..14735 "std"9017                    DOT@14735..14736 "."9018                    NAME@14736..147409019                      IDENT@14736..14740 "sort"9020                  ARGS_DESC@14740..147519021                    L_PAREN@14740..14741 "("9022                    ARG@14741..147449023                      EXPR_VAR@14741..147449024                        NAME@14741..147449025                          IDENT@14741..14744 "arr"9026                    COMMA@14744..14745 ","9027                    WHITESPACE@14745..14746 " "9028                    ARG@14746..147509029                      EXPR_VAR@14746..147509030                        NAME@14746..147509031                          IDENT@14746..14750 "keyF"9032                    R_PAREN@14750..14751 ")"9033              COMMA@14751..14752 ","9034              WHITESPACE@14752..14753 " "9035              ARG@14753..147579036                EXPR_VAR@14753..147579037                  NAME@14753..147579038                    IDENT@14753..14757 "keyF"9039              R_PAREN@14757..14758 ")"9040      COMMA@14758..14759 ","9041      WHITESPACE@14759..14763 "\n\n  "9042      MEMBER_FIELD@14763..148989043        FIELD_METHOD@14763..148989044          FIELD_NAME_FIXED@14763..147729045            NAME@14763..147729046              IDENT@14763..14772 "setMember"9047          PARAMS_DESC@14772..147899048            L_PAREN@14772..14773 "("9049            PARAM@14773..147749050              DESTRUCT_FULL@14773..147749051                NAME@14773..147749052                  IDENT@14773..14774 "x"9053            COMMA@14774..14775 ","9054            WHITESPACE@14775..14776 " "9055            PARAM@14776..147799056              DESTRUCT_FULL@14776..147799057                NAME@14776..147799058                  IDENT@14776..14779 "arr"9059            COMMA@14779..14780 ","9060            WHITESPACE@14780..14781 " "9061            PARAM@14781..147889062              DESTRUCT_FULL@14781..147859063                NAME@14781..147859064                  IDENT@14781..14785 "keyF"9065              ASSIGN@14785..14786 "="9066              EXPR_VAR@14786..147889067                NAME@14786..147889068                  IDENT@14786..14788 "id"9069            R_PAREN@14788..14789 ")"9070          COLONCOLON@14789..14791 "::"9071          WHITESPACE@14791..14796 "\n    "9072          SINGLE_LINE_SLASH_COMMENT@14796..14850 "// TODO(dcunnin): Bin ..."9073          WHITESPACE@14850..14854 "    "9074          EXPR_BINARY@14854..148989075            LHS_EXPR@14854..148949076              EXPR_APPLY@14854..148949077                EXPR_INDEX@14854..148649078                  EXPR_VAR@14854..148579079                    NAME@14854..148579080                      IDENT@14854..14857 "std"9081                  DOT@14857..14858 "."9082                  NAME@14858..148649083                    IDENT@14858..14864 "length"9084                ARGS_DESC@14864..148949085                  L_PAREN@14864..14865 "("9086                  ARG@14865..148939087                    EXPR_APPLY@14865..148939088                      EXPR_INDEX@14865..148779089                        EXPR_VAR@14865..148689090                          NAME@14865..148689091                            IDENT@14865..14868 "std"9092                        DOT@14868..14869 "."9093                        NAME@14869..148779094                          IDENT@14869..14877 "setInter"9095                      ARGS_DESC@14877..148939096                        L_PAREN@14877..14878 "("9097                        ARG@14878..148819098                          EXPR_ARRAY@14878..148819099                            L_BRACK@14878..14879 "["9100                            EXPR_VAR@14879..148809101                              NAME@14879..148809102                                IDENT@14879..14880 "x"9103                            R_BRACK@14880..14881 "]"9104                        COMMA@14881..14882 ","9105                        WHITESPACE@14882..14883 " "9106                        ARG@14883..148869107                          EXPR_VAR@14883..148869108                            NAME@14883..148869109                              IDENT@14883..14886 "arr"9110                        COMMA@14886..14887 ","9111                        WHITESPACE@14887..14888 " "9112                        ARG@14888..148929113                          EXPR_VAR@14888..148929114                            NAME@14888..148929115                              IDENT@14888..14892 "keyF"9116                        R_PAREN@14892..14893 ")"9117                  R_PAREN@14893..14894 ")"9118            WHITESPACE@14894..14895 " "9119            GT@14895..14896 ">"9120            WHITESPACE@14896..14897 " "9121            EXPR_NUMBER@14897..148989122              FLOAT@14897..14898 "0"9123      COMMA@14898..14899 ","9124      WHITESPACE@14899..14903 "\n\n  "9125      MEMBER_FIELD@14903..154529126        FIELD_METHOD@14903..154529127          FIELD_NAME_FIXED@14903..149119128            NAME@14903..149119129              IDENT@14903..14911 "setUnion"9130          PARAMS_DESC@14911..149269131            L_PAREN@14911..14912 "("9132            PARAM@14912..149139133              DESTRUCT_FULL@14912..149139134                NAME@14912..149139135                  IDENT@14912..14913 "a"9136            COMMA@14913..14914 ","9137            WHITESPACE@14914..14915 " "9138            PARAM@14915..149169139              DESTRUCT_FULL@14915..149169140                NAME@14915..149169141                  IDENT@14915..14916 "b"9142            COMMA@14916..14917 ","9143            WHITESPACE@14917..14918 " "9144            PARAM@14918..149259145              DESTRUCT_FULL@14918..149229146                NAME@14918..149229147                  IDENT@14918..14922 "keyF"9148              ASSIGN@14922..14923 "="9149              EXPR_VAR@14923..149259150                NAME@14923..149259151                  IDENT@14923..14925 "id"9152            R_PAREN@14925..14926 ")"9153          COLONCOLON@14926..14928 "::"9154          WHITESPACE@14928..14933 "\n    "9155          SINGLE_LINE_SLASH_COMMENT@14933..14975 "// NOTE: order matter ..."9156          WHITESPACE@14975..14979 "    "9157          EXPR_LOCAL@14979..154529158            LOCAL_KW@14979..14984 "local"9159            WHITESPACE@14984..14985 " "9160            BIND_FUNCTION@14985..154279161              NAME@14985..149889162                IDENT@14985..14988 "aux"9163              PARAMS_DESC@14988..150059164                L_PAREN@14988..14989 "("9165                PARAM@14989..149909166                  DESTRUCT_FULL@14989..149909167                    NAME@14989..149909168                      IDENT@14989..14990 "a"9169                COMMA@14990..14991 ","9170                WHITESPACE@14991..14992 " "9171                PARAM@14992..149939172                  DESTRUCT_FULL@14992..149939173                    NAME@14992..149939174                      IDENT@14992..14993 "b"9175                COMMA@14993..14994 ","9176                WHITESPACE@14994..14995 " "9177                PARAM@14995..149969178                  DESTRUCT_FULL@14995..149969179                    NAME@14995..149969180                      IDENT@14995..14996 "i"9181                COMMA@14996..14997 ","9182                WHITESPACE@14997..14998 " "9183                PARAM@14998..149999184                  DESTRUCT_FULL@14998..149999185                    NAME@14998..149999186                      IDENT@14998..14999 "j"9187                COMMA@14999..15000 ","9188                WHITESPACE@15000..15001 " "9189                PARAM@15001..150049190                  DESTRUCT_FULL@15001..150049191                    NAME@15001..150049192                      IDENT@15001..15004 "acc"9193                R_PAREN@15004..15005 ")"9194              WHITESPACE@15005..15006 " "9195              ASSIGN@15006..15007 "="9196              WHITESPACE@15007..15014 "\n      "9197              EXPR_IF_THEN_ELSE@15014..154279198                IF_KW@15014..15016 "if"9199                WHITESPACE@15016..15017 " "9200                EXPR_BINARY@15017..150359201                  LHS_EXPR@15017..150189202                    EXPR_VAR@15017..150189203                      NAME@15017..150189204                        IDENT@15017..15018 "i"9205                  WHITESPACE@15018..15019 " "9206                  GE@15019..15021 ">="9207                  WHITESPACE@15021..15022 " "9208                  EXPR_APPLY@15022..150359209                    EXPR_INDEX@15022..150329210                      EXPR_VAR@15022..150259211                        NAME@15022..150259212                          IDENT@15022..15025 "std"9213                      DOT@15025..15026 "."9214                      NAME@15026..150329215                        IDENT@15026..15032 "length"9216                    ARGS_DESC@15032..150359217                      L_PAREN@15032..15033 "("9218                      ARG@15033..150349219                        EXPR_VAR@15033..150349220                          NAME@15033..150349221                            IDENT@15033..15034 "a"9222                      R_PAREN@15034..15035 ")"9223                WHITESPACE@15035..15036 " "9224                THEN_KW@15036..15040 "then"9225                WHITESPACE@15040..15049 "\n        "9226                TRUE_EXPR@15049..150609227                  EXPR_BINARY@15049..150609228                    LHS_EXPR@15049..150529229                      EXPR_VAR@15049..150529230                        NAME@15049..150529231                          IDENT@15049..15052 "acc"9232                    WHITESPACE@15052..15053 " "9233                    PLUS@15053..15054 "+"9234                    WHITESPACE@15054..15055 " "9235                    EXPR_SLICE@15055..150609236                      EXPR_VAR@15055..150569237                        NAME@15055..150569238                          IDENT@15055..15056 "b"9239                      SLICE_DESC@15056..150609240                        L_BRACK@15056..15057 "["9241                        EXPR_VAR@15057..150589242                          NAME@15057..150589243                            IDENT@15057..15058 "j"9244                        COLON@15058..15059 ":"9245                        R_BRACK@15059..15060 "]"9246                WHITESPACE@15060..15067 "\n      "9247                ELSE_KW@15067..15071 "else"9248                WHITESPACE@15071..15072 " "9249                FALSE_EXPR@15072..154279250                  EXPR_IF_THEN_ELSE@15072..154279251                    IF_KW@15072..15074 "if"9252                    WHITESPACE@15074..15075 " "9253                    EXPR_BINARY@15075..150939254                      LHS_EXPR@15075..150769255                        EXPR_VAR@15075..150769256                          NAME@15075..150769257                            IDENT@15075..15076 "j"9258                      WHITESPACE@15076..15077 " "9259                      GE@15077..15079 ">="9260                      WHITESPACE@15079..15080 " "9261                      EXPR_APPLY@15080..150939262                        EXPR_INDEX@15080..150909263                          EXPR_VAR@15080..150839264                            NAME@15080..150839265                              IDENT@15080..15083 "std"9266                          DOT@15083..15084 "."9267                          NAME@15084..150909268                            IDENT@15084..15090 "length"9269                        ARGS_DESC@15090..150939270                          L_PAREN@15090..15091 "("9271                          ARG@15091..150929272                            EXPR_VAR@15091..150929273                              NAME@15091..150929274                                IDENT@15091..15092 "b"9275                          R_PAREN@15092..15093 ")"9276                    WHITESPACE@15093..15094 " "9277                    THEN_KW@15094..15098 "then"9278                    WHITESPACE@15098..15107 "\n        "9279                    TRUE_EXPR@15107..151189280                      EXPR_BINARY@15107..151189281                        LHS_EXPR@15107..151109282                          EXPR_VAR@15107..151109283                            NAME@15107..151109284                              IDENT@15107..15110 "acc"9285                        WHITESPACE@15110..15111 " "9286                        PLUS@15111..15112 "+"9287                        WHITESPACE@15112..15113 " "9288                        EXPR_SLICE@15113..151189289                          EXPR_VAR@15113..151149290                            NAME@15113..151149291                              IDENT@15113..15114 "a"9292                          SLICE_DESC@15114..151189293                            L_BRACK@15114..15115 "["9294                            EXPR_VAR@15115..151169295                              NAME@15115..151169296                                IDENT@15115..15116 "i"9297                            COLON@15116..15117 ":"9298                            R_BRACK@15117..15118 "]"9299                    WHITESPACE@15118..15125 "\n      "9300                    ELSE_KW@15125..15129 "else"9301                    WHITESPACE@15129..15138 "\n        "9302                    FALSE_EXPR@15138..154279303                      EXPR_LOCAL@15138..154279304                        LOCAL_KW@15138..15143 "local"9305                        WHITESPACE@15143..15144 " "9306                        BIND_DESTRUCT@15144..151599307                          DESTRUCT_FULL@15144..151469308                            NAME@15144..151469309                              IDENT@15144..15146 "ak"9310                          WHITESPACE@15146..15147 " "9311                          ASSIGN@15147..15148 "="9312                          WHITESPACE@15148..15149 " "9313                          EXPR_APPLY@15149..151599314                            EXPR_VAR@15149..151539315                              NAME@15149..151539316                                IDENT@15149..15153 "keyF"9317                            ARGS_DESC@15153..151599318                              L_PAREN@15153..15154 "("9319                              ARG@15154..151589320                                EXPR_INDEX_EXPR@15154..151589321                                  LHS_EXPR@15154..151559322                                    EXPR_VAR@15154..151559323                                      NAME@15154..151559324                                        IDENT@15154..15155 "a"9325                                  L_BRACK@15155..15156 "["9326                                  EXPR_VAR@15156..151579327                                    NAME@15156..151579328                                      IDENT@15156..15157 "i"9329                                  R_BRACK@15157..15158 "]"9330                              R_PAREN@15158..15159 ")"9331                        SEMI@15159..15160 ";"9332                        WHITESPACE@15160..15169 "\n        "9333                        EXPR_LOCAL@15169..154279334                          LOCAL_KW@15169..15174 "local"9335                          WHITESPACE@15174..15175 " "9336                          BIND_DESTRUCT@15175..151909337                            DESTRUCT_FULL@15175..151779338                              NAME@15175..151779339                                IDENT@15175..15177 "bk"9340                            WHITESPACE@15177..15178 " "9341                            ASSIGN@15178..15179 "="9342                            WHITESPACE@15179..15180 " "9343                            EXPR_APPLY@15180..151909344                              EXPR_VAR@15180..151849345                                NAME@15180..151849346                                  IDENT@15180..15184 "keyF"9347                              ARGS_DESC@15184..151909348                                L_PAREN@15184..15185 "("9349                                ARG@15185..151899350                                  EXPR_INDEX_EXPR@15185..151899351                                    LHS_EXPR@15185..151869352                                      EXPR_VAR@15185..151869353                                        NAME@15185..151869354                                          IDENT@15185..15186 "b"9355                                    L_BRACK@15186..15187 "["9356                                    EXPR_VAR@15187..151889357                                      NAME@15187..151889358                                        IDENT@15187..15188 "j"9359                                    R_BRACK@15188..15189 "]"9360                                R_PAREN@15189..15190 ")"9361                          SEMI@15190..15191 ";"9362                          WHITESPACE@15191..15200 "\n        "9363                          EXPR_IF_THEN_ELSE@15200..154279364                            IF_KW@15200..15202 "if"9365                            WHITESPACE@15202..15203 " "9366                            EXPR_BINARY@15203..152119367                              LHS_EXPR@15203..152059368                                EXPR_VAR@15203..152059369                                  NAME@15203..152059370                                    IDENT@15203..15205 "ak"9371                              WHITESPACE@15205..15206 " "9372                              EQ@15206..15208 "=="9373                              WHITESPACE@15208..15209 " "9374                              EXPR_VAR@15209..152119375                                NAME@15209..152119376                                  IDENT@15209..15211 "bk"9377                            WHITESPACE@15211..15212 " "9378                            THEN_KW@15212..15216 "then"9379                            WHITESPACE@15216..15227 "\n          "9380                            TRUE_EXPR@15227..152759381                              EXPR_APPLY@15227..152759382                                EXPR_VAR@15227..152309383                                  NAME@15227..152309384                                    IDENT@15227..15230 "aux"9385                                ARGS_DESC@15230..152759386                                  L_PAREN@15230..15231 "("9387                                  ARG@15231..152329388                                    EXPR_VAR@15231..152329389                                      NAME@15231..152329390                                        IDENT@15231..15232 "a"9391                                  COMMA@15232..15233 ","9392                                  WHITESPACE@15233..15234 " "9393                                  ARG@15234..152359394                                    EXPR_VAR@15234..152359395                                      NAME@15234..152359396                                        IDENT@15234..15235 "b"9397                                  COMMA@15235..15236 ","9398                                  WHITESPACE@15236..15237 " "9399                                  ARG@15237..152429400                                    EXPR_BINARY@15237..152429401                                      LHS_EXPR@15237..152389402                                        EXPR_VAR@15237..152389403                                          NAME@15237..152389404                                            IDENT@15237..15238 "i"9405                                      WHITESPACE@15238..15239 " "9406                                      PLUS@15239..15240 "+"9407                                      WHITESPACE@15240..15241 " "9408                                      EXPR_NUMBER@15241..152429409                                        FLOAT@15241..15242 "1"9410                                  COMMA@15242..15243 ","9411                                  WHITESPACE@15243..15244 " "9412                                  ARG@15244..152499413                                    EXPR_BINARY@15244..152499414                                      LHS_EXPR@15244..152459415                                        EXPR_VAR@15244..152459416                                          NAME@15244..152459417                                            IDENT@15244..15245 "j"9418                                      WHITESPACE@15245..15246 " "9419                                      PLUS@15246..15247 "+"9420                                      WHITESPACE@15247..15248 " "9421                                      EXPR_NUMBER@15248..152499422                                        FLOAT@15248..15249 "1"9423                                  COMMA@15249..15250 ","9424                                  WHITESPACE@15250..15251 " "9425                                  ARG@15251..152639426                                    EXPR_BINARY@15251..152639427                                      LHS_EXPR@15251..152549428                                        EXPR_VAR@15251..152549429                                          NAME@15251..152549430                                            IDENT@15251..15254 "acc"9431                                      WHITESPACE@15254..15255 " "9432                                      PLUS@15255..15256 "+"9433                                      WHITESPACE@15256..15257 " "9434                                      EXPR_ARRAY@15257..152639435                                        L_BRACK@15257..15258 "["9436                                        EXPR_INDEX_EXPR@15258..152629437                                          LHS_EXPR@15258..152599438                                            EXPR_VAR@15258..152599439                                              NAME@15258..152599440                                                IDENT@15258..15259 "a"9441                                          L_BRACK@15259..15260 "["9442                                          EXPR_VAR@15260..152619443                                            NAME@15260..152619444                                              IDENT@15260..15261 "i"9445                                          R_BRACK@15261..15262 "]"9446                                        R_BRACK@15262..15263 "]"9447                                  R_PAREN@15263..15264 ")"9448                                  WHITESPACE@15264..15265 " "9449                                  TAILSTRICT_KW@15265..15275 "tailstrict"9450                            WHITESPACE@15275..15284 "\n        "9451                            ELSE_KW@15284..15288 "else"9452                            WHITESPACE@15288..15289 " "9453                            FALSE_EXPR@15289..154279454                              EXPR_IF_THEN_ELSE@15289..154279455                                IF_KW@15289..15291 "if"9456                                WHITESPACE@15291..15292 " "9457                                EXPR_BINARY@15292..152999458                                  LHS_EXPR@15292..152949459                                    EXPR_VAR@15292..152949460                                      NAME@15292..152949461                                        IDENT@15292..15294 "ak"9462                                  WHITESPACE@15294..15295 " "9463                                  LT@15295..15296 "<"9464                                  WHITESPACE@15296..15297 " "9465                                  EXPR_VAR@15297..152999466                                    NAME@15297..152999467                                      IDENT@15297..15299 "bk"9468                                WHITESPACE@15299..15300 " "9469                                THEN_KW@15300..15304 "then"9470                                WHITESPACE@15304..15315 "\n          "9471                                TRUE_EXPR@15315..153599472                                  EXPR_APPLY@15315..153599473                                    EXPR_VAR@15315..153189474                                      NAME@15315..153189475                                        IDENT@15315..15318 "aux"9476                                    ARGS_DESC@15318..153599477                                      L_PAREN@15318..15319 "("9478                                      ARG@15319..153209479                                        EXPR_VAR@15319..153209480                                          NAME@15319..153209481                                            IDENT@15319..15320 "a"9482                                      COMMA@15320..15321 ","9483                                      WHITESPACE@15321..15322 " "9484                                      ARG@15322..153239485                                        EXPR_VAR@15322..153239486                                          NAME@15322..153239487                                            IDENT@15322..15323 "b"9488                                      COMMA@15323..15324 ","9489                                      WHITESPACE@15324..15325 " "9490                                      ARG@15325..153309491                                        EXPR_BINARY@15325..153309492                                          LHS_EXPR@15325..153269493                                            EXPR_VAR@15325..153269494                                              NAME@15325..153269495                                                IDENT@15325..15326 "i"9496                                          WHITESPACE@15326..15327 " "9497                                          PLUS@15327..15328 "+"9498                                          WHITESPACE@15328..15329 " "9499                                          EXPR_NUMBER@15329..153309500                                            FLOAT@15329..15330 "1"9501                                      COMMA@15330..15331 ","9502                                      WHITESPACE@15331..15332 " "9503                                      ARG@15332..153339504                                        EXPR_VAR@15332..153339505                                          NAME@15332..153339506                                            IDENT@15332..15333 "j"9507                                      COMMA@15333..15334 ","9508                                      WHITESPACE@15334..15335 " "9509                                      ARG@15335..153479510                                        EXPR_BINARY@15335..153479511                                          LHS_EXPR@15335..153389512                                            EXPR_VAR@15335..153389513                                              NAME@15335..153389514                                                IDENT@15335..15338 "acc"9515                                          WHITESPACE@15338..15339 " "9516                                          PLUS@15339..15340 "+"9517                                          WHITESPACE@15340..15341 " "9518                                          EXPR_ARRAY@15341..153479519                                            L_BRACK@15341..15342 "["9520                                            EXPR_INDEX_EXPR@15342..153469521                                              LHS_EXPR@15342..153439522                                                EXPR_VAR@15342..153439523                                                  NAME@15342..153439524                                                    IDENT@15342..15343 "a"9525                                              L_BRACK@15343..15344 "["9526                                              EXPR_VAR@15344..153459527                                                NAME@15344..153459528                                                  IDENT@15344..15345 "i"9529                                              R_BRACK@15345..15346 "]"9530                                            R_BRACK@15346..15347 "]"9531                                      R_PAREN@15347..15348 ")"9532                                      WHITESPACE@15348..15349 " "9533                                      TAILSTRICT_KW@15349..15359 "tailstrict"9534                                WHITESPACE@15359..15368 "\n        "9535                                ELSE_KW@15368..15372 "else"9536                                WHITESPACE@15372..15383 "\n          "9537                                FALSE_EXPR@15383..154279538                                  EXPR_APPLY@15383..154279539                                    EXPR_VAR@15383..153869540                                      NAME@15383..153869541                                        IDENT@15383..15386 "aux"9542                                    ARGS_DESC@15386..154279543                                      L_PAREN@15386..15387 "("9544                                      ARG@15387..153889545                                        EXPR_VAR@15387..153889546                                          NAME@15387..153889547                                            IDENT@15387..15388 "a"9548                                      COMMA@15388..15389 ","9549                                      WHITESPACE@15389..15390 " "9550                                      ARG@15390..153919551                                        EXPR_VAR@15390..153919552                                          NAME@15390..153919553                                            IDENT@15390..15391 "b"9554                                      COMMA@15391..15392 ","9555                                      WHITESPACE@15392..15393 " "9556                                      ARG@15393..153949557                                        EXPR_VAR@15393..153949558                                          NAME@15393..153949559                                            IDENT@15393..15394 "i"9560                                      COMMA@15394..15395 ","9561                                      WHITESPACE@15395..15396 " "9562                                      ARG@15396..154019563                                        EXPR_BINARY@15396..154019564                                          LHS_EXPR@15396..153979565                                            EXPR_VAR@15396..153979566                                              NAME@15396..153979567                                                IDENT@15396..15397 "j"9568                                          WHITESPACE@15397..15398 " "9569                                          PLUS@15398..15399 "+"9570                                          WHITESPACE@15399..15400 " "9571                                          EXPR_NUMBER@15400..154019572                                            FLOAT@15400..15401 "1"9573                                      COMMA@15401..15402 ","9574                                      WHITESPACE@15402..15403 " "9575                                      ARG@15403..154159576                                        EXPR_BINARY@15403..154159577                                          LHS_EXPR@15403..154069578                                            EXPR_VAR@15403..154069579                                              NAME@15403..154069580                                                IDENT@15403..15406 "acc"9581                                          WHITESPACE@15406..15407 " "9582                                          PLUS@15407..15408 "+"9583                                          WHITESPACE@15408..15409 " "9584                                          EXPR_ARRAY@15409..154159585                                            L_BRACK@15409..15410 "["9586                                            EXPR_INDEX_EXPR@15410..154149587                                              LHS_EXPR@15410..154119588                                                EXPR_VAR@15410..154119589                                                  NAME@15410..154119590                                                    IDENT@15410..15411 "b"9591                                              L_BRACK@15411..15412 "["9592                                              EXPR_VAR@15412..154139593                                                NAME@15412..154139594                                                  IDENT@15412..15413 "j"9595                                              R_BRACK@15413..15414 "]"9596                                            R_BRACK@15414..15415 "]"9597                                      R_PAREN@15415..15416 ")"9598                                      WHITESPACE@15416..15417 " "9599                                      TAILSTRICT_KW@15417..15427 "tailstrict"9600            SEMI@15427..15428 ";"9601            WHITESPACE@15428..15433 "\n    "9602            EXPR_APPLY@15433..154529603              EXPR_VAR@15433..154369604                NAME@15433..154369605                  IDENT@15433..15436 "aux"9606              ARGS_DESC@15436..154529607                L_PAREN@15436..15437 "("9608                ARG@15437..154389609                  EXPR_VAR@15437..154389610                    NAME@15437..154389611                      IDENT@15437..15438 "a"9612                COMMA@15438..15439 ","9613                WHITESPACE@15439..15440 " "9614                ARG@15440..154419615                  EXPR_VAR@15440..154419616                    NAME@15440..154419617                      IDENT@15440..15441 "b"9618                COMMA@15441..15442 ","9619                WHITESPACE@15442..15443 " "9620                ARG@15443..154449621                  EXPR_NUMBER@15443..154449622                    FLOAT@15443..15444 "0"9623                COMMA@15444..15445 ","9624                WHITESPACE@15445..15446 " "9625                ARG@15446..154479626                  EXPR_NUMBER@15446..154479627                    FLOAT@15446..15447 "0"9628                COMMA@15447..15448 ","9629                WHITESPACE@15448..15449 " "9630                ARG@15449..154519631                  EXPR_ARRAY@15449..154519632                    L_BRACK@15449..15450 "["9633                    R_BRACK@15450..15451 "]"9634                R_PAREN@15451..15452 ")"9635      COMMA@15452..15453 ","9636      WHITESPACE@15453..15457 "\n\n  "9637      MEMBER_FIELD@15457..158799638        FIELD_METHOD@15457..158799639          FIELD_NAME_FIXED@15457..154659640            NAME@15457..154659641              IDENT@15457..15465 "setInter"9642          PARAMS_DESC@15465..154809643            L_PAREN@15465..15466 "("9644            PARAM@15466..154679645              DESTRUCT_FULL@15466..154679646                NAME@15466..154679647                  IDENT@15466..15467 "a"9648            COMMA@15467..15468 ","9649            WHITESPACE@15468..15469 " "9650            PARAM@15469..154709651              DESTRUCT_FULL@15469..154709652                NAME@15469..154709653                  IDENT@15469..15470 "b"9654            COMMA@15470..15471 ","9655            WHITESPACE@15471..15472 " "9656            PARAM@15472..154799657              DESTRUCT_FULL@15472..154769658                NAME@15472..154769659                  IDENT@15472..15476 "keyF"9660              ASSIGN@15476..15477 "="9661              EXPR_VAR@15477..154799662                NAME@15477..154799663                  IDENT@15477..15479 "id"9664            R_PAREN@15479..15480 ")"9665          COLONCOLON@15480..15482 "::"9666          WHITESPACE@15482..15487 "\n    "9667          EXPR_LOCAL@15487..158799668            LOCAL_KW@15487..15492 "local"9669            WHITESPACE@15492..15493 " "9670            BIND_FUNCTION@15493..158439671              NAME@15493..154969672                IDENT@15493..15496 "aux"9673              PARAMS_DESC@15496..155139674                L_PAREN@15496..15497 "("9675                PARAM@15497..154989676                  DESTRUCT_FULL@15497..154989677                    NAME@15497..154989678                      IDENT@15497..15498 "a"9679                COMMA@15498..15499 ","9680                WHITESPACE@15499..15500 " "9681                PARAM@15500..155019682                  DESTRUCT_FULL@15500..155019683                    NAME@15500..155019684                      IDENT@15500..15501 "b"9685                COMMA@15501..15502 ","9686                WHITESPACE@15502..15503 " "9687                PARAM@15503..155049688                  DESTRUCT_FULL@15503..155049689                    NAME@15503..155049690                      IDENT@15503..15504 "i"9691                COMMA@15504..15505 ","9692                WHITESPACE@15505..15506 " "9693                PARAM@15506..155079694                  DESTRUCT_FULL@15506..155079695                    NAME@15506..155079696                      IDENT@15506..15507 "j"9697                COMMA@15507..15508 ","9698                WHITESPACE@15508..15509 " "9699                PARAM@15509..155129700                  DESTRUCT_FULL@15509..155129701                    NAME@15509..155129702                      IDENT@15509..15512 "acc"9703                R_PAREN@15512..15513 ")"9704              WHITESPACE@15513..15514 " "9705              ASSIGN@15514..15515 "="9706              WHITESPACE@15515..15522 "\n      "9707              EXPR_IF_THEN_ELSE@15522..158439708                IF_KW@15522..15524 "if"9709                WHITESPACE@15524..15525 " "9710                EXPR_BINARY@15525..155659711                  LHS_EXPR@15525..155439712                    EXPR_BINARY@15525..155439713                      LHS_EXPR@15525..155269714                        EXPR_VAR@15525..155269715                          NAME@15525..155269716                            IDENT@15525..15526 "i"9717                      WHITESPACE@15526..15527 " "9718                      GE@15527..15529 ">="9719                      WHITESPACE@15529..15530 " "9720                      EXPR_APPLY@15530..155439721                        EXPR_INDEX@15530..155409722                          EXPR_VAR@15530..155339723                            NAME@15530..155339724                              IDENT@15530..15533 "std"9725                          DOT@15533..15534 "."9726                          NAME@15534..155409727                            IDENT@15534..15540 "length"9728                        ARGS_DESC@15540..155439729                          L_PAREN@15540..15541 "("9730                          ARG@15541..155429731                            EXPR_VAR@15541..155429732                              NAME@15541..155429733                                IDENT@15541..15542 "a"9734                          R_PAREN@15542..15543 ")"9735                  WHITESPACE@15543..15544 " "9736                  OR@15544..15546 "||"9737                  WHITESPACE@15546..15547 " "9738                  EXPR_BINARY@15547..155659739                    LHS_EXPR@15547..155489740                      EXPR_VAR@15547..155489741                        NAME@15547..155489742                          IDENT@15547..15548 "j"9743                    WHITESPACE@15548..15549 " "9744                    GE@15549..15551 ">="9745                    WHITESPACE@15551..15552 " "9746                    EXPR_APPLY@15552..155659747                      EXPR_INDEX@15552..155629748                        EXPR_VAR@15552..155559749                          NAME@15552..155559750                            IDENT@15552..15555 "std"9751                        DOT@15555..15556 "."9752                        NAME@15556..155629753                          IDENT@15556..15562 "length"9754                      ARGS_DESC@15562..155659755                        L_PAREN@15562..15563 "("9756                        ARG@15563..155649757                          EXPR_VAR@15563..155649758                            NAME@15563..155649759                              IDENT@15563..15564 "b"9760                        R_PAREN@15564..15565 ")"9761                WHITESPACE@15565..15566 " "9762                THEN_KW@15566..15570 "then"9763                WHITESPACE@15570..15579 "\n        "9764                TRUE_EXPR@15579..155829765                  EXPR_VAR@15579..155829766                    NAME@15579..155829767                      IDENT@15579..15582 "acc"9768                WHITESPACE@15582..15589 "\n      "9769                ELSE_KW@15589..15593 "else"9770                WHITESPACE@15593..15602 "\n        "9771                FALSE_EXPR@15602..158439772                  EXPR_IF_THEN_ELSE@15602..158439773                    IF_KW@15602..15604 "if"9774                    WHITESPACE@15604..15605 " "9775                    EXPR_BINARY@15605..156299776                      LHS_EXPR@15605..156159777                        EXPR_APPLY@15605..156159778                          EXPR_VAR@15605..156099779                            NAME@15605..156099780                              IDENT@15605..15609 "keyF"9781                          ARGS_DESC@15609..156159782                            L_PAREN@15609..15610 "("9783                            ARG@15610..156149784                              EXPR_INDEX_EXPR@15610..156149785                                LHS_EXPR@15610..156119786                                  EXPR_VAR@15610..156119787                                    NAME@15610..156119788                                      IDENT@15610..15611 "a"9789                                L_BRACK@15611..15612 "["9790                                EXPR_VAR@15612..156139791                                  NAME@15612..156139792                                    IDENT@15612..15613 "i"9793                                R_BRACK@15613..15614 "]"9794                            R_PAREN@15614..15615 ")"9795                      WHITESPACE@15615..15616 " "9796                      EQ@15616..15618 "=="9797                      WHITESPACE@15618..15619 " "9798                      EXPR_APPLY@15619..156299799                        EXPR_VAR@15619..156239800                          NAME@15619..156239801                            IDENT@15619..15623 "keyF"9802                        ARGS_DESC@15623..156299803                          L_PAREN@15623..15624 "("9804                          ARG@15624..156289805                            EXPR_INDEX_EXPR@15624..156289806                              LHS_EXPR@15624..156259807                                EXPR_VAR@15624..156259808                                  NAME@15624..156259809                                    IDENT@15624..15625 "b"9810                              L_BRACK@15625..15626 "["9811                              EXPR_VAR@15626..156279812                                NAME@15626..156279813                                  IDENT@15626..15627 "j"9814                              R_BRACK@15627..15628 "]"9815                          R_PAREN@15628..15629 ")"9816                    WHITESPACE@15629..15630 " "9817                    THEN_KW@15630..15634 "then"9818                    WHITESPACE@15634..15645 "\n          "9819                    TRUE_EXPR@15645..156939820                      EXPR_APPLY@15645..156939821                        EXPR_VAR@15645..156489822                          NAME@15645..156489823                            IDENT@15645..15648 "aux"9824                        ARGS_DESC@15648..156939825                          L_PAREN@15648..15649 "("9826                          ARG@15649..156509827                            EXPR_VAR@15649..156509828                              NAME@15649..156509829                                IDENT@15649..15650 "a"9830                          COMMA@15650..15651 ","9831                          WHITESPACE@15651..15652 " "9832                          ARG@15652..156539833                            EXPR_VAR@15652..156539834                              NAME@15652..156539835                                IDENT@15652..15653 "b"9836                          COMMA@15653..15654 ","9837                          WHITESPACE@15654..15655 " "9838                          ARG@15655..156609839                            EXPR_BINARY@15655..156609840                              LHS_EXPR@15655..156569841                                EXPR_VAR@15655..156569842                                  NAME@15655..156569843                                    IDENT@15655..15656 "i"9844                              WHITESPACE@15656..15657 " "9845                              PLUS@15657..15658 "+"9846                              WHITESPACE@15658..15659 " "9847                              EXPR_NUMBER@15659..156609848                                FLOAT@15659..15660 "1"9849                          COMMA@15660..15661 ","9850                          WHITESPACE@15661..15662 " "9851                          ARG@15662..156679852                            EXPR_BINARY@15662..156679853                              LHS_EXPR@15662..156639854                                EXPR_VAR@15662..156639855                                  NAME@15662..156639856                                    IDENT@15662..15663 "j"9857                              WHITESPACE@15663..15664 " "9858                              PLUS@15664..15665 "+"9859                              WHITESPACE@15665..15666 " "9860                              EXPR_NUMBER@15666..156679861                                FLOAT@15666..15667 "1"9862                          COMMA@15667..15668 ","9863                          WHITESPACE@15668..15669 " "9864                          ARG@15669..156819865                            EXPR_BINARY@15669..156819866                              LHS_EXPR@15669..156729867                                EXPR_VAR@15669..156729868                                  NAME@15669..156729869                                    IDENT@15669..15672 "acc"9870                              WHITESPACE@15672..15673 " "9871                              PLUS@15673..15674 "+"9872                              WHITESPACE@15674..15675 " "9873                              EXPR_ARRAY@15675..156819874                                L_BRACK@15675..15676 "["9875                                EXPR_INDEX_EXPR@15676..156809876                                  LHS_EXPR@15676..156779877                                    EXPR_VAR@15676..156779878                                      NAME@15676..156779879                                        IDENT@15676..15677 "a"9880                                  L_BRACK@15677..15678 "["9881                                  EXPR_VAR@15678..156799882                                    NAME@15678..156799883                                      IDENT@15678..15679 "i"9884                                  R_BRACK@15679..15680 "]"9885                                R_BRACK@15680..15681 "]"9886                          R_PAREN@15681..15682 ")"9887                          WHITESPACE@15682..15683 " "9888                          TAILSTRICT_KW@15683..15693 "tailstrict"9889                    WHITESPACE@15693..15702 "\n        "9890                    ELSE_KW@15702..15706 "else"9891                    WHITESPACE@15706..15707 " "9892                    FALSE_EXPR@15707..158439893                      EXPR_IF_THEN_ELSE@15707..158439894                        IF_KW@15707..15709 "if"9895                        WHITESPACE@15709..15710 " "9896                        EXPR_BINARY@15710..157339897                          LHS_EXPR@15710..157209898                            EXPR_APPLY@15710..157209899                              EXPR_VAR@15710..157149900                                NAME@15710..157149901                                  IDENT@15710..15714 "keyF"9902                              ARGS_DESC@15714..157209903                                L_PAREN@15714..15715 "("9904                                ARG@15715..157199905                                  EXPR_INDEX_EXPR@15715..157199906                                    LHS_EXPR@15715..157169907                                      EXPR_VAR@15715..157169908                                        NAME@15715..157169909                                          IDENT@15715..15716 "a"9910                                    L_BRACK@15716..15717 "["9911                                    EXPR_VAR@15717..157189912                                      NAME@15717..157189913                                        IDENT@15717..15718 "i"9914                                    R_BRACK@15718..15719 "]"9915                                R_PAREN@15719..15720 ")"9916                          WHITESPACE@15720..15721 " "9917                          LT@15721..15722 "<"9918                          WHITESPACE@15722..15723 " "9919                          EXPR_APPLY@15723..157339920                            EXPR_VAR@15723..157279921                              NAME@15723..157279922                                IDENT@15723..15727 "keyF"9923                            ARGS_DESC@15727..157339924                              L_PAREN@15727..15728 "("9925                              ARG@15728..157329926                                EXPR_INDEX_EXPR@15728..157329927                                  LHS_EXPR@15728..157299928                                    EXPR_VAR@15728..157299929                                      NAME@15728..157299930                                        IDENT@15728..15729 "b"9931                                  L_BRACK@15729..15730 "["9932                                  EXPR_VAR@15730..157319933                                    NAME@15730..157319934                                      IDENT@15730..15731 "j"9935                                  R_BRACK@15731..15732 "]"9936                              R_PAREN@15732..15733 ")"9937                        WHITESPACE@15733..15734 " "9938                        THEN_KW@15734..15738 "then"9939                        WHITESPACE@15738..15749 "\n          "9940                        TRUE_EXPR@15749..157849941                          EXPR_APPLY@15749..157849942                            EXPR_VAR@15749..157529943                              NAME@15749..157529944                                IDENT@15749..15752 "aux"9945                            ARGS_DESC@15752..157849946                              L_PAREN@15752..15753 "("9947                              ARG@15753..157549948                                EXPR_VAR@15753..157549949                                  NAME@15753..157549950                                    IDENT@15753..15754 "a"9951                              COMMA@15754..15755 ","9952                              WHITESPACE@15755..15756 " "9953                              ARG@15756..157579954                                EXPR_VAR@15756..157579955                                  NAME@15756..157579956                                    IDENT@15756..15757 "b"9957                              COMMA@15757..15758 ","9958                              WHITESPACE@15758..15759 " "9959                              ARG@15759..157649960                                EXPR_BINARY@15759..157649961                                  LHS_EXPR@15759..157609962                                    EXPR_VAR@15759..157609963                                      NAME@15759..157609964                                        IDENT@15759..15760 "i"9965                                  WHITESPACE@15760..15761 " "9966                                  PLUS@15761..15762 "+"9967                                  WHITESPACE@15762..15763 " "9968                                  EXPR_NUMBER@15763..157649969                                    FLOAT@15763..15764 "1"9970                              COMMA@15764..15765 ","9971                              WHITESPACE@15765..15766 " "9972                              ARG@15766..157679973                                EXPR_VAR@15766..157679974                                  NAME@15766..157679975                                    IDENT@15766..15767 "j"9976                              COMMA@15767..15768 ","9977                              WHITESPACE@15768..15769 " "9978                              ARG@15769..157729979                                EXPR_VAR@15769..157729980                                  NAME@15769..157729981                                    IDENT@15769..15772 "acc"9982                              R_PAREN@15772..15773 ")"9983                              WHITESPACE@15773..15774 " "9984                              TAILSTRICT_KW@15774..15784 "tailstrict"9985                        WHITESPACE@15784..15793 "\n        "9986                        ELSE_KW@15793..15797 "else"9987                        WHITESPACE@15797..15808 "\n          "9988                        FALSE_EXPR@15808..158439989                          EXPR_APPLY@15808..158439990                            EXPR_VAR@15808..158119991                              NAME@15808..158119992                                IDENT@15808..15811 "aux"9993                            ARGS_DESC@15811..158439994                              L_PAREN@15811..15812 "("9995                              ARG@15812..158139996                                EXPR_VAR@15812..158139997                                  NAME@15812..158139998                                    IDENT@15812..15813 "a"9999                              COMMA@15813..15814 ","10000                              WHITESPACE@15814..15815 " "10001                              ARG@15815..1581610002                                EXPR_VAR@15815..1581610003                                  NAME@15815..1581610004                                    IDENT@15815..15816 "b"10005                              COMMA@15816..15817 ","10006                              WHITESPACE@15817..15818 " "10007                              ARG@15818..1581910008                                EXPR_VAR@15818..1581910009                                  NAME@15818..1581910010                                    IDENT@15818..15819 "i"10011                              COMMA@15819..15820 ","10012                              WHITESPACE@15820..15821 " "10013                              ARG@15821..1582610014                                EXPR_BINARY@15821..1582610015                                  LHS_EXPR@15821..1582210016                                    EXPR_VAR@15821..1582210017                                      NAME@15821..1582210018                                        IDENT@15821..15822 "j"10019                                  WHITESPACE@15822..15823 " "10020                                  PLUS@15823..15824 "+"10021                                  WHITESPACE@15824..15825 " "10022                                  EXPR_NUMBER@15825..1582610023                                    FLOAT@15825..15826 "1"10024                              COMMA@15826..15827 ","10025                              WHITESPACE@15827..15828 " "10026                              ARG@15828..1583110027                                EXPR_VAR@15828..1583110028                                  NAME@15828..1583110029                                    IDENT@15828..15831 "acc"10030                              R_PAREN@15831..15832 ")"10031                              WHITESPACE@15832..15833 " "10032                              TAILSTRICT_KW@15833..15843 "tailstrict"10033            SEMI@15843..15844 ";"10034            WHITESPACE@15844..15849 "\n    "10035            EXPR_APPLY@15849..1587910036              EXPR_VAR@15849..1585210037                NAME@15849..1585210038                  IDENT@15849..15852 "aux"10039              ARGS_DESC@15852..1587910040                L_PAREN@15852..15853 "("10041                ARG@15853..1585410042                  EXPR_VAR@15853..1585410043                    NAME@15853..1585410044                      IDENT@15853..15854 "a"10045                COMMA@15854..15855 ","10046                WHITESPACE@15855..15856 " "10047                ARG@15856..1585710048                  EXPR_VAR@15856..1585710049                    NAME@15856..1585710050                      IDENT@15856..15857 "b"10051                COMMA@15857..15858 ","10052                WHITESPACE@15858..15859 " "10053                ARG@15859..1586010054                  EXPR_NUMBER@15859..1586010055                    FLOAT@15859..15860 "0"10056                COMMA@15860..15861 ","10057                WHITESPACE@15861..15862 " "10058                ARG@15862..1586310059                  EXPR_NUMBER@15862..1586310060                    FLOAT@15862..15863 "0"10061                COMMA@15863..15864 ","10062                WHITESPACE@15864..15865 " "10063                ARG@15865..1586710064                  EXPR_ARRAY@15865..1586710065                    L_BRACK@15865..15866 "["10066                    R_BRACK@15866..15867 "]"10067                R_PAREN@15867..15868 ")"10068                WHITESPACE@15868..15869 " "10069                TAILSTRICT_KW@15869..15879 "tailstrict"10070      COMMA@15879..15880 ","10071      WHITESPACE@15880..15884 "\n\n  "10072      MEMBER_FIELD@15884..1634110073        FIELD_METHOD@15884..1634110074          FIELD_NAME_FIXED@15884..1589110075            NAME@15884..1589110076              IDENT@15884..15891 "setDiff"10077          PARAMS_DESC@15891..1590610078            L_PAREN@15891..15892 "("10079            PARAM@15892..1589310080              DESTRUCT_FULL@15892..1589310081                NAME@15892..1589310082                  IDENT@15892..15893 "a"10083            COMMA@15893..15894 ","10084            WHITESPACE@15894..15895 " "10085            PARAM@15895..1589610086              DESTRUCT_FULL@15895..1589610087                NAME@15895..1589610088                  IDENT@15895..15896 "b"10089            COMMA@15896..15897 ","10090            WHITESPACE@15897..15898 " "10091            PARAM@15898..1590510092              DESTRUCT_FULL@15898..1590210093                NAME@15898..1590210094                  IDENT@15898..15902 "keyF"10095              ASSIGN@15902..15903 "="10096              EXPR_VAR@15903..1590510097                NAME@15903..1590510098                  IDENT@15903..15905 "id"10099            R_PAREN@15905..15906 ")"10100          COLONCOLON@15906..15908 "::"10101          WHITESPACE@15908..15913 "\n    "10102          EXPR_LOCAL@15913..1634110103            LOCAL_KW@15913..15918 "local"10104            WHITESPACE@15918..15919 " "10105            BIND_FUNCTION@15919..1630510106              NAME@15919..1592210107                IDENT@15919..15922 "aux"10108              PARAMS_DESC@15922..1593910109                L_PAREN@15922..15923 "("10110                PARAM@15923..1592410111                  DESTRUCT_FULL@15923..1592410112                    NAME@15923..1592410113                      IDENT@15923..15924 "a"10114                COMMA@15924..15925 ","10115                WHITESPACE@15925..15926 " "10116                PARAM@15926..1592710117                  DESTRUCT_FULL@15926..1592710118                    NAME@15926..1592710119                      IDENT@15926..15927 "b"10120                COMMA@15927..15928 ","10121                WHITESPACE@15928..15929 " "10122                PARAM@15929..1593010123                  DESTRUCT_FULL@15929..1593010124                    NAME@15929..1593010125                      IDENT@15929..15930 "i"10126                COMMA@15930..15931 ","10127                WHITESPACE@15931..15932 " "10128                PARAM@15932..1593310129                  DESTRUCT_FULL@15932..1593310130                    NAME@15932..1593310131                      IDENT@15932..15933 "j"10132                COMMA@15933..15934 ","10133                WHITESPACE@15934..15935 " "10134                PARAM@15935..1593810135                  DESTRUCT_FULL@15935..1593810136                    NAME@15935..1593810137                      IDENT@15935..15938 "acc"10138                R_PAREN@15938..15939 ")"10139              WHITESPACE@15939..15940 " "10140              ASSIGN@15940..15941 "="10141              WHITESPACE@15941..15948 "\n      "10142              EXPR_IF_THEN_ELSE@15948..1630510143                IF_KW@15948..15950 "if"10144                WHITESPACE@15950..15951 " "10145                EXPR_BINARY@15951..1596910146                  LHS_EXPR@15951..1595210147                    EXPR_VAR@15951..1595210148                      NAME@15951..1595210149                        IDENT@15951..15952 "i"10150                  WHITESPACE@15952..15953 " "10151                  GE@15953..15955 ">="10152                  WHITESPACE@15955..15956 " "10153                  EXPR_APPLY@15956..1596910154                    EXPR_INDEX@15956..1596610155                      EXPR_VAR@15956..1595910156                        NAME@15956..1595910157                          IDENT@15956..15959 "std"10158                      DOT@15959..15960 "."10159                      NAME@15960..1596610160                        IDENT@15960..15966 "length"10161                    ARGS_DESC@15966..1596910162                      L_PAREN@15966..15967 "("10163                      ARG@15967..1596810164                        EXPR_VAR@15967..1596810165                          NAME@15967..1596810166                            IDENT@15967..15968 "a"10167                      R_PAREN@15968..15969 ")"10168                WHITESPACE@15969..15970 " "10169                THEN_KW@15970..15974 "then"10170                WHITESPACE@15974..15983 "\n        "10171                TRUE_EXPR@15983..1598610172                  EXPR_VAR@15983..1598610173                    NAME@15983..1598610174                      IDENT@15983..15986 "acc"10175                WHITESPACE@15986..15993 "\n      "10176                ELSE_KW@15993..15997 "else"10177                WHITESPACE@15997..15998 " "10178                FALSE_EXPR@15998..1630510179                  EXPR_IF_THEN_ELSE@15998..1630510180                    IF_KW@15998..16000 "if"10181                    WHITESPACE@16000..16001 " "10182                    EXPR_BINARY@16001..1601910183                      LHS_EXPR@16001..1600210184                        EXPR_VAR@16001..1600210185                          NAME@16001..1600210186                            IDENT@16001..16002 "j"10187                      WHITESPACE@16002..16003 " "10188                      GE@16003..16005 ">="10189                      WHITESPACE@16005..16006 " "10190                      EXPR_APPLY@16006..1601910191                        EXPR_INDEX@16006..1601610192                          EXPR_VAR@16006..1600910193                            NAME@16006..1600910194                              IDENT@16006..16009 "std"10195                          DOT@16009..16010 "."10196                          NAME@16010..1601610197                            IDENT@16010..16016 "length"10198                        ARGS_DESC@16016..1601910199                          L_PAREN@16016..16017 "("10200                          ARG@16017..1601810201                            EXPR_VAR@16017..1601810202                              NAME@16017..1601810203                                IDENT@16017..16018 "b"10204                          R_PAREN@16018..16019 ")"10205                    WHITESPACE@16019..16020 " "10206                    THEN_KW@16020..16024 "then"10207                    WHITESPACE@16024..16033 "\n        "10208                    TRUE_EXPR@16033..1604410209                      EXPR_BINARY@16033..1604410210                        LHS_EXPR@16033..1603610211                          EXPR_VAR@16033..1603610212                            NAME@16033..1603610213                              IDENT@16033..16036 "acc"10214                        WHITESPACE@16036..16037 " "10215                        PLUS@16037..16038 "+"10216                        WHITESPACE@16038..16039 " "10217                        EXPR_SLICE@16039..1604410218                          EXPR_VAR@16039..1604010219                            NAME@16039..1604010220                              IDENT@16039..16040 "a"10221                          SLICE_DESC@16040..1604410222                            L_BRACK@16040..16041 "["10223                            EXPR_VAR@16041..1604210224                              NAME@16041..1604210225                                IDENT@16041..16042 "i"10226                            COLON@16042..16043 ":"10227                            R_BRACK@16043..16044 "]"10228                    WHITESPACE@16044..16051 "\n      "10229                    ELSE_KW@16051..16055 "else"10230                    WHITESPACE@16055..16064 "\n        "10231                    FALSE_EXPR@16064..1630510232                      EXPR_IF_THEN_ELSE@16064..1630510233                        IF_KW@16064..16066 "if"10234                        WHITESPACE@16066..16067 " "10235                        EXPR_BINARY@16067..1609110236                          LHS_EXPR@16067..1607710237                            EXPR_APPLY@16067..1607710238                              EXPR_VAR@16067..1607110239                                NAME@16067..1607110240                                  IDENT@16067..16071 "keyF"10241                              ARGS_DESC@16071..1607710242                                L_PAREN@16071..16072 "("10243                                ARG@16072..1607610244                                  EXPR_INDEX_EXPR@16072..1607610245                                    LHS_EXPR@16072..1607310246                                      EXPR_VAR@16072..1607310247                                        NAME@16072..1607310248                                          IDENT@16072..16073 "a"10249                                    L_BRACK@16073..16074 "["10250                                    EXPR_VAR@16074..1607510251                                      NAME@16074..1607510252                                        IDENT@16074..16075 "i"10253                                    R_BRACK@16075..16076 "]"10254                                R_PAREN@16076..16077 ")"10255                          WHITESPACE@16077..16078 " "10256                          EQ@16078..16080 "=="10257                          WHITESPACE@16080..16081 " "10258                          EXPR_APPLY@16081..1609110259                            EXPR_VAR@16081..1608510260                              NAME@16081..1608510261                                IDENT@16081..16085 "keyF"10262                            ARGS_DESC@16085..1609110263                              L_PAREN@16085..16086 "("10264                              ARG@16086..1609010265                                EXPR_INDEX_EXPR@16086..1609010266                                  LHS_EXPR@16086..1608710267                                    EXPR_VAR@16086..1608710268                                      NAME@16086..1608710269                                        IDENT@16086..16087 "b"10270                                  L_BRACK@16087..16088 "["10271                                  EXPR_VAR@16088..1608910272                                    NAME@16088..1608910273                                      IDENT@16088..16089 "j"10274                                  R_BRACK@16089..16090 "]"10275                              R_PAREN@16090..16091 ")"10276                        WHITESPACE@16091..16092 " "10277                        THEN_KW@16092..16096 "then"10278                        WHITESPACE@16096..16107 "\n          "10279                        TRUE_EXPR@16107..1614610280                          EXPR_APPLY@16107..1614610281                            EXPR_VAR@16107..1611010282                              NAME@16107..1611010283                                IDENT@16107..16110 "aux"10284                            ARGS_DESC@16110..1614610285                              L_PAREN@16110..16111 "("10286                              ARG@16111..1611210287                                EXPR_VAR@16111..1611210288                                  NAME@16111..1611210289                                    IDENT@16111..16112 "a"10290                              COMMA@16112..16113 ","10291                              WHITESPACE@16113..16114 " "10292                              ARG@16114..1611510293                                EXPR_VAR@16114..1611510294                                  NAME@16114..1611510295                                    IDENT@16114..16115 "b"10296                              COMMA@16115..16116 ","10297                              WHITESPACE@16116..16117 " "10298                              ARG@16117..1612210299                                EXPR_BINARY@16117..1612210300                                  LHS_EXPR@16117..1611810301                                    EXPR_VAR@16117..1611810302                                      NAME@16117..1611810303                                        IDENT@16117..16118 "i"10304                                  WHITESPACE@16118..16119 " "10305                                  PLUS@16119..16120 "+"10306                                  WHITESPACE@16120..16121 " "10307                                  EXPR_NUMBER@16121..1612210308                                    FLOAT@16121..16122 "1"10309                              COMMA@16122..16123 ","10310                              WHITESPACE@16123..16124 " "10311                              ARG@16124..1612910312                                EXPR_BINARY@16124..1612910313                                  LHS_EXPR@16124..1612510314                                    EXPR_VAR@16124..1612510315                                      NAME@16124..1612510316                                        IDENT@16124..16125 "j"10317                                  WHITESPACE@16125..16126 " "10318                                  PLUS@16126..16127 "+"10319                                  WHITESPACE@16127..16128 " "10320                                  EXPR_NUMBER@16128..1612910321                                    FLOAT@16128..16129 "1"10322                              COMMA@16129..16130 ","10323                              WHITESPACE@16130..16131 " "10324                              ARG@16131..1613410325                                EXPR_VAR@16131..1613410326                                  NAME@16131..1613410327                                    IDENT@16131..16134 "acc"10328                              R_PAREN@16134..16135 ")"10329                              WHITESPACE@16135..16136 " "10330                              TAILSTRICT_KW@16136..16146 "tailstrict"10331                        WHITESPACE@16146..16155 "\n        "10332                        ELSE_KW@16155..16159 "else"10333                        WHITESPACE@16159..16160 " "10334                        FALSE_EXPR@16160..1630510335                          EXPR_IF_THEN_ELSE@16160..1630510336                            IF_KW@16160..16162 "if"10337                            WHITESPACE@16162..16163 " "10338                            EXPR_BINARY@16163..1618610339                              LHS_EXPR@16163..1617310340                                EXPR_APPLY@16163..1617310341                                  EXPR_VAR@16163..1616710342                                    NAME@16163..1616710343                                      IDENT@16163..16167 "keyF"10344                                  ARGS_DESC@16167..1617310345                                    L_PAREN@16167..16168 "("10346                                    ARG@16168..1617210347                                      EXPR_INDEX_EXPR@16168..1617210348                                        LHS_EXPR@16168..1616910349                                          EXPR_VAR@16168..1616910350                                            NAME@16168..1616910351                                              IDENT@16168..16169 "a"10352                                        L_BRACK@16169..16170 "["10353                                        EXPR_VAR@16170..1617110354                                          NAME@16170..1617110355                                            IDENT@16170..16171 "i"10356                                        R_BRACK@16171..16172 "]"10357                                    R_PAREN@16172..16173 ")"10358                              WHITESPACE@16173..16174 " "10359                              LT@16174..16175 "<"10360                              WHITESPACE@16175..16176 " "10361                              EXPR_APPLY@16176..1618610362                                EXPR_VAR@16176..1618010363                                  NAME@16176..1618010364                                    IDENT@16176..16180 "keyF"10365                                ARGS_DESC@16180..1618610366                                  L_PAREN@16180..16181 "("10367                                  ARG@16181..1618510368                                    EXPR_INDEX_EXPR@16181..1618510369                                      LHS_EXPR@16181..1618210370                                        EXPR_VAR@16181..1618210371                                          NAME@16181..1618210372                                            IDENT@16181..16182 "b"10373                                      L_BRACK@16182..16183 "["10374                                      EXPR_VAR@16183..1618410375                                        NAME@16183..1618410376                                          IDENT@16183..16184 "j"10377                                      R_BRACK@16184..16185 "]"10378                                  R_PAREN@16185..16186 ")"10379                            WHITESPACE@16186..16187 " "10380                            THEN_KW@16187..16191 "then"10381                            WHITESPACE@16191..16202 "\n          "10382                            TRUE_EXPR@16202..1624610383                              EXPR_APPLY@16202..1624610384                                EXPR_VAR@16202..1620510385                                  NAME@16202..1620510386                                    IDENT@16202..16205 "aux"10387                                ARGS_DESC@16205..1624610388                                  L_PAREN@16205..16206 "("10389                                  ARG@16206..1620710390                                    EXPR_VAR@16206..1620710391                                      NAME@16206..1620710392                                        IDENT@16206..16207 "a"10393                                  COMMA@16207..16208 ","10394                                  WHITESPACE@16208..16209 " "10395                                  ARG@16209..1621010396                                    EXPR_VAR@16209..1621010397                                      NAME@16209..1621010398                                        IDENT@16209..16210 "b"10399                                  COMMA@16210..16211 ","10400                                  WHITESPACE@16211..16212 " "10401                                  ARG@16212..1621710402                                    EXPR_BINARY@16212..1621710403                                      LHS_EXPR@16212..1621310404                                        EXPR_VAR@16212..1621310405                                          NAME@16212..1621310406                                            IDENT@16212..16213 "i"10407                                      WHITESPACE@16213..16214 " "10408                                      PLUS@16214..16215 "+"10409                                      WHITESPACE@16215..16216 " "10410                                      EXPR_NUMBER@16216..1621710411                                        FLOAT@16216..16217 "1"10412                                  COMMA@16217..16218 ","10413                                  WHITESPACE@16218..16219 " "10414                                  ARG@16219..1622010415                                    EXPR_VAR@16219..1622010416                                      NAME@16219..1622010417                                        IDENT@16219..16220 "j"10418                                  COMMA@16220..16221 ","10419                                  WHITESPACE@16221..16222 " "10420                                  ARG@16222..1623410421                                    EXPR_BINARY@16222..1623410422                                      LHS_EXPR@16222..1622510423                                        EXPR_VAR@16222..1622510424                                          NAME@16222..1622510425                                            IDENT@16222..16225 "acc"10426                                      WHITESPACE@16225..16226 " "10427                                      PLUS@16226..16227 "+"10428                                      WHITESPACE@16227..16228 " "10429                                      EXPR_ARRAY@16228..1623410430                                        L_BRACK@16228..16229 "["10431                                        EXPR_INDEX_EXPR@16229..1623310432                                          LHS_EXPR@16229..1623010433                                            EXPR_VAR@16229..1623010434                                              NAME@16229..1623010435                                                IDENT@16229..16230 "a"10436                                          L_BRACK@16230..16231 "["10437                                          EXPR_VAR@16231..1623210438                                            NAME@16231..1623210439                                              IDENT@16231..16232 "i"10440                                          R_BRACK@16232..16233 "]"10441                                        R_BRACK@16233..16234 "]"10442                                  R_PAREN@16234..16235 ")"10443                                  WHITESPACE@16235..16236 " "10444                                  TAILSTRICT_KW@16236..16246 "tailstrict"10445                            WHITESPACE@16246..16255 "\n        "10446                            ELSE_KW@16255..16259 "else"10447                            WHITESPACE@16259..16270 "\n          "10448                            FALSE_EXPR@16270..1630510449                              EXPR_APPLY@16270..1630510450                                EXPR_VAR@16270..1627310451                                  NAME@16270..1627310452                                    IDENT@16270..16273 "aux"10453                                ARGS_DESC@16273..1630510454                                  L_PAREN@16273..16274 "("10455                                  ARG@16274..1627510456                                    EXPR_VAR@16274..1627510457                                      NAME@16274..1627510458                                        IDENT@16274..16275 "a"10459                                  COMMA@16275..16276 ","10460                                  WHITESPACE@16276..16277 " "10461                                  ARG@16277..1627810462                                    EXPR_VAR@16277..1627810463                                      NAME@16277..1627810464                                        IDENT@16277..16278 "b"10465                                  COMMA@16278..16279 ","10466                                  WHITESPACE@16279..16280 " "10467                                  ARG@16280..1628110468                                    EXPR_VAR@16280..1628110469                                      NAME@16280..1628110470                                        IDENT@16280..16281 "i"10471                                  COMMA@16281..16282 ","10472                                  WHITESPACE@16282..16283 " "10473                                  ARG@16283..1628810474                                    EXPR_BINARY@16283..1628810475                                      LHS_EXPR@16283..1628410476                                        EXPR_VAR@16283..1628410477                                          NAME@16283..1628410478                                            IDENT@16283..16284 "j"10479                                      WHITESPACE@16284..16285 " "10480                                      PLUS@16285..16286 "+"10481                                      WHITESPACE@16286..16287 " "10482                                      EXPR_NUMBER@16287..1628810483                                        FLOAT@16287..16288 "1"10484                                  COMMA@16288..16289 ","10485                                  WHITESPACE@16289..16290 " "10486                                  ARG@16290..1629310487                                    EXPR_VAR@16290..1629310488                                      NAME@16290..1629310489                                        IDENT@16290..16293 "acc"10490                                  R_PAREN@16293..16294 ")"10491                                  WHITESPACE@16294..16295 " "10492                                  TAILSTRICT_KW@16295..16305 "tailstrict"10493            SEMI@16305..16306 ";"10494            WHITESPACE@16306..16311 "\n    "10495            EXPR_APPLY@16311..1634110496              EXPR_VAR@16311..1631410497                NAME@16311..1631410498                  IDENT@16311..16314 "aux"10499              ARGS_DESC@16314..1634110500                L_PAREN@16314..16315 "("10501                ARG@16315..1631610502                  EXPR_VAR@16315..1631610503                    NAME@16315..1631610504                      IDENT@16315..16316 "a"10505                COMMA@16316..16317 ","10506                WHITESPACE@16317..16318 " "10507                ARG@16318..1631910508                  EXPR_VAR@16318..1631910509                    NAME@16318..1631910510                      IDENT@16318..16319 "b"10511                COMMA@16319..16320 ","10512                WHITESPACE@16320..16321 " "10513                ARG@16321..1632210514                  EXPR_NUMBER@16321..1632210515                    FLOAT@16321..16322 "0"10516                COMMA@16322..16323 ","10517                WHITESPACE@16323..16324 " "10518                ARG@16324..1632510519                  EXPR_NUMBER@16324..1632510520                    FLOAT@16324..16325 "0"10521                COMMA@16325..16326 ","10522                WHITESPACE@16326..16327 " "10523                ARG@16327..1632910524                  EXPR_ARRAY@16327..1632910525                    L_BRACK@16327..16328 "["10526                    R_BRACK@16328..16329 "]"10527                R_PAREN@16329..16330 ")"10528                WHITESPACE@16330..16331 " "10529                TAILSTRICT_KW@16331..16341 "tailstrict"10530      COMMA@16341..16342 ","10531      WHITESPACE@16342..16346 "\n\n  "10532      MEMBER_FIELD@16346..1713410533        FIELD_METHOD@16346..1713410534          FIELD_NAME_FIXED@16346..1635610535            NAME@16346..1635610536              IDENT@16346..16356 "mergePatch"10537          PARAMS_DESC@16356..1637110538            L_PAREN@16356..16357 "("10539            PARAM@16357..1636310540              DESTRUCT_FULL@16357..1636310541                NAME@16357..1636310542                  IDENT@16357..16363 "target"10543            COMMA@16363..16364 ","10544            WHITESPACE@16364..16365 " "10545            PARAM@16365..1637010546              DESTRUCT_FULL@16365..1637010547                NAME@16365..1637010548                  IDENT@16365..16370 "patch"10549            R_PAREN@16370..16371 ")"10550          COLONCOLON@16371..16373 "::"10551          WHITESPACE@16373..16378 "\n    "10552          EXPR_IF_THEN_ELSE@16378..1713410553            IF_KW@16378..16380 "if"10554            WHITESPACE@16380..16381 " "10555            EXPR_APPLY@16381..1640010556              EXPR_INDEX@16381..1639310557                EXPR_VAR@16381..1638410558                  NAME@16381..1638410559                    IDENT@16381..16384 "std"10560                DOT@16384..16385 "."10561                NAME@16385..1639310562                  IDENT@16385..16393 "isObject"10563              ARGS_DESC@16393..1640010564                L_PAREN@16393..16394 "("10565                ARG@16394..1639910566                  EXPR_VAR@16394..1639910567                    NAME@16394..1639910568                      IDENT@16394..16399 "patch"10569                R_PAREN@16399..16400 ")"10570            WHITESPACE@16400..16401 " "10571            THEN_KW@16401..16405 "then"10572            WHITESPACE@16405..16412 "\n      "10573            TRUE_EXPR@16412..1711310574              EXPR_LOCAL@16412..1711310575                LOCAL_KW@16412..16417 "local"10576                WHITESPACE@16417..16418 " "10577                BIND_DESTRUCT@16418..1648510578                  DESTRUCT_FULL@16418..1643110579                    NAME@16418..1643110580                      IDENT@16418..16431 "target_object"10581                  WHITESPACE@16431..16432 " "10582                  ASSIGN@16432..16433 "="10583                  WHITESPACE@16433..16442 "\n        "10584                  EXPR_IF_THEN_ELSE@16442..1648510585                    IF_KW@16442..16444 "if"10586                    WHITESPACE@16444..16445 " "10587                    EXPR_APPLY@16445..1646510588                      EXPR_INDEX@16445..1645710589                        EXPR_VAR@16445..1644810590                          NAME@16445..1644810591                            IDENT@16445..16448 "std"10592                        DOT@16448..16449 "."10593                        NAME@16449..1645710594                          IDENT@16449..16457 "isObject"10595                      ARGS_DESC@16457..1646510596                        L_PAREN@16457..16458 "("10597                        ARG@16458..1646410598                          EXPR_VAR@16458..1646410599                            NAME@16458..1646410600                              IDENT@16458..16464 "target"10601                        R_PAREN@16464..16465 ")"10602                    WHITESPACE@16465..16466 " "10603                    THEN_KW@16466..16470 "then"10604                    WHITESPACE@16470..16471 " "10605                    TRUE_EXPR@16471..1647710606                      EXPR_VAR@16471..1647710607                        NAME@16471..1647710608                          IDENT@16471..16477 "target"10609                    WHITESPACE@16477..16478 " "10610                    ELSE_KW@16478..16482 "else"10611                    WHITESPACE@16482..16483 " "10612                    FALSE_EXPR@16483..1648510613                      EXPR_OBJECT@16483..1648510614                        OBJ_BODY_MEMBER_LIST@16483..1648510615                          L_BRACE@16483..16484 "{"10616                          R_BRACE@16484..16485 "}"10617                SEMI@16485..16486 ";"10618                WHITESPACE@16486..16494 "\n\n      "10619                EXPR_LOCAL@16494..1711310620                  LOCAL_KW@16494..16499 "local"10621                  WHITESPACE@16499..16500 " "10622                  BIND_DESTRUCT@16500..1659910623                    DESTRUCT_FULL@16500..1651310624                      NAME@16500..1651310625                        IDENT@16500..16513 "target_fields"10626                    WHITESPACE@16513..16514 " "10627                    ASSIGN@16514..16515 "="10628                    WHITESPACE@16515..16524 "\n        "10629                    EXPR_IF_THEN_ELSE@16524..1659910630                      IF_KW@16524..16526 "if"10631                      WHITESPACE@16526..16527 " "10632                      EXPR_APPLY@16527..1655410633                        EXPR_INDEX@16527..1653910634                          EXPR_VAR@16527..1653010635                            NAME@16527..1653010636                              IDENT@16527..16530 "std"10637                          DOT@16530..16531 "."10638                          NAME@16531..1653910639                            IDENT@16531..16539 "isObject"10640                        ARGS_DESC@16539..1655410641                          L_PAREN@16539..16540 "("10642                          ARG@16540..1655310643                            EXPR_VAR@16540..1655310644                              NAME@16540..1655310645                                IDENT@16540..16553 "target_object"10646                          R_PAREN@16553..16554 ")"10647                      WHITESPACE@16554..16555 " "10648                      THEN_KW@16555..16559 "then"10649                      WHITESPACE@16559..16560 " "10650                      TRUE_EXPR@16560..1659110651                        EXPR_APPLY@16560..1659110652                          EXPR_INDEX@16560..1657610653                            EXPR_VAR@16560..1656310654                              NAME@16560..1656310655                                IDENT@16560..16563 "std"10656                            DOT@16563..16564 "."10657                            NAME@16564..1657610658                              IDENT@16564..16576 "objectFields"10659                          ARGS_DESC@16576..1659110660                            L_PAREN@16576..16577 "("10661                            ARG@16577..1659010662                              EXPR_VAR@16577..1659010663                                NAME@16577..1659010664                                  IDENT@16577..16590 "target_object"10665                            R_PAREN@16590..16591 ")"10666                      WHITESPACE@16591..16592 " "10667                      ELSE_KW@16592..16596 "else"10668                      WHITESPACE@16596..16597 " "10669                      FALSE_EXPR@16597..1659910670                        EXPR_ARRAY@16597..1659910671                          L_BRACK@16597..16598 "["10672                          R_BRACK@16598..16599 "]"10673                  SEMI@16599..16600 ";"10674                  WHITESPACE@16600..16608 "\n\n      "10675                  EXPR_LOCAL@16608..1711310676                    LOCAL_KW@16608..16613 "local"10677                    WHITESPACE@16613..16614 " "10678                    BIND_DESTRUCT@16614..1668410679                      DESTRUCT_FULL@16614..1662510680                        NAME@16614..1662510681                          IDENT@16614..16625 "null_fields"10682                      WHITESPACE@16625..16626 " "10683                      ASSIGN@16626..16627 "="10684                      WHITESPACE@16627..16628 " "10685                      EXPR_ARRAY_COMP@16628..1668410686                        L_BRACK@16628..16629 "["10687                        EXPR_VAR@16629..1663010688                          NAME@16629..1663010689                            IDENT@16629..16630 "k"10690                        WHITESPACE@16630..16631 " "10691                        FOR_SPEC@16631..1666310692                          FOR_KW@16631..16634 "for"10693                          WHITESPACE@16634..16635 " "10694                          NAME@16635..1663610695                            IDENT@16635..16636 "k"10696                          WHITESPACE@16636..16637 " "10697                          IN_KW@16637..16639 "in"10698                          WHITESPACE@16639..16640 " "10699                          EXPR_APPLY@16640..1666310700                            EXPR_INDEX@16640..1665610701                              EXPR_VAR@16640..1664310702                                NAME@16640..1664310703                                  IDENT@16640..16643 "std"10704                              DOT@16643..16644 "."10705                              NAME@16644..1665610706                                IDENT@16644..16656 "objectFields"10707                            ARGS_DESC@16656..1666310708                              L_PAREN@16656..16657 "("10709                              ARG@16657..1666210710                                EXPR_VAR@16657..1666210711                                  NAME@16657..1666210712                                    IDENT@16657..16662 "patch"10713                              R_PAREN@16662..16663 ")"10714                        WHITESPACE@16663..16664 " "10715                        IF_SPEC@16664..1668310716                          IF_KW@16664..16666 "if"10717                          WHITESPACE@16666..16667 " "10718                          EXPR_BINARY@16667..1668310719                            LHS_EXPR@16667..1667510720                              EXPR_INDEX_EXPR@16667..1667510721                                LHS_EXPR@16667..1667210722                                  EXPR_VAR@16667..1667210723                                    NAME@16667..1667210724                                      IDENT@16667..16672 "patch"10725                                L_BRACK@16672..16673 "["10726                                EXPR_VAR@16673..1667410727                                  NAME@16673..1667410728                                    IDENT@16673..16674 "k"10729                                R_BRACK@16674..16675 "]"10730                            WHITESPACE@16675..16676 " "10731                            EQ@16676..16678 "=="10732                            WHITESPACE@16678..16679 " "10733                            EXPR_LITERAL@16679..1668310734                              NULL_KW@16679..16683 "null"10735                        R_BRACK@16683..16684 "]"10736                    SEMI@16684..16685 ";"10737                    WHITESPACE@16685..16692 "\n      "10738                    EXPR_LOCAL@16692..1711310739                      LOCAL_KW@16692..16697 "local"10740                      WHITESPACE@16697..16698 " "10741                      BIND_DESTRUCT@16698..1676410742                        DESTRUCT_FULL@16698..1670910743                          NAME@16698..1670910744                            IDENT@16698..16709 "both_fields"10745                        WHITESPACE@16709..16710 " "10746                        ASSIGN@16710..16711 "="10747                        WHITESPACE@16711..16712 " "10748                        EXPR_APPLY@16712..1676410749                          EXPR_INDEX@16712..1672410750                            EXPR_VAR@16712..1671510751                              NAME@16712..1671510752                                IDENT@16712..16715 "std"10753                            DOT@16715..16716 "."10754                            NAME@16716..1672410755                              IDENT@16716..16724 "setUnion"10756                          ARGS_DESC@16724..1676410757                            L_PAREN@16724..16725 "("10758                            ARG@16725..1673810759                              EXPR_VAR@16725..1673810760                                NAME@16725..1673810761                                  IDENT@16725..16738 "target_fields"10762                            COMMA@16738..16739 ","10763                            WHITESPACE@16739..16740 " "10764                            ARG@16740..1676310765                              EXPR_APPLY@16740..1676310766                                EXPR_INDEX@16740..1675610767                                  EXPR_VAR@16740..1674310768                                    NAME@16740..1674310769                                      IDENT@16740..16743 "std"10770                                  DOT@16743..16744 "."10771                                  NAME@16744..1675610772                                    IDENT@16744..16756 "objectFields"10773                                ARGS_DESC@16756..1676310774                                  L_PAREN@16756..16757 "("10775                                  ARG@16757..1676210776                                    EXPR_VAR@16757..1676210777                                      NAME@16757..1676210778                                        IDENT@16757..16762 "patch"10779                                  R_PAREN@16762..16763 ")"10780                            R_PAREN@16763..16764 ")"10781                      SEMI@16764..16765 ";"10782                      WHITESPACE@16765..16773 "\n\n      "10783                      EXPR_OBJECT@16773..1711310784                        OBJ_BODY_MEMBER_LIST@16773..1711310785                          L_BRACE@16773..16774 "{"10786                          WHITESPACE@16774..16783 "\n        "10787                          MEMBER_FIELD@16783..1710510788                            FIELD_NORMAL@16783..1705010789                              FIELD_NAME_DYNAMIC@16783..1678610790                                L_BRACK@16783..16784 "["10791                                EXPR_VAR@16784..1678510792                                  NAME@16784..1678510793                                    IDENT@16784..16785 "k"10794                                R_BRACK@16785..16786 "]"10795                              COLON@16786..16787 ":"10796                              WHITESPACE@16787..16798 "\n          "10797                              EXPR_IF_THEN_ELSE@16798..1705010798                                IF_KW@16798..16800 "if"10799                                WHITESPACE@16800..16801 " "10800                                EXPR_UNARY@16801..1682510801                                  NOT@16801..16802 "!"10802                                  EXPR_APPLY@16802..1682510803                                    EXPR_INDEX@16802..1681510804                                      EXPR_VAR@16802..1680510805                                        NAME@16802..1680510806                                          IDENT@16802..16805 "std"10807                                      DOT@16805..16806 "."10808                                      NAME@16806..1681510809                                        IDENT@16806..16815 "objectHas"10810                                    ARGS_DESC@16815..1682510811                                      L_PAREN@16815..16816 "("10812                                      ARG@16816..1682110813                                        EXPR_VAR@16816..1682110814                                          NAME@16816..1682110815                                            IDENT@16816..16821 "patch"10816                                      COMMA@16821..16822 ","10817                                      WHITESPACE@16822..16823 " "10818                                      ARG@16823..1682410819                                        EXPR_VAR@16823..1682410820                                          NAME@16823..1682410821                                            IDENT@16823..16824 "k"10822                                      R_PAREN@16824..16825 ")"10823                                WHITESPACE@16825..16826 " "10824                                THEN_KW@16826..16830 "then"10825                                WHITESPACE@16830..16843 "\n            "10826                                TRUE_EXPR@16843..1685910827                                  EXPR_INDEX_EXPR@16843..1685910828                                    LHS_EXPR@16843..1685610829                                      EXPR_VAR@16843..1685610830                                        NAME@16843..1685610831                                          IDENT@16843..16856 "target_object"10832                                    L_BRACK@16856..16857 "["10833                                    EXPR_VAR@16857..1685810834                                      NAME@16857..1685810835                                        IDENT@16857..16858 "k"10836                                    R_BRACK@16858..16859 "]"10837                                WHITESPACE@16859..16870 "\n          "10838                                ELSE_KW@16870..16874 "else"10839                                WHITESPACE@16874..16875 " "10840                                FALSE_EXPR@16875..1705010841                                  EXPR_IF_THEN_ELSE@16875..1705010842                                    IF_KW@16875..16877 "if"10843                                    WHITESPACE@16877..16878 " "10844                                    EXPR_UNARY@16878..1691010845                                      NOT@16878..16879 "!"10846                                      EXPR_APPLY@16879..1691010847                                        EXPR_INDEX@16879..1689210848                                          EXPR_VAR@16879..1688210849                                            NAME@16879..1688210850                                              IDENT@16879..16882 "std"10851                                          DOT@16882..16883 "."10852                                          NAME@16883..1689210853                                            IDENT@16883..16892 "objectHas"10854                                        ARGS_DESC@16892..1691010855                                          L_PAREN@16892..16893 "("10856                                          ARG@16893..1690610857                                            EXPR_VAR@16893..1690610858                                              NAME@16893..1690610859                                                IDENT@16893..16906 "target_object"10860                                          COMMA@16906..16907 ","10861                                          WHITESPACE@16907..16908 " "10862                                          ARG@16908..1690910863                                            EXPR_VAR@16908..1690910864                                              NAME@16908..1690910865                                                IDENT@16908..16909 "k"10866                                          R_PAREN@16909..16910 ")"10867                                    WHITESPACE@16910..16911 " "10868                                    THEN_KW@16911..16915 "then"10869                                    WHITESPACE@16915..16928 "\n            "10870                                    TRUE_EXPR@16928..1696910871                                      EXPR_APPLY@16928..1696910872                                        EXPR_INDEX@16928..1694210873                                          EXPR_VAR@16928..1693110874                                            NAME@16928..1693110875                                              IDENT@16928..16931 "std"10876                                          DOT@16931..16932 "."10877                                          NAME@16932..1694210878                                            IDENT@16932..16942 "mergePatch"10879                                        ARGS_DESC@16942..1696910880                                          L_PAREN@16942..16943 "("10881                                          ARG@16943..1694710882                                            EXPR_LITERAL@16943..1694710883                                              NULL_KW@16943..16947 "null"10884                                          COMMA@16947..16948 ","10885                                          WHITESPACE@16948..16949 " "10886                                          ARG@16949..1695710887                                            EXPR_INDEX_EXPR@16949..1695710888                                              LHS_EXPR@16949..1695410889                                                EXPR_VAR@16949..1695410890                                                  NAME@16949..1695410891                                                    IDENT@16949..16954 "patch"10892                                              L_BRACK@16954..16955 "["10893                                              EXPR_VAR@16955..1695610894                                                NAME@16955..1695610895                                                  IDENT@16955..16956 "k"10896                                              R_BRACK@16956..16957 "]"10897                                          R_PAREN@16957..16958 ")"10898                                          WHITESPACE@16958..16959 " "10899                                          TAILSTRICT_KW@16959..16969 "tailstrict"10900                                    WHITESPACE@16969..16980 "\n          "10901                                    ELSE_KW@16980..16984 "else"10902                                    WHITESPACE@16984..16997 "\n            "10903                                    FALSE_EXPR@16997..1705010904                                      EXPR_APPLY@16997..1705010905                                        EXPR_INDEX@16997..1701110906                                          EXPR_VAR@16997..1700010907                                            NAME@16997..1700010908                                              IDENT@16997..17000 "std"10909                                          DOT@17000..17001 "."10910                                          NAME@17001..1701110911                                            IDENT@17001..17011 "mergePatch"10912                                        ARGS_DESC@17011..1705010913                                          L_PAREN@17011..17012 "("10914                                          ARG@17012..1702810915                                            EXPR_INDEX_EXPR@17012..1702810916                                              LHS_EXPR@17012..1702510917                                                EXPR_VAR@17012..1702510918                                                  NAME@17012..1702510919                                                    IDENT@17012..17025 "target_object"10920                                              L_BRACK@17025..17026 "["10921                                              EXPR_VAR@17026..1702710922                                                NAME@17026..1702710923                                                  IDENT@17026..17027 "k"10924                                              R_BRACK@17027..17028 "]"10925                                          COMMA@17028..17029 ","10926                                          WHITESPACE@17029..17030 " "10927                                          ARG@17030..1703810928                                            EXPR_INDEX_EXPR@17030..1703810929                                              LHS_EXPR@17030..1703510930                                                EXPR_VAR@17030..1703510931                                                  NAME@17030..1703510932                                                    IDENT@17030..17035 "patch"10933                                              L_BRACK@17035..17036 "["10934                                              EXPR_VAR@17036..1703710935                                                NAME@17036..1703710936                                                  IDENT@17036..17037 "k"10937                                              R_BRACK@17037..17038 "]"10938                                          R_PAREN@17038..17039 ")"10939                                          WHITESPACE@17039..17040 " "10940                                          TAILSTRICT_KW@17040..17050 "tailstrict"10941                            WHITESPACE@17050..17059 "\n        "10942                            FOR_SPEC@17059..1710510943                              FOR_KW@17059..17062 "for"10944                              WHITESPACE@17062..17063 " "10945                              NAME@17063..1706410946                                IDENT@17063..17064 "k"10947                              WHITESPACE@17064..17065 " "10948                              IN_KW@17065..17067 "in"10949                              WHITESPACE@17067..17068 " "10950                              EXPR_APPLY@17068..1710510951                                EXPR_INDEX@17068..1707910952                                  EXPR_VAR@17068..1707110953                                    NAME@17068..1707110954                                      IDENT@17068..17071 "std"10955                                  DOT@17071..17072 "."10956                                  NAME@17072..1707910957                                    IDENT@17072..17079 "setDiff"10958                                ARGS_DESC@17079..1710510959                                  L_PAREN@17079..17080 "("10960                                  ARG@17080..1709110961                                    EXPR_VAR@17080..1709110962                                      NAME@17080..1709110963                                        IDENT@17080..17091 "both_fields"10964                                  COMMA@17091..17092 ","10965                                  WHITESPACE@17092..17093 " "10966                                  ARG@17093..1710410967                                    EXPR_VAR@17093..1710410968                                      NAME@17093..1710410969                                        IDENT@17093..17104 "null_fields"10970                                  R_PAREN@17104..17105 ")"10971                          WHITESPACE@17105..17112 "\n      "10972                          R_BRACE@17112..17113 "}"10973            WHITESPACE@17113..17118 "\n    "10974            ELSE_KW@17118..17122 "else"10975            WHITESPACE@17122..17129 "\n      "10976            FALSE_EXPR@17129..1713410977              EXPR_VAR@17129..1713410978                NAME@17129..1713410979                  IDENT@17129..17134 "patch"10980      COMMA@17134..17135 ","10981      WHITESPACE@17135..17139 "\n\n  "10982      MEMBER_FIELD@17139..1724910983        FIELD_METHOD@17139..1724910984          FIELD_NAME_FIXED@17139..1714210985            NAME@17139..1714210986              IDENT@17139..17142 "get"10987          PARAMS_DESC@17142..1718310988            L_PAREN@17142..17143 "("10989            PARAM@17143..1714410990              DESTRUCT_FULL@17143..1714410991                NAME@17143..1714410992                  IDENT@17143..17144 "o"10993            COMMA@17144..17145 ","10994            WHITESPACE@17145..17146 " "10995            PARAM@17146..1714710996              DESTRUCT_FULL@17146..1714710997                NAME@17146..1714710998                  IDENT@17146..17147 "f"10999            COMMA@17147..17148 ","11000            WHITESPACE@17148..17149 " "11001            PARAM@17149..1716311002              DESTRUCT_FULL@17149..1715611003                NAME@17149..1715611004                  IDENT@17149..17156 "default"11005              WHITESPACE@17156..17157 " "11006              ASSIGN@17157..17158 "="11007              WHITESPACE@17158..17159 " "11008              EXPR_LITERAL@17159..1716311009                NULL_KW@17159..17163 "null"11010            COMMA@17163..17164 ","11011            WHITESPACE@17164..17165 " "11012            PARAM@17165..1718211013              DESTRUCT_FULL@17165..1717511014                NAME@17165..1717511015                  IDENT@17165..17175 "inc_hidden"11016              WHITESPACE@17175..17176 " "11017              ASSIGN@17176..17177 "="11018              WHITESPACE@17177..17178 " "11019              EXPR_LITERAL@17178..1718211020                TRUE_KW@17178..17182 "true"11021            R_PAREN@17182..17183 ")"11022          COLONCOLON@17183..17185 "::"11023          WHITESPACE@17185..17190 "\n    "11024          EXPR_IF_THEN_ELSE@17190..1724911025            IF_KW@17190..17192 "if"11026            WHITESPACE@17192..17193 " "11027            EXPR_APPLY@17193..1722611028              EXPR_INDEX@17193..1720811029                EXPR_VAR@17193..1719611030                  NAME@17193..1719611031                    IDENT@17193..17196 "std"11032                DOT@17196..17197 "."11033                NAME@17197..1720811034                  IDENT@17197..17208 "objectHasEx"11035              ARGS_DESC@17208..1722611036                L_PAREN@17208..17209 "("11037                ARG@17209..1721011038                  EXPR_VAR@17209..1721011039                    NAME@17209..1721011040                      IDENT@17209..17210 "o"11041                COMMA@17210..17211 ","11042                WHITESPACE@17211..17212 " "11043                ARG@17212..1721311044                  EXPR_VAR@17212..1721311045                    NAME@17212..1721311046                      IDENT@17212..17213 "f"11047                COMMA@17213..17214 ","11048                WHITESPACE@17214..17215 " "11049                ARG@17215..1722511050                  EXPR_VAR@17215..1722511051                    NAME@17215..1722511052                      IDENT@17215..17225 "inc_hidden"11053                R_PAREN@17225..17226 ")"11054            WHITESPACE@17226..17227 " "11055            THEN_KW@17227..17231 "then"11056            WHITESPACE@17231..17232 " "11057            TRUE_EXPR@17232..1723611058              EXPR_INDEX_EXPR@17232..1723611059                LHS_EXPR@17232..1723311060                  EXPR_VAR@17232..1723311061                    NAME@17232..1723311062                      IDENT@17232..17233 "o"11063                L_BRACK@17233..17234 "["11064                EXPR_VAR@17234..1723511065                  NAME@17234..1723511066                    IDENT@17234..17235 "f"11067                R_BRACK@17235..17236 "]"11068            WHITESPACE@17236..17237 " "11069            ELSE_KW@17237..17241 "else"11070            WHITESPACE@17241..17242 " "11071            FALSE_EXPR@17242..1724911072              EXPR_VAR@17242..1724911073                NAME@17242..1724911074                  IDENT@17242..17249 "default"11075      COMMA@17249..17250 ","11076      WHITESPACE@17250..17254 "\n\n  "11077      MEMBER_FIELD@17254..1730411078        FIELD_METHOD@17254..1730411079          FIELD_NAME_FIXED@17254..1726611080            NAME@17254..1726611081              IDENT@17254..17266 "objectFields"11082          PARAMS_DESC@17266..1726911083            L_PAREN@17266..17267 "("11084            PARAM@17267..1726811085              DESTRUCT_FULL@17267..1726811086                NAME@17267..1726811087                  IDENT@17267..17268 "o"11088            R_PAREN@17268..17269 ")"11089          COLONCOLON@17269..17271 "::"11090          WHITESPACE@17271..17276 "\n    "11091          EXPR_APPLY@17276..1730411092            EXPR_INDEX@17276..1729411093              EXPR_VAR@17276..1727911094                NAME@17276..1727911095                  IDENT@17276..17279 "std"11096              DOT@17279..17280 "."11097              NAME@17280..1729411098                IDENT@17280..17294 "objectFieldsEx"11099            ARGS_DESC@17294..1730411100              L_PAREN@17294..17295 "("11101              ARG@17295..1729611102                EXPR_VAR@17295..1729611103                  NAME@17295..1729611104                    IDENT@17295..17296 "o"11105              COMMA@17296..17297 ","11106              WHITESPACE@17297..17298 " "11107              ARG@17298..1730311108                EXPR_LITERAL@17298..1730311109                  FALSE_KW@17298..17303 "false"11110              R_PAREN@17303..17304 ")"11111      COMMA@17304..17305 ","11112      WHITESPACE@17305..17309 "\n\n  "11113      MEMBER_FIELD@17309..1736111114        FIELD_METHOD@17309..1736111115          FIELD_NAME_FIXED@17309..1732411116            NAME@17309..1732411117              IDENT@17309..17324 "objectFieldsAll"11118          PARAMS_DESC@17324..1732711119            L_PAREN@17324..17325 "("11120            PARAM@17325..1732611121              DESTRUCT_FULL@17325..1732611122                NAME@17325..1732611123                  IDENT@17325..17326 "o"11124            R_PAREN@17326..17327 ")"11125          COLONCOLON@17327..17329 "::"11126          WHITESPACE@17329..17334 "\n    "11127          EXPR_APPLY@17334..1736111128            EXPR_INDEX@17334..1735211129              EXPR_VAR@17334..1733711130                NAME@17334..1733711131                  IDENT@17334..17337 "std"11132              DOT@17337..17338 "."11133              NAME@17338..1735211134                IDENT@17338..17352 "objectFieldsEx"11135            ARGS_DESC@17352..1736111136              L_PAREN@17352..17353 "("11137              ARG@17353..1735411138                EXPR_VAR@17353..1735411139                  NAME@17353..1735411140                    IDENT@17353..17354 "o"11141              COMMA@17354..17355 ","11142              WHITESPACE@17355..17356 " "11143              ARG@17356..1736011144                EXPR_LITERAL@17356..1736011145                  TRUE_KW@17356..17360 "true"11146              R_PAREN@17360..17361 ")"11147      COMMA@17361..17362 ","11148      WHITESPACE@17362..17366 "\n\n  "11149      MEMBER_FIELD@17366..1741611150        FIELD_METHOD@17366..1741611151          FIELD_NAME_FIXED@17366..1737511152            NAME@17366..1737511153              IDENT@17366..17375 "objectHas"11154          PARAMS_DESC@17375..1738111155            L_PAREN@17375..17376 "("11156            PARAM@17376..1737711157              DESTRUCT_FULL@17376..1737711158                NAME@17376..1737711159                  IDENT@17376..17377 "o"11160            COMMA@17377..17378 ","11161            WHITESPACE@17378..17379 " "11162            PARAM@17379..1738011163              DESTRUCT_FULL@17379..1738011164                NAME@17379..1738011165                  IDENT@17379..17380 "f"11166            R_PAREN@17380..17381 ")"11167          COLONCOLON@17381..17383 "::"11168          WHITESPACE@17383..17388 "\n    "11169          EXPR_APPLY@17388..1741611170            EXPR_INDEX@17388..1740311171              EXPR_VAR@17388..1739111172                NAME@17388..1739111173                  IDENT@17388..17391 "std"11174              DOT@17391..17392 "."11175              NAME@17392..1740311176                IDENT@17392..17403 "objectHasEx"11177            ARGS_DESC@17403..1741611178              L_PAREN@17403..17404 "("11179              ARG@17404..1740511180                EXPR_VAR@17404..1740511181                  NAME@17404..1740511182                    IDENT@17404..17405 "o"11183              COMMA@17405..17406 ","11184              WHITESPACE@17406..17407 " "11185              ARG@17407..1740811186                EXPR_VAR@17407..1740811187                  NAME@17407..1740811188                    IDENT@17407..17408 "f"11189              COMMA@17408..17409 ","11190              WHITESPACE@17409..17410 " "11191              ARG@17410..1741511192                EXPR_LITERAL@17410..1741511193                  FALSE_KW@17410..17415 "false"11194              R_PAREN@17415..17416 ")"11195      COMMA@17416..17417 ","11196      WHITESPACE@17417..17421 "\n\n  "11197      MEMBER_FIELD@17421..1747311198        FIELD_METHOD@17421..1747311199          FIELD_NAME_FIXED@17421..1743311200            NAME@17421..1743311201              IDENT@17421..17433 "objectHasAll"11202          PARAMS_DESC@17433..1743911203            L_PAREN@17433..17434 "("11204            PARAM@17434..1743511205              DESTRUCT_FULL@17434..1743511206                NAME@17434..1743511207                  IDENT@17434..17435 "o"11208            COMMA@17435..17436 ","11209            WHITESPACE@17436..17437 " "11210            PARAM@17437..1743811211              DESTRUCT_FULL@17437..1743811212                NAME@17437..1743811213                  IDENT@17437..17438 "f"11214            R_PAREN@17438..17439 ")"11215          COLONCOLON@17439..17441 "::"11216          WHITESPACE@17441..17446 "\n    "11217          EXPR_APPLY@17446..1747311218            EXPR_INDEX@17446..1746111219              EXPR_VAR@17446..1744911220                NAME@17446..1744911221                  IDENT@17446..17449 "std"11222              DOT@17449..17450 "."11223              NAME@17450..1746111224                IDENT@17450..17461 "objectHasEx"11225            ARGS_DESC@17461..1747311226              L_PAREN@17461..17462 "("11227              ARG@17462..1746311228                EXPR_VAR@17462..1746311229                  NAME@17462..1746311230                    IDENT@17462..17463 "o"11231              COMMA@17463..17464 ","11232              WHITESPACE@17464..17465 " "11233              ARG@17465..1746611234                EXPR_VAR@17465..1746611235                  NAME@17465..1746611236                    IDENT@17465..17466 "f"11237              COMMA@17466..17467 ","11238              WHITESPACE@17467..17468 " "11239              ARG@17468..1747211240                EXPR_LITERAL@17468..1747211241                  TRUE_KW@17468..17472 "true"11242              R_PAREN@17472..17473 ")"11243      COMMA@17473..17474 ","11244      WHITESPACE@17474..17478 "\n\n  "11245      MEMBER_FIELD@17478..1753511246        FIELD_METHOD@17478..1753511247          FIELD_NAME_FIXED@17478..1749011248            NAME@17478..1749011249              IDENT@17478..17490 "objectValues"11250          PARAMS_DESC@17490..1749311251            L_PAREN@17490..17491 "("11252            PARAM@17491..1749211253              DESTRUCT_FULL@17491..1749211254                NAME@17491..1749211255                  IDENT@17491..17492 "o"11256            R_PAREN@17492..17493 ")"11257          COLONCOLON@17493..17495 "::"11258          WHITESPACE@17495..17500 "\n    "11259          EXPR_ARRAY_COMP@17500..1753511260            L_BRACK@17500..17501 "["11261            EXPR_INDEX_EXPR@17501..1750511262              LHS_EXPR@17501..1750211263                EXPR_VAR@17501..1750211264                  NAME@17501..1750211265                    IDENT@17501..17502 "o"11266              L_BRACK@17502..17503 "["11267              EXPR_VAR@17503..1750411268                NAME@17503..1750411269                  IDENT@17503..17504 "k"11270              R_BRACK@17504..17505 "]"11271            WHITESPACE@17505..17506 " "11272            FOR_SPEC@17506..1753411273              FOR_KW@17506..17509 "for"11274              WHITESPACE@17509..17510 " "11275              NAME@17510..1751111276                IDENT@17510..17511 "k"11277              WHITESPACE@17511..17512 " "11278              IN_KW@17512..17514 "in"11279              WHITESPACE@17514..17515 " "11280              EXPR_APPLY@17515..1753411281                EXPR_INDEX@17515..1753111282                  EXPR_VAR@17515..1751811283                    NAME@17515..1751811284                      IDENT@17515..17518 "std"11285                  DOT@17518..17519 "."11286                  NAME@17519..1753111287                    IDENT@17519..17531 "objectFields"11288                ARGS_DESC@17531..1753411289                  L_PAREN@17531..17532 "("11290                  ARG@17532..1753311291                    EXPR_VAR@17532..1753311292                      NAME@17532..1753311293                        IDENT@17532..17533 "o"11294                  R_PAREN@17533..17534 ")"11295            R_BRACK@17534..17535 "]"11296      COMMA@17535..17536 ","11297      WHITESPACE@17536..17540 "\n\n  "11298      MEMBER_FIELD@17540..1760311299        FIELD_METHOD@17540..1760311300          FIELD_NAME_FIXED@17540..1755511301            NAME@17540..1755511302              IDENT@17540..17555 "objectValuesAll"11303          PARAMS_DESC@17555..1755811304            L_PAREN@17555..17556 "("11305            PARAM@17556..1755711306              DESTRUCT_FULL@17556..1755711307                NAME@17556..1755711308                  IDENT@17556..17557 "o"11309            R_PAREN@17557..17558 ")"11310          COLONCOLON@17558..17560 "::"11311          WHITESPACE@17560..17565 "\n    "11312          EXPR_ARRAY_COMP@17565..1760311313            L_BRACK@17565..17566 "["11314            EXPR_INDEX_EXPR@17566..1757011315              LHS_EXPR@17566..1756711316                EXPR_VAR@17566..1756711317                  NAME@17566..1756711318                    IDENT@17566..17567 "o"11319              L_BRACK@17567..17568 "["11320              EXPR_VAR@17568..1756911321                NAME@17568..1756911322                  IDENT@17568..17569 "k"11323              R_BRACK@17569..17570 "]"11324            WHITESPACE@17570..17571 " "11325            FOR_SPEC@17571..1760211326              FOR_KW@17571..17574 "for"11327              WHITESPACE@17574..17575 " "11328              NAME@17575..1757611329                IDENT@17575..17576 "k"11330              WHITESPACE@17576..17577 " "11331              IN_KW@17577..17579 "in"11332              WHITESPACE@17579..17580 " "11333              EXPR_APPLY@17580..1760211334                EXPR_INDEX@17580..1759911335                  EXPR_VAR@17580..1758311336                    NAME@17580..1758311337                      IDENT@17580..17583 "std"11338                  DOT@17583..17584 "."11339                  NAME@17584..1759911340                    IDENT@17584..17599 "objectFieldsAll"11341                ARGS_DESC@17599..1760211342                  L_PAREN@17599..17600 "("11343                  ARG@17600..1760111344                    EXPR_VAR@17600..1760111345                      NAME@17600..1760111346                        IDENT@17600..17601 "o"11347                  R_PAREN@17601..17602 ")"11348            R_BRACK@17602..17603 "]"11349      COMMA@17603..17604 ","11350      WHITESPACE@17604..17608 "\n\n  "11351      MEMBER_FIELD@17608..1763511352        FIELD_NORMAL@17608..1763511353          FIELD_NAME_FIXED@17608..1761411354            NAME@17608..1761411355              IDENT@17608..17614 "equals"11356          COLONCOLON@17614..17616 "::"11357          WHITESPACE@17616..17617 " "11358          EXPR_INTRINSIC@17617..1763511359            INTRINSIC@17617..17627 "$intrinsic"11360            L_PAREN@17627..17628 "("11361            NAME@17628..1763411362              IDENT@17628..17634 "equals"11363            R_PAREN@17634..17635 ")"11364      COMMA@17635..17636 ","11365      WHITESPACE@17636..17640 "\n\n  "11366      MEMBER_FIELD@17640..1777411367        FIELD_METHOD@17640..1777411368          FIELD_NAME_FIXED@17640..1765111369            NAME@17640..1765111370              IDENT@17640..17651 "resolvePath"11371          PARAMS_DESC@17651..1765711372            L_PAREN@17651..17652 "("11373            PARAM@17652..1765311374              DESTRUCT_FULL@17652..1765311375                NAME@17652..1765311376                  IDENT@17652..17653 "f"11377            COMMA@17653..17654 ","11378            WHITESPACE@17654..17655 " "11379            PARAM@17655..1765611380              DESTRUCT_FULL@17655..1765611381                NAME@17655..1765611382                  IDENT@17655..17656 "r"11383            R_PAREN@17656..17657 ")"11384          COLONCOLON@17657..17659 "::"11385          WHITESPACE@17659..17664 "\n    "11386          EXPR_LOCAL@17664..1777411387            LOCAL_KW@17664..17669 "local"11388            WHITESPACE@17669..17670 " "11389            BIND_DESTRUCT@17670..1769311390              DESTRUCT_FULL@17670..1767311391                NAME@17670..1767311392                  IDENT@17670..17673 "arr"11393              WHITESPACE@17673..17674 " "11394              ASSIGN@17674..17675 "="11395              WHITESPACE@17675..17676 " "11396              EXPR_APPLY@17676..1769311397                EXPR_INDEX@17676..1768511398                  EXPR_VAR@17676..1767911399                    NAME@17676..1767911400                      IDENT@17676..17679 "std"11401                  DOT@17679..17680 "."11402                  NAME@17680..1768511403                    IDENT@17680..17685 "split"11404                ARGS_DESC@17685..1769311405                  L_PAREN@17685..17686 "("11406                  ARG@17686..1768711407                    EXPR_VAR@17686..1768711408                      NAME@17686..1768711409                        IDENT@17686..17687 "f"11410                  COMMA@17687..17688 ","11411                  WHITESPACE@17688..17689 " "11412                  ARG@17689..1769211413                    EXPR_STRING@17689..1769211414                      STRING_SINGLE@17689..17692 "'/'"11415                  R_PAREN@17692..17693 ")"11416            SEMI@17693..17694 ";"11417            WHITESPACE@17694..17699 "\n    "11418            EXPR_APPLY@17699..1777411419              EXPR_INDEX@17699..1770711420                EXPR_VAR@17699..1770211421                  NAME@17699..1770211422                    IDENT@17699..17702 "std"11423                DOT@17702..17703 "."11424                NAME@17703..1770711425                  IDENT@17703..17707 "join"11426              ARGS_DESC@17707..1777411427                L_PAREN@17707..17708 "("11428                ARG@17708..1771111429                  EXPR_STRING@17708..1771111430                    STRING_SINGLE@17708..17711 "'/'"11431                COMMA@17711..17712 ","11432                WHITESPACE@17712..17713 " "11433                ARG@17713..1777311434                  EXPR_BINARY@17713..1777311435                    LHS_EXPR@17713..1776711436                      EXPR_APPLY@17713..1776711437                        EXPR_INDEX@17713..1772611438                          EXPR_VAR@17713..1771611439                            NAME@17713..1771611440                              IDENT@17713..17716 "std"11441                          DOT@17716..17717 "."11442                          NAME@17717..1772611443                            IDENT@17717..17726 "makeArray"11444                        ARGS_DESC@17726..1776711445                          L_PAREN@17726..17727 "("11446                          ARG@17727..1774611447                            EXPR_BINARY@17727..1774611448                              LHS_EXPR@17727..1774211449                                EXPR_APPLY@17727..1774211450                                  EXPR_INDEX@17727..1773711451                                    EXPR_VAR@17727..1773011452                                      NAME@17727..1773011453                                        IDENT@17727..17730 "std"11454                                    DOT@17730..17731 "."11455                                    NAME@17731..1773711456                                      IDENT@17731..17737 "length"11457                                  ARGS_DESC@17737..1774211458                                    L_PAREN@17737..17738 "("11459                                    ARG@17738..1774111460                                      EXPR_VAR@17738..1774111461                                        NAME@17738..1774111462                                          IDENT@17738..17741 "arr"11463                                    R_PAREN@17741..17742 ")"11464                              WHITESPACE@17742..17743 " "11465                              MINUS@17743..17744 "-"11466                              WHITESPACE@17744..17745 " "11467                              EXPR_NUMBER@17745..1774611468                                FLOAT@17745..17746 "1"11469                          COMMA@17746..17747 ","11470                          WHITESPACE@17747..17748 " "11471                          ARG@17748..1776611472                            EXPR_FUNCTION@17748..1776611473                              FUNCTION_KW@17748..17756 "function"11474                              PARAMS_DESC@17756..1775911475                                L_PAREN@17756..17757 "("11476                                PARAM@17757..1775811477                                  DESTRUCT_FULL@17757..1775811478                                    NAME@17757..1775811479                                      IDENT@17757..17758 "i"11480                                R_PAREN@17758..17759 ")"11481                              WHITESPACE@17759..17760 " "11482                              EXPR_INDEX_EXPR@17760..1776611483                                LHS_EXPR@17760..1776311484                                  EXPR_VAR@17760..1776311485                                    NAME@17760..1776311486                                      IDENT@17760..17763 "arr"11487                                L_BRACK@17763..17764 "["11488                                EXPR_VAR@17764..1776511489                                  NAME@17764..1776511490                                    IDENT@17764..17765 "i"11491                                R_BRACK@17765..17766 "]"11492                          R_PAREN@17766..17767 ")"11493                    WHITESPACE@17767..17768 " "11494                    PLUS@17768..17769 "+"11495                    WHITESPACE@17769..17770 " "11496                    EXPR_ARRAY@17770..1777311497                      L_BRACK@17770..17771 "["11498                      EXPR_VAR@17771..1777211499                        NAME@17771..1777211500                          IDENT@17771..17772 "r"11501                      R_BRACK@17772..17773 "]"11502                R_PAREN@17773..17774 ")"11503      COMMA@17774..17775 ","11504      WHITESPACE@17775..17779 "\n\n  "11505      MEMBER_FIELD@17779..1823211506        FIELD_METHOD@17779..1823211507          FIELD_NAME_FIXED@17779..1778411508            NAME@17779..1778411509              IDENT@17779..17784 "prune"11510          PARAMS_DESC@17784..1778711511            L_PAREN@17784..17785 "("11512            PARAM@17785..1778611513              DESTRUCT_FULL@17785..1778611514                NAME@17785..1778611515                  IDENT@17785..17786 "a"11516            R_PAREN@17786..17787 ")"11517          COLONCOLON@17787..17789 "::"11518          WHITESPACE@17789..17794 "\n    "11519          EXPR_LOCAL@17794..1823211520            LOCAL_KW@17794..17799 "local"11521            WHITESPACE@17799..17800 " "11522            BIND_FUNCTION@17800..1799711523              NAME@17800..1780911524                IDENT@17800..17809 "isContent"11525              PARAMS_DESC@17809..1781211526                L_PAREN@17809..17810 "("11527                PARAM@17810..1781111528                  DESTRUCT_FULL@17810..1781111529                    NAME@17810..1781111530                      IDENT@17810..17811 "b"11531                R_PAREN@17811..17812 ")"11532              WHITESPACE@17812..17813 " "11533              ASSIGN@17813..17814 "="11534              WHITESPACE@17814..17821 "\n      "11535              EXPR_IF_THEN_ELSE@17821..1799711536                IF_KW@17821..17823 "if"11537                WHITESPACE@17823..17824 " "11538                EXPR_BINARY@17824..1783311539                  LHS_EXPR@17824..1782511540                    EXPR_VAR@17824..1782511541                      NAME@17824..1782511542                        IDENT@17824..17825 "b"11543                  WHITESPACE@17825..17826 " "11544                  EQ@17826..17828 "=="11545                  WHITESPACE@17828..17829 " "11546                  EXPR_LITERAL@17829..1783311547                    NULL_KW@17829..17833 "null"11548                WHITESPACE@17833..17834 " "11549                THEN_KW@17834..17838 "then"11550                WHITESPACE@17838..17847 "\n        "11551                TRUE_EXPR@17847..1785211552                  EXPR_LITERAL@17847..1785211553                    FALSE_KW@17847..17852 "false"11554                WHITESPACE@17852..17859 "\n      "11555                ELSE_KW@17859..17863 "else"11556                WHITESPACE@17863..17864 " "11557                FALSE_EXPR@17864..1799711558                  EXPR_IF_THEN_ELSE@17864..1799711559                    IF_KW@17864..17866 "if"11560                    WHITESPACE@17866..17867 " "11561                    EXPR_APPLY@17867..1788111562                      EXPR_INDEX@17867..1787811563                        EXPR_VAR@17867..1787011564                          NAME@17867..1787011565                            IDENT@17867..17870 "std"11566                        DOT@17870..17871 "."11567                        NAME@17871..1787811568                          IDENT@17871..17878 "isArray"11569                      ARGS_DESC@17878..1788111570                        L_PAREN@17878..17879 "("11571                        ARG@17879..1788011572                          EXPR_VAR@17879..1788011573                            NAME@17879..1788011574                              IDENT@17879..17880 "b"11575                        R_PAREN@17880..17881 ")"11576                    WHITESPACE@17881..17882 " "11577                    THEN_KW@17882..17886 "then"11578                    WHITESPACE@17886..17895 "\n        "11579                    TRUE_EXPR@17895..1791211580                      EXPR_BINARY@17895..1791211581                        LHS_EXPR@17895..1790811582                          EXPR_APPLY@17895..1790811583                            EXPR_INDEX@17895..1790511584                              EXPR_VAR@17895..1789811585                                NAME@17895..1789811586                                  IDENT@17895..17898 "std"11587                              DOT@17898..17899 "."11588                              NAME@17899..1790511589                                IDENT@17899..17905 "length"11590                            ARGS_DESC@17905..1790811591                              L_PAREN@17905..17906 "("11592                              ARG@17906..1790711593                                EXPR_VAR@17906..1790711594                                  NAME@17906..1790711595                                    IDENT@17906..17907 "b"11596                              R_PAREN@17907..17908 ")"11597                        WHITESPACE@17908..17909 " "11598                        GT@17909..17910 ">"11599                        WHITESPACE@17910..17911 " "11600                        EXPR_NUMBER@17911..1791211601                          FLOAT@17911..17912 "0"11602                    WHITESPACE@17912..17919 "\n      "11603                    ELSE_KW@17919..17923 "else"11604                    WHITESPACE@17923..17924 " "11605                    FALSE_EXPR@17924..1799711606                      EXPR_IF_THEN_ELSE@17924..1799711607                        IF_KW@17924..17926 "if"11608                        WHITESPACE@17926..17927 " "11609                        EXPR_APPLY@17927..1794211610                          EXPR_INDEX@17927..1793911611                            EXPR_VAR@17927..1793011612                              NAME@17927..1793011613                                IDENT@17927..17930 "std"11614                            DOT@17930..17931 "."11615                            NAME@17931..1793911616                              IDENT@17931..17939 "isObject"11617                          ARGS_DESC@17939..1794211618                            L_PAREN@17939..17940 "("11619                            ARG@17940..1794111620                              EXPR_VAR@17940..1794111621                                NAME@17940..1794111622                                  IDENT@17940..17941 "b"11623                            R_PAREN@17941..17942 ")"11624                        WHITESPACE@17942..17943 " "11625                        THEN_KW@17943..17947 "then"11626                        WHITESPACE@17947..17956 "\n        "11627                        TRUE_EXPR@17956..1797311628                          EXPR_BINARY@17956..1797311629                            LHS_EXPR@17956..1796911630                              EXPR_APPLY@17956..1796911631                                EXPR_INDEX@17956..1796611632                                  EXPR_VAR@17956..1795911633                                    NAME@17956..1795911634                                      IDENT@17956..17959 "std"11635                                  DOT@17959..17960 "."11636                                  NAME@17960..1796611637                                    IDENT@17960..17966 "length"11638                                ARGS_DESC@17966..1796911639                                  L_PAREN@17966..17967 "("11640                                  ARG@17967..1796811641                                    EXPR_VAR@17967..1796811642                                      NAME@17967..1796811643                                        IDENT@17967..17968 "b"11644                                  R_PAREN@17968..17969 ")"11645                            WHITESPACE@17969..17970 " "11646                            GT@17970..17971 ">"11647                            WHITESPACE@17971..17972 " "11648                            EXPR_NUMBER@17972..1797311649                              FLOAT@17972..17973 "0"11650                        WHITESPACE@17973..17980 "\n      "11651                        ELSE_KW@17980..17984 "else"11652                        WHITESPACE@17984..17993 "\n        "11653                        FALSE_EXPR@17993..1799711654                          EXPR_LITERAL@17993..1799711655                            TRUE_KW@17993..17997 "true"11656            SEMI@17997..17998 ";"11657            WHITESPACE@17998..18003 "\n    "11658            EXPR_IF_THEN_ELSE@18003..1823211659              IF_KW@18003..18005 "if"11660              WHITESPACE@18005..18006 " "11661              EXPR_APPLY@18006..1802011662                EXPR_INDEX@18006..1801711663                  EXPR_VAR@18006..1800911664                    NAME@18006..1800911665                      IDENT@18006..18009 "std"11666                  DOT@18009..18010 "."11667                  NAME@18010..1801711668                    IDENT@18010..18017 "isArray"11669                ARGS_DESC@18017..1802011670                  L_PAREN@18017..18018 "("11671                  ARG@18018..1801911672                    EXPR_VAR@18018..1801911673                      NAME@18018..1801911674                        IDENT@18018..18019 "a"11675                  R_PAREN@18019..18020 ")"11676              WHITESPACE@18020..18021 " "11677              THEN_KW@18021..18025 "then"11678              WHITESPACE@18025..18032 "\n      "11679              TRUE_EXPR@18032..1808211680                EXPR_ARRAY_COMP@18032..1808211681                  L_BRACK@18032..18033 "["11682                  EXPR_APPLY@18033..1804511683                    EXPR_INDEX@18033..1804211684                      EXPR_VAR@18033..1803611685                        NAME@18033..1803611686                          IDENT@18033..18036 "std"11687                      DOT@18036..18037 "."11688                      NAME@18037..1804211689                        IDENT@18037..18042 "prune"11690                    ARGS_DESC@18042..1804511691                      L_PAREN@18042..18043 "("11692                      ARG@18043..1804411693                        EXPR_VAR@18043..1804411694                          NAME@18043..1804411695                            IDENT@18043..18044 "x"11696                      R_PAREN@18044..18045 ")"11697                  WHITESPACE@18045..18046 " "11698                  FOR_SPEC@18046..1805611699                    FOR_KW@18046..18049 "for"11700                    WHITESPACE@18049..18050 " "11701                    NAME@18050..1805111702                      IDENT@18050..18051 "x"11703                    WHITESPACE@18051..18052 " "11704                    IN_KW@18052..18054 "in"11705                    WHITESPACE@18054..18055 " "11706                    EXPR_VAR@18055..1805611707                      NAME@18055..1805611708                        IDENT@18055..18056 "a"11709                  WHITESPACE@18056..18057 " "11710                  IF_SPEC@18057..1808111711                    IF_KW@18057..18059 "if"11712                    WHITESPACE@18059..18060 " "11713                    EXPR_APPLY@18060..1808111714                      EXPR_VAR@18060..1806911715                        NAME@18060..1806911716                          IDENT@18060..18069 "isContent"11717                      ARGS_DESC@18069..1808111718                        L_PAREN@18069..18070 "("11719                        ARG@18070..1808011720                          EXPR_APPLY@18070..1808011721                            EXPR_INDEX@18070..1807711722                              EXPR_LITERAL@18070..1807111723                                DOLLAR@18070..18071 "$"11724                              DOT@18071..18072 "."11725                              NAME@18072..1807711726                                IDENT@18072..18077 "prune"11727                            ARGS_DESC@18077..1808011728                              L_PAREN@18077..18078 "("11729                              ARG@18078..1807911730                                EXPR_VAR@18078..1807911731                                  NAME@18078..1807911732                                    IDENT@18078..18079 "x"11733                              R_PAREN@18079..18080 ")"11734                        R_PAREN@18080..18081 ")"11735                  R_BRACK@18081..18082 "]"11736              WHITESPACE@18082..18087 "\n    "11737              ELSE_KW@18087..18091 "else"11738              WHITESPACE@18091..18092 " "11739              FALSE_EXPR@18092..1823211740                EXPR_IF_THEN_ELSE@18092..1823211741                  IF_KW@18092..18094 "if"11742                  WHITESPACE@18094..18095 " "11743                  EXPR_APPLY@18095..1811011744                    EXPR_INDEX@18095..1810711745                      EXPR_VAR@18095..1809811746                        NAME@18095..1809811747                          IDENT@18095..18098 "std"11748                      DOT@18098..18099 "."11749                      NAME@18099..1810711750                        IDENT@18099..18107 "isObject"11751                    ARGS_DESC@18107..1811011752                      L_PAREN@18107..18108 "("11753                      ARG@18108..1810911754                        EXPR_VAR@18108..1810911755                          NAME@18108..1810911756                            IDENT@18108..18109 "a"11757                      R_PAREN@18109..18110 ")"11758                  WHITESPACE@18110..18111 " "11759                  THEN_KW@18111..18115 "then"11760                  WHITESPACE@18115..18116 " "11761                  TRUE_EXPR@18116..1821911762                    EXPR_OBJECT@18116..1821911763                      OBJ_BODY_MEMBER_LIST@18116..1821911764                        L_BRACE@18116..18117 "{"11765                        WHITESPACE@18117..18124 "\n      "11766                        MEMBER_FIELD@18124..1821311767                          FIELD_NORMAL@18124..1814211768                            FIELD_NAME_DYNAMIC@18124..1812711769                              L_BRACK@18124..18125 "["11770                              EXPR_VAR@18125..1812611771                                NAME@18125..1812611772                                  IDENT@18125..18126 "x"11773                              R_BRACK@18126..18127 "]"11774                            COLON@18127..18128 ":"11775                            WHITESPACE@18128..18129 " "11776                            EXPR_APPLY@18129..1814211777                              EXPR_INDEX@18129..1813611778                                EXPR_LITERAL@18129..1813011779                                  DOLLAR@18129..18130 "$"11780                                DOT@18130..18131 "."11781                                NAME@18131..1813611782                                  IDENT@18131..18136 "prune"11783                              ARGS_DESC@18136..1814211784                                L_PAREN@18136..18137 "("11785                                ARG@18137..1814111786                                  EXPR_INDEX_EXPR@18137..1814111787                                    LHS_EXPR@18137..1813811788                                      EXPR_VAR@18137..1813811789                                        NAME@18137..1813811790                                          IDENT@18137..18138 "a"11791                                    L_BRACK@18138..18139 "["11792                                    EXPR_VAR@18139..1814011793                                      NAME@18139..1814011794                                        IDENT@18139..18140 "x"11795                                    R_BRACK@18140..18141 "]"11796                                R_PAREN@18141..18142 ")"11797                          WHITESPACE@18142..18149 "\n      "11798                          FOR_SPEC@18149..1817711799                            FOR_KW@18149..18152 "for"11800                            WHITESPACE@18152..18153 " "11801                            NAME@18153..1815411802                              IDENT@18153..18154 "x"11803                            WHITESPACE@18154..18155 " "11804                            IN_KW@18155..18157 "in"11805                            WHITESPACE@18157..18158 " "11806                            EXPR_APPLY@18158..1817711807                              EXPR_INDEX@18158..1817411808                                EXPR_VAR@18158..1816111809                                  NAME@18158..1816111810                                    IDENT@18158..18161 "std"11811                                DOT@18161..18162 "."11812                                NAME@18162..1817411813                                  IDENT@18162..18174 "objectFields"11814                              ARGS_DESC@18174..1817711815                                L_PAREN@18174..18175 "("11816                                ARG@18175..1817611817                                  EXPR_VAR@18175..1817611818                                    NAME@18175..1817611819                                      IDENT@18175..18176 "a"11820                                R_PAREN@18176..18177 ")"11821                          WHITESPACE@18177..18184 "\n      "11822                          IF_SPEC@18184..1821311823                            IF_KW@18184..18186 "if"11824                            WHITESPACE@18186..18187 " "11825                            EXPR_APPLY@18187..1821311826                              EXPR_VAR@18187..1819611827                                NAME@18187..1819611828                                  IDENT@18187..18196 "isContent"11829                              ARGS_DESC@18196..1821311830                                L_PAREN@18196..18197 "("11831                                ARG@18197..1821211832                                  EXPR_APPLY@18197..1821211833                                    EXPR_INDEX@18197..1820611834                                      EXPR_VAR@18197..1820011835                                        NAME@18197..1820011836                                          IDENT@18197..18200 "std"11837                                      DOT@18200..18201 "."11838                                      NAME@18201..1820611839                                        IDENT@18201..18206 "prune"11840                                    ARGS_DESC@18206..1821211841                                      L_PAREN@18206..18207 "("11842                                      ARG@18207..1821111843                                        EXPR_INDEX_EXPR@18207..1821111844                                          LHS_EXPR@18207..1820811845                                            EXPR_VAR@18207..1820811846                                              NAME@18207..1820811847                                                IDENT@18207..18208 "a"11848                                          L_BRACK@18208..18209 "["11849                                          EXPR_VAR@18209..1821011850                                            NAME@18209..1821011851                                              IDENT@18209..18210 "x"11852                                          R_BRACK@18210..18211 "]"11853                                      R_PAREN@18211..18212 ")"11854                                R_PAREN@18212..18213 ")"11855                        WHITESPACE@18213..18218 "\n    "11856                        R_BRACE@18218..18219 "}"11857                  WHITESPACE@18219..18220 " "11858                  ELSE_KW@18220..18224 "else"11859                  WHITESPACE@18224..18231 "\n      "11860                  FALSE_EXPR@18231..1823211861                    EXPR_VAR@18231..1823211862                      NAME@18231..1823211863                        IDENT@18231..18232 "a"11864      COMMA@18232..18233 ","11865      WHITESPACE@18233..18237 "\n\n  "11866      MEMBER_FIELD@18237..1875511867        FIELD_METHOD@18237..1875511868          FIELD_NAME_FIXED@18237..1824711869            NAME@18237..1824711870              IDENT@18237..18247 "findSubstr"11871          PARAMS_DESC@18247..1825711872            L_PAREN@18247..18248 "("11873            PARAM@18248..1825111874              DESTRUCT_FULL@18248..1825111875                NAME@18248..1825111876                  IDENT@18248..18251 "pat"11877            COMMA@18251..18252 ","11878            WHITESPACE@18252..18253 " "11879            PARAM@18253..1825611880              DESTRUCT_FULL@18253..1825611881                NAME@18253..1825611882                  IDENT@18253..18256 "str"11883            R_PAREN@18256..18257 ")"11884          COLONCOLON@18257..18259 "::"11885          WHITESPACE@18259..18264 "\n    "11886          EXPR_IF_THEN_ELSE@18264..1875511887            IF_KW@18264..18266 "if"11888            WHITESPACE@18266..18267 " "11889            EXPR_UNARY@18267..1828511890              NOT@18267..18268 "!"11891              EXPR_APPLY@18268..1828511892                EXPR_INDEX@18268..1828011893                  EXPR_VAR@18268..1827111894                    NAME@18268..1827111895                      IDENT@18268..18271 "std"11896                  DOT@18271..18272 "."11897                  NAME@18272..1828011898                    IDENT@18272..18280 "isString"11899                ARGS_DESC@18280..1828511900                  L_PAREN@18280..18281 "("11901                  ARG@18281..1828411902                    EXPR_VAR@18281..1828411903                      NAME@18281..1828411904                        IDENT@18281..18284 "pat"11905                  R_PAREN@18284..18285 ")"11906            WHITESPACE@18285..18286 " "11907            THEN_KW@18286..18290 "then"11908            WHITESPACE@18290..18297 "\n      "11909            TRUE_EXPR@18297..1837211910              EXPR_ERROR@18297..1837211911                ERROR_KW@18297..18302 "error"11912                WHITESPACE@18302..18303 " "11913                EXPR_BINARY@18303..1837211914                  LHS_EXPR@18303..1835611915                    EXPR_STRING@18303..1835611916                      STRING_SINGLE@18303..18356 "'findSubstr first par ..."11917                  WHITESPACE@18356..18357 " "11918                  PLUS@18357..18358 "+"11919                  WHITESPACE@18358..18359 " "11920                  EXPR_APPLY@18359..1837211921                    EXPR_INDEX@18359..1836711922                      EXPR_VAR@18359..1836211923                        NAME@18359..1836211924                          IDENT@18359..18362 "std"11925                      DOT@18362..18363 "."11926                      NAME@18363..1836711927                        IDENT@18363..18367 "type"11928                    ARGS_DESC@18367..1837211929                      L_PAREN@18367..18368 "("11930                      ARG@18368..1837111931                        EXPR_VAR@18368..1837111932                          NAME@18368..1837111933                            IDENT@18368..18371 "pat"11934                      R_PAREN@18371..18372 ")"11935            WHITESPACE@18372..18377 "\n    "11936            ELSE_KW@18377..18381 "else"11937            WHITESPACE@18381..18382 " "11938            FALSE_EXPR@18382..1875511939              EXPR_IF_THEN_ELSE@18382..1875511940                IF_KW@18382..18384 "if"11941                WHITESPACE@18384..18385 " "11942                EXPR_UNARY@18385..1840311943                  NOT@18385..18386 "!"11944                  EXPR_APPLY@18386..1840311945                    EXPR_INDEX@18386..1839811946                      EXPR_VAR@18386..1838911947                        NAME@18386..1838911948                          IDENT@18386..18389 "std"11949                      DOT@18389..18390 "."11950                      NAME@18390..1839811951                        IDENT@18390..18398 "isString"11952                    ARGS_DESC@18398..1840311953                      L_PAREN@18398..18399 "("11954                      ARG@18399..1840211955                        EXPR_VAR@18399..1840211956                          NAME@18399..1840211957                            IDENT@18399..18402 "str"11958                      R_PAREN@18402..18403 ")"11959                WHITESPACE@18403..18404 " "11960                THEN_KW@18404..18408 "then"11961                WHITESPACE@18408..18415 "\n      "11962                TRUE_EXPR@18415..1849111963                  EXPR_ERROR@18415..1849111964                    ERROR_KW@18415..18420 "error"11965                    WHITESPACE@18420..18421 " "11966                    EXPR_BINARY@18421..1849111967                      LHS_EXPR@18421..1847511968                        EXPR_STRING@18421..1847511969                          STRING_SINGLE@18421..18475 "'findSubstr second pa ..."11970                      WHITESPACE@18475..18476 " "11971                      PLUS@18476..18477 "+"11972                      WHITESPACE@18477..18478 " "11973                      EXPR_APPLY@18478..1849111974                        EXPR_INDEX@18478..1848611975                          EXPR_VAR@18478..1848111976                            NAME@18478..1848111977                              IDENT@18478..18481 "std"11978                          DOT@18481..18482 "."11979                          NAME@18482..1848611980                            IDENT@18482..18486 "type"11981                        ARGS_DESC@18486..1849111982                          L_PAREN@18486..18487 "("11983                          ARG@18487..1849011984                            EXPR_VAR@18487..1849011985                              NAME@18487..1849011986                                IDENT@18487..18490 "str"11987                          R_PAREN@18490..18491 ")"11988                WHITESPACE@18491..18496 "\n    "11989                ELSE_KW@18496..18500 "else"11990                WHITESPACE@18500..18507 "\n      "11991                FALSE_EXPR@18507..1875511992                  EXPR_LOCAL@18507..1875511993                    LOCAL_KW@18507..18512 "local"11994                    WHITESPACE@18512..18513 " "11995                    BIND_DESTRUCT@18513..1853811996                      DESTRUCT_FULL@18513..1852011997                        NAME@18513..1852011998                          IDENT@18513..18520 "pat_len"11999                      WHITESPACE@18520..18521 " "12000                      ASSIGN@18521..18522 "="12001                      WHITESPACE@18522..18523 " "12002                      EXPR_APPLY@18523..1853812003                        EXPR_INDEX@18523..1853312004                          EXPR_VAR@18523..1852612005                            NAME@18523..1852612006                              IDENT@18523..18526 "std"12007                          DOT@18526..18527 "."12008                          NAME@18527..1853312009                            IDENT@18527..18533 "length"12010                        ARGS_DESC@18533..1853812011                          L_PAREN@18533..18534 "("12012                          ARG@18534..1853712013                            EXPR_VAR@18534..1853712014                              NAME@18534..1853712015                                IDENT@18534..18537 "pat"12016                          R_PAREN@18537..18538 ")"12017                    SEMI@18538..18539 ";"12018                    WHITESPACE@18539..18546 "\n      "12019                    EXPR_LOCAL@18546..1875512020                      LOCAL_KW@18546..18551 "local"12021                      WHITESPACE@18551..18552 " "12022                      BIND_DESTRUCT@18552..1857712023                        DESTRUCT_FULL@18552..1855912024                          NAME@18552..1855912025                            IDENT@18552..18559 "str_len"12026                        WHITESPACE@18559..18560 " "12027                        ASSIGN@18560..18561 "="12028                        WHITESPACE@18561..18562 " "12029                        EXPR_APPLY@18562..1857712030                          EXPR_INDEX@18562..1857212031                            EXPR_VAR@18562..1856512032                              NAME@18562..1856512033                                IDENT@18562..18565 "std"12034                            DOT@18565..18566 "."12035                            NAME@18566..1857212036                              IDENT@18566..18572 "length"12037                          ARGS_DESC@18572..1857712038                            L_PAREN@18572..18573 "("12039                            ARG@18573..1857612040                              EXPR_VAR@18573..1857612041                                NAME@18573..1857612042                                  IDENT@18573..18576 "str"12043                            R_PAREN@18576..18577 ")"12044                      SEMI@18577..18578 ";"12045                      WHITESPACE@18578..18585 "\n      "12046                      EXPR_IF_THEN_ELSE@18585..1875512047                        IF_KW@18585..18587 "if"12048                        WHITESPACE@18587..18588 " "12049                        EXPR_BINARY@18588..1863712050                          LHS_EXPR@18588..1861612051                            EXPR_BINARY@18588..1861612052                              LHS_EXPR@18588..1860012053                                EXPR_BINARY@18588..1860012054                                  LHS_EXPR@18588..1859512055                                    EXPR_VAR@18588..1859512056                                      NAME@18588..1859512057                                        IDENT@18588..18595 "pat_len"12058                                  WHITESPACE@18595..18596 " "12059                                  EQ@18596..18598 "=="12060                                  WHITESPACE@18598..18599 " "12061                                  EXPR_NUMBER@18599..1860012062                                    FLOAT@18599..18600 "0"12063                              WHITESPACE@18600..18601 " "12064                              OR@18601..18603 "||"12065                              WHITESPACE@18603..18604 " "12066                              EXPR_BINARY@18604..1861612067                                LHS_EXPR@18604..1861112068                                  EXPR_VAR@18604..1861112069                                    NAME@18604..1861112070                                      IDENT@18604..18611 "str_len"12071                                WHITESPACE@18611..18612 " "12072                                EQ@18612..18614 "=="12073                                WHITESPACE@18614..18615 " "12074                                EXPR_NUMBER@18615..1861612075                                  FLOAT@18615..18616 "0"12076                          WHITESPACE@18616..18617 " "12077                          OR@18617..18619 "||"12078                          WHITESPACE@18619..18620 " "12079                          EXPR_BINARY@18620..1863712080                            LHS_EXPR@18620..1862712081                              EXPR_VAR@18620..1862712082                                NAME@18620..1862712083                                  IDENT@18620..18627 "pat_len"12084                            WHITESPACE@18627..18628 " "12085                            GT@18628..18629 ">"12086                            WHITESPACE@18629..18630 " "12087                            EXPR_VAR@18630..1863712088                              NAME@18630..1863712089                                IDENT@18630..18637 "str_len"12090                        WHITESPACE@18637..18638 " "12091                        THEN_KW@18638..18642 "then"12092                        WHITESPACE@18642..18651 "\n        "12093                        TRUE_EXPR@18651..1865312094                          EXPR_ARRAY@18651..1865312095                            L_BRACK@18651..18652 "["12096                            R_BRACK@18652..18653 "]"12097                        WHITESPACE@18653..18660 "\n      "12098                        ELSE_KW@18660..18664 "else"12099                        WHITESPACE@18664..18673 "\n        "12100                        FALSE_EXPR@18673..1875512101                          EXPR_APPLY@18673..1875512102                            EXPR_INDEX@18673..1868312103                              EXPR_VAR@18673..1867612104                                NAME@18673..1867612105                                  IDENT@18673..18676 "std"12106                              DOT@18676..18677 "."12107                              NAME@18677..1868312108                                IDENT@18677..18683 "filter"12109                            ARGS_DESC@18683..1875512110                              L_PAREN@18683..18684 "("12111                              ARG@18684..1872112112                                EXPR_FUNCTION@18684..1872112113                                  FUNCTION_KW@18684..18692 "function"12114                                  PARAMS_DESC@18692..1869512115                                    L_PAREN@18692..18693 "("12116                                    PARAM@18693..1869412117                                      DESTRUCT_FULL@18693..1869412118                                        NAME@18693..1869412119                                          IDENT@18693..18694 "i"12120                                    R_PAREN@18694..18695 ")"12121                                  WHITESPACE@18695..18696 " "12122                                  EXPR_BINARY@18696..1872112123                                    LHS_EXPR@18696..1871412124                                      EXPR_SLICE@18696..1871412125                                        EXPR_VAR@18696..1869912126                                          NAME@18696..1869912127                                            IDENT@18696..18699 "str"12128                                        SLICE_DESC@18699..1871412129                                          L_BRACK@18699..18700 "["12130                                          EXPR_VAR@18700..1870112131                                            NAME@18700..1870112132                                              IDENT@18700..18701 "i"12133                                          COLON@18701..18702 ":"12134                                          SLICE_DESC_END@18702..1871312135                                            EXPR_BINARY@18702..1871312136                                              LHS_EXPR@18702..1870312137                                                EXPR_VAR@18702..1870312138                                                  NAME@18702..1870312139                                                    IDENT@18702..18703 "i"12140                                              WHITESPACE@18703..18704 " "12141                                              PLUS@18704..18705 "+"12142                                              WHITESPACE@18705..18706 " "12143                                              EXPR_VAR@18706..1871312144                                                NAME@18706..1871312145                                                  IDENT@18706..18713 "pat_len"12146                                          R_BRACK@18713..18714 "]"12147                                    WHITESPACE@18714..18715 " "12148                                    EQ@18715..18717 "=="12149                                    WHITESPACE@18717..18718 " "12150                                    EXPR_VAR@18718..1872112151                                      NAME@18718..1872112152                                        IDENT@18718..18721 "pat"12153                              COMMA@18721..18722 ","12154                              WHITESPACE@18722..18723 " "12155                              ARG@18723..1875412156                                EXPR_APPLY@18723..1875412157                                  EXPR_INDEX@18723..1873212158                                    EXPR_VAR@18723..1872612159                                      NAME@18723..1872612160                                        IDENT@18723..18726 "std"12161                                    DOT@18726..18727 "."12162                                    NAME@18727..1873212163                                      IDENT@18727..18732 "range"12164                                  ARGS_DESC@18732..1875412165                                    L_PAREN@18732..18733 "("12166                                    ARG@18733..1873412167                                      EXPR_NUMBER@18733..1873412168                                        FLOAT@18733..18734 "0"12169                                    COMMA@18734..18735 ","12170                                    WHITESPACE@18735..18736 " "12171                                    ARG@18736..1875312172                                      EXPR_BINARY@18736..1875312173                                        LHS_EXPR@18736..1874312174                                          EXPR_VAR@18736..1874312175                                            NAME@18736..1874312176                                              IDENT@18736..18743 "str_len"12177                                        WHITESPACE@18743..18744 " "12178                                        MINUS@18744..18745 "-"12179                                        WHITESPACE@18745..18746 " "12180                                        EXPR_VAR@18746..1875312181                                          NAME@18746..1875312182                                            IDENT@18746..18753 "pat_len"12183                                    R_PAREN@18753..18754 ")"12184                              R_PAREN@18754..18755 ")"12185      COMMA@18755..18756 ","12186      WHITESPACE@18756..18760 "\n\n  "12187      MEMBER_FIELD@18760..1897512188        FIELD_METHOD@18760..1897512189          FIELD_NAME_FIXED@18760..1876412190            NAME@18760..1876412191              IDENT@18760..18764 "find"12192          PARAMS_DESC@18764..1877612193            L_PAREN@18764..18765 "("12194            PARAM@18765..1877012195              DESTRUCT_FULL@18765..1877012196                NAME@18765..1877012197                  IDENT@18765..18770 "value"12198            COMMA@18770..18771 ","12199            WHITESPACE@18771..18772 " "12200            PARAM@18772..1877512201              DESTRUCT_FULL@18772..1877512202                NAME@18772..1877512203                  IDENT@18772..18775 "arr"12204            R_PAREN@18775..18776 ")"12205          COLONCOLON@18776..18778 "::"12206          WHITESPACE@18778..18783 "\n    "12207          EXPR_IF_THEN_ELSE@18783..1897512208            IF_KW@18783..18785 "if"12209            WHITESPACE@18785..18786 " "12210            EXPR_UNARY@18786..1880312211              NOT@18786..18787 "!"12212              EXPR_APPLY@18787..1880312213                EXPR_INDEX@18787..1879812214                  EXPR_VAR@18787..1879012215                    NAME@18787..1879012216                      IDENT@18787..18790 "std"12217                  DOT@18790..18791 "."12218                  NAME@18791..1879812219                    IDENT@18791..18798 "isArray"12220                ARGS_DESC@18798..1880312221                  L_PAREN@18798..18799 "("12222                  ARG@18799..1880212223                    EXPR_VAR@18799..1880212224                      NAME@18799..1880212225                        IDENT@18799..18802 "arr"12226                  R_PAREN@18802..18803 ")"12227            WHITESPACE@18803..18804 " "12228            THEN_KW@18804..18808 "then"12229            WHITESPACE@18808..18815 "\n      "12230            TRUE_EXPR@18815..1888512231              EXPR_ERROR@18815..1888512232                ERROR_KW@18815..18820 "error"12233                WHITESPACE@18820..18821 " "12234                EXPR_BINARY@18821..1888512235                  LHS_EXPR@18821..1886912236                    EXPR_STRING@18821..1886912237                      STRING_SINGLE@18821..18869 "'find second paramete ..."12238                  WHITESPACE@18869..18870 " "12239                  PLUS@18870..18871 "+"12240                  WHITESPACE@18871..18872 " "12241                  EXPR_APPLY@18872..1888512242                    EXPR_INDEX@18872..1888012243                      EXPR_VAR@18872..1887512244                        NAME@18872..1887512245                          IDENT@18872..18875 "std"12246                      DOT@18875..18876 "."12247                      NAME@18876..1888012248                        IDENT@18876..18880 "type"12249                    ARGS_DESC@18880..1888512250                      L_PAREN@18880..18881 "("12251                      ARG@18881..1888412252                        EXPR_VAR@18881..1888412253                          NAME@18881..1888412254                            IDENT@18881..18884 "arr"12255                      R_PAREN@18884..18885 ")"12256            WHITESPACE@18885..18890 "\n    "12257            ELSE_KW@18890..18894 "else"12258            WHITESPACE@18894..18901 "\n      "12259            FALSE_EXPR@18901..1897512260              EXPR_APPLY@18901..1897512261                EXPR_INDEX@18901..1891112262                  EXPR_VAR@18901..1890412263                    NAME@18901..1890412264                      IDENT@18901..18904 "std"12265                  DOT@18904..18905 "."12266                  NAME@18905..1891112267                    IDENT@18905..18911 "filter"12268                ARGS_DESC@18911..1897512269                  L_PAREN@18911..18912 "("12270                  ARG@18912..1893912271                    EXPR_FUNCTION@18912..1893912272                      FUNCTION_KW@18912..18920 "function"12273                      PARAMS_DESC@18920..1892312274                        L_PAREN@18920..18921 "("12275                        PARAM@18921..1892212276                          DESTRUCT_FULL@18921..1892212277                            NAME@18921..1892212278                              IDENT@18921..18922 "i"12279                        R_PAREN@18922..18923 ")"12280                      WHITESPACE@18923..18924 " "12281                      EXPR_BINARY@18924..1893912282                        LHS_EXPR@18924..1893012283                          EXPR_INDEX_EXPR@18924..1893012284                            LHS_EXPR@18924..1892712285                              EXPR_VAR@18924..1892712286                                NAME@18924..1892712287                                  IDENT@18924..18927 "arr"12288                            L_BRACK@18927..18928 "["12289                            EXPR_VAR@18928..1892912290                              NAME@18928..1892912291                                IDENT@18928..18929 "i"12292                            R_BRACK@18929..18930 "]"12293                        WHITESPACE@18930..18931 " "12294                        EQ@18931..18933 "=="12295                        WHITESPACE@18933..18934 " "12296                        EXPR_VAR@18934..1893912297                          NAME@18934..1893912298                            IDENT@18934..18939 "value"12299                  COMMA@18939..18940 ","12300                  WHITESPACE@18940..18941 " "12301                  ARG@18941..1897412302                    EXPR_APPLY@18941..1897412303                      EXPR_INDEX@18941..1895012304                        EXPR_VAR@18941..1894412305                          NAME@18941..1894412306                            IDENT@18941..18944 "std"12307                        DOT@18944..18945 "."12308                        NAME@18945..1895012309                          IDENT@18945..18950 "range"12310                      ARGS_DESC@18950..1897412311                        L_PAREN@18950..18951 "("12312                        ARG@18951..1895212313                          EXPR_NUMBER@18951..1895212314                            FLOAT@18951..18952 "0"12315                        COMMA@18952..18953 ","12316                        WHITESPACE@18953..18954 " "12317                        ARG@18954..1897312318                          EXPR_BINARY@18954..1897312319                            LHS_EXPR@18954..1896912320                              EXPR_APPLY@18954..1896912321                                EXPR_INDEX@18954..1896412322                                  EXPR_VAR@18954..1895712323                                    NAME@18954..1895712324                                      IDENT@18954..18957 "std"12325                                  DOT@18957..18958 "."12326                                  NAME@18958..1896412327                                    IDENT@18958..18964 "length"12328                                ARGS_DESC@18964..1896912329                                  L_PAREN@18964..18965 "("12330                                  ARG@18965..1896812331                                    EXPR_VAR@18965..1896812332                                      NAME@18965..1896812333                                        IDENT@18965..18968 "arr"12334                                  R_PAREN@18968..18969 ")"12335                            WHITESPACE@18969..18970 " "12336                            MINUS@18970..18971 "-"12337                            WHITESPACE@18971..18972 " "12338                            EXPR_NUMBER@18972..1897312339                              FLOAT@18972..18973 "1"12340                        R_PAREN@18973..18974 ")"12341                  R_PAREN@18974..18975 ")"12342      COMMA@18975..18976 ","12343      WHITESPACE@18976..18977 "\n"12344      R_BRACE@18977..18978 "}"12345
after · crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__stdlib.snap
1---2source: crates/jrsonnet-rowan-parser/src/tests.rs3expression: "{\n  local std = self,\n  local id = std.id,\n\n  thisFile:: error 'std.thisFile is deprecated, to enable its support in jrsonnet - recompile it with \"legacy-this-file\" support.\\nThis will slow down stdlib caching a bit, though',\n\n  toString(a):: '' + a,\n\n  lstripChars(str, chars)::\n    if std.length(str) > 0 && std.member(chars, str[0]) then\n      std.lstripChars(str[1:], chars)\n    else\n      str,\n\n  rstripChars(str, chars)::\n    local len = std.length(str);\n    if len > 0 && std.member(chars, str[len - 1]) then\n      std.rstripChars(str[:len - 1], chars)\n    else\n      str,\n\n  stripChars(str, chars)::\n    std.lstripChars(std.rstripChars(str, chars), chars),\n\n  stringChars(str)::\n    std.makeArray(std.length(str), function(i) str[i]),\n\n  splitLimitR(str, c, maxsplits)::\n    if maxsplits == -1 then\n      std.splitLimit(str, c, -1)\n    else\n      local revStr(str) = std.join('', std.reverse(std.stringChars(str)));\n      std.map(function(e) revStr(e), std.reverse(std.splitLimit(revStr(str), revStr(c), maxsplits))),\n\n  split(str, c):: std.splitLimit(str, c, -1),\n\n  mapWithIndex(func, arr)::\n    if !std.isFunction(func) then\n      error ('std.mapWithIndex first param must be function, got ' + std.type(func))\n    else if !std.isArray(arr) && !std.isString(arr) then\n      error ('std.mapWithIndex second param must be array, got ' + std.type(arr))\n    else\n      std.makeArray(std.length(arr), function(i) func(i, arr[i])),\n\n  mapWithKey(func, obj)::\n    if !std.isFunction(func) then\n      error ('std.mapWithKey first param must be function, got ' + std.type(func))\n    else if !std.isObject(obj) then\n      error ('std.mapWithKey second param must be object, got ' + std.type(obj))\n    else\n      { [k]: func(k, obj[k]) for k in std.objectFields(obj) },\n\n  lines(arr)::\n    std.join('\\n', arr + ['']),\n\n  deepJoin(arr)::\n    if std.isString(arr) then\n      arr\n    else if std.isArray(arr) then\n      std.join('', [std.deepJoin(x) for x in arr])\n    else\n      error 'Expected string or array, got %s' % std.type(arr),\n\n  filterMap(filter_func, map_func, arr)::\n    if !std.isFunction(filter_func) then\n      error ('std.filterMap first param must be function, got ' + std.type(filter_func))\n    else if !std.isFunction(map_func) then\n      error ('std.filterMap second param must be function, got ' + std.type(map_func))\n    else if !std.isArray(arr) then\n      error ('std.filterMap third param must be array, got ' + std.type(arr))\n    else\n      std.map(map_func, std.filter(filter_func, arr)),\n\n  assertEqual(a, b)::\n    if a == b then\n      true\n    else\n      error 'Assertion failed. ' + a + ' != ' + b,\n\n  clamp(x, minVal, maxVal)::\n    if x < minVal then minVal\n    else if x > maxVal then maxVal\n    else x,\n\n  flattenArrays(arrs)::\n    std.foldl(function(a, b) a + b, arrs, []),\n\n  manifestIni(ini)::\n    local body_lines(body) =\n      std.join([], [\n        local value_or_values = body[k];\n        if std.isArray(value_or_values) then\n          ['%s = %s' % [k, value] for value in value_or_values]\n        else\n          ['%s = %s' % [k, value_or_values]]\n\n        for k in std.objectFields(body)\n      ]);\n\n    local section_lines(sname, sbody) = ['[%s]' % [sname]] + body_lines(sbody),\n          main_body = if std.objectHas(ini, 'main') then body_lines(ini.main) else [],\n          all_sections = [\n      section_lines(k, ini.sections[k])\n      for k in std.objectFields(ini.sections)\n    ];\n    std.join('\\n', main_body + std.flattenArrays(all_sections) + ['']),\n\n  manifestToml(value):: std.manifestTomlEx(value, '  '),\n\n  escapeStringPython(str)::\n    std.escapeStringJson(str),\n\n  escapeStringBash(str_)::\n    local str = std.toString(str_);\n    local trans(ch) =\n      if ch == \"'\" then\n        \"'\\\"'\\\"'\"\n      else\n        ch;\n    \"'%s'\" % std.join('', [trans(ch) for ch in std.stringChars(str)]),\n\n  escapeStringDollars(str_)::\n    local str = std.toString(str_);\n    local trans(ch) =\n      if ch == '$' then\n        '$$'\n      else\n        ch;\n    std.foldl(function(a, b) a + trans(b), std.stringChars(str), ''),\n\n  local xml_escapes = {\n    '<': '&lt;',\n    '>': '&gt;',\n    '&': '&amp;',\n    '\"': '&quot;',\n    \"'\": '&apos;',\n  },\n\n  escapeStringXML(str_)::\n    local str = std.toString(str_);\n    std.join('', [std.get(xml_escapes, ch, ch) for ch in std.stringChars(str)]),\n\n  manifestJson(value):: std.manifestJsonEx(value, '    ') tailstrict,\n\n  manifestJsonMinified(value):: std.manifestJsonEx(value, '', '', ':'),\n\n  manifestYamlStream(value, indent_array_in_object=false, c_document_end=true, quote_keys=true)::\n    if !std.isArray(value) then\n      error 'manifestYamlStream only takes arrays, got ' + std.type(value)\n    else\n      '---\\n' + std.join(\n        '\\n---\\n', [std.manifestYamlDoc(e, indent_array_in_object, quote_keys) for e in value]\n      ) + if c_document_end then '\\n...\\n' else '\\n',\n\n  manifestPython(v)::\n    if std.isObject(v) then\n      local fields = [\n        '%s: %s' % [std.escapeStringPython(k), std.manifestPython(v[k])]\n        for k in std.objectFields(v)\n      ];\n      '{%s}' % [std.join(', ', fields)]\n    else if std.isArray(v) then\n      '[%s]' % [std.join(', ', [std.manifestPython(v2) for v2 in v])]\n    else if std.isString(v) then\n      '%s' % [std.escapeStringPython(v)]\n    else if std.isFunction(v) then\n      error 'cannot manifest function'\n    else if std.isNumber(v) then\n      std.toString(v)\n    else if v == true then\n      'True'\n    else if v == false then\n      'False'\n    else if v == null then\n      'None',\n\n  manifestPythonVars(conf)::\n    local vars = ['%s = %s' % [k, std.manifestPython(conf[k])] for k in std.objectFields(conf)];\n    std.join('\\n', vars + ['']),\n\n  manifestXmlJsonml(value)::\n    if !std.isArray(value) then\n      error 'Expected a JSONML value (an array), got %s' % std.type(value)\n    else\n      local aux(v) =\n        if std.isString(v) then\n          v\n        else\n          local tag = v[0];\n          local has_attrs = std.length(v) > 1 && std.isObject(v[1]);\n          local attrs = if has_attrs then v[1] else {};\n          local children = if has_attrs then v[2:] else v[1:];\n          local attrs_str =\n            std.join('', [' %s=\"%s\"' % [k, attrs[k]] for k in std.objectFields(attrs)]);\n          std.deepJoin(['<', tag, attrs_str, '>', [aux(x) for x in children], '</', tag, '>']);\n\n      aux(value),\n\n  uniq(arr, keyF=id)::\n    local f(a, b) =\n      if std.length(a) == 0 then\n        [b]\n      else if keyF(a[std.length(a) - 1]) == keyF(b) then\n        a\n      else\n        a + [b];\n    std.foldl(f, arr, []),\n\n  set(arr, keyF=id)::\n    std.uniq(std.sort(arr, keyF), keyF),\n\n  setMember(x, arr, keyF=id)::\n    // TODO(dcunnin): Binary chop for O(log n) complexity\n    std.length(std.setInter([x], arr, keyF)) > 0,\n\n  setUnion(a, b, keyF=id)::\n    // NOTE: order matters, values in `a` win\n    local aux(a, b, i, j, acc) =\n      if i >= std.length(a) then\n        acc + b[j:]\n      else if j >= std.length(b) then\n        acc + a[i:]\n      else\n        local ak = keyF(a[i]);\n        local bk = keyF(b[j]);\n        if ak == bk then\n          aux(a, b, i + 1, j + 1, acc + [a[i]]) tailstrict\n        else if ak < bk then\n          aux(a, b, i + 1, j, acc + [a[i]]) tailstrict\n        else\n          aux(a, b, i, j + 1, acc + [b[j]]) tailstrict;\n    aux(a, b, 0, 0, []),\n\n  setInter(a, b, keyF=id)::\n    local aux(a, b, i, j, acc) =\n      if i >= std.length(a) || j >= std.length(b) then\n        acc\n      else\n        if keyF(a[i]) == keyF(b[j]) then\n          aux(a, b, i + 1, j + 1, acc + [a[i]]) tailstrict\n        else if keyF(a[i]) < keyF(b[j]) then\n          aux(a, b, i + 1, j, acc) tailstrict\n        else\n          aux(a, b, i, j + 1, acc) tailstrict;\n    aux(a, b, 0, 0, []) tailstrict,\n\n  setDiff(a, b, keyF=id)::\n    local aux(a, b, i, j, acc) =\n      if i >= std.length(a) then\n        acc\n      else if j >= std.length(b) then\n        acc + a[i:]\n      else\n        if keyF(a[i]) == keyF(b[j]) then\n          aux(a, b, i + 1, j + 1, acc) tailstrict\n        else if keyF(a[i]) < keyF(b[j]) then\n          aux(a, b, i + 1, j, acc + [a[i]]) tailstrict\n        else\n          aux(a, b, i, j + 1, acc) tailstrict;\n    aux(a, b, 0, 0, []) tailstrict,\n\n  mergePatch(target, patch)::\n    if std.isObject(patch) then\n      local target_object =\n        if std.isObject(target) then target else {};\n\n      local target_fields =\n        if std.isObject(target_object) then std.objectFields(target_object) else [];\n\n      local null_fields = [k for k in std.objectFields(patch) if patch[k] == null];\n      local both_fields = std.setUnion(target_fields, std.objectFields(patch));\n\n      {\n        [k]:\n          if !std.objectHas(patch, k) then\n            target_object[k]\n          else if !std.objectHas(target_object, k) then\n            std.mergePatch(null, patch[k]) tailstrict\n          else\n            std.mergePatch(target_object[k], patch[k]) tailstrict\n        for k in std.setDiff(both_fields, null_fields)\n      }\n    else\n      patch,\n\n  get(o, f, default=null, inc_hidden=true)::\n    if std.objectHasEx(o, f, inc_hidden) then o[f] else default,\n\n  objectFields(o)::\n    std.objectFieldsEx(o, false),\n\n  objectFieldsAll(o)::\n    std.objectFieldsEx(o, true),\n\n  objectHas(o, f)::\n    std.objectHasEx(o, f, false),\n\n  objectHasAll(o, f)::\n    std.objectHasEx(o, f, true),\n\n  objectValues(o)::\n    [o[k] for k in std.objectFields(o)],\n\n  objectValuesAll(o)::\n    [o[k] for k in std.objectFieldsAll(o)],\n\n  resolvePath(f, r)::\n    local arr = std.split(f, '/');\n    std.join('/', std.makeArray(std.length(arr) - 1, function(i) arr[i]) + [r]),\n\n  prune(a)::\n    local isContent(b) =\n      if b == null then\n        false\n      else if std.isArray(b) then\n        std.length(b) > 0\n      else if std.isObject(b) then\n        std.length(b) > 0\n      else\n        true;\n    if std.isArray(a) then\n      [std.prune(x) for x in a if isContent($.prune(x))]\n    else if std.isObject(a) then {\n      [x]: $.prune(a[x])\n      for x in std.objectFields(a)\n      if isContent(std.prune(a[x]))\n    } else\n      a,\n\n  find(value, arr)::\n    if !std.isArray(arr) then\n      error 'find second parameter should be an array, got ' + std.type(arr)\n    else\n      std.filter(function(i) arr[i] == value, std.range(0, std.length(arr) - 1)),\n}\n"4---5SOURCE_FILE@0..102826  EXPR_OBJECT@0..102817    OBJ_BODY_MEMBER_LIST@0..102818      L_BRACE@0..1 "{"9      WHITESPACE@1..4 "\n  "10      MEMBER_BIND_STMT@4..2011        OBJ_LOCAL@4..2012          LOCAL_KW@4..9 "local"13          WHITESPACE@9..10 " "14          BIND_DESTRUCT@10..2015            DESTRUCT_FULL@10..1316              NAME@10..1317                IDENT@10..13 "std"18            WHITESPACE@13..14 " "19            ASSIGN@14..15 "="20            WHITESPACE@15..16 " "21            EXPR_LITERAL@16..2022              SELF_KW@16..20 "self"23      COMMA@20..21 ","24      WHITESPACE@21..24 "\n  "25      MEMBER_BIND_STMT@24..4126        OBJ_LOCAL@24..4127          LOCAL_KW@24..29 "local"28          WHITESPACE@29..30 " "29          BIND_DESTRUCT@30..4130            DESTRUCT_FULL@30..3231              NAME@30..3232                IDENT@30..32 "id"33            WHITESPACE@32..33 " "34            ASSIGN@33..34 "="35            WHITESPACE@34..35 " "36            EXPR_INDEX@35..4137              EXPR_VAR@35..3838                NAME@35..3839                  IDENT@35..38 "std"40              DOT@38..39 "."41              NAME@39..4142                IDENT@39..41 "id"43      COMMA@41..42 ","44      WHITESPACE@42..46 "\n\n  "45      MEMBER_FIELD@46..22446        FIELD_NORMAL@46..22447          FIELD_NAME_FIXED@46..5448            NAME@46..5449              IDENT@46..54 "thisFile"50          COLONCOLON@54..56 "::"51          WHITESPACE@56..57 " "52          EXPR_ERROR@57..22453            ERROR_KW@57..62 "error"54            WHITESPACE@62..63 " "55            EXPR_STRING@63..22456              STRING_SINGLE@63..224 "'std.thisFile is depr ..."57      COMMA@224..225 ","58      WHITESPACE@225..229 "\n\n  "59      MEMBER_FIELD@229..24960        FIELD_METHOD@229..24961          FIELD_NAME_FIXED@229..23762            NAME@229..23763              IDENT@229..237 "toString"64          PARAMS_DESC@237..24065            L_PAREN@237..238 "("66            PARAM@238..23967              DESTRUCT_FULL@238..23968                NAME@238..23969                  IDENT@238..239 "a"70            R_PAREN@239..240 ")"71          COLONCOLON@240..242 "::"72          WHITESPACE@242..243 " "73          EXPR_BINARY@243..24974            LHS_EXPR@243..24575              EXPR_STRING@243..24576                STRING_SINGLE@243..245 "''"77            WHITESPACE@245..246 " "78            PLUS@246..247 "+"79            WHITESPACE@247..248 " "80            EXPR_VAR@248..24981              NAME@248..24982                IDENT@248..249 "a"83      COMMA@249..250 ","84      WHITESPACE@250..254 "\n\n  "85      MEMBER_FIELD@254..39786        FIELD_METHOD@254..39787          FIELD_NAME_FIXED@254..26588            NAME@254..26589              IDENT@254..265 "lstripChars"90          PARAMS_DESC@265..27791            L_PAREN@265..266 "("92            PARAM@266..26993              DESTRUCT_FULL@266..26994                NAME@266..26995                  IDENT@266..269 "str"96            COMMA@269..270 ","97            WHITESPACE@270..271 " "98            PARAM@271..27699              DESTRUCT_FULL@271..276100                NAME@271..276101                  IDENT@271..276 "chars"102            R_PAREN@276..277 ")"103          COLONCOLON@277..279 "::"104          WHITESPACE@279..284 "\n    "105          EXPR_IF_THEN_ELSE@284..397106            IF_KW@284..286 "if"107            WHITESPACE@286..287 " "108            EXPR_BINARY@287..335109              LHS_EXPR@287..306110                EXPR_BINARY@287..306111                  LHS_EXPR@287..302112                    EXPR_APPLY@287..302113                      EXPR_INDEX@287..297114                        EXPR_VAR@287..290115                          NAME@287..290116                            IDENT@287..290 "std"117                        DOT@290..291 "."118                        NAME@291..297119                          IDENT@291..297 "length"120                      ARGS_DESC@297..302121                        L_PAREN@297..298 "("122                        ARG@298..301123                          EXPR_VAR@298..301124                            NAME@298..301125                              IDENT@298..301 "str"126                        R_PAREN@301..302 ")"127                  WHITESPACE@302..303 " "128                  GT@303..304 ">"129                  WHITESPACE@304..305 " "130                  EXPR_NUMBER@305..306131                    FLOAT@305..306 "0"132              WHITESPACE@306..307 " "133              AND@307..309 "&&"134              WHITESPACE@309..310 " "135              EXPR_APPLY@310..335136                EXPR_INDEX@310..320137                  EXPR_VAR@310..313138                    NAME@310..313139                      IDENT@310..313 "std"140                  DOT@313..314 "."141                  NAME@314..320142                    IDENT@314..320 "member"143                ARGS_DESC@320..335144                  L_PAREN@320..321 "("145                  ARG@321..326146                    EXPR_VAR@321..326147                      NAME@321..326148                        IDENT@321..326 "chars"149                  COMMA@326..327 ","150                  WHITESPACE@327..328 " "151                  ARG@328..334152                    EXPR_INDEX_EXPR@328..334153                      LHS_EXPR@328..331154                        EXPR_VAR@328..331155                          NAME@328..331156                            IDENT@328..331 "str"157                      L_BRACK@331..332 "["158                      EXPR_NUMBER@332..333159                        FLOAT@332..333 "0"160                      R_BRACK@333..334 "]"161                  R_PAREN@334..335 ")"162            WHITESPACE@335..336 " "163            THEN_KW@336..340 "then"164            WHITESPACE@340..347 "\n      "165            TRUE_EXPR@347..378166              EXPR_APPLY@347..378167                EXPR_INDEX@347..362168                  EXPR_VAR@347..350169                    NAME@347..350170                      IDENT@347..350 "std"171                  DOT@350..351 "."172                  NAME@351..362173                    IDENT@351..362 "lstripChars"174                ARGS_DESC@362..378175                  L_PAREN@362..363 "("176                  ARG@363..370177                    EXPR_SLICE@363..370178                      EXPR_VAR@363..366179                        NAME@363..366180                          IDENT@363..366 "str"181                      SLICE_DESC@366..370182                        L_BRACK@366..367 "["183                        EXPR_NUMBER@367..368184                          FLOAT@367..368 "1"185                        COLON@368..369 ":"186                        R_BRACK@369..370 "]"187                  COMMA@370..371 ","188                  WHITESPACE@371..372 " "189                  ARG@372..377190                    EXPR_VAR@372..377191                      NAME@372..377192                        IDENT@372..377 "chars"193                  R_PAREN@377..378 ")"194            WHITESPACE@378..383 "\n    "195            ELSE_KW@383..387 "else"196            WHITESPACE@387..394 "\n      "197            FALSE_EXPR@394..397198              EXPR_VAR@394..397199                NAME@394..397200                  IDENT@394..397 "str"201      COMMA@397..398 ","202      WHITESPACE@398..402 "\n\n  "203      MEMBER_FIELD@402..578204        FIELD_METHOD@402..578205          FIELD_NAME_FIXED@402..413206            NAME@402..413207              IDENT@402..413 "rstripChars"208          PARAMS_DESC@413..425209            L_PAREN@413..414 "("210            PARAM@414..417211              DESTRUCT_FULL@414..417212                NAME@414..417213                  IDENT@414..417 "str"214            COMMA@417..418 ","215            WHITESPACE@418..419 " "216            PARAM@419..424217              DESTRUCT_FULL@419..424218                NAME@419..424219                  IDENT@419..424 "chars"220            R_PAREN@424..425 ")"221          COLONCOLON@425..427 "::"222          WHITESPACE@427..432 "\n    "223          EXPR_LOCAL@432..578224            LOCAL_KW@432..437 "local"225            WHITESPACE@437..438 " "226            BIND_DESTRUCT@438..459227              DESTRUCT_FULL@438..441228                NAME@438..441229                  IDENT@438..441 "len"230              WHITESPACE@441..442 " "231              ASSIGN@442..443 "="232              WHITESPACE@443..444 " "233              EXPR_APPLY@444..459234                EXPR_INDEX@444..454235                  EXPR_VAR@444..447236                    NAME@444..447237                      IDENT@444..447 "std"238                  DOT@447..448 "."239                  NAME@448..454240                    IDENT@448..454 "length"241                ARGS_DESC@454..459242                  L_PAREN@454..455 "("243                  ARG@455..458244                    EXPR_VAR@455..458245                      NAME@455..458246                        IDENT@455..458 "str"247                  R_PAREN@458..459 ")"248            SEMI@459..460 ";"249            WHITESPACE@460..465 "\n    "250            EXPR_IF_THEN_ELSE@465..578251              IF_KW@465..467 "if"252              WHITESPACE@467..468 " "253              EXPR_BINARY@468..510254                LHS_EXPR@468..475255                  EXPR_BINARY@468..475256                    LHS_EXPR@468..471257                      EXPR_VAR@468..471258                        NAME@468..471259                          IDENT@468..471 "len"260                    WHITESPACE@471..472 " "261                    GT@472..473 ">"262                    WHITESPACE@473..474 " "263                    EXPR_NUMBER@474..475264                      FLOAT@474..475 "0"265                WHITESPACE@475..476 " "266                AND@476..478 "&&"267                WHITESPACE@478..479 " "268                EXPR_APPLY@479..510269                  EXPR_INDEX@479..489270                    EXPR_VAR@479..482271                      NAME@479..482272                        IDENT@479..482 "std"273                    DOT@482..483 "."274                    NAME@483..489275                      IDENT@483..489 "member"276                  ARGS_DESC@489..510277                    L_PAREN@489..490 "("278                    ARG@490..495279                      EXPR_VAR@490..495280                        NAME@490..495281                          IDENT@490..495 "chars"282                    COMMA@495..496 ","283                    WHITESPACE@496..497 " "284                    ARG@497..509285                      EXPR_INDEX_EXPR@497..509286                        LHS_EXPR@497..500287                          EXPR_VAR@497..500288                            NAME@497..500289                              IDENT@497..500 "str"290                        L_BRACK@500..501 "["291                        EXPR_BINARY@501..508292                          LHS_EXPR@501..504293                            EXPR_VAR@501..504294                              NAME@501..504295                                IDENT@501..504 "len"296                          WHITESPACE@504..505 " "297                          MINUS@505..506 "-"298                          WHITESPACE@506..507 " "299                          EXPR_NUMBER@507..508300                            FLOAT@507..508 "1"301                        R_BRACK@508..509 "]"302                    R_PAREN@509..510 ")"303              WHITESPACE@510..511 " "304              THEN_KW@511..515 "then"305              WHITESPACE@515..522 "\n      "306              TRUE_EXPR@522..559307                EXPR_APPLY@522..559308                  EXPR_INDEX@522..537309                    EXPR_VAR@522..525310                      NAME@522..525311                        IDENT@522..525 "std"312                    DOT@525..526 "."313                    NAME@526..537314                      IDENT@526..537 "rstripChars"315                  ARGS_DESC@537..559316                    L_PAREN@537..538 "("317                    ARG@538..551318                      EXPR_SLICE@538..551319                        EXPR_VAR@538..541320                          NAME@538..541321                            IDENT@538..541 "str"322                        SLICE_DESC@541..551323                          L_BRACK@541..542 "["324                          COLON@542..543 ":"325                          SLICE_DESC_END@543..550326                            EXPR_BINARY@543..550327                              LHS_EXPR@543..546328                                EXPR_VAR@543..546329                                  NAME@543..546330                                    IDENT@543..546 "len"331                              WHITESPACE@546..547 " "332                              MINUS@547..548 "-"333                              WHITESPACE@548..549 " "334                              EXPR_NUMBER@549..550335                                FLOAT@549..550 "1"336                          R_BRACK@550..551 "]"337                    COMMA@551..552 ","338                    WHITESPACE@552..553 " "339                    ARG@553..558340                      EXPR_VAR@553..558341                        NAME@553..558342                          IDENT@553..558 "chars"343                    R_PAREN@558..559 ")"344              WHITESPACE@559..564 "\n    "345              ELSE_KW@564..568 "else"346              WHITESPACE@568..575 "\n      "347              FALSE_EXPR@575..578348                EXPR_VAR@575..578349                  NAME@575..578350                    IDENT@575..578 "str"351      COMMA@578..579 ","352      WHITESPACE@579..583 "\n\n  "353      MEMBER_FIELD@583..663354        FIELD_METHOD@583..663355          FIELD_NAME_FIXED@583..593356            NAME@583..593357              IDENT@583..593 "stripChars"358          PARAMS_DESC@593..605359            L_PAREN@593..594 "("360            PARAM@594..597361              DESTRUCT_FULL@594..597362                NAME@594..597363                  IDENT@594..597 "str"364            COMMA@597..598 ","365            WHITESPACE@598..599 " "366            PARAM@599..604367              DESTRUCT_FULL@599..604368                NAME@599..604369                  IDENT@599..604 "chars"370            R_PAREN@604..605 ")"371          COLONCOLON@605..607 "::"372          WHITESPACE@607..612 "\n    "373          EXPR_APPLY@612..663374            EXPR_INDEX@612..627375              EXPR_VAR@612..615376                NAME@612..615377                  IDENT@612..615 "std"378              DOT@615..616 "."379              NAME@616..627380                IDENT@616..627 "lstripChars"381            ARGS_DESC@627..663382              L_PAREN@627..628 "("383              ARG@628..655384                EXPR_APPLY@628..655385                  EXPR_INDEX@628..643386                    EXPR_VAR@628..631387                      NAME@628..631388                        IDENT@628..631 "std"389                    DOT@631..632 "."390                    NAME@632..643391                      IDENT@632..643 "rstripChars"392                  ARGS_DESC@643..655393                    L_PAREN@643..644 "("394                    ARG@644..647395                      EXPR_VAR@644..647396                        NAME@644..647397                          IDENT@644..647 "str"398                    COMMA@647..648 ","399                    WHITESPACE@648..649 " "400                    ARG@649..654401                      EXPR_VAR@649..654402                        NAME@649..654403                          IDENT@649..654 "chars"404                    R_PAREN@654..655 ")"405              COMMA@655..656 ","406              WHITESPACE@656..657 " "407              ARG@657..662408                EXPR_VAR@657..662409                  NAME@657..662410                    IDENT@657..662 "chars"411              R_PAREN@662..663 ")"412      COMMA@663..664 ","413      WHITESPACE@664..668 "\n\n  "414      MEMBER_FIELD@668..741415        FIELD_METHOD@668..741416          FIELD_NAME_FIXED@668..679417            NAME@668..679418              IDENT@668..679 "stringChars"419          PARAMS_DESC@679..684420            L_PAREN@679..680 "("421            PARAM@680..683422              DESTRUCT_FULL@680..683423                NAME@680..683424                  IDENT@680..683 "str"425            R_PAREN@683..684 ")"426          COLONCOLON@684..686 "::"427          WHITESPACE@686..691 "\n    "428          EXPR_APPLY@691..741429            EXPR_INDEX@691..704430              EXPR_VAR@691..694431                NAME@691..694432                  IDENT@691..694 "std"433              DOT@694..695 "."434              NAME@695..704435                IDENT@695..704 "makeArray"436            ARGS_DESC@704..741437              L_PAREN@704..705 "("438              ARG@705..720439                EXPR_APPLY@705..720440                  EXPR_INDEX@705..715441                    EXPR_VAR@705..708442                      NAME@705..708443                        IDENT@705..708 "std"444                    DOT@708..709 "."445                    NAME@709..715446                      IDENT@709..715 "length"447                  ARGS_DESC@715..720448                    L_PAREN@715..716 "("449                    ARG@716..719450                      EXPR_VAR@716..719451                        NAME@716..719452                          IDENT@716..719 "str"453                    R_PAREN@719..720 ")"454              COMMA@720..721 ","455              WHITESPACE@721..722 " "456              ARG@722..740457                EXPR_FUNCTION@722..740458                  FUNCTION_KW@722..730 "function"459                  PARAMS_DESC@730..733460                    L_PAREN@730..731 "("461                    PARAM@731..732462                      DESTRUCT_FULL@731..732463                        NAME@731..732464                          IDENT@731..732 "i"465                    R_PAREN@732..733 ")"466                  WHITESPACE@733..734 " "467                  EXPR_INDEX_EXPR@734..740468                    LHS_EXPR@734..737469                      EXPR_VAR@734..737470                        NAME@734..737471                          IDENT@734..737 "str"472                    L_BRACK@737..738 "["473                    EXPR_VAR@738..739474                      NAME@738..739475                        IDENT@738..739 "i"476                    R_BRACK@739..740 "]"477              R_PAREN@740..741 ")"478      COMMA@741..742 ","479      WHITESPACE@742..746 "\n\n  "480      MEMBER_FIELD@746..1024481        FIELD_METHOD@746..1024482          FIELD_NAME_FIXED@746..757483            NAME@746..757484              IDENT@746..757 "splitLimitR"485          PARAMS_DESC@757..776486            L_PAREN@757..758 "("487            PARAM@758..761488              DESTRUCT_FULL@758..761489                NAME@758..761490                  IDENT@758..761 "str"491            COMMA@761..762 ","492            WHITESPACE@762..763 " "493            PARAM@763..764494              DESTRUCT_FULL@763..764495                NAME@763..764496                  IDENT@763..764 "c"497            COMMA@764..765 ","498            WHITESPACE@765..766 " "499            PARAM@766..775500              DESTRUCT_FULL@766..775501                NAME@766..775502                  IDENT@766..775 "maxsplits"503            R_PAREN@775..776 ")"504          COLONCOLON@776..778 "::"505          WHITESPACE@778..783 "\n    "506          EXPR_IF_THEN_ELSE@783..1024507            IF_KW@783..785 "if"508            WHITESPACE@785..786 " "509            EXPR_BINARY@786..801510              LHS_EXPR@786..795511                EXPR_VAR@786..795512                  NAME@786..795513                    IDENT@786..795 "maxsplits"514              WHITESPACE@795..796 " "515              EQ@796..798 "=="516              WHITESPACE@798..799 " "517              EXPR_UNARY@799..801518                MINUS@799..800 "-"519                EXPR_NUMBER@800..801520                  FLOAT@800..801 "1"521            WHITESPACE@801..802 " "522            THEN_KW@802..806 "then"523            WHITESPACE@806..813 "\n      "524            TRUE_EXPR@813..839525              EXPR_APPLY@813..839526                EXPR_INDEX@813..827527                  EXPR_VAR@813..816528                    NAME@813..816529                      IDENT@813..816 "std"530                  DOT@816..817 "."531                  NAME@817..827532                    IDENT@817..827 "splitLimit"533                ARGS_DESC@827..839534                  L_PAREN@827..828 "("535                  ARG@828..831536                    EXPR_VAR@828..831537                      NAME@828..831538                        IDENT@828..831 "str"539                  COMMA@831..832 ","540                  WHITESPACE@832..833 " "541                  ARG@833..834542                    EXPR_VAR@833..834543                      NAME@833..834544                        IDENT@833..834 "c"545                  COMMA@834..835 ","546                  WHITESPACE@835..836 " "547                  ARG@836..838548                    EXPR_UNARY@836..838549                      MINUS@836..837 "-"550                      EXPR_NUMBER@837..838551                        FLOAT@837..838 "1"552                  R_PAREN@838..839 ")"553            WHITESPACE@839..844 "\n    "554            ELSE_KW@844..848 "else"555            WHITESPACE@848..855 "\n      "556            FALSE_EXPR@855..1024557              EXPR_LOCAL@855..1024558                LOCAL_KW@855..860 "local"559                WHITESPACE@860..861 " "560                BIND_FUNCTION@861..922561                  NAME@861..867562                    IDENT@861..867 "revStr"563                  PARAMS_DESC@867..872564                    L_PAREN@867..868 "("565                    PARAM@868..871566                      DESTRUCT_FULL@868..871567                        NAME@868..871568                          IDENT@868..871 "str"569                    R_PAREN@871..872 ")"570                  WHITESPACE@872..873 " "571                  ASSIGN@873..874 "="572                  WHITESPACE@874..875 " "573                  EXPR_APPLY@875..922574                    EXPR_INDEX@875..883575                      EXPR_VAR@875..878576                        NAME@875..878577                          IDENT@875..878 "std"578                      DOT@878..879 "."579                      NAME@879..883580                        IDENT@879..883 "join"581                    ARGS_DESC@883..922582                      L_PAREN@883..884 "("583                      ARG@884..886584                        EXPR_STRING@884..886585                          STRING_SINGLE@884..886 "''"586                      COMMA@886..887 ","587                      WHITESPACE@887..888 " "588                      ARG@888..921589                        EXPR_APPLY@888..921590                          EXPR_INDEX@888..899591                            EXPR_VAR@888..891592                              NAME@888..891593                                IDENT@888..891 "std"594                            DOT@891..892 "."595                            NAME@892..899596                              IDENT@892..899 "reverse"597                          ARGS_DESC@899..921598                            L_PAREN@899..900 "("599                            ARG@900..920600                              EXPR_APPLY@900..920601                                EXPR_INDEX@900..915602                                  EXPR_VAR@900..903603                                    NAME@900..903604                                      IDENT@900..903 "std"605                                  DOT@903..904 "."606                                  NAME@904..915607                                    IDENT@904..915 "stringChars"608                                ARGS_DESC@915..920609                                  L_PAREN@915..916 "("610                                  ARG@916..919611                                    EXPR_VAR@916..919612                                      NAME@916..919613                                        IDENT@916..919 "str"614                                  R_PAREN@919..920 ")"615                            R_PAREN@920..921 ")"616                      R_PAREN@921..922 ")"617                SEMI@922..923 ";"618                WHITESPACE@923..930 "\n      "619                EXPR_APPLY@930..1024620                  EXPR_INDEX@930..937621                    EXPR_VAR@930..933622                      NAME@930..933623                        IDENT@930..933 "std"624                    DOT@933..934 "."625                    NAME@934..937626                      IDENT@934..937 "map"627                  ARGS_DESC@937..1024628                    L_PAREN@937..938 "("629                    ARG@938..959630                      EXPR_FUNCTION@938..959631                        FUNCTION_KW@938..946 "function"632                        PARAMS_DESC@946..949633                          L_PAREN@946..947 "("634                          PARAM@947..948635                            DESTRUCT_FULL@947..948636                              NAME@947..948637                                IDENT@947..948 "e"638                          R_PAREN@948..949 ")"639                        WHITESPACE@949..950 " "640                        EXPR_APPLY@950..959641                          EXPR_VAR@950..956642                            NAME@950..956643                              IDENT@950..956 "revStr"644                          ARGS_DESC@956..959645                            L_PAREN@956..957 "("646                            ARG@957..958647                              EXPR_VAR@957..958648                                NAME@957..958649                                  IDENT@957..958 "e"650                            R_PAREN@958..959 ")"651                    COMMA@959..960 ","652                    WHITESPACE@960..961 " "653                    ARG@961..1023654                      EXPR_APPLY@961..1023655                        EXPR_INDEX@961..972656                          EXPR_VAR@961..964657                            NAME@961..964658                              IDENT@961..964 "std"659                          DOT@964..965 "."660                          NAME@965..972661                            IDENT@965..972 "reverse"662                        ARGS_DESC@972..1023663                          L_PAREN@972..973 "("664                          ARG@973..1022665                            EXPR_APPLY@973..1022666                              EXPR_INDEX@973..987667                                EXPR_VAR@973..976668                                  NAME@973..976669                                    IDENT@973..976 "std"670                                DOT@976..977 "."671                                NAME@977..987672                                  IDENT@977..987 "splitLimit"673                              ARGS_DESC@987..1022674                                L_PAREN@987..988 "("675                                ARG@988..999676                                  EXPR_APPLY@988..999677                                    EXPR_VAR@988..994678                                      NAME@988..994679                                        IDENT@988..994 "revStr"680                                    ARGS_DESC@994..999681                                      L_PAREN@994..995 "("682                                      ARG@995..998683                                        EXPR_VAR@995..998684                                          NAME@995..998685                                            IDENT@995..998 "str"686                                      R_PAREN@998..999 ")"687                                COMMA@999..1000 ","688                                WHITESPACE@1000..1001 " "689                                ARG@1001..1010690                                  EXPR_APPLY@1001..1010691                                    EXPR_VAR@1001..1007692                                      NAME@1001..1007693                                        IDENT@1001..1007 "revStr"694                                    ARGS_DESC@1007..1010695                                      L_PAREN@1007..1008 "("696                                      ARG@1008..1009697                                        EXPR_VAR@1008..1009698                                          NAME@1008..1009699                                            IDENT@1008..1009 "c"700                                      R_PAREN@1009..1010 ")"701                                COMMA@1010..1011 ","702                                WHITESPACE@1011..1012 " "703                                ARG@1012..1021704                                  EXPR_VAR@1012..1021705                                    NAME@1012..1021706                                      IDENT@1012..1021 "maxsplits"707                                R_PAREN@1021..1022 ")"708                          R_PAREN@1022..1023 ")"709                    R_PAREN@1023..1024 ")"710      COMMA@1024..1025 ","711      WHITESPACE@1025..1029 "\n\n  "712      MEMBER_FIELD@1029..1071713        FIELD_METHOD@1029..1071714          FIELD_NAME_FIXED@1029..1034715            NAME@1029..1034716              IDENT@1029..1034 "split"717          PARAMS_DESC@1034..1042718            L_PAREN@1034..1035 "("719            PARAM@1035..1038720              DESTRUCT_FULL@1035..1038721                NAME@1035..1038722                  IDENT@1035..1038 "str"723            COMMA@1038..1039 ","724            WHITESPACE@1039..1040 " "725            PARAM@1040..1041726              DESTRUCT_FULL@1040..1041727                NAME@1040..1041728                  IDENT@1040..1041 "c"729            R_PAREN@1041..1042 ")"730          COLONCOLON@1042..1044 "::"731          WHITESPACE@1044..1045 " "732          EXPR_APPLY@1045..1071733            EXPR_INDEX@1045..1059734              EXPR_VAR@1045..1048735                NAME@1045..1048736                  IDENT@1045..1048 "std"737              DOT@1048..1049 "."738              NAME@1049..1059739                IDENT@1049..1059 "splitLimit"740            ARGS_DESC@1059..1071741              L_PAREN@1059..1060 "("742              ARG@1060..1063743                EXPR_VAR@1060..1063744                  NAME@1060..1063745                    IDENT@1060..1063 "str"746              COMMA@1063..1064 ","747              WHITESPACE@1064..1065 " "748              ARG@1065..1066749                EXPR_VAR@1065..1066750                  NAME@1065..1066751                    IDENT@1065..1066 "c"752              COMMA@1066..1067 ","753              WHITESPACE@1067..1068 " "754              ARG@1068..1070755                EXPR_UNARY@1068..1070756                  MINUS@1068..1069 "-"757                  EXPR_NUMBER@1069..1070758                    FLOAT@1069..1070 "1"759              R_PAREN@1070..1071 ")"760      COMMA@1071..1072 ","761      WHITESPACE@1072..1076 "\n\n  "762      MEMBER_FIELD@1076..1434763        FIELD_METHOD@1076..1434764          FIELD_NAME_FIXED@1076..1088765            NAME@1076..1088766              IDENT@1076..1088 "mapWithIndex"767          PARAMS_DESC@1088..1099768            L_PAREN@1088..1089 "("769            PARAM@1089..1093770              DESTRUCT_FULL@1089..1093771                NAME@1089..1093772                  IDENT@1089..1093 "func"773            COMMA@1093..1094 ","774            WHITESPACE@1094..1095 " "775            PARAM@1095..1098776              DESTRUCT_FULL@1095..1098777                NAME@1095..1098778                  IDENT@1095..1098 "arr"779            R_PAREN@1098..1099 ")"780          COLONCOLON@1099..1101 "::"781          WHITESPACE@1101..1106 "\n    "782          EXPR_IF_THEN_ELSE@1106..1434783            IF_KW@1106..1108 "if"784            WHITESPACE@1108..1109 " "785            EXPR_UNARY@1109..1130786              NOT@1109..1110 "!"787              EXPR_APPLY@1110..1130788                EXPR_INDEX@1110..1124789                  EXPR_VAR@1110..1113790                    NAME@1110..1113791                      IDENT@1110..1113 "std"792                  DOT@1113..1114 "."793                  NAME@1114..1124794                    IDENT@1114..1124 "isFunction"795                ARGS_DESC@1124..1130796                  L_PAREN@1124..1125 "("797                  ARG@1125..1129798                    EXPR_VAR@1125..1129799                      NAME@1125..1129800                        IDENT@1125..1129 "func"801                  R_PAREN@1129..1130 ")"802            WHITESPACE@1130..1131 " "803            THEN_KW@1131..1135 "then"804            WHITESPACE@1135..1142 "\n      "805            TRUE_EXPR@1142..1220806              EXPR_ERROR@1142..1220807                ERROR_KW@1142..1147 "error"808                WHITESPACE@1147..1148 " "809                EXPR_PARENED@1148..1220810                  L_PAREN@1148..1149 "("811                  EXPR_BINARY@1149..1219812                    LHS_EXPR@1149..1202813                      EXPR_STRING@1149..1202814                        STRING_SINGLE@1149..1202 "'std.mapWithIndex fir ..."815                    WHITESPACE@1202..1203 " "816                    PLUS@1203..1204 "+"817                    WHITESPACE@1204..1205 " "818                    EXPR_APPLY@1205..1219819                      EXPR_INDEX@1205..1213820                        EXPR_VAR@1205..1208821                          NAME@1205..1208822                            IDENT@1205..1208 "std"823                        DOT@1208..1209 "."824                        NAME@1209..1213825                          IDENT@1209..1213 "type"826                      ARGS_DESC@1213..1219827                        L_PAREN@1213..1214 "("828                        ARG@1214..1218829                          EXPR_VAR@1214..1218830                            NAME@1214..1218831                              IDENT@1214..1218 "func"832                        R_PAREN@1218..1219 ")"833                  R_PAREN@1219..1220 ")"834            WHITESPACE@1220..1225 "\n    "835            ELSE_KW@1225..1229 "else"836            WHITESPACE@1229..1230 " "837            FALSE_EXPR@1230..1434838              EXPR_IF_THEN_ELSE@1230..1434839                IF_KW@1230..1232 "if"840                WHITESPACE@1232..1233 " "841                EXPR_BINARY@1233..1272842                  LHS_EXPR@1233..1250843                    EXPR_UNARY@1233..1250844                      NOT@1233..1234 "!"845                      EXPR_APPLY@1234..1250846                        EXPR_INDEX@1234..1245847                          EXPR_VAR@1234..1237848                            NAME@1234..1237849                              IDENT@1234..1237 "std"850                          DOT@1237..1238 "."851                          NAME@1238..1245852                            IDENT@1238..1245 "isArray"853                        ARGS_DESC@1245..1250854                          L_PAREN@1245..1246 "("855                          ARG@1246..1249856                            EXPR_VAR@1246..1249857                              NAME@1246..1249858                                IDENT@1246..1249 "arr"859                          R_PAREN@1249..1250 ")"860                  WHITESPACE@1250..1251 " "861                  AND@1251..1253 "&&"862                  WHITESPACE@1253..1254 " "863                  EXPR_UNARY@1254..1272864                    NOT@1254..1255 "!"865                    EXPR_APPLY@1255..1272866                      EXPR_INDEX@1255..1267867                        EXPR_VAR@1255..1258868                          NAME@1255..1258869                            IDENT@1255..1258 "std"870                        DOT@1258..1259 "."871                        NAME@1259..1267872                          IDENT@1259..1267 "isString"873                      ARGS_DESC@1267..1272874                        L_PAREN@1267..1268 "("875                        ARG@1268..1271876                          EXPR_VAR@1268..1271877                            NAME@1268..1271878                              IDENT@1268..1271 "arr"879                        R_PAREN@1271..1272 ")"880                WHITESPACE@1272..1273 " "881                THEN_KW@1273..1277 "then"882                WHITESPACE@1277..1284 "\n      "883                TRUE_EXPR@1284..1359884                  EXPR_ERROR@1284..1359885                    ERROR_KW@1284..1289 "error"886                    WHITESPACE@1289..1290 " "887                    EXPR_PARENED@1290..1359888                      L_PAREN@1290..1291 "("889                      EXPR_BINARY@1291..1358890                        LHS_EXPR@1291..1342891                          EXPR_STRING@1291..1342892                            STRING_SINGLE@1291..1342 "'std.mapWithIndex sec ..."893                        WHITESPACE@1342..1343 " "894                        PLUS@1343..1344 "+"895                        WHITESPACE@1344..1345 " "896                        EXPR_APPLY@1345..1358897                          EXPR_INDEX@1345..1353898                            EXPR_VAR@1345..1348899                              NAME@1345..1348900                                IDENT@1345..1348 "std"901                            DOT@1348..1349 "."902                            NAME@1349..1353903                              IDENT@1349..1353 "type"904                          ARGS_DESC@1353..1358905                            L_PAREN@1353..1354 "("906                            ARG@1354..1357907                              EXPR_VAR@1354..1357908                                NAME@1354..1357909                                  IDENT@1354..1357 "arr"910                            R_PAREN@1357..1358 ")"911                      R_PAREN@1358..1359 ")"912                WHITESPACE@1359..1364 "\n    "913                ELSE_KW@1364..1368 "else"914                WHITESPACE@1368..1375 "\n      "915                FALSE_EXPR@1375..1434916                  EXPR_APPLY@1375..1434917                    EXPR_INDEX@1375..1388918                      EXPR_VAR@1375..1378919                        NAME@1375..1378920                          IDENT@1375..1378 "std"921                      DOT@1378..1379 "."922                      NAME@1379..1388923                        IDENT@1379..1388 "makeArray"924                    ARGS_DESC@1388..1434925                      L_PAREN@1388..1389 "("926                      ARG@1389..1404927                        EXPR_APPLY@1389..1404928                          EXPR_INDEX@1389..1399929                            EXPR_VAR@1389..1392930                              NAME@1389..1392931                                IDENT@1389..1392 "std"932                            DOT@1392..1393 "."933                            NAME@1393..1399934                              IDENT@1393..1399 "length"935                          ARGS_DESC@1399..1404936                            L_PAREN@1399..1400 "("937                            ARG@1400..1403938                              EXPR_VAR@1400..1403939                                NAME@1400..1403940                                  IDENT@1400..1403 "arr"941                            R_PAREN@1403..1404 ")"942                      COMMA@1404..1405 ","943                      WHITESPACE@1405..1406 " "944                      ARG@1406..1433945                        EXPR_FUNCTION@1406..1433946                          FUNCTION_KW@1406..1414 "function"947                          PARAMS_DESC@1414..1417948                            L_PAREN@1414..1415 "("949                            PARAM@1415..1416950                              DESTRUCT_FULL@1415..1416951                                NAME@1415..1416952                                  IDENT@1415..1416 "i"953                            R_PAREN@1416..1417 ")"954                          WHITESPACE@1417..1418 " "955                          EXPR_APPLY@1418..1433956                            EXPR_VAR@1418..1422957                              NAME@1418..1422958                                IDENT@1418..1422 "func"959                            ARGS_DESC@1422..1433960                              L_PAREN@1422..1423 "("961                              ARG@1423..1424962                                EXPR_VAR@1423..1424963                                  NAME@1423..1424964                                    IDENT@1423..1424 "i"965                              COMMA@1424..1425 ","966                              WHITESPACE@1425..1426 " "967                              ARG@1426..1432968                                EXPR_INDEX_EXPR@1426..1432969                                  LHS_EXPR@1426..1429970                                    EXPR_VAR@1426..1429971                                      NAME@1426..1429972                                        IDENT@1426..1429 "arr"973                                  L_BRACK@1429..1430 "["974                                  EXPR_VAR@1430..1431975                                    NAME@1430..1431976                                      IDENT@1430..1431 "i"977                                  R_BRACK@1431..1432 "]"978                              R_PAREN@1432..1433 ")"979                      R_PAREN@1433..1434 ")"980      COMMA@1434..1435 ","981      WHITESPACE@1435..1439 "\n\n  "982      MEMBER_FIELD@1439..1767983        FIELD_METHOD@1439..1767984          FIELD_NAME_FIXED@1439..1449985            NAME@1439..1449986              IDENT@1439..1449 "mapWithKey"987          PARAMS_DESC@1449..1460988            L_PAREN@1449..1450 "("989            PARAM@1450..1454990              DESTRUCT_FULL@1450..1454991                NAME@1450..1454992                  IDENT@1450..1454 "func"993            COMMA@1454..1455 ","994            WHITESPACE@1455..1456 " "995            PARAM@1456..1459996              DESTRUCT_FULL@1456..1459997                NAME@1456..1459998                  IDENT@1456..1459 "obj"999            R_PAREN@1459..1460 ")"1000          COLONCOLON@1460..1462 "::"1001          WHITESPACE@1462..1467 "\n    "1002          EXPR_IF_THEN_ELSE@1467..17671003            IF_KW@1467..1469 "if"1004            WHITESPACE@1469..1470 " "1005            EXPR_UNARY@1470..14911006              NOT@1470..1471 "!"1007              EXPR_APPLY@1471..14911008                EXPR_INDEX@1471..14851009                  EXPR_VAR@1471..14741010                    NAME@1471..14741011                      IDENT@1471..1474 "std"1012                  DOT@1474..1475 "."1013                  NAME@1475..14851014                    IDENT@1475..1485 "isFunction"1015                ARGS_DESC@1485..14911016                  L_PAREN@1485..1486 "("1017                  ARG@1486..14901018                    EXPR_VAR@1486..14901019                      NAME@1486..14901020                        IDENT@1486..1490 "func"1021                  R_PAREN@1490..1491 ")"1022            WHITESPACE@1491..1492 " "1023            THEN_KW@1492..1496 "then"1024            WHITESPACE@1496..1503 "\n      "1025            TRUE_EXPR@1503..15791026              EXPR_ERROR@1503..15791027                ERROR_KW@1503..1508 "error"1028                WHITESPACE@1508..1509 " "1029                EXPR_PARENED@1509..15791030                  L_PAREN@1509..1510 "("1031                  EXPR_BINARY@1510..15781032                    LHS_EXPR@1510..15611033                      EXPR_STRING@1510..15611034                        STRING_SINGLE@1510..1561 "'std.mapWithKey first ..."1035                    WHITESPACE@1561..1562 " "1036                    PLUS@1562..1563 "+"1037                    WHITESPACE@1563..1564 " "1038                    EXPR_APPLY@1564..15781039                      EXPR_INDEX@1564..15721040                        EXPR_VAR@1564..15671041                          NAME@1564..15671042                            IDENT@1564..1567 "std"1043                        DOT@1567..1568 "."1044                        NAME@1568..15721045                          IDENT@1568..1572 "type"1046                      ARGS_DESC@1572..15781047                        L_PAREN@1572..1573 "("1048                        ARG@1573..15771049                          EXPR_VAR@1573..15771050                            NAME@1573..15771051                              IDENT@1573..1577 "func"1052                        R_PAREN@1577..1578 ")"1053                  R_PAREN@1578..1579 ")"1054            WHITESPACE@1579..1584 "\n    "1055            ELSE_KW@1584..1588 "else"1056            WHITESPACE@1588..1589 " "1057            FALSE_EXPR@1589..17671058              EXPR_IF_THEN_ELSE@1589..17671059                IF_KW@1589..1591 "if"1060                WHITESPACE@1591..1592 " "1061                EXPR_UNARY@1592..16101062                  NOT@1592..1593 "!"1063                  EXPR_APPLY@1593..16101064                    EXPR_INDEX@1593..16051065                      EXPR_VAR@1593..15961066                        NAME@1593..15961067                          IDENT@1593..1596 "std"1068                      DOT@1596..1597 "."1069                      NAME@1597..16051070                        IDENT@1597..1605 "isObject"1071                    ARGS_DESC@1605..16101072                      L_PAREN@1605..1606 "("1073                      ARG@1606..16091074                        EXPR_VAR@1606..16091075                          NAME@1606..16091076                            IDENT@1606..1609 "obj"1077                      R_PAREN@1609..1610 ")"1078                WHITESPACE@1610..1611 " "1079                THEN_KW@1611..1615 "then"1080                WHITESPACE@1615..1622 "\n      "1081                TRUE_EXPR@1622..16961082                  EXPR_ERROR@1622..16961083                    ERROR_KW@1622..1627 "error"1084                    WHITESPACE@1627..1628 " "1085                    EXPR_PARENED@1628..16961086                      L_PAREN@1628..1629 "("1087                      EXPR_BINARY@1629..16951088                        LHS_EXPR@1629..16791089                          EXPR_STRING@1629..16791090                            STRING_SINGLE@1629..1679 "'std.mapWithKey secon ..."1091                        WHITESPACE@1679..1680 " "1092                        PLUS@1680..1681 "+"1093                        WHITESPACE@1681..1682 " "1094                        EXPR_APPLY@1682..16951095                          EXPR_INDEX@1682..16901096                            EXPR_VAR@1682..16851097                              NAME@1682..16851098                                IDENT@1682..1685 "std"1099                            DOT@1685..1686 "."1100                            NAME@1686..16901101                              IDENT@1686..1690 "type"1102                          ARGS_DESC@1690..16951103                            L_PAREN@1690..1691 "("1104                            ARG@1691..16941105                              EXPR_VAR@1691..16941106                                NAME@1691..16941107                                  IDENT@1691..1694 "obj"1108                            R_PAREN@1694..1695 ")"1109                      R_PAREN@1695..1696 ")"1110                WHITESPACE@1696..1701 "\n    "1111                ELSE_KW@1701..1705 "else"1112                WHITESPACE@1705..1712 "\n      "1113                FALSE_EXPR@1712..17671114                  EXPR_OBJECT@1712..17671115                    OBJ_BODY_MEMBER_LIST@1712..17671116                      L_BRACE@1712..1713 "{"1117                      WHITESPACE@1713..1714 " "1118                      MEMBER_FIELD@1714..17651119                        FIELD_NORMAL@1714..17341120                          FIELD_NAME_DYNAMIC@1714..17171121                            L_BRACK@1714..1715 "["1122                            EXPR_VAR@1715..17161123                              NAME@1715..17161124                                IDENT@1715..1716 "k"1125                            R_BRACK@1716..1717 "]"1126                          COLON@1717..1718 ":"1127                          WHITESPACE@1718..1719 " "1128                          EXPR_APPLY@1719..17341129                            EXPR_VAR@1719..17231130                              NAME@1719..17231131                                IDENT@1719..1723 "func"1132                            ARGS_DESC@1723..17341133                              L_PAREN@1723..1724 "("1134                              ARG@1724..17251135                                EXPR_VAR@1724..17251136                                  NAME@1724..17251137                                    IDENT@1724..1725 "k"1138                              COMMA@1725..1726 ","1139                              WHITESPACE@1726..1727 " "1140                              ARG@1727..17331141                                EXPR_INDEX_EXPR@1727..17331142                                  LHS_EXPR@1727..17301143                                    EXPR_VAR@1727..17301144                                      NAME@1727..17301145                                        IDENT@1727..1730 "obj"1146                                  L_BRACK@1730..1731 "["1147                                  EXPR_VAR@1731..17321148                                    NAME@1731..17321149                                      IDENT@1731..1732 "k"1150                                  R_BRACK@1732..1733 "]"1151                              R_PAREN@1733..1734 ")"1152                        WHITESPACE@1734..1735 " "1153                        FOR_SPEC@1735..17651154                          FOR_KW@1735..1738 "for"1155                          WHITESPACE@1738..1739 " "1156                          NAME@1739..17401157                            IDENT@1739..1740 "k"1158                          WHITESPACE@1740..1741 " "1159                          IN_KW@1741..1743 "in"1160                          WHITESPACE@1743..1744 " "1161                          EXPR_APPLY@1744..17651162                            EXPR_INDEX@1744..17601163                              EXPR_VAR@1744..17471164                                NAME@1744..17471165                                  IDENT@1744..1747 "std"1166                              DOT@1747..1748 "."1167                              NAME@1748..17601168                                IDENT@1748..1760 "objectFields"1169                            ARGS_DESC@1760..17651170                              L_PAREN@1760..1761 "("1171                              ARG@1761..17641172                                EXPR_VAR@1761..17641173                                  NAME@1761..17641174                                    IDENT@1761..1764 "obj"1175                              R_PAREN@1764..1765 ")"1176                      WHITESPACE@1765..1766 " "1177                      R_BRACE@1766..1767 "}"1178      COMMA@1767..1768 ","1179      WHITESPACE@1768..1772 "\n\n  "1180      MEMBER_FIELD@1772..18151181        FIELD_METHOD@1772..18151182          FIELD_NAME_FIXED@1772..17771183            NAME@1772..17771184              IDENT@1772..1777 "lines"1185          PARAMS_DESC@1777..17821186            L_PAREN@1777..1778 "("1187            PARAM@1778..17811188              DESTRUCT_FULL@1778..17811189                NAME@1778..17811190                  IDENT@1778..1781 "arr"1191            R_PAREN@1781..1782 ")"1192          COLONCOLON@1782..1784 "::"1193          WHITESPACE@1784..1789 "\n    "1194          EXPR_APPLY@1789..18151195            EXPR_INDEX@1789..17971196              EXPR_VAR@1789..17921197                NAME@1789..17921198                  IDENT@1789..1792 "std"1199              DOT@1792..1793 "."1200              NAME@1793..17971201                IDENT@1793..1797 "join"1202            ARGS_DESC@1797..18151203              L_PAREN@1797..1798 "("1204              ARG@1798..18021205                EXPR_STRING@1798..18021206                  STRING_SINGLE@1798..1802 "'\\n'"1207              COMMA@1802..1803 ","1208              WHITESPACE@1803..1804 " "1209              ARG@1804..18141210                EXPR_BINARY@1804..18141211                  LHS_EXPR@1804..18071212                    EXPR_VAR@1804..18071213                      NAME@1804..18071214                        IDENT@1804..1807 "arr"1215                  WHITESPACE@1807..1808 " "1216                  PLUS@1808..1809 "+"1217                  WHITESPACE@1809..1810 " "1218                  EXPR_ARRAY@1810..18141219                    L_BRACK@1810..1811 "["1220                    EXPR_STRING@1811..18131221                      STRING_SINGLE@1811..1813 "''"1222                    R_BRACK@1813..1814 "]"1223              R_PAREN@1814..1815 ")"1224      COMMA@1815..1816 ","1225      WHITESPACE@1816..1820 "\n\n  "1226      MEMBER_FIELD@1820..20321227        FIELD_METHOD@1820..20321228          FIELD_NAME_FIXED@1820..18281229            NAME@1820..18281230              IDENT@1820..1828 "deepJoin"1231          PARAMS_DESC@1828..18331232            L_PAREN@1828..1829 "("1233            PARAM@1829..18321234              DESTRUCT_FULL@1829..18321235                NAME@1829..18321236                  IDENT@1829..1832 "arr"1237            R_PAREN@1832..1833 ")"1238          COLONCOLON@1833..1835 "::"1239          WHITESPACE@1835..1840 "\n    "1240          EXPR_IF_THEN_ELSE@1840..20321241            IF_KW@1840..1842 "if"1242            WHITESPACE@1842..1843 " "1243            EXPR_APPLY@1843..18601244              EXPR_INDEX@1843..18551245                EXPR_VAR@1843..18461246                  NAME@1843..18461247                    IDENT@1843..1846 "std"1248                DOT@1846..1847 "."1249                NAME@1847..18551250                  IDENT@1847..1855 "isString"1251              ARGS_DESC@1855..18601252                L_PAREN@1855..1856 "("1253                ARG@1856..18591254                  EXPR_VAR@1856..18591255                    NAME@1856..18591256                      IDENT@1856..1859 "arr"1257                R_PAREN@1859..1860 ")"1258            WHITESPACE@1860..1861 " "1259            THEN_KW@1861..1865 "then"1260            WHITESPACE@1865..1872 "\n      "1261            TRUE_EXPR@1872..18751262              EXPR_VAR@1872..18751263                NAME@1872..18751264                  IDENT@1872..1875 "arr"1265            WHITESPACE@1875..1880 "\n    "1266            ELSE_KW@1880..1884 "else"1267            WHITESPACE@1884..1885 " "1268            FALSE_EXPR@1885..20321269              EXPR_IF_THEN_ELSE@1885..20321270                IF_KW@1885..1887 "if"1271                WHITESPACE@1887..1888 " "1272                EXPR_APPLY@1888..19041273                  EXPR_INDEX@1888..18991274                    EXPR_VAR@1888..18911275                      NAME@1888..18911276                        IDENT@1888..1891 "std"1277                    DOT@1891..1892 "."1278                    NAME@1892..18991279                      IDENT@1892..1899 "isArray"1280                  ARGS_DESC@1899..19041281                    L_PAREN@1899..1900 "("1282                    ARG@1900..19031283                      EXPR_VAR@1900..19031284                        NAME@1900..19031285                          IDENT@1900..1903 "arr"1286                    R_PAREN@1903..1904 ")"1287                WHITESPACE@1904..1905 " "1288                THEN_KW@1905..1909 "then"1289                WHITESPACE@1909..1916 "\n      "1290                TRUE_EXPR@1916..19601291                  EXPR_APPLY@1916..19601292                    EXPR_INDEX@1916..19241293                      EXPR_VAR@1916..19191294                        NAME@1916..19191295                          IDENT@1916..1919 "std"1296                      DOT@1919..1920 "."1297                      NAME@1920..19241298                        IDENT@1920..1924 "join"1299                    ARGS_DESC@1924..19601300                      L_PAREN@1924..1925 "("1301                      ARG@1925..19271302                        EXPR_STRING@1925..19271303                          STRING_SINGLE@1925..1927 "''"1304                      COMMA@1927..1928 ","1305                      WHITESPACE@1928..1929 " "1306                      ARG@1929..19591307                        EXPR_ARRAY_COMP@1929..19591308                          L_BRACK@1929..1930 "["1309                          EXPR_APPLY@1930..19451310                            EXPR_INDEX@1930..19421311                              EXPR_VAR@1930..19331312                                NAME@1930..19331313                                  IDENT@1930..1933 "std"1314                              DOT@1933..1934 "."1315                              NAME@1934..19421316                                IDENT@1934..1942 "deepJoin"1317                            ARGS_DESC@1942..19451318                              L_PAREN@1942..1943 "("1319                              ARG@1943..19441320                                EXPR_VAR@1943..19441321                                  NAME@1943..19441322                                    IDENT@1943..1944 "x"1323                              R_PAREN@1944..1945 ")"1324                          WHITESPACE@1945..1946 " "1325                          FOR_SPEC@1946..19581326                            FOR_KW@1946..1949 "for"1327                            WHITESPACE@1949..1950 " "1328                            NAME@1950..19511329                              IDENT@1950..1951 "x"1330                            WHITESPACE@1951..1952 " "1331                            IN_KW@1952..1954 "in"1332                            WHITESPACE@1954..1955 " "1333                            EXPR_VAR@1955..19581334                              NAME@1955..19581335                                IDENT@1955..1958 "arr"1336                          R_BRACK@1958..1959 "]"1337                      R_PAREN@1959..1960 ")"1338                WHITESPACE@1960..1965 "\n    "1339                ELSE_KW@1965..1969 "else"1340                WHITESPACE@1969..1976 "\n      "1341                FALSE_EXPR@1976..20321342                  EXPR_ERROR@1976..20321343                    ERROR_KW@1976..1981 "error"1344                    WHITESPACE@1981..1982 " "1345                    EXPR_BINARY@1982..20321346                      LHS_EXPR@1982..20161347                        EXPR_STRING@1982..20161348                          STRING_SINGLE@1982..2016 "'Expected string or a ..."1349                      WHITESPACE@2016..2017 " "1350                      MODULO@2017..2018 "%"1351                      WHITESPACE@2018..2019 " "1352                      EXPR_APPLY@2019..20321353                        EXPR_INDEX@2019..20271354                          EXPR_VAR@2019..20221355                            NAME@2019..20221356                              IDENT@2019..2022 "std"1357                          DOT@2022..2023 "."1358                          NAME@2023..20271359                            IDENT@2023..2027 "type"1360                        ARGS_DESC@2027..20321361                          L_PAREN@2027..2028 "("1362                          ARG@2028..20311363                            EXPR_VAR@2028..20311364                              NAME@2028..20311365                                IDENT@2028..2031 "arr"1366                          R_PAREN@2031..2032 ")"1367      COMMA@2032..2033 ","1368      WHITESPACE@2033..2037 "\n\n  "1369      MEMBER_FIELD@2037..25121370        FIELD_METHOD@2037..25121371          FIELD_NAME_FIXED@2037..20461372            NAME@2037..20461373              IDENT@2037..2046 "filterMap"1374          PARAMS_DESC@2046..20741375            L_PAREN@2046..2047 "("1376            PARAM@2047..20581377              DESTRUCT_FULL@2047..20581378                NAME@2047..20581379                  IDENT@2047..2058 "filter_func"1380            COMMA@2058..2059 ","1381            WHITESPACE@2059..2060 " "1382            PARAM@2060..20681383              DESTRUCT_FULL@2060..20681384                NAME@2060..20681385                  IDENT@2060..2068 "map_func"1386            COMMA@2068..2069 ","1387            WHITESPACE@2069..2070 " "1388            PARAM@2070..20731389              DESTRUCT_FULL@2070..20731390                NAME@2070..20731391                  IDENT@2070..2073 "arr"1392            R_PAREN@2073..2074 ")"1393          COLONCOLON@2074..2076 "::"1394          WHITESPACE@2076..2081 "\n    "1395          EXPR_IF_THEN_ELSE@2081..25121396            IF_KW@2081..2083 "if"1397            WHITESPACE@2083..2084 " "1398            EXPR_UNARY@2084..21121399              NOT@2084..2085 "!"1400              EXPR_APPLY@2085..21121401                EXPR_INDEX@2085..20991402                  EXPR_VAR@2085..20881403                    NAME@2085..20881404                      IDENT@2085..2088 "std"1405                  DOT@2088..2089 "."1406                  NAME@2089..20991407                    IDENT@2089..2099 "isFunction"1408                ARGS_DESC@2099..21121409                  L_PAREN@2099..2100 "("1410                  ARG@2100..21111411                    EXPR_VAR@2100..21111412                      NAME@2100..21111413                        IDENT@2100..2111 "filter_func"1414                  R_PAREN@2111..2112 ")"1415            WHITESPACE@2112..2113 " "1416            THEN_KW@2113..2117 "then"1417            WHITESPACE@2117..2124 "\n      "1418            TRUE_EXPR@2124..22061419              EXPR_ERROR@2124..22061420                ERROR_KW@2124..2129 "error"1421                WHITESPACE@2129..2130 " "1422                EXPR_PARENED@2130..22061423                  L_PAREN@2130..2131 "("1424                  EXPR_BINARY@2131..22051425                    LHS_EXPR@2131..21811426                      EXPR_STRING@2131..21811427                        STRING_SINGLE@2131..2181 "'std.filterMap first  ..."1428                    WHITESPACE@2181..2182 " "1429                    PLUS@2182..2183 "+"1430                    WHITESPACE@2183..2184 " "1431                    EXPR_APPLY@2184..22051432                      EXPR_INDEX@2184..21921433                        EXPR_VAR@2184..21871434                          NAME@2184..21871435                            IDENT@2184..2187 "std"1436                        DOT@2187..2188 "."1437                        NAME@2188..21921438                          IDENT@2188..2192 "type"1439                      ARGS_DESC@2192..22051440                        L_PAREN@2192..2193 "("1441                        ARG@2193..22041442                          EXPR_VAR@2193..22041443                            NAME@2193..22041444                              IDENT@2193..2204 "filter_func"1445                        R_PAREN@2204..2205 ")"1446                  R_PAREN@2205..2206 ")"1447            WHITESPACE@2206..2211 "\n    "1448            ELSE_KW@2211..2215 "else"1449            WHITESPACE@2215..2216 " "1450            FALSE_EXPR@2216..25121451              EXPR_IF_THEN_ELSE@2216..25121452                IF_KW@2216..2218 "if"1453                WHITESPACE@2218..2219 " "1454                EXPR_UNARY@2219..22441455                  NOT@2219..2220 "!"1456                  EXPR_APPLY@2220..22441457                    EXPR_INDEX@2220..22341458                      EXPR_VAR@2220..22231459                        NAME@2220..22231460                          IDENT@2220..2223 "std"1461                      DOT@2223..2224 "."1462                      NAME@2224..22341463                        IDENT@2224..2234 "isFunction"1464                    ARGS_DESC@2234..22441465                      L_PAREN@2234..2235 "("1466                      ARG@2235..22431467                        EXPR_VAR@2235..22431468                          NAME@2235..22431469                            IDENT@2235..2243 "map_func"1470                      R_PAREN@2243..2244 ")"1471                WHITESPACE@2244..2245 " "1472                THEN_KW@2245..2249 "then"1473                WHITESPACE@2249..2256 "\n      "1474                TRUE_EXPR@2256..23361475                  EXPR_ERROR@2256..23361476                    ERROR_KW@2256..2261 "error"1477                    WHITESPACE@2261..2262 " "1478                    EXPR_PARENED@2262..23361479                      L_PAREN@2262..2263 "("1480                      EXPR_BINARY@2263..23351481                        LHS_EXPR@2263..23141482                          EXPR_STRING@2263..23141483                            STRING_SINGLE@2263..2314 "'std.filterMap second ..."1484                        WHITESPACE@2314..2315 " "1485                        PLUS@2315..2316 "+"1486                        WHITESPACE@2316..2317 " "1487                        EXPR_APPLY@2317..23351488                          EXPR_INDEX@2317..23251489                            EXPR_VAR@2317..23201490                              NAME@2317..23201491                                IDENT@2317..2320 "std"1492                            DOT@2320..2321 "."1493                            NAME@2321..23251494                              IDENT@2321..2325 "type"1495                          ARGS_DESC@2325..23351496                            L_PAREN@2325..2326 "("1497                            ARG@2326..23341498                              EXPR_VAR@2326..23341499                                NAME@2326..23341500                                  IDENT@2326..2334 "map_func"1501                            R_PAREN@2334..2335 ")"1502                      R_PAREN@2335..2336 ")"1503                WHITESPACE@2336..2341 "\n    "1504                ELSE_KW@2341..2345 "else"1505                WHITESPACE@2345..2346 " "1506                FALSE_EXPR@2346..25121507                  EXPR_IF_THEN_ELSE@2346..25121508                    IF_KW@2346..2348 "if"1509                    WHITESPACE@2348..2349 " "1510                    EXPR_UNARY@2349..23661511                      NOT@2349..2350 "!"1512                      EXPR_APPLY@2350..23661513                        EXPR_INDEX@2350..23611514                          EXPR_VAR@2350..23531515                            NAME@2350..23531516                              IDENT@2350..2353 "std"1517                          DOT@2353..2354 "."1518                          NAME@2354..23611519                            IDENT@2354..2361 "isArray"1520                        ARGS_DESC@2361..23661521                          L_PAREN@2361..2362 "("1522                          ARG@2362..23651523                            EXPR_VAR@2362..23651524                              NAME@2362..23651525                                IDENT@2362..2365 "arr"1526                          R_PAREN@2365..2366 ")"1527                    WHITESPACE@2366..2367 " "1528                    THEN_KW@2367..2371 "then"1529                    WHITESPACE@2371..2378 "\n      "1530                    TRUE_EXPR@2378..24491531                      EXPR_ERROR@2378..24491532                        ERROR_KW@2378..2383 "error"1533                        WHITESPACE@2383..2384 " "1534                        EXPR_PARENED@2384..24491535                          L_PAREN@2384..2385 "("1536                          EXPR_BINARY@2385..24481537                            LHS_EXPR@2385..24321538                              EXPR_STRING@2385..24321539                                STRING_SINGLE@2385..2432 "'std.filterMap third  ..."1540                            WHITESPACE@2432..2433 " "1541                            PLUS@2433..2434 "+"1542                            WHITESPACE@2434..2435 " "1543                            EXPR_APPLY@2435..24481544                              EXPR_INDEX@2435..24431545                                EXPR_VAR@2435..24381546                                  NAME@2435..24381547                                    IDENT@2435..2438 "std"1548                                DOT@2438..2439 "."1549                                NAME@2439..24431550                                  IDENT@2439..2443 "type"1551                              ARGS_DESC@2443..24481552                                L_PAREN@2443..2444 "("1553                                ARG@2444..24471554                                  EXPR_VAR@2444..24471555                                    NAME@2444..24471556                                      IDENT@2444..2447 "arr"1557                                R_PAREN@2447..2448 ")"1558                          R_PAREN@2448..2449 ")"1559                    WHITESPACE@2449..2454 "\n    "1560                    ELSE_KW@2454..2458 "else"1561                    WHITESPACE@2458..2465 "\n      "1562                    FALSE_EXPR@2465..25121563                      EXPR_APPLY@2465..25121564                        EXPR_INDEX@2465..24721565                          EXPR_VAR@2465..24681566                            NAME@2465..24681567                              IDENT@2465..2468 "std"1568                          DOT@2468..2469 "."1569                          NAME@2469..24721570                            IDENT@2469..2472 "map"1571                        ARGS_DESC@2472..25121572                          L_PAREN@2472..2473 "("1573                          ARG@2473..24811574                            EXPR_VAR@2473..24811575                              NAME@2473..24811576                                IDENT@2473..2481 "map_func"1577                          COMMA@2481..2482 ","1578                          WHITESPACE@2482..2483 " "1579                          ARG@2483..25111580                            EXPR_APPLY@2483..25111581                              EXPR_INDEX@2483..24931582                                EXPR_VAR@2483..24861583                                  NAME@2483..24861584                                    IDENT@2483..2486 "std"1585                                DOT@2486..2487 "."1586                                NAME@2487..24931587                                  IDENT@2487..2493 "filter"1588                              ARGS_DESC@2493..25111589                                L_PAREN@2493..2494 "("1590                                ARG@2494..25051591                                  EXPR_VAR@2494..25051592                                    NAME@2494..25051593                                      IDENT@2494..2505 "filter_func"1594                                COMMA@2505..2506 ","1595                                WHITESPACE@2506..2507 " "1596                                ARG@2507..25101597                                  EXPR_VAR@2507..25101598                                    NAME@2507..25101599                                      IDENT@2507..2510 "arr"1600                                R_PAREN@2510..2511 ")"1601                          R_PAREN@2511..2512 ")"1602      COMMA@2512..2513 ","1603      WHITESPACE@2513..2517 "\n\n  "1604      MEMBER_FIELD@2517..26251605        FIELD_METHOD@2517..26251606          FIELD_NAME_FIXED@2517..25281607            NAME@2517..25281608              IDENT@2517..2528 "assertEqual"1609          PARAMS_DESC@2528..25341610            L_PAREN@2528..2529 "("1611            PARAM@2529..25301612              DESTRUCT_FULL@2529..25301613                NAME@2529..25301614                  IDENT@2529..2530 "a"1615            COMMA@2530..2531 ","1616            WHITESPACE@2531..2532 " "1617            PARAM@2532..25331618              DESTRUCT_FULL@2532..25331619                NAME@2532..25331620                  IDENT@2532..2533 "b"1621            R_PAREN@2533..2534 ")"1622          COLONCOLON@2534..2536 "::"1623          WHITESPACE@2536..2541 "\n    "1624          EXPR_IF_THEN_ELSE@2541..26251625            IF_KW@2541..2543 "if"1626            WHITESPACE@2543..2544 " "1627            EXPR_BINARY@2544..25501628              LHS_EXPR@2544..25451629                EXPR_VAR@2544..25451630                  NAME@2544..25451631                    IDENT@2544..2545 "a"1632              WHITESPACE@2545..2546 " "1633              EQ@2546..2548 "=="1634              WHITESPACE@2548..2549 " "1635              EXPR_VAR@2549..25501636                NAME@2549..25501637                  IDENT@2549..2550 "b"1638            WHITESPACE@2550..2551 " "1639            THEN_KW@2551..2555 "then"1640            WHITESPACE@2555..2562 "\n      "1641            TRUE_EXPR@2562..25661642              EXPR_LITERAL@2562..25661643                TRUE_KW@2562..2566 "true"1644            WHITESPACE@2566..2571 "\n    "1645            ELSE_KW@2571..2575 "else"1646            WHITESPACE@2575..2582 "\n      "1647            FALSE_EXPR@2582..26251648              EXPR_ERROR@2582..26251649                ERROR_KW@2582..2587 "error"1650                WHITESPACE@2587..2588 " "1651                EXPR_BINARY@2588..26251652                  LHS_EXPR@2588..26211653                    EXPR_BINARY@2588..26211654                      LHS_EXPR@2588..26121655                        EXPR_BINARY@2588..26121656                          LHS_EXPR@2588..26081657                            EXPR_STRING@2588..26081658                              STRING_SINGLE@2588..2608 "'Assertion failed. '"1659                          WHITESPACE@2608..2609 " "1660                          PLUS@2609..2610 "+"1661                          WHITESPACE@2610..2611 " "1662                          EXPR_VAR@2611..26121663                            NAME@2611..26121664                              IDENT@2611..2612 "a"1665                      WHITESPACE@2612..2613 " "1666                      PLUS@2613..2614 "+"1667                      WHITESPACE@2614..2615 " "1668                      EXPR_STRING@2615..26211669                        STRING_SINGLE@2615..2621 "' != '"1670                  WHITESPACE@2621..2622 " "1671                  PLUS@2622..2623 "+"1672                  WHITESPACE@2623..2624 " "1673                  EXPR_VAR@2624..26251674                    NAME@2624..26251675                      IDENT@2624..2625 "b"1676      COMMA@2625..2626 ","1677      WHITESPACE@2626..2630 "\n\n  "1678      MEMBER_FIELD@2630..27321679        FIELD_METHOD@2630..27321680          FIELD_NAME_FIXED@2630..26351681            NAME@2630..26351682              IDENT@2630..2635 "clamp"1683          PARAMS_DESC@2635..26541684            L_PAREN@2635..2636 "("1685            PARAM@2636..26371686              DESTRUCT_FULL@2636..26371687                NAME@2636..26371688                  IDENT@2636..2637 "x"1689            COMMA@2637..2638 ","1690            WHITESPACE@2638..2639 " "1691            PARAM@2639..26451692              DESTRUCT_FULL@2639..26451693                NAME@2639..26451694                  IDENT@2639..2645 "minVal"1695            COMMA@2645..2646 ","1696            WHITESPACE@2646..2647 " "1697            PARAM@2647..26531698              DESTRUCT_FULL@2647..26531699                NAME@2647..26531700                  IDENT@2647..2653 "maxVal"1701            R_PAREN@2653..2654 ")"1702          COLONCOLON@2654..2656 "::"1703          WHITESPACE@2656..2661 "\n    "1704          EXPR_IF_THEN_ELSE@2661..27321705            IF_KW@2661..2663 "if"1706            WHITESPACE@2663..2664 " "1707            EXPR_BINARY@2664..26741708              LHS_EXPR@2664..26651709                EXPR_VAR@2664..26651710                  NAME@2664..26651711                    IDENT@2664..2665 "x"1712              WHITESPACE@2665..2666 " "1713              LT@2666..2667 "<"1714              WHITESPACE@2667..2668 " "1715              EXPR_VAR@2668..26741716                NAME@2668..26741717                  IDENT@2668..2674 "minVal"1718            WHITESPACE@2674..2675 " "1719            THEN_KW@2675..2679 "then"1720            WHITESPACE@2679..2680 " "1721            TRUE_EXPR@2680..26861722              EXPR_VAR@2680..26861723                NAME@2680..26861724                  IDENT@2680..2686 "minVal"1725            WHITESPACE@2686..2691 "\n    "1726            ELSE_KW@2691..2695 "else"1727            WHITESPACE@2695..2696 " "1728            FALSE_EXPR@2696..27321729              EXPR_IF_THEN_ELSE@2696..27321730                IF_KW@2696..2698 "if"1731                WHITESPACE@2698..2699 " "1732                EXPR_BINARY@2699..27091733                  LHS_EXPR@2699..27001734                    EXPR_VAR@2699..27001735                      NAME@2699..27001736                        IDENT@2699..2700 "x"1737                  WHITESPACE@2700..2701 " "1738                  GT@2701..2702 ">"1739                  WHITESPACE@2702..2703 " "1740                  EXPR_VAR@2703..27091741                    NAME@2703..27091742                      IDENT@2703..2709 "maxVal"1743                WHITESPACE@2709..2710 " "1744                THEN_KW@2710..2714 "then"1745                WHITESPACE@2714..2715 " "1746                TRUE_EXPR@2715..27211747                  EXPR_VAR@2715..27211748                    NAME@2715..27211749                      IDENT@2715..2721 "maxVal"1750                WHITESPACE@2721..2726 "\n    "1751                ELSE_KW@2726..2730 "else"1752                WHITESPACE@2730..2731 " "1753                FALSE_EXPR@2731..27321754                  EXPR_VAR@2731..27321755                    NAME@2731..27321756                      IDENT@2731..2732 "x"1757      COMMA@2732..2733 ","1758      WHITESPACE@2733..2737 "\n\n  "1759      MEMBER_FIELD@2737..28041760        FIELD_METHOD@2737..28041761          FIELD_NAME_FIXED@2737..27501762            NAME@2737..27501763              IDENT@2737..2750 "flattenArrays"1764          PARAMS_DESC@2750..27561765            L_PAREN@2750..2751 "("1766            PARAM@2751..27551767              DESTRUCT_FULL@2751..27551768                NAME@2751..27551769                  IDENT@2751..2755 "arrs"1770            R_PAREN@2755..2756 ")"1771          COLONCOLON@2756..2758 "::"1772          WHITESPACE@2758..2763 "\n    "1773          EXPR_APPLY@2763..28041774            EXPR_INDEX@2763..27721775              EXPR_VAR@2763..27661776                NAME@2763..27661777                  IDENT@2763..2766 "std"1778              DOT@2766..2767 "."1779              NAME@2767..27721780                IDENT@2767..2772 "foldl"1781            ARGS_DESC@2772..28041782              L_PAREN@2772..2773 "("1783              ARG@2773..27931784                EXPR_FUNCTION@2773..27931785                  FUNCTION_KW@2773..2781 "function"1786                  PARAMS_DESC@2781..27871787                    L_PAREN@2781..2782 "("1788                    PARAM@2782..27831789                      DESTRUCT_FULL@2782..27831790                        NAME@2782..27831791                          IDENT@2782..2783 "a"1792                    COMMA@2783..2784 ","1793                    WHITESPACE@2784..2785 " "1794                    PARAM@2785..27861795                      DESTRUCT_FULL@2785..27861796                        NAME@2785..27861797                          IDENT@2785..2786 "b"1798                    R_PAREN@2786..2787 ")"1799                  WHITESPACE@2787..2788 " "1800                  EXPR_BINARY@2788..27931801                    LHS_EXPR@2788..27891802                      EXPR_VAR@2788..27891803                        NAME@2788..27891804                          IDENT@2788..2789 "a"1805                    WHITESPACE@2789..2790 " "1806                    PLUS@2790..2791 "+"1807                    WHITESPACE@2791..2792 " "1808                    EXPR_VAR@2792..27931809                      NAME@2792..27931810                        IDENT@2792..2793 "b"1811              COMMA@2793..2794 ","1812              WHITESPACE@2794..2795 " "1813              ARG@2795..27991814                EXPR_VAR@2795..27991815                  NAME@2795..27991816                    IDENT@2795..2799 "arrs"1817              COMMA@2799..2800 ","1818              WHITESPACE@2800..2801 " "1819              ARG@2801..28031820                EXPR_ARRAY@2801..28031821                  L_BRACK@2801..2802 "["1822                  R_BRACK@2802..2803 "]"1823              R_PAREN@2803..2804 ")"1824      COMMA@2804..2805 ","1825      WHITESPACE@2805..2809 "\n\n  "1826      MEMBER_FIELD@2809..34951827        FIELD_METHOD@2809..34951828          FIELD_NAME_FIXED@2809..28201829            NAME@2809..28201830              IDENT@2809..2820 "manifestIni"1831          PARAMS_DESC@2820..28251832            L_PAREN@2820..2821 "("1833            PARAM@2821..28241834              DESTRUCT_FULL@2821..28241835                NAME@2821..28241836                  IDENT@2821..2824 "ini"1837            R_PAREN@2824..2825 ")"1838          COLONCOLON@2825..2827 "::"1839          WHITESPACE@2827..2832 "\n    "1840          EXPR_LOCAL@2832..34951841            LOCAL_KW@2832..2837 "local"1842            WHITESPACE@2837..2838 " "1843            BIND_FUNCTION@2838..31351844              NAME@2838..28481845                IDENT@2838..2848 "body_lines"1846              PARAMS_DESC@2848..28541847                L_PAREN@2848..2849 "("1848                PARAM@2849..28531849                  DESTRUCT_FULL@2849..28531850                    NAME@2849..28531851                      IDENT@2849..2853 "body"1852                R_PAREN@2853..2854 ")"1853              WHITESPACE@2854..2855 " "1854              ASSIGN@2855..2856 "="1855              WHITESPACE@2856..2863 "\n      "1856              EXPR_APPLY@2863..31351857                EXPR_INDEX@2863..28711858                  EXPR_VAR@2863..28661859                    NAME@2863..28661860                      IDENT@2863..2866 "std"1861                  DOT@2866..2867 "."1862                  NAME@2867..28711863                    IDENT@2867..2871 "join"1864                ARGS_DESC@2871..31351865                  L_PAREN@2871..2872 "("1866                  ARG@2872..28741867                    EXPR_ARRAY@2872..28741868                      L_BRACK@2872..2873 "["1869                      R_BRACK@2873..2874 "]"1870                  COMMA@2874..2875 ","1871                  WHITESPACE@2875..2876 " "1872                  ARG@2876..31341873                    EXPR_ARRAY_COMP@2876..31341874                      L_BRACK@2876..2877 "["1875                      WHITESPACE@2877..2886 "\n        "1876                      EXPR_LOCAL@2886..30851877                        LOCAL_KW@2886..2891 "local"1878                        WHITESPACE@2891..2892 " "1879                        BIND_DESTRUCT@2892..29171880                          DESTRUCT_FULL@2892..29071881                            NAME@2892..29071882                              IDENT@2892..2907 "value_or_values"1883                          WHITESPACE@2907..2908 " "1884                          ASSIGN@2908..2909 "="1885                          WHITESPACE@2909..2910 " "1886                          EXPR_INDEX_EXPR@2910..29171887                            LHS_EXPR@2910..29141888                              EXPR_VAR@2910..29141889                                NAME@2910..29141890                                  IDENT@2910..2914 "body"1891                            L_BRACK@2914..2915 "["1892                            EXPR_VAR@2915..29161893                              NAME@2915..29161894                                IDENT@2915..2916 "k"1895                            R_BRACK@2916..2917 "]"1896                        SEMI@2917..2918 ";"1897                        WHITESPACE@2918..2927 "\n        "1898                        EXPR_IF_THEN_ELSE@2927..30851899                          IF_KW@2927..2929 "if"1900                          WHITESPACE@2929..2930 " "1901                          EXPR_APPLY@2930..29581902                            EXPR_INDEX@2930..29411903                              EXPR_VAR@2930..29331904                                NAME@2930..29331905                                  IDENT@2930..2933 "std"1906                              DOT@2933..2934 "."1907                              NAME@2934..29411908                                IDENT@2934..2941 "isArray"1909                            ARGS_DESC@2941..29581910                              L_PAREN@2941..2942 "("1911                              ARG@2942..29571912                                EXPR_VAR@2942..29571913                                  NAME@2942..29571914                                    IDENT@2942..2957 "value_or_values"1915                              R_PAREN@2957..2958 ")"1916                          WHITESPACE@2958..2959 " "1917                          THEN_KW@2959..2963 "then"1918                          WHITESPACE@2963..2974 "\n          "1919                          TRUE_EXPR@2974..30271920                            EXPR_ARRAY_COMP@2974..30271921                              L_BRACK@2974..2975 "["1922                              EXPR_BINARY@2975..29971923                                LHS_EXPR@2975..29841924                                  EXPR_STRING@2975..29841925                                    STRING_SINGLE@2975..2984 "'%s = %s'"1926                                WHITESPACE@2984..2985 " "1927                                MODULO@2985..2986 "%"1928                                WHITESPACE@2986..2987 " "1929                                EXPR_ARRAY@2987..29971930                                  L_BRACK@2987..2988 "["1931                                  EXPR_VAR@2988..29891932                                    NAME@2988..29891933                                      IDENT@2988..2989 "k"1934                                  COMMA@2989..2990 ","1935                                  WHITESPACE@2990..2991 " "1936                                  EXPR_VAR@2991..29961937                                    NAME@2991..29961938                                      IDENT@2991..2996 "value"1939                                  R_BRACK@2996..2997 "]"1940                              WHITESPACE@2997..2998 " "1941                              FOR_SPEC@2998..30261942                                FOR_KW@2998..3001 "for"1943                                WHITESPACE@3001..3002 " "1944                                NAME@3002..30071945                                  IDENT@3002..3007 "value"1946                                WHITESPACE@3007..3008 " "1947                                IN_KW@3008..3010 "in"1948                                WHITESPACE@3010..3011 " "1949                                EXPR_VAR@3011..30261950                                  NAME@3011..30261951                                    IDENT@3011..3026 "value_or_values"1952                              R_BRACK@3026..3027 "]"1953                          WHITESPACE@3027..3036 "\n        "1954                          ELSE_KW@3036..3040 "else"1955                          WHITESPACE@3040..3051 "\n          "1956                          FALSE_EXPR@3051..30851957                            EXPR_ARRAY@3051..30851958                              L_BRACK@3051..3052 "["1959                              EXPR_BINARY@3052..30841960                                LHS_EXPR@3052..30611961                                  EXPR_STRING@3052..30611962                                    STRING_SINGLE@3052..3061 "'%s = %s'"1963                                WHITESPACE@3061..3062 " "1964                                MODULO@3062..3063 "%"1965                                WHITESPACE@3063..3064 " "1966                                EXPR_ARRAY@3064..30841967                                  L_BRACK@3064..3065 "["1968                                  EXPR_VAR@3065..30661969                                    NAME@3065..30661970                                      IDENT@3065..3066 "k"1971                                  COMMA@3066..3067 ","1972                                  WHITESPACE@3067..3068 " "1973                                  EXPR_VAR@3068..30831974                                    NAME@3068..30831975                                      IDENT@3068..3083 "value_or_values"1976                                  R_BRACK@3083..3084 "]"1977                              R_BRACK@3084..3085 "]"1978                      WHITESPACE@3085..3095 "\n\n        "1979                      FOR_SPEC@3095..31261980                        FOR_KW@3095..3098 "for"1981                        WHITESPACE@3098..3099 " "1982                        NAME@3099..31001983                          IDENT@3099..3100 "k"1984                        WHITESPACE@3100..3101 " "1985                        IN_KW@3101..3103 "in"1986                        WHITESPACE@3103..3104 " "1987                        EXPR_APPLY@3104..31261988                          EXPR_INDEX@3104..31201989                            EXPR_VAR@3104..31071990                              NAME@3104..31071991                                IDENT@3104..3107 "std"1992                            DOT@3107..3108 "."1993                            NAME@3108..31201994                              IDENT@3108..3120 "objectFields"1995                          ARGS_DESC@3120..31261996                            L_PAREN@3120..3121 "("1997                            ARG@3121..31251998                              EXPR_VAR@3121..31251999                                NAME@3121..31252000                                  IDENT@3121..3125 "body"2001                            R_PAREN@3125..3126 ")"2002                      WHITESPACE@3126..3133 "\n      "2003                      R_BRACK@3133..3134 "]"2004                  R_PAREN@3134..3135 ")"2005            SEMI@3135..3136 ";"2006            WHITESPACE@3136..3142 "\n\n    "2007            EXPR_LOCAL@3142..34952008              LOCAL_KW@3142..3147 "local"2009              WHITESPACE@3147..3148 " "2010              BIND_FUNCTION@3148..32162011                NAME@3148..31612012                  IDENT@3148..3161 "section_lines"2013                PARAMS_DESC@3161..31752014                  L_PAREN@3161..3162 "("2015                  PARAM@3162..31672016                    DESTRUCT_FULL@3162..31672017                      NAME@3162..31672018                        IDENT@3162..3167 "sname"2019                  COMMA@3167..3168 ","2020                  WHITESPACE@3168..3169 " "2021                  PARAM@3169..31742022                    DESTRUCT_FULL@3169..31742023                      NAME@3169..31742024                        IDENT@3169..3174 "sbody"2025                  R_PAREN@3174..3175 ")"2026                WHITESPACE@3175..3176 " "2027                ASSIGN@3176..3177 "="2028                WHITESPACE@3177..3178 " "2029                EXPR_BINARY@3178..32162030                  LHS_EXPR@3178..31962031                    EXPR_ARRAY@3178..31962032                      L_BRACK@3178..3179 "["2033                      EXPR_BINARY@3179..31952034                        LHS_EXPR@3179..31852035                          EXPR_STRING@3179..31852036                            STRING_SINGLE@3179..3185 "'[%s]'"2037                        WHITESPACE@3185..3186 " "2038                        MODULO@3186..3187 "%"2039                        WHITESPACE@3187..3188 " "2040                        EXPR_ARRAY@3188..31952041                          L_BRACK@3188..3189 "["2042                          EXPR_VAR@3189..31942043                            NAME@3189..31942044                              IDENT@3189..3194 "sname"2045                          R_BRACK@3194..3195 "]"2046                      R_BRACK@3195..3196 "]"2047                  WHITESPACE@3196..3197 " "2048                  PLUS@3197..3198 "+"2049                  WHITESPACE@3198..3199 " "2050                  EXPR_APPLY@3199..32162051                    EXPR_VAR@3199..32092052                      NAME@3199..32092053                        IDENT@3199..3209 "body_lines"2054                    ARGS_DESC@3209..32162055                      L_PAREN@3209..3210 "("2056                      ARG@3210..32152057                        EXPR_VAR@3210..32152058                          NAME@3210..32152059                            IDENT@3210..3215 "sbody"2060                      R_PAREN@3215..3216 ")"2061              COMMA@3216..3217 ","2062              WHITESPACE@3217..3228 "\n          "2063              BIND_DESTRUCT@3228..33032064                DESTRUCT_FULL@3228..32372065                  NAME@3228..32372066                    IDENT@3228..3237 "main_body"2067                WHITESPACE@3237..3238 " "2068                ASSIGN@3238..3239 "="2069                WHITESPACE@3239..3240 " "2070                EXPR_IF_THEN_ELSE@3240..33032071                  IF_KW@3240..3242 "if"2072                  WHITESPACE@3242..3243 " "2073                  EXPR_APPLY@3243..32692074                    EXPR_INDEX@3243..32562075                      EXPR_VAR@3243..32462076                        NAME@3243..32462077                          IDENT@3243..3246 "std"2078                      DOT@3246..3247 "."2079                      NAME@3247..32562080                        IDENT@3247..3256 "objectHas"2081                    ARGS_DESC@3256..32692082                      L_PAREN@3256..3257 "("2083                      ARG@3257..32602084                        EXPR_VAR@3257..32602085                          NAME@3257..32602086                            IDENT@3257..3260 "ini"2087                      COMMA@3260..3261 ","2088                      WHITESPACE@3261..3262 " "2089                      ARG@3262..32682090                        EXPR_STRING@3262..32682091                          STRING_SINGLE@3262..3268 "'main'"2092                      R_PAREN@3268..3269 ")"2093                  WHITESPACE@3269..3270 " "2094                  THEN_KW@3270..3274 "then"2095                  WHITESPACE@3274..3275 " "2096                  TRUE_EXPR@3275..32952097                    EXPR_APPLY@3275..32952098                      EXPR_VAR@3275..32852099                        NAME@3275..32852100                          IDENT@3275..3285 "body_lines"2101                      ARGS_DESC@3285..32952102                        L_PAREN@3285..3286 "("2103                        ARG@3286..32942104                          EXPR_INDEX@3286..32942105                            EXPR_VAR@3286..32892106                              NAME@3286..32892107                                IDENT@3286..3289 "ini"2108                            DOT@3289..3290 "."2109                            NAME@3290..32942110                              IDENT@3290..3294 "main"2111                        R_PAREN@3294..3295 ")"2112                  WHITESPACE@3295..3296 " "2113                  ELSE_KW@3296..3300 "else"2114                  WHITESPACE@3300..3301 " "2115                  FALSE_EXPR@3301..33032116                    EXPR_ARRAY@3301..33032117                      L_BRACK@3301..3302 "["2118                      R_BRACK@3302..3303 "]"2119              COMMA@3303..3304 ","2120              WHITESPACE@3304..3315 "\n          "2121              BIND_DESTRUCT@3315..34232122                DESTRUCT_FULL@3315..33272123                  NAME@3315..33272124                    IDENT@3315..3327 "all_sections"2125                WHITESPACE@3327..3328 " "2126                ASSIGN@3328..3329 "="2127                WHITESPACE@3329..3330 " "2128                EXPR_ARRAY_COMP@3330..34232129                  L_BRACK@3330..3331 "["2130                  WHITESPACE@3331..3338 "\n      "2131                  EXPR_APPLY@3338..33712132                    EXPR_VAR@3338..33512133                      NAME@3338..33512134                        IDENT@3338..3351 "section_lines"2135                    ARGS_DESC@3351..33712136                      L_PAREN@3351..3352 "("2137                      ARG@3352..33532138                        EXPR_VAR@3352..33532139                          NAME@3352..33532140                            IDENT@3352..3353 "k"2141                      COMMA@3353..3354 ","2142                      WHITESPACE@3354..3355 " "2143                      ARG@3355..33702144                        EXPR_INDEX_EXPR@3355..33702145                          LHS_EXPR@3355..33672146                            EXPR_INDEX@3355..33672147                              EXPR_VAR@3355..33582148                                NAME@3355..33582149                                  IDENT@3355..3358 "ini"2150                              DOT@3358..3359 "."2151                              NAME@3359..33672152                                IDENT@3359..3367 "sections"2153                          L_BRACK@3367..3368 "["2154                          EXPR_VAR@3368..33692155                            NAME@3368..33692156                              IDENT@3368..3369 "k"2157                          R_BRACK@3369..3370 "]"2158                      R_PAREN@3370..3371 ")"2159                  WHITESPACE@3371..3378 "\n      "2160                  FOR_SPEC@3378..34172161                    FOR_KW@3378..3381 "for"2162                    WHITESPACE@3381..3382 " "2163                    NAME@3382..33832164                      IDENT@3382..3383 "k"2165                    WHITESPACE@3383..3384 " "2166                    IN_KW@3384..3386 "in"2167                    WHITESPACE@3386..3387 " "2168                    EXPR_APPLY@3387..34172169                      EXPR_INDEX@3387..34032170                        EXPR_VAR@3387..33902171                          NAME@3387..33902172                            IDENT@3387..3390 "std"2173                        DOT@3390..3391 "."2174                        NAME@3391..34032175                          IDENT@3391..3403 "objectFields"2176                      ARGS_DESC@3403..34172177                        L_PAREN@3403..3404 "("2178                        ARG@3404..34162179                          EXPR_INDEX@3404..34162180                            EXPR_VAR@3404..34072181                              NAME@3404..34072182                                IDENT@3404..3407 "ini"2183                            DOT@3407..3408 "."2184                            NAME@3408..34162185                              IDENT@3408..3416 "sections"2186                        R_PAREN@3416..3417 ")"2187                  WHITESPACE@3417..3422 "\n    "2188                  R_BRACK@3422..3423 "]"2189              SEMI@3423..3424 ";"2190              WHITESPACE@3424..3429 "\n    "2191              EXPR_APPLY@3429..34952192                EXPR_INDEX@3429..34372193                  EXPR_VAR@3429..34322194                    NAME@3429..34322195                      IDENT@3429..3432 "std"2196                  DOT@3432..3433 "."2197                  NAME@3433..34372198                    IDENT@3433..3437 "join"2199                ARGS_DESC@3437..34952200                  L_PAREN@3437..3438 "("2201                  ARG@3438..34422202                    EXPR_STRING@3438..34422203                      STRING_SINGLE@3438..3442 "'\\n'"2204                  COMMA@3442..3443 ","2205                  WHITESPACE@3443..3444 " "2206                  ARG@3444..34942207                    EXPR_BINARY@3444..34942208                      LHS_EXPR@3444..34872209                        EXPR_BINARY@3444..34872210                          LHS_EXPR@3444..34532211                            EXPR_VAR@3444..34532212                              NAME@3444..34532213                                IDENT@3444..3453 "main_body"2214                          WHITESPACE@3453..3454 " "2215                          PLUS@3454..3455 "+"2216                          WHITESPACE@3455..3456 " "2217                          EXPR_APPLY@3456..34872218                            EXPR_INDEX@3456..34732219                              EXPR_VAR@3456..34592220                                NAME@3456..34592221                                  IDENT@3456..3459 "std"2222                              DOT@3459..3460 "."2223                              NAME@3460..34732224                                IDENT@3460..3473 "flattenArrays"2225                            ARGS_DESC@3473..34872226                              L_PAREN@3473..3474 "("2227                              ARG@3474..34862228                                EXPR_VAR@3474..34862229                                  NAME@3474..34862230                                    IDENT@3474..3486 "all_sections"2231                              R_PAREN@3486..3487 ")"2232                      WHITESPACE@3487..3488 " "2233                      PLUS@3488..3489 "+"2234                      WHITESPACE@3489..3490 " "2235                      EXPR_ARRAY@3490..34942236                        L_BRACK@3490..3491 "["2237                        EXPR_STRING@3491..34932238                          STRING_SINGLE@3491..3493 "''"2239                        R_BRACK@3493..3494 "]"2240                  R_PAREN@3494..3495 ")"2241      COMMA@3495..3496 ","2242      WHITESPACE@3496..3500 "\n\n  "2243      MEMBER_FIELD@3500..35532244        FIELD_METHOD@3500..35532245          FIELD_NAME_FIXED@3500..35122246            NAME@3500..35122247              IDENT@3500..3512 "manifestToml"2248          PARAMS_DESC@3512..35192249            L_PAREN@3512..3513 "("2250            PARAM@3513..35182251              DESTRUCT_FULL@3513..35182252                NAME@3513..35182253                  IDENT@3513..3518 "value"2254            R_PAREN@3518..3519 ")"2255          COLONCOLON@3519..3521 "::"2256          WHITESPACE@3521..3522 " "2257          EXPR_APPLY@3522..35532258            EXPR_INDEX@3522..35402259              EXPR_VAR@3522..35252260                NAME@3522..35252261                  IDENT@3522..3525 "std"2262              DOT@3525..3526 "."2263              NAME@3526..35402264                IDENT@3526..3540 "manifestTomlEx"2265            ARGS_DESC@3540..35532266              L_PAREN@3540..3541 "("2267              ARG@3541..35462268                EXPR_VAR@3541..35462269                  NAME@3541..35462270                    IDENT@3541..3546 "value"2271              COMMA@3546..3547 ","2272              WHITESPACE@3547..3548 " "2273              ARG@3548..35522274                EXPR_STRING@3548..35522275                  STRING_SINGLE@3548..3552 "'  '"2276              R_PAREN@3552..3553 ")"2277      COMMA@3553..3554 ","2278      WHITESPACE@3554..3558 "\n\n  "2279      MEMBER_FIELD@3558..36132280        FIELD_METHOD@3558..36132281          FIELD_NAME_FIXED@3558..35762282            NAME@3558..35762283              IDENT@3558..3576 "escapeStringPython"2284          PARAMS_DESC@3576..35812285            L_PAREN@3576..3577 "("2286            PARAM@3577..35802287              DESTRUCT_FULL@3577..35802288                NAME@3577..35802289                  IDENT@3577..3580 "str"2290            R_PAREN@3580..3581 ")"2291          COLONCOLON@3581..3583 "::"2292          WHITESPACE@3583..3588 "\n    "2293          EXPR_APPLY@3588..36132294            EXPR_INDEX@3588..36082295              EXPR_VAR@3588..35912296                NAME@3588..35912297                  IDENT@3588..3591 "std"2298              DOT@3591..3592 "."2299              NAME@3592..36082300                IDENT@3592..3608 "escapeStringJson"2301            ARGS_DESC@3608..36132302              L_PAREN@3608..3609 "("2303              ARG@3609..36122304                EXPR_VAR@3609..36122305                  NAME@3609..36122306                    IDENT@3609..3612 "str"2307              R_PAREN@3612..3613 ")"2308      COMMA@3613..3614 ","2309      WHITESPACE@3614..3618 "\n\n  "2310      MEMBER_FIELD@3618..38352311        FIELD_METHOD@3618..38352312          FIELD_NAME_FIXED@3618..36342313            NAME@3618..36342314              IDENT@3618..3634 "escapeStringBash"2315          PARAMS_DESC@3634..36402316            L_PAREN@3634..3635 "("2317            PARAM@3635..36392318              DESTRUCT_FULL@3635..36392319                NAME@3635..36392320                  IDENT@3635..3639 "str_"2321            R_PAREN@3639..3640 ")"2322          COLONCOLON@3640..3642 "::"2323          WHITESPACE@3642..3647 "\n    "2324          EXPR_LOCAL@3647..38352325            LOCAL_KW@3647..3652 "local"2326            WHITESPACE@3652..3653 " "2327            BIND_DESTRUCT@3653..36772328              DESTRUCT_FULL@3653..36562329                NAME@3653..36562330                  IDENT@3653..3656 "str"2331              WHITESPACE@3656..3657 " "2332              ASSIGN@3657..3658 "="2333              WHITESPACE@3658..3659 " "2334              EXPR_APPLY@3659..36772335                EXPR_INDEX@3659..36712336                  EXPR_VAR@3659..36622337                    NAME@3659..36622338                      IDENT@3659..3662 "std"2339                  DOT@3662..3663 "."2340                  NAME@3663..36712341                    IDENT@3663..3671 "toString"2342                ARGS_DESC@3671..36772343                  L_PAREN@3671..3672 "("2344                  ARG@3672..36762345                    EXPR_VAR@3672..36762346                      NAME@3672..36762347                        IDENT@3672..3676 "str_"2348                  R_PAREN@3676..3677 ")"2349            SEMI@3677..3678 ";"2350            WHITESPACE@3678..3683 "\n    "2351            EXPR_LOCAL@3683..38352352              LOCAL_KW@3683..3688 "local"2353              WHITESPACE@3688..3689 " "2354              BIND_FUNCTION@3689..37642355                NAME@3689..36942356                  IDENT@3689..3694 "trans"2357                PARAMS_DESC@3694..36982358                  L_PAREN@3694..3695 "("2359                  PARAM@3695..36972360                    DESTRUCT_FULL@3695..36972361                      NAME@3695..36972362                        IDENT@3695..3697 "ch"2363                  R_PAREN@3697..3698 ")"2364                WHITESPACE@3698..3699 " "2365                ASSIGN@3699..3700 "="2366                WHITESPACE@3700..3707 "\n      "2367                EXPR_IF_THEN_ELSE@3707..37642368                  IF_KW@3707..3709 "if"2369                  WHITESPACE@3709..3710 " "2370                  EXPR_BINARY@3710..37192371                    LHS_EXPR@3710..37122372                      EXPR_VAR@3710..37122373                        NAME@3710..37122374                          IDENT@3710..3712 "ch"2375                    WHITESPACE@3712..3713 " "2376                    EQ@3713..3715 "=="2377                    WHITESPACE@3715..3716 " "2378                    EXPR_STRING@3716..37192379                      STRING_DOUBLE@3716..3719 "\"'\""2380                  WHITESPACE@3719..3720 " "2381                  THEN_KW@3720..3724 "then"2382                  WHITESPACE@3724..3733 "\n        "2383                  TRUE_EXPR@3733..37422384                    EXPR_STRING@3733..37422385                      STRING_DOUBLE@3733..3742 "\"'\\\"'\\\"'\""2386                  WHITESPACE@3742..3749 "\n      "2387                  ELSE_KW@3749..3753 "else"2388                  WHITESPACE@3753..3762 "\n        "2389                  FALSE_EXPR@3762..37642390                    EXPR_VAR@3762..37642391                      NAME@3762..37642392                        IDENT@3762..3764 "ch"2393              SEMI@3764..3765 ";"2394              WHITESPACE@3765..3770 "\n    "2395              EXPR_BINARY@3770..38352396                LHS_EXPR@3770..37762397                  EXPR_STRING@3770..37762398                    STRING_DOUBLE@3770..3776 "\"'%s'\""2399                WHITESPACE@3776..3777 " "2400                MODULO@3777..3778 "%"2401                WHITESPACE@3778..3779 " "2402                EXPR_APPLY@3779..38352403                  EXPR_INDEX@3779..37872404                    EXPR_VAR@3779..37822405                      NAME@3779..37822406                        IDENT@3779..3782 "std"2407                    DOT@3782..3783 "."2408                    NAME@3783..37872409                      IDENT@3783..3787 "join"2410                  ARGS_DESC@3787..38352411                    L_PAREN@3787..3788 "("2412                    ARG@3788..37902413                      EXPR_STRING@3788..37902414                        STRING_SINGLE@3788..3790 "''"2415                    COMMA@3790..3791 ","2416                    WHITESPACE@3791..3792 " "2417                    ARG@3792..38342418                      EXPR_ARRAY_COMP@3792..38342419                        L_BRACK@3792..3793 "["2420                        EXPR_APPLY@3793..38022421                          EXPR_VAR@3793..37982422                            NAME@3793..37982423                              IDENT@3793..3798 "trans"2424                          ARGS_DESC@3798..38022425                            L_PAREN@3798..3799 "("2426                            ARG@3799..38012427                              EXPR_VAR@3799..38012428                                NAME@3799..38012429                                  IDENT@3799..3801 "ch"2430                            R_PAREN@3801..3802 ")"2431                        WHITESPACE@3802..3803 " "2432                        FOR_SPEC@3803..38332433                          FOR_KW@3803..3806 "for"2434                          WHITESPACE@3806..3807 " "2435                          NAME@3807..38092436                            IDENT@3807..3809 "ch"2437                          WHITESPACE@3809..3810 " "2438                          IN_KW@3810..3812 "in"2439                          WHITESPACE@3812..3813 " "2440                          EXPR_APPLY@3813..38332441                            EXPR_INDEX@3813..38282442                              EXPR_VAR@3813..38162443                                NAME@3813..38162444                                  IDENT@3813..3816 "std"2445                              DOT@3816..3817 "."2446                              NAME@3817..38282447                                IDENT@3817..3828 "stringChars"2448                            ARGS_DESC@3828..38332449                              L_PAREN@3828..3829 "("2450                              ARG@3829..38322451                                EXPR_VAR@3829..38322452                                  NAME@3829..38322453                                    IDENT@3829..3832 "str"2454                              R_PAREN@3832..3833 ")"2455                        R_BRACK@3833..3834 "]"2456                    R_PAREN@3834..3835 ")"2457      COMMA@3835..3836 ","2458      WHITESPACE@3836..3840 "\n\n  "2459      MEMBER_FIELD@3840..40542460        FIELD_METHOD@3840..40542461          FIELD_NAME_FIXED@3840..38592462            NAME@3840..38592463              IDENT@3840..3859 "escapeStringDollars"2464          PARAMS_DESC@3859..38652465            L_PAREN@3859..3860 "("2466            PARAM@3860..38642467              DESTRUCT_FULL@3860..38642468                NAME@3860..38642469                  IDENT@3860..3864 "str_"2470            R_PAREN@3864..3865 ")"2471          COLONCOLON@3865..3867 "::"2472          WHITESPACE@3867..3872 "\n    "2473          EXPR_LOCAL@3872..40542474            LOCAL_KW@3872..3877 "local"2475            WHITESPACE@3877..3878 " "2476            BIND_DESTRUCT@3878..39022477              DESTRUCT_FULL@3878..38812478                NAME@3878..38812479                  IDENT@3878..3881 "str"2480              WHITESPACE@3881..3882 " "2481              ASSIGN@3882..3883 "="2482              WHITESPACE@3883..3884 " "2483              EXPR_APPLY@3884..39022484                EXPR_INDEX@3884..38962485                  EXPR_VAR@3884..38872486                    NAME@3884..38872487                      IDENT@3884..3887 "std"2488                  DOT@3887..3888 "."2489                  NAME@3888..38962490                    IDENT@3888..3896 "toString"2491                ARGS_DESC@3896..39022492                  L_PAREN@3896..3897 "("2493                  ARG@3897..39012494                    EXPR_VAR@3897..39012495                      NAME@3897..39012496                        IDENT@3897..3901 "str_"2497                  R_PAREN@3901..3902 ")"2498            SEMI@3902..3903 ";"2499            WHITESPACE@3903..3908 "\n    "2500            EXPR_LOCAL@3908..40542501              LOCAL_KW@3908..3913 "local"2502              WHITESPACE@3913..3914 " "2503              BIND_FUNCTION@3914..39842504                NAME@3914..39192505                  IDENT@3914..3919 "trans"2506                PARAMS_DESC@3919..39232507                  L_PAREN@3919..3920 "("2508                  PARAM@3920..39222509                    DESTRUCT_FULL@3920..39222510                      NAME@3920..39222511                        IDENT@3920..3922 "ch"2512                  R_PAREN@3922..3923 ")"2513                WHITESPACE@3923..3924 " "2514                ASSIGN@3924..3925 "="2515                WHITESPACE@3925..3932 "\n      "2516                EXPR_IF_THEN_ELSE@3932..39842517                  IF_KW@3932..3934 "if"2518                  WHITESPACE@3934..3935 " "2519                  EXPR_BINARY@3935..39442520                    LHS_EXPR@3935..39372521                      EXPR_VAR@3935..39372522                        NAME@3935..39372523                          IDENT@3935..3937 "ch"2524                    WHITESPACE@3937..3938 " "2525                    EQ@3938..3940 "=="2526                    WHITESPACE@3940..3941 " "2527                    EXPR_STRING@3941..39442528                      STRING_SINGLE@3941..3944 "'$'"2529                  WHITESPACE@3944..3945 " "2530                  THEN_KW@3945..3949 "then"2531                  WHITESPACE@3949..3958 "\n        "2532                  TRUE_EXPR@3958..39622533                    EXPR_STRING@3958..39622534                      STRING_SINGLE@3958..3962 "'$$'"2535                  WHITESPACE@3962..3969 "\n      "2536                  ELSE_KW@3969..3973 "else"2537                  WHITESPACE@3973..3982 "\n        "2538                  FALSE_EXPR@3982..39842539                    EXPR_VAR@3982..39842540                      NAME@3982..39842541                        IDENT@3982..3984 "ch"2542              SEMI@3984..3985 ";"2543              WHITESPACE@3985..3990 "\n    "2544              EXPR_APPLY@3990..40542545                EXPR_INDEX@3990..39992546                  EXPR_VAR@3990..39932547                    NAME@3990..39932548                      IDENT@3990..3993 "std"2549                  DOT@3993..3994 "."2550                  NAME@3994..39992551                    IDENT@3994..3999 "foldl"2552                ARGS_DESC@3999..40542553                  L_PAREN@3999..4000 "("2554                  ARG@4000..40272555                    EXPR_FUNCTION@4000..40272556                      FUNCTION_KW@4000..4008 "function"2557                      PARAMS_DESC@4008..40142558                        L_PAREN@4008..4009 "("2559                        PARAM@4009..40102560                          DESTRUCT_FULL@4009..40102561                            NAME@4009..40102562                              IDENT@4009..4010 "a"2563                        COMMA@4010..4011 ","2564                        WHITESPACE@4011..4012 " "2565                        PARAM@4012..40132566                          DESTRUCT_FULL@4012..40132567                            NAME@4012..40132568                              IDENT@4012..4013 "b"2569                        R_PAREN@4013..4014 ")"2570                      WHITESPACE@4014..4015 " "2571                      EXPR_BINARY@4015..40272572                        LHS_EXPR@4015..40162573                          EXPR_VAR@4015..40162574                            NAME@4015..40162575                              IDENT@4015..4016 "a"2576                        WHITESPACE@4016..4017 " "2577                        PLUS@4017..4018 "+"2578                        WHITESPACE@4018..4019 " "2579                        EXPR_APPLY@4019..40272580                          EXPR_VAR@4019..40242581                            NAME@4019..40242582                              IDENT@4019..4024 "trans"2583                          ARGS_DESC@4024..40272584                            L_PAREN@4024..4025 "("2585                            ARG@4025..40262586                              EXPR_VAR@4025..40262587                                NAME@4025..40262588                                  IDENT@4025..4026 "b"2589                            R_PAREN@4026..4027 ")"2590                  COMMA@4027..4028 ","2591                  WHITESPACE@4028..4029 " "2592                  ARG@4029..40492593                    EXPR_APPLY@4029..40492594                      EXPR_INDEX@4029..40442595                        EXPR_VAR@4029..40322596                          NAME@4029..40322597                            IDENT@4029..4032 "std"2598                        DOT@4032..4033 "."2599                        NAME@4033..40442600                          IDENT@4033..4044 "stringChars"2601                      ARGS_DESC@4044..40492602                        L_PAREN@4044..4045 "("2603                        ARG@4045..40482604                          EXPR_VAR@4045..40482605                            NAME@4045..40482606                              IDENT@4045..4048 "str"2607                        R_PAREN@4048..4049 ")"2608                  COMMA@4049..4050 ","2609                  WHITESPACE@4050..4051 " "2610                  ARG@4051..40532611                    EXPR_STRING@4051..40532612                      STRING_SINGLE@4051..4053 "''"2613                  R_PAREN@4053..4054 ")"2614      COMMA@4054..4055 ","2615      WHITESPACE@4055..4059 "\n\n  "2616      MEMBER_BIND_STMT@4059..41742617        OBJ_LOCAL@4059..41742618          LOCAL_KW@4059..4064 "local"2619          WHITESPACE@4064..4065 " "2620          BIND_DESTRUCT@4065..41742621            DESTRUCT_FULL@4065..40762622              NAME@4065..40762623                IDENT@4065..4076 "xml_escapes"2624            WHITESPACE@4076..4077 " "2625            ASSIGN@4077..4078 "="2626            WHITESPACE@4078..4079 " "2627            EXPR_OBJECT@4079..41742628              OBJ_BODY_MEMBER_LIST@4079..41742629                L_BRACE@4079..4080 "{"2630                WHITESPACE@4080..4085 "\n    "2631                MEMBER_FIELD@4085..40962632                  FIELD_NORMAL@4085..40962633                    FIELD_NAME_FIXED@4085..40882634                      STRING_SINGLE@4085..4088 "'<'"2635                    COLON@4088..4089 ":"2636                    WHITESPACE@4089..4090 " "2637                    EXPR_STRING@4090..40962638                      STRING_SINGLE@4090..4096 "'&lt;'"2639                COMMA@4096..4097 ","2640                WHITESPACE@4097..4102 "\n    "2641                MEMBER_FIELD@4102..41132642                  FIELD_NORMAL@4102..41132643                    FIELD_NAME_FIXED@4102..41052644                      STRING_SINGLE@4102..4105 "'>'"2645                    COLON@4105..4106 ":"2646                    WHITESPACE@4106..4107 " "2647                    EXPR_STRING@4107..41132648                      STRING_SINGLE@4107..4113 "'&gt;'"2649                COMMA@4113..4114 ","2650                WHITESPACE@4114..4119 "\n    "2651                MEMBER_FIELD@4119..41312652                  FIELD_NORMAL@4119..41312653                    FIELD_NAME_FIXED@4119..41222654                      STRING_SINGLE@4119..4122 "'&'"2655                    COLON@4122..4123 ":"2656                    WHITESPACE@4123..4124 " "2657                    EXPR_STRING@4124..41312658                      STRING_SINGLE@4124..4131 "'&amp;'"2659                COMMA@4131..4132 ","2660                WHITESPACE@4132..4137 "\n    "2661                MEMBER_FIELD@4137..41502662                  FIELD_NORMAL@4137..41502663                    FIELD_NAME_FIXED@4137..41402664                      STRING_SINGLE@4137..4140 "'\"'"2665                    COLON@4140..4141 ":"2666                    WHITESPACE@4141..4142 " "2667                    EXPR_STRING@4142..41502668                      STRING_SINGLE@4142..4150 "'&quot;'"2669                COMMA@4150..4151 ","2670                WHITESPACE@4151..4156 "\n    "2671                MEMBER_FIELD@4156..41692672                  FIELD_NORMAL@4156..41692673                    FIELD_NAME_FIXED@4156..41592674                      STRING_DOUBLE@4156..4159 "\"'\""2675                    COLON@4159..4160 ":"2676                    WHITESPACE@4160..4161 " "2677                    EXPR_STRING@4161..41692678                      STRING_SINGLE@4161..4169 "'&apos;'"2679                COMMA@4169..4170 ","2680                WHITESPACE@4170..4173 "\n  "2681                R_BRACE@4173..4174 "}"2682      COMMA@4174..4175 ","2683      WHITESPACE@4175..4179 "\n\n  "2684      MEMBER_FIELD@4179..43182685        FIELD_METHOD@4179..43182686          FIELD_NAME_FIXED@4179..41942687            NAME@4179..41942688              IDENT@4179..4194 "escapeStringXML"2689          PARAMS_DESC@4194..42002690            L_PAREN@4194..4195 "("2691            PARAM@4195..41992692              DESTRUCT_FULL@4195..41992693                NAME@4195..41992694                  IDENT@4195..4199 "str_"2695            R_PAREN@4199..4200 ")"2696          COLONCOLON@4200..4202 "::"2697          WHITESPACE@4202..4207 "\n    "2698          EXPR_LOCAL@4207..43182699            LOCAL_KW@4207..4212 "local"2700            WHITESPACE@4212..4213 " "2701            BIND_DESTRUCT@4213..42372702              DESTRUCT_FULL@4213..42162703                NAME@4213..42162704                  IDENT@4213..4216 "str"2705              WHITESPACE@4216..4217 " "2706              ASSIGN@4217..4218 "="2707              WHITESPACE@4218..4219 " "2708              EXPR_APPLY@4219..42372709                EXPR_INDEX@4219..42312710                  EXPR_VAR@4219..42222711                    NAME@4219..42222712                      IDENT@4219..4222 "std"2713                  DOT@4222..4223 "."2714                  NAME@4223..42312715                    IDENT@4223..4231 "toString"2716                ARGS_DESC@4231..42372717                  L_PAREN@4231..4232 "("2718                  ARG@4232..42362719                    EXPR_VAR@4232..42362720                      NAME@4232..42362721                        IDENT@4232..4236 "str_"2722                  R_PAREN@4236..4237 ")"2723            SEMI@4237..4238 ";"2724            WHITESPACE@4238..4243 "\n    "2725            EXPR_APPLY@4243..43182726              EXPR_INDEX@4243..42512727                EXPR_VAR@4243..42462728                  NAME@4243..42462729                    IDENT@4243..4246 "std"2730                DOT@4246..4247 "."2731                NAME@4247..42512732                  IDENT@4247..4251 "join"2733              ARGS_DESC@4251..43182734                L_PAREN@4251..4252 "("2735                ARG@4252..42542736                  EXPR_STRING@4252..42542737                    STRING_SINGLE@4252..4254 "''"2738                COMMA@4254..4255 ","2739                WHITESPACE@4255..4256 " "2740                ARG@4256..43172741                  EXPR_ARRAY_COMP@4256..43172742                    L_BRACK@4256..4257 "["2743                    EXPR_APPLY@4257..42852744                      EXPR_INDEX@4257..42642745                        EXPR_VAR@4257..42602746                          NAME@4257..42602747                            IDENT@4257..4260 "std"2748                        DOT@4260..4261 "."2749                        NAME@4261..42642750                          IDENT@4261..4264 "get"2751                      ARGS_DESC@4264..42852752                        L_PAREN@4264..4265 "("2753                        ARG@4265..42762754                          EXPR_VAR@4265..42762755                            NAME@4265..42762756                              IDENT@4265..4276 "xml_escapes"2757                        COMMA@4276..4277 ","2758                        WHITESPACE@4277..4278 " "2759                        ARG@4278..42802760                          EXPR_VAR@4278..42802761                            NAME@4278..42802762                              IDENT@4278..4280 "ch"2763                        COMMA@4280..4281 ","2764                        WHITESPACE@4281..4282 " "2765                        ARG@4282..42842766                          EXPR_VAR@4282..42842767                            NAME@4282..42842768                              IDENT@4282..4284 "ch"2769                        R_PAREN@4284..4285 ")"2770                    WHITESPACE@4285..4286 " "2771                    FOR_SPEC@4286..43162772                      FOR_KW@4286..4289 "for"2773                      WHITESPACE@4289..4290 " "2774                      NAME@4290..42922775                        IDENT@4290..4292 "ch"2776                      WHITESPACE@4292..4293 " "2777                      IN_KW@4293..4295 "in"2778                      WHITESPACE@4295..4296 " "2779                      EXPR_APPLY@4296..43162780                        EXPR_INDEX@4296..43112781                          EXPR_VAR@4296..42992782                            NAME@4296..42992783                              IDENT@4296..4299 "std"2784                          DOT@4299..4300 "."2785                          NAME@4300..43112786                            IDENT@4300..4311 "stringChars"2787                        ARGS_DESC@4311..43162788                          L_PAREN@4311..4312 "("2789                          ARG@4312..43152790                            EXPR_VAR@4312..43152791                              NAME@4312..43152792                                IDENT@4312..4315 "str"2793                          R_PAREN@4315..4316 ")"2794                    R_BRACK@4316..4317 "]"2795                R_PAREN@4317..4318 ")"2796      COMMA@4318..4319 ","2797      WHITESPACE@4319..4323 "\n\n  "2798      MEMBER_FIELD@4323..43892799        FIELD_METHOD@4323..43892800          FIELD_NAME_FIXED@4323..43352801            NAME@4323..43352802              IDENT@4323..4335 "manifestJson"2803          PARAMS_DESC@4335..43422804            L_PAREN@4335..4336 "("2805            PARAM@4336..43412806              DESTRUCT_FULL@4336..43412807                NAME@4336..43412808                  IDENT@4336..4341 "value"2809            R_PAREN@4341..4342 ")"2810          COLONCOLON@4342..4344 "::"2811          WHITESPACE@4344..4345 " "2812          EXPR_APPLY@4345..43892813            EXPR_INDEX@4345..43632814              EXPR_VAR@4345..43482815                NAME@4345..43482816                  IDENT@4345..4348 "std"2817              DOT@4348..4349 "."2818              NAME@4349..43632819                IDENT@4349..4363 "manifestJsonEx"2820            ARGS_DESC@4363..43892821              L_PAREN@4363..4364 "("2822              ARG@4364..43692823                EXPR_VAR@4364..43692824                  NAME@4364..43692825                    IDENT@4364..4369 "value"2826              COMMA@4369..4370 ","2827              WHITESPACE@4370..4371 " "2828              ARG@4371..43772829                EXPR_STRING@4371..43772830                  STRING_SINGLE@4371..4377 "'    '"2831              R_PAREN@4377..4378 ")"2832              WHITESPACE@4378..4379 " "2833              TAILSTRICT_KW@4379..4389 "tailstrict"2834      COMMA@4389..4390 ","2835      WHITESPACE@4390..4394 "\n\n  "2836      MEMBER_FIELD@4394..44622837        FIELD_METHOD@4394..44622838          FIELD_NAME_FIXED@4394..44142839            NAME@4394..44142840              IDENT@4394..4414 "manifestJsonMinified"2841          PARAMS_DESC@4414..44212842            L_PAREN@4414..4415 "("2843            PARAM@4415..44202844              DESTRUCT_FULL@4415..44202845                NAME@4415..44202846                  IDENT@4415..4420 "value"2847            R_PAREN@4420..4421 ")"2848          COLONCOLON@4421..4423 "::"2849          WHITESPACE@4423..4424 " "2850          EXPR_APPLY@4424..44622851            EXPR_INDEX@4424..44422852              EXPR_VAR@4424..44272853                NAME@4424..44272854                  IDENT@4424..4427 "std"2855              DOT@4427..4428 "."2856              NAME@4428..44422857                IDENT@4428..4442 "manifestJsonEx"2858            ARGS_DESC@4442..44622859              L_PAREN@4442..4443 "("2860              ARG@4443..44482861                EXPR_VAR@4443..44482862                  NAME@4443..44482863                    IDENT@4443..4448 "value"2864              COMMA@4448..4449 ","2865              WHITESPACE@4449..4450 " "2866              ARG@4450..44522867                EXPR_STRING@4450..44522868                  STRING_SINGLE@4450..4452 "''"2869              COMMA@4452..4453 ","2870              WHITESPACE@4453..4454 " "2871              ARG@4454..44562872                EXPR_STRING@4454..44562873                  STRING_SINGLE@4454..4456 "''"2874              COMMA@4456..4457 ","2875              WHITESPACE@4457..4458 " "2876              ARG@4458..44612877                EXPR_STRING@4458..44612878                  STRING_SINGLE@4458..4461 "':'"2879              R_PAREN@4461..4462 ")"2880      COMMA@4462..4463 ","2881      WHITESPACE@4463..4467 "\n\n  "2882      MEMBER_FIELD@4467..48522883        FIELD_METHOD@4467..48522884          FIELD_NAME_FIXED@4467..44852885            NAME@4467..44852886              IDENT@4467..4485 "manifestYamlStream"2887          PARAMS_DESC@4485..45602888            L_PAREN@4485..4486 "("2889            PARAM@4486..44912890              DESTRUCT_FULL@4486..44912891                NAME@4486..44912892                  IDENT@4486..4491 "value"2893            COMMA@4491..4492 ","2894            WHITESPACE@4492..4493 " "2895            PARAM@4493..45212896              DESTRUCT_FULL@4493..45152897                NAME@4493..45152898                  IDENT@4493..4515 "indent_array_in_object"2899              ASSIGN@4515..4516 "="2900              EXPR_LITERAL@4516..45212901                FALSE_KW@4516..4521 "false"2902            COMMA@4521..4522 ","2903            WHITESPACE@4522..4523 " "2904            PARAM@4523..45422905              DESTRUCT_FULL@4523..45372906                NAME@4523..45372907                  IDENT@4523..4537 "c_document_end"2908              ASSIGN@4537..4538 "="2909              EXPR_LITERAL@4538..45422910                TRUE_KW@4538..4542 "true"2911            COMMA@4542..4543 ","2912            WHITESPACE@4543..4544 " "2913            PARAM@4544..45592914              DESTRUCT_FULL@4544..45542915                NAME@4544..45542916                  IDENT@4544..4554 "quote_keys"2917              ASSIGN@4554..4555 "="2918              EXPR_LITERAL@4555..45592919                TRUE_KW@4555..4559 "true"2920            R_PAREN@4559..4560 ")"2921          COLONCOLON@4560..4562 "::"2922          WHITESPACE@4562..4567 "\n    "2923          EXPR_IF_THEN_ELSE@4567..48522924            IF_KW@4567..4569 "if"2925            WHITESPACE@4569..4570 " "2926            EXPR_UNARY@4570..45892927              NOT@4570..4571 "!"2928              EXPR_APPLY@4571..45892929                EXPR_INDEX@4571..45822930                  EXPR_VAR@4571..45742931                    NAME@4571..45742932                      IDENT@4571..4574 "std"2933                  DOT@4574..4575 "."2934                  NAME@4575..45822935                    IDENT@4575..4582 "isArray"2936                ARGS_DESC@4582..45892937                  L_PAREN@4582..4583 "("2938                  ARG@4583..45882939                    EXPR_VAR@4583..45882940                      NAME@4583..45882941                        IDENT@4583..4588 "value"2942                  R_PAREN@4588..4589 ")"2943            WHITESPACE@4589..4590 " "2944            THEN_KW@4590..4594 "then"2945            WHITESPACE@4594..4601 "\n      "2946            TRUE_EXPR@4601..46692947              EXPR_ERROR@4601..46692948                ERROR_KW@4601..4606 "error"2949                WHITESPACE@4606..4607 " "2950                EXPR_BINARY@4607..46692951                  LHS_EXPR@4607..46512952                    EXPR_STRING@4607..46512953                      STRING_SINGLE@4607..4651 "'manifestYamlStream o ..."2954                  WHITESPACE@4651..4652 " "2955                  PLUS@4652..4653 "+"2956                  WHITESPACE@4653..4654 " "2957                  EXPR_APPLY@4654..46692958                    EXPR_INDEX@4654..46622959                      EXPR_VAR@4654..46572960                        NAME@4654..46572961                          IDENT@4654..4657 "std"2962                      DOT@4657..4658 "."2963                      NAME@4658..46622964                        IDENT@4658..4662 "type"2965                    ARGS_DESC@4662..46692966                      L_PAREN@4662..4663 "("2967                      ARG@4663..46682968                        EXPR_VAR@4663..46682969                          NAME@4663..46682970                            IDENT@4663..4668 "value"2971                      R_PAREN@4668..4669 ")"2972            WHITESPACE@4669..4674 "\n    "2973            ELSE_KW@4674..4678 "else"2974            WHITESPACE@4678..4685 "\n      "2975            FALSE_EXPR@4685..48522976              EXPR_BINARY@4685..48522977                LHS_EXPR@4685..48072978                  EXPR_BINARY@4685..48072979                    LHS_EXPR@4685..46922980                      EXPR_STRING@4685..46922981                        STRING_SINGLE@4685..4692 "'---\\n'"2982                    WHITESPACE@4692..4693 " "2983                    PLUS@4693..4694 "+"2984                    WHITESPACE@4694..4695 " "2985                    EXPR_APPLY@4695..48072986                      EXPR_INDEX@4695..47032987                        EXPR_VAR@4695..46982988                          NAME@4695..46982989                            IDENT@4695..4698 "std"2990                        DOT@4698..4699 "."2991                        NAME@4699..47032992                          IDENT@4699..4703 "join"2993                      ARGS_DESC@4703..48072994                        L_PAREN@4703..4704 "("2995                        WHITESPACE@4704..4713 "\n        "2996                        ARG@4713..47222997                          EXPR_STRING@4713..47222998                            STRING_SINGLE@4713..4722 "'\\n---\\n'"2999                        COMMA@4722..4723 ","3000                        WHITESPACE@4723..4724 " "3001                        ARG@4724..47993002                          EXPR_ARRAY_COMP@4724..47993003                            L_BRACK@4724..4725 "["3004                            EXPR_APPLY@4725..47833005                              EXPR_INDEX@4725..47443006                                EXPR_VAR@4725..47283007                                  NAME@4725..47283008                                    IDENT@4725..4728 "std"3009                                DOT@4728..4729 "."3010                                NAME@4729..47443011                                  IDENT@4729..4744 "manifestYamlDoc"3012                              ARGS_DESC@4744..47833013                                L_PAREN@4744..4745 "("3014                                ARG@4745..47463015                                  EXPR_VAR@4745..47463016                                    NAME@4745..47463017                                      IDENT@4745..4746 "e"3018                                COMMA@4746..4747 ","3019                                WHITESPACE@4747..4748 " "3020                                ARG@4748..47703021                                  EXPR_VAR@4748..47703022                                    NAME@4748..47703023                                      IDENT@4748..4770 "indent_array_in_object"3024                                COMMA@4770..4771 ","3025                                WHITESPACE@4771..4772 " "3026                                ARG@4772..47823027                                  EXPR_VAR@4772..47823028                                    NAME@4772..47823029                                      IDENT@4772..4782 "quote_keys"3030                                R_PAREN@4782..4783 ")"3031                            WHITESPACE@4783..4784 " "3032                            FOR_SPEC@4784..47983033                              FOR_KW@4784..4787 "for"3034                              WHITESPACE@4787..4788 " "3035                              NAME@4788..47893036                                IDENT@4788..4789 "e"3037                              WHITESPACE@4789..4790 " "3038                              IN_KW@4790..4792 "in"3039                              WHITESPACE@4792..4793 " "3040                              EXPR_VAR@4793..47983041                                NAME@4793..47983042                                  IDENT@4793..4798 "value"3043                            R_BRACK@4798..4799 "]"3044                        WHITESPACE@4799..4806 "\n      "3045                        R_PAREN@4806..4807 ")"3046                WHITESPACE@4807..4808 " "3047                PLUS@4808..4809 "+"3048                WHITESPACE@4809..4810 " "3049                EXPR_IF_THEN_ELSE@4810..48523050                  IF_KW@4810..4812 "if"3051                  WHITESPACE@4812..4813 " "3052                  EXPR_VAR@4813..48273053                    NAME@4813..48273054                      IDENT@4813..4827 "c_document_end"3055                  WHITESPACE@4827..4828 " "3056                  THEN_KW@4828..4832 "then"3057                  WHITESPACE@4832..4833 " "3058                  TRUE_EXPR@4833..48423059                    EXPR_STRING@4833..48423060                      STRING_SINGLE@4833..4842 "'\\n...\\n'"3061                  WHITESPACE@4842..4843 " "3062                  ELSE_KW@4843..4847 "else"3063                  WHITESPACE@4847..4848 " "3064                  FALSE_EXPR@4848..48523065                    EXPR_STRING@4848..48523066                      STRING_SINGLE@4848..4852 "'\\n'"3067      COMMA@4852..4853 ","3068      WHITESPACE@4853..4857 "\n\n  "3069      MEMBER_FIELD@4857..55133070        FIELD_METHOD@4857..55133071          FIELD_NAME_FIXED@4857..48713072            NAME@4857..48713073              IDENT@4857..4871 "manifestPython"3074          PARAMS_DESC@4871..48743075            L_PAREN@4871..4872 "("3076            PARAM@4872..48733077              DESTRUCT_FULL@4872..48733078                NAME@4872..48733079                  IDENT@4872..4873 "v"3080            R_PAREN@4873..4874 ")"3081          COLONCOLON@4874..4876 "::"3082          WHITESPACE@4876..4881 "\n    "3083          EXPR_IF_THEN_ELSE@4881..55133084            IF_KW@4881..4883 "if"3085            WHITESPACE@4883..4884 " "3086            EXPR_APPLY@4884..48993087              EXPR_INDEX@4884..48963088                EXPR_VAR@4884..48873089                  NAME@4884..48873090                    IDENT@4884..4887 "std"3091                DOT@4887..4888 "."3092                NAME@4888..48963093                  IDENT@4888..4896 "isObject"3094              ARGS_DESC@4896..48993095                L_PAREN@4896..4897 "("3096                ARG@4897..48983097                  EXPR_VAR@4897..48983098                    NAME@4897..48983099                      IDENT@4897..4898 "v"3100                R_PAREN@4898..4899 ")"3101            WHITESPACE@4899..4900 " "3102            THEN_KW@4900..4904 "then"3103            WHITESPACE@4904..4911 "\n      "3104            TRUE_EXPR@4911..50863105              EXPR_LOCAL@4911..50863106                LOCAL_KW@4911..4916 "local"3107                WHITESPACE@4916..4917 " "3108                BIND_DESTRUCT@4917..50453109                  DESTRUCT_FULL@4917..49233110                    NAME@4917..49233111                      IDENT@4917..4923 "fields"3112                  WHITESPACE@4923..4924 " "3113                  ASSIGN@4924..4925 "="3114                  WHITESPACE@4925..4926 " "3115                  EXPR_ARRAY_COMP@4926..50453116                    L_BRACK@4926..4927 "["3117                    WHITESPACE@4927..4936 "\n        "3118                    EXPR_BINARY@4936..50003119                      LHS_EXPR@4936..49443120                        EXPR_STRING@4936..49443121                          STRING_SINGLE@4936..4944 "'%s: %s'"3122                      WHITESPACE@4944..4945 " "3123                      MODULO@4945..4946 "%"3124                      WHITESPACE@4946..4947 " "3125                      EXPR_ARRAY@4947..50003126                        L_BRACK@4947..4948 "["3127                        EXPR_APPLY@4948..49733128                          EXPR_INDEX@4948..49703129                            EXPR_VAR@4948..49513130                              NAME@4948..49513131                                IDENT@4948..4951 "std"3132                            DOT@4951..4952 "."3133                            NAME@4952..49703134                              IDENT@4952..4970 "escapeStringPython"3135                          ARGS_DESC@4970..49733136                            L_PAREN@4970..4971 "("3137                            ARG@4971..49723138                              EXPR_VAR@4971..49723139                                NAME@4971..49723140                                  IDENT@4971..4972 "k"3141                            R_PAREN@4972..4973 ")"3142                        COMMA@4973..4974 ","3143                        WHITESPACE@4974..4975 " "3144                        EXPR_APPLY@4975..49993145                          EXPR_INDEX@4975..49933146                            EXPR_VAR@4975..49783147                              NAME@4975..49783148                                IDENT@4975..4978 "std"3149                            DOT@4978..4979 "."3150                            NAME@4979..49933151                              IDENT@4979..4993 "manifestPython"3152                          ARGS_DESC@4993..49993153                            L_PAREN@4993..4994 "("3154                            ARG@4994..49983155                              EXPR_INDEX_EXPR@4994..49983156                                LHS_EXPR@4994..49953157                                  EXPR_VAR@4994..49953158                                    NAME@4994..49953159                                      IDENT@4994..4995 "v"3160                                L_BRACK@4995..4996 "["3161                                EXPR_VAR@4996..49973162                                  NAME@4996..49973163                                    IDENT@4996..4997 "k"3164                                R_BRACK@4997..4998 "]"3165                            R_PAREN@4998..4999 ")"3166                        R_BRACK@4999..5000 "]"3167                    WHITESPACE@5000..5009 "\n        "3168                    FOR_SPEC@5009..50373169                      FOR_KW@5009..5012 "for"3170                      WHITESPACE@5012..5013 " "3171                      NAME@5013..50143172                        IDENT@5013..5014 "k"3173                      WHITESPACE@5014..5015 " "3174                      IN_KW@5015..5017 "in"3175                      WHITESPACE@5017..5018 " "3176                      EXPR_APPLY@5018..50373177                        EXPR_INDEX@5018..50343178                          EXPR_VAR@5018..50213179                            NAME@5018..50213180                              IDENT@5018..5021 "std"3181                          DOT@5021..5022 "."3182                          NAME@5022..50343183                            IDENT@5022..5034 "objectFields"3184                        ARGS_DESC@5034..50373185                          L_PAREN@5034..5035 "("3186                          ARG@5035..50363187                            EXPR_VAR@5035..50363188                              NAME@5035..50363189                                IDENT@5035..5036 "v"3190                          R_PAREN@5036..5037 ")"3191                    WHITESPACE@5037..5044 "\n      "3192                    R_BRACK@5044..5045 "]"3193                SEMI@5045..5046 ";"3194                WHITESPACE@5046..5053 "\n      "3195                EXPR_BINARY@5053..50863196                  LHS_EXPR@5053..50593197                    EXPR_STRING@5053..50593198                      STRING_SINGLE@5053..5059 "'{%s}'"3199                  WHITESPACE@5059..5060 " "3200                  MODULO@5060..5061 "%"3201                  WHITESPACE@5061..5062 " "3202                  EXPR_ARRAY@5062..50863203                    L_BRACK@5062..5063 "["3204                    EXPR_APPLY@5063..50853205                      EXPR_INDEX@5063..50713206                        EXPR_VAR@5063..50663207                          NAME@5063..50663208                            IDENT@5063..5066 "std"3209                        DOT@5066..5067 "."3210                        NAME@5067..50713211                          IDENT@5067..5071 "join"3212                      ARGS_DESC@5071..50853213                        L_PAREN@5071..5072 "("3214                        ARG@5072..50763215                          EXPR_STRING@5072..50763216                            STRING_SINGLE@5072..5076 "', '"3217                        COMMA@5076..5077 ","3218                        WHITESPACE@5077..5078 " "3219                        ARG@5078..50843220                          EXPR_VAR@5078..50843221                            NAME@5078..50843222                              IDENT@5078..5084 "fields"3223                        R_PAREN@5084..5085 ")"3224                    R_BRACK@5085..5086 "]"3225            WHITESPACE@5086..5091 "\n    "3226            ELSE_KW@5091..5095 "else"3227            WHITESPACE@5095..5096 " "3228            FALSE_EXPR@5096..55133229              EXPR_IF_THEN_ELSE@5096..55133230                IF_KW@5096..5098 "if"3231                WHITESPACE@5098..5099 " "3232                EXPR_APPLY@5099..51133233                  EXPR_INDEX@5099..51103234                    EXPR_VAR@5099..51023235                      NAME@5099..51023236                        IDENT@5099..5102 "std"3237                    DOT@5102..5103 "."3238                    NAME@5103..51103239                      IDENT@5103..5110 "isArray"3240                  ARGS_DESC@5110..51133241                    L_PAREN@5110..5111 "("3242                    ARG@5111..51123243                      EXPR_VAR@5111..51123244                        NAME@5111..51123245                          IDENT@5111..5112 "v"3246                    R_PAREN@5112..5113 ")"3247                WHITESPACE@5113..5114 " "3248                THEN_KW@5114..5118 "then"3249                WHITESPACE@5118..5125 "\n      "3250                TRUE_EXPR@5125..51883251                  EXPR_BINARY@5125..51883252                    LHS_EXPR@5125..51313253                      EXPR_STRING@5125..51313254                        STRING_SINGLE@5125..5131 "'[%s]'"3255                    WHITESPACE@5131..5132 " "3256                    MODULO@5132..5133 "%"3257                    WHITESPACE@5133..5134 " "3258                    EXPR_ARRAY@5134..51883259                      L_BRACK@5134..5135 "["3260                      EXPR_APPLY@5135..51873261                        EXPR_INDEX@5135..51433262                          EXPR_VAR@5135..51383263                            NAME@5135..51383264                              IDENT@5135..5138 "std"3265                          DOT@5138..5139 "."3266                          NAME@5139..51433267                            IDENT@5139..5143 "join"3268                        ARGS_DESC@5143..51873269                          L_PAREN@5143..5144 "("3270                          ARG@5144..51483271                            EXPR_STRING@5144..51483272                              STRING_SINGLE@5144..5148 "', '"3273                          COMMA@5148..5149 ","3274                          WHITESPACE@5149..5150 " "3275                          ARG@5150..51863276                            EXPR_ARRAY_COMP@5150..51863277                              L_BRACK@5150..5151 "["3278                              EXPR_APPLY@5151..51733279                                EXPR_INDEX@5151..51693280                                  EXPR_VAR@5151..51543281                                    NAME@5151..51543282                                      IDENT@5151..5154 "std"3283                                  DOT@5154..5155 "."3284                                  NAME@5155..51693285                                    IDENT@5155..5169 "manifestPython"3286                                ARGS_DESC@5169..51733287                                  L_PAREN@5169..5170 "("3288                                  ARG@5170..51723289                                    EXPR_VAR@5170..51723290                                      NAME@5170..51723291                                        IDENT@5170..5172 "v2"3292                                  R_PAREN@5172..5173 ")"3293                              WHITESPACE@5173..5174 " "3294                              FOR_SPEC@5174..51853295                                FOR_KW@5174..5177 "for"3296                                WHITESPACE@5177..5178 " "3297                                NAME@5178..51803298                                  IDENT@5178..5180 "v2"3299                                WHITESPACE@5180..5181 " "3300                                IN_KW@5181..5183 "in"3301                                WHITESPACE@5183..5184 " "3302                                EXPR_VAR@5184..51853303                                  NAME@5184..51853304                                    IDENT@5184..5185 "v"3305                              R_BRACK@5185..5186 "]"3306                          R_PAREN@5186..5187 ")"3307                      R_BRACK@5187..5188 "]"3308                WHITESPACE@5188..5193 "\n    "3309                ELSE_KW@5193..5197 "else"3310                WHITESPACE@5197..5198 " "3311                FALSE_EXPR@5198..55133312                  EXPR_IF_THEN_ELSE@5198..55133313                    IF_KW@5198..5200 "if"3314                    WHITESPACE@5200..5201 " "3315                    EXPR_APPLY@5201..52163316                      EXPR_INDEX@5201..52133317                        EXPR_VAR@5201..52043318                          NAME@5201..52043319                            IDENT@5201..5204 "std"3320                        DOT@5204..5205 "."3321                        NAME@5205..52133322                          IDENT@5205..5213 "isString"3323                      ARGS_DESC@5213..52163324                        L_PAREN@5213..5214 "("3325                        ARG@5214..52153326                          EXPR_VAR@5214..52153327                            NAME@5214..52153328                              IDENT@5214..5215 "v"3329                        R_PAREN@5215..5216 ")"3330                    WHITESPACE@5216..5217 " "3331                    THEN_KW@5217..5221 "then"3332                    WHITESPACE@5221..5228 "\n      "3333                    TRUE_EXPR@5228..52623334                      EXPR_BINARY@5228..52623335                        LHS_EXPR@5228..52323336                          EXPR_STRING@5228..52323337                            STRING_SINGLE@5228..5232 "'%s'"3338                        WHITESPACE@5232..5233 " "3339                        MODULO@5233..5234 "%"3340                        WHITESPACE@5234..5235 " "3341                        EXPR_ARRAY@5235..52623342                          L_BRACK@5235..5236 "["3343                          EXPR_APPLY@5236..52613344                            EXPR_INDEX@5236..52583345                              EXPR_VAR@5236..52393346                                NAME@5236..52393347                                  IDENT@5236..5239 "std"3348                              DOT@5239..5240 "."3349                              NAME@5240..52583350                                IDENT@5240..5258 "escapeStringPython"3351                            ARGS_DESC@5258..52613352                              L_PAREN@5258..5259 "("3353                              ARG@5259..52603354                                EXPR_VAR@5259..52603355                                  NAME@5259..52603356                                    IDENT@5259..5260 "v"3357                              R_PAREN@5260..5261 ")"3358                          R_BRACK@5261..5262 "]"3359                    WHITESPACE@5262..5267 "\n    "3360                    ELSE_KW@5267..5271 "else"3361                    WHITESPACE@5271..5272 " "3362                    FALSE_EXPR@5272..55133363                      EXPR_IF_THEN_ELSE@5272..55133364                        IF_KW@5272..5274 "if"3365                        WHITESPACE@5274..5275 " "3366                        EXPR_APPLY@5275..52923367                          EXPR_INDEX@5275..52893368                            EXPR_VAR@5275..52783369                              NAME@5275..52783370                                IDENT@5275..5278 "std"3371                            DOT@5278..5279 "."3372                            NAME@5279..52893373                              IDENT@5279..5289 "isFunction"3374                          ARGS_DESC@5289..52923375                            L_PAREN@5289..5290 "("3376                            ARG@5290..52913377                              EXPR_VAR@5290..52913378                                NAME@5290..52913379                                  IDENT@5290..5291 "v"3380                            R_PAREN@5291..5292 ")"3381                        WHITESPACE@5292..5293 " "3382                        THEN_KW@5293..5297 "then"3383                        WHITESPACE@5297..5304 "\n      "3384                        TRUE_EXPR@5304..53363385                          EXPR_ERROR@5304..53363386                            ERROR_KW@5304..5309 "error"3387                            WHITESPACE@5309..5310 " "3388                            EXPR_STRING@5310..53363389                              STRING_SINGLE@5310..5336 "'cannot manifest func ..."3390                        WHITESPACE@5336..5341 "\n    "3391                        ELSE_KW@5341..5345 "else"3392                        WHITESPACE@5345..5346 " "3393                        FALSE_EXPR@5346..55133394                          EXPR_IF_THEN_ELSE@5346..55133395                            IF_KW@5346..5348 "if"3396                            WHITESPACE@5348..5349 " "3397                            EXPR_APPLY@5349..53643398                              EXPR_INDEX@5349..53613399                                EXPR_VAR@5349..53523400                                  NAME@5349..53523401                                    IDENT@5349..5352 "std"3402                                DOT@5352..5353 "."3403                                NAME@5353..53613404                                  IDENT@5353..5361 "isNumber"3405                              ARGS_DESC@5361..53643406                                L_PAREN@5361..5362 "("3407                                ARG@5362..53633408                                  EXPR_VAR@5362..53633409                                    NAME@5362..53633410                                      IDENT@5362..5363 "v"3411                                R_PAREN@5363..5364 ")"3412                            WHITESPACE@5364..5365 " "3413                            THEN_KW@5365..5369 "then"3414                            WHITESPACE@5369..5376 "\n      "3415                            TRUE_EXPR@5376..53913416                              EXPR_APPLY@5376..53913417                                EXPR_INDEX@5376..53883418                                  EXPR_VAR@5376..53793419                                    NAME@5376..53793420                                      IDENT@5376..5379 "std"3421                                  DOT@5379..5380 "."3422                                  NAME@5380..53883423                                    IDENT@5380..5388 "toString"3424                                ARGS_DESC@5388..53913425                                  L_PAREN@5388..5389 "("3426                                  ARG@5389..53903427                                    EXPR_VAR@5389..53903428                                      NAME@5389..53903429                                        IDENT@5389..5390 "v"3430                                  R_PAREN@5390..5391 ")"3431                            WHITESPACE@5391..5396 "\n    "3432                            ELSE_KW@5396..5400 "else"3433                            WHITESPACE@5400..5401 " "3434                            FALSE_EXPR@5401..55133435                              EXPR_IF_THEN_ELSE@5401..55133436                                IF_KW@5401..5403 "if"3437                                WHITESPACE@5403..5404 " "3438                                EXPR_BINARY@5404..54133439                                  LHS_EXPR@5404..54053440                                    EXPR_VAR@5404..54053441                                      NAME@5404..54053442                                        IDENT@5404..5405 "v"3443                                  WHITESPACE@5405..5406 " "3444                                  EQ@5406..5408 "=="3445                                  WHITESPACE@5408..5409 " "3446                                  EXPR_LITERAL@5409..54133447                                    TRUE_KW@5409..5413 "true"3448                                WHITESPACE@5413..5414 " "3449                                THEN_KW@5414..5418 "then"3450                                WHITESPACE@5418..5425 "\n      "3451                                TRUE_EXPR@5425..54313452                                  EXPR_STRING@5425..54313453                                    STRING_SINGLE@5425..5431 "'True'"3454                                WHITESPACE@5431..5436 "\n    "3455                                ELSE_KW@5436..5440 "else"3456                                WHITESPACE@5440..5441 " "3457                                FALSE_EXPR@5441..55133458                                  EXPR_IF_THEN_ELSE@5441..55133459                                    IF_KW@5441..5443 "if"3460                                    WHITESPACE@5443..5444 " "3461                                    EXPR_BINARY@5444..54543462                                      LHS_EXPR@5444..54453463                                        EXPR_VAR@5444..54453464                                          NAME@5444..54453465                                            IDENT@5444..5445 "v"3466                                      WHITESPACE@5445..5446 " "3467                                      EQ@5446..5448 "=="3468                                      WHITESPACE@5448..5449 " "3469                                      EXPR_LITERAL@5449..54543470                                        FALSE_KW@5449..5454 "false"3471                                    WHITESPACE@5454..5455 " "3472                                    THEN_KW@5455..5459 "then"3473                                    WHITESPACE@5459..5466 "\n      "3474                                    TRUE_EXPR@5466..54733475                                      EXPR_STRING@5466..54733476                                        STRING_SINGLE@5466..5473 "'False'"3477                                    WHITESPACE@5473..5478 "\n    "3478                                    ELSE_KW@5478..5482 "else"3479                                    WHITESPACE@5482..5483 " "3480                                    FALSE_EXPR@5483..55133481                                      EXPR_IF_THEN_ELSE@5483..55133482                                        IF_KW@5483..5485 "if"3483                                        WHITESPACE@5485..5486 " "3484                                        EXPR_BINARY@5486..54953485                                          LHS_EXPR@5486..54873486                                            EXPR_VAR@5486..54873487                                              NAME@5486..54873488                                                IDENT@5486..5487 "v"3489                                          WHITESPACE@5487..5488 " "3490                                          EQ@5488..5490 "=="3491                                          WHITESPACE@5490..5491 " "3492                                          EXPR_LITERAL@5491..54953493                                            NULL_KW@5491..5495 "null"3494                                        WHITESPACE@5495..5496 " "3495                                        THEN_KW@5496..5500 "then"3496                                        WHITESPACE@5500..5507 "\n      "3497                                        TRUE_EXPR@5507..55133498                                          EXPR_STRING@5507..55133499                                            STRING_SINGLE@5507..5513 "'None'"3500      COMMA@5513..5514 ","3501      WHITESPACE@5514..5518 "\n\n  "3502      MEMBER_FIELD@5518..56733503        FIELD_METHOD@5518..56733504          FIELD_NAME_FIXED@5518..55363505            NAME@5518..55363506              IDENT@5518..5536 "manifestPythonVars"3507          PARAMS_DESC@5536..55423508            L_PAREN@5536..5537 "("3509            PARAM@5537..55413510              DESTRUCT_FULL@5537..55413511                NAME@5537..55413512                  IDENT@5537..5541 "conf"3513            R_PAREN@5541..5542 ")"3514          COLONCOLON@5542..5544 "::"3515          WHITESPACE@5544..5549 "\n    "3516          EXPR_LOCAL@5549..56733517            LOCAL_KW@5549..5554 "local"3518            WHITESPACE@5554..5555 " "3519            BIND_DESTRUCT@5555..56403520              DESTRUCT_FULL@5555..55593521                NAME@5555..55593522                  IDENT@5555..5559 "vars"3523              WHITESPACE@5559..5560 " "3524              ASSIGN@5560..5561 "="3525              WHITESPACE@5561..5562 " "3526              EXPR_ARRAY_COMP@5562..56403527                L_BRACK@5562..5563 "["3528                EXPR_BINARY@5563..56073529                  LHS_EXPR@5563..55723530                    EXPR_STRING@5563..55723531                      STRING_SINGLE@5563..5572 "'%s = %s'"3532                  WHITESPACE@5572..5573 " "3533                  MODULO@5573..5574 "%"3534                  WHITESPACE@5574..5575 " "3535                  EXPR_ARRAY@5575..56073536                    L_BRACK@5575..5576 "["3537                    EXPR_VAR@5576..55773538                      NAME@5576..55773539                        IDENT@5576..5577 "k"3540                    COMMA@5577..5578 ","3541                    WHITESPACE@5578..5579 " "3542                    EXPR_APPLY@5579..56063543                      EXPR_INDEX@5579..55973544                        EXPR_VAR@5579..55823545                          NAME@5579..55823546                            IDENT@5579..5582 "std"3547                        DOT@5582..5583 "."3548                        NAME@5583..55973549                          IDENT@5583..5597 "manifestPython"3550                      ARGS_DESC@5597..56063551                        L_PAREN@5597..5598 "("3552                        ARG@5598..56053553                          EXPR_INDEX_EXPR@5598..56053554                            LHS_EXPR@5598..56023555                              EXPR_VAR@5598..56023556                                NAME@5598..56023557                                  IDENT@5598..5602 "conf"3558                            L_BRACK@5602..5603 "["3559                            EXPR_VAR@5603..56043560                              NAME@5603..56043561                                IDENT@5603..5604 "k"3562                            R_BRACK@5604..5605 "]"3563                        R_PAREN@5605..5606 ")"3564                    R_BRACK@5606..5607 "]"3565                WHITESPACE@5607..5608 " "3566                FOR_SPEC@5608..56393567                  FOR_KW@5608..5611 "for"3568                  WHITESPACE@5611..5612 " "3569                  NAME@5612..56133570                    IDENT@5612..5613 "k"3571                  WHITESPACE@5613..5614 " "3572                  IN_KW@5614..5616 "in"3573                  WHITESPACE@5616..5617 " "3574                  EXPR_APPLY@5617..56393575                    EXPR_INDEX@5617..56333576                      EXPR_VAR@5617..56203577                        NAME@5617..56203578                          IDENT@5617..5620 "std"3579                      DOT@5620..5621 "."3580                      NAME@5621..56333581                        IDENT@5621..5633 "objectFields"3582                    ARGS_DESC@5633..56393583                      L_PAREN@5633..5634 "("3584                      ARG@5634..56383585                        EXPR_VAR@5634..56383586                          NAME@5634..56383587                            IDENT@5634..5638 "conf"3588                      R_PAREN@5638..5639 ")"3589                R_BRACK@5639..5640 "]"3590            SEMI@5640..5641 ";"3591            WHITESPACE@5641..5646 "\n    "3592            EXPR_APPLY@5646..56733593              EXPR_INDEX@5646..56543594                EXPR_VAR@5646..56493595                  NAME@5646..56493596                    IDENT@5646..5649 "std"3597                DOT@5649..5650 "."3598                NAME@5650..56543599                  IDENT@5650..5654 "join"3600              ARGS_DESC@5654..56733601                L_PAREN@5654..5655 "("3602                ARG@5655..56593603                  EXPR_STRING@5655..56593604                    STRING_SINGLE@5655..5659 "'\\n'"3605                COMMA@5659..5660 ","3606                WHITESPACE@5660..5661 " "3607                ARG@5661..56723608                  EXPR_BINARY@5661..56723609                    LHS_EXPR@5661..56653610                      EXPR_VAR@5661..56653611                        NAME@5661..56653612                          IDENT@5661..5665 "vars"3613                    WHITESPACE@5665..5666 " "3614                    PLUS@5666..5667 "+"3615                    WHITESPACE@5667..5668 " "3616                    EXPR_ARRAY@5668..56723617                      L_BRACK@5668..5669 "["3618                      EXPR_STRING@5669..56713619                        STRING_SINGLE@5669..5671 "''"3620                      R_BRACK@5671..5672 "]"3621                R_PAREN@5672..5673 ")"3622      COMMA@5673..5674 ","3623      WHITESPACE@5674..5678 "\n\n  "3624      MEMBER_FIELD@5678..63453625        FIELD_METHOD@5678..63453626          FIELD_NAME_FIXED@5678..56953627            NAME@5678..56953628              IDENT@5678..5695 "manifestXmlJsonml"3629          PARAMS_DESC@5695..57023630            L_PAREN@5695..5696 "("3631            PARAM@5696..57013632              DESTRUCT_FULL@5696..57013633                NAME@5696..57013634                  IDENT@5696..5701 "value"3635            R_PAREN@5701..5702 ")"3636          COLONCOLON@5702..5704 "::"3637          WHITESPACE@5704..5709 "\n    "3638          EXPR_IF_THEN_ELSE@5709..63453639            IF_KW@5709..5711 "if"3640            WHITESPACE@5711..5712 " "3641            EXPR_UNARY@5712..57313642              NOT@5712..5713 "!"3643              EXPR_APPLY@5713..57313644                EXPR_INDEX@5713..57243645                  EXPR_VAR@5713..57163646                    NAME@5713..57163647                      IDENT@5713..5716 "std"3648                  DOT@5716..5717 "."3649                  NAME@5717..57243650                    IDENT@5717..5724 "isArray"3651                ARGS_DESC@5724..57313652                  L_PAREN@5724..5725 "("3653                  ARG@5725..57303654                    EXPR_VAR@5725..57303655                      NAME@5725..57303656                        IDENT@5725..5730 "value"3657                  R_PAREN@5730..5731 ")"3658            WHITESPACE@5731..5732 " "3659            THEN_KW@5732..5736 "then"3660            WHITESPACE@5736..5743 "\n      "3661            TRUE_EXPR@5743..58113662              EXPR_ERROR@5743..58113663                ERROR_KW@5743..5748 "error"3664                WHITESPACE@5748..5749 " "3665                EXPR_BINARY@5749..58113666                  LHS_EXPR@5749..57933667                    EXPR_STRING@5749..57933668                      STRING_SINGLE@5749..5793 "'Expected a JSONML va ..."3669                  WHITESPACE@5793..5794 " "3670                  MODULO@5794..5795 "%"3671                  WHITESPACE@5795..5796 " "3672                  EXPR_APPLY@5796..58113673                    EXPR_INDEX@5796..58043674                      EXPR_VAR@5796..57993675                        NAME@5796..57993676                          IDENT@5796..5799 "std"3677                      DOT@5799..5800 "."3678                      NAME@5800..58043679                        IDENT@5800..5804 "type"3680                    ARGS_DESC@5804..58113681                      L_PAREN@5804..5805 "("3682                      ARG@5805..58103683                        EXPR_VAR@5805..58103684                          NAME@5805..58103685                            IDENT@5805..5810 "value"3686                      R_PAREN@5810..5811 ")"3687            WHITESPACE@5811..5816 "\n    "3688            ELSE_KW@5816..5820 "else"3689            WHITESPACE@5820..5827 "\n      "3690            FALSE_EXPR@5827..63453691              EXPR_LOCAL@5827..63453692                LOCAL_KW@5827..5832 "local"3693                WHITESPACE@5832..5833 " "3694                BIND_FUNCTION@5833..63263695                  NAME@5833..58363696                    IDENT@5833..5836 "aux"3697                  PARAMS_DESC@5836..58393698                    L_PAREN@5836..5837 "("3699                    PARAM@5837..58383700                      DESTRUCT_FULL@5837..58383701                        NAME@5837..58383702                          IDENT@5837..5838 "v"3703                    R_PAREN@5838..5839 ")"3704                  WHITESPACE@5839..5840 " "3705                  ASSIGN@5840..5841 "="3706                  WHITESPACE@5841..5850 "\n        "3707                  EXPR_IF_THEN_ELSE@5850..63263708                    IF_KW@5850..5852 "if"3709                    WHITESPACE@5852..5853 " "3710                    EXPR_APPLY@5853..58683711                      EXPR_INDEX@5853..58653712                        EXPR_VAR@5853..58563713                          NAME@5853..58563714                            IDENT@5853..5856 "std"3715                        DOT@5856..5857 "."3716                        NAME@5857..58653717                          IDENT@5857..5865 "isString"3718                      ARGS_DESC@5865..58683719                        L_PAREN@5865..5866 "("3720                        ARG@5866..58673721                          EXPR_VAR@5866..58673722                            NAME@5866..58673723                              IDENT@5866..5867 "v"3724                        R_PAREN@5867..5868 ")"3725                    WHITESPACE@5868..5869 " "3726                    THEN_KW@5869..5873 "then"3727                    WHITESPACE@5873..5884 "\n          "3728                    TRUE_EXPR@5884..58853729                      EXPR_VAR@5884..58853730                        NAME@5884..58853731                          IDENT@5884..5885 "v"3732                    WHITESPACE@5885..5894 "\n        "3733                    ELSE_KW@5894..5898 "else"3734                    WHITESPACE@5898..5909 "\n          "3735                    FALSE_EXPR@5909..63263736                      EXPR_LOCAL@5909..63263737                        LOCAL_KW@5909..5914 "local"3738                        WHITESPACE@5914..5915 " "3739                        BIND_DESTRUCT@5915..59253740                          DESTRUCT_FULL@5915..59183741                            NAME@5915..59183742                              IDENT@5915..5918 "tag"3743                          WHITESPACE@5918..5919 " "3744                          ASSIGN@5919..5920 "="3745                          WHITESPACE@5920..5921 " "3746                          EXPR_INDEX_EXPR@5921..59253747                            LHS_EXPR@5921..59223748                              EXPR_VAR@5921..59223749                                NAME@5921..59223750                                  IDENT@5921..5922 "v"3751                            L_BRACK@5922..5923 "["3752                            EXPR_NUMBER@5923..59243753                              FLOAT@5923..5924 "0"3754                            R_BRACK@5924..5925 "]"3755                        SEMI@5925..5926 ";"3756                        WHITESPACE@5926..5937 "\n          "3757                        EXPR_LOCAL@5937..63263758                          LOCAL_KW@5937..5942 "local"3759                          WHITESPACE@5942..5943 " "3760                          BIND_DESTRUCT@5943..59943761                            DESTRUCT_FULL@5943..59523762                              NAME@5943..59523763                                IDENT@5943..5952 "has_attrs"3764                            WHITESPACE@5952..5953 " "3765                            ASSIGN@5953..5954 "="3766                            WHITESPACE@5954..5955 " "3767                            EXPR_BINARY@5955..59943768                              LHS_EXPR@5955..59723769                                EXPR_BINARY@5955..59723770                                  LHS_EXPR@5955..59683771                                    EXPR_APPLY@5955..59683772                                      EXPR_INDEX@5955..59653773                                        EXPR_VAR@5955..59583774                                          NAME@5955..59583775                                            IDENT@5955..5958 "std"3776                                        DOT@5958..5959 "."3777                                        NAME@5959..59653778                                          IDENT@5959..5965 "length"3779                                      ARGS_DESC@5965..59683780                                        L_PAREN@5965..5966 "("3781                                        ARG@5966..59673782                                          EXPR_VAR@5966..59673783                                            NAME@5966..59673784                                              IDENT@5966..5967 "v"3785                                        R_PAREN@5967..5968 ")"3786                                  WHITESPACE@5968..5969 " "3787                                  GT@5969..5970 ">"3788                                  WHITESPACE@5970..5971 " "3789                                  EXPR_NUMBER@5971..59723790                                    FLOAT@5971..5972 "1"3791                              WHITESPACE@5972..5973 " "3792                              AND@5973..5975 "&&"3793                              WHITESPACE@5975..5976 " "3794                              EXPR_APPLY@5976..59943795                                EXPR_INDEX@5976..59883796                                  EXPR_VAR@5976..59793797                                    NAME@5976..59793798                                      IDENT@5976..5979 "std"3799                                  DOT@5979..5980 "."3800                                  NAME@5980..59883801                                    IDENT@5980..5988 "isObject"3802                                ARGS_DESC@5988..59943803                                  L_PAREN@5988..5989 "("3804                                  ARG@5989..59933805                                    EXPR_INDEX_EXPR@5989..59933806                                      LHS_EXPR@5989..59903807                                        EXPR_VAR@5989..59903808                                          NAME@5989..59903809                                            IDENT@5989..5990 "v"3810                                      L_BRACK@5990..5991 "["3811                                      EXPR_NUMBER@5991..59923812                                        FLOAT@5991..5992 "1"3813                                      R_BRACK@5992..5993 "]"3814                                  R_PAREN@5993..5994 ")"3815                          SEMI@5994..5995 ";"3816                          WHITESPACE@5995..6006 "\n          "3817                          EXPR_LOCAL@6006..63263818                            LOCAL_KW@6006..6011 "local"3819                            WHITESPACE@6011..6012 " "3820                            BIND_DESTRUCT@6012..60503821                              DESTRUCT_FULL@6012..60173822                                NAME@6012..60173823                                  IDENT@6012..6017 "attrs"3824                              WHITESPACE@6017..6018 " "3825                              ASSIGN@6018..6019 "="3826                              WHITESPACE@6019..6020 " "3827                              EXPR_IF_THEN_ELSE@6020..60503828                                IF_KW@6020..6022 "if"3829                                WHITESPACE@6022..6023 " "3830                                EXPR_VAR@6023..60323831                                  NAME@6023..60323832                                    IDENT@6023..6032 "has_attrs"3833                                WHITESPACE@6032..6033 " "3834                                THEN_KW@6033..6037 "then"3835                                WHITESPACE@6037..6038 " "3836                                TRUE_EXPR@6038..60423837                                  EXPR_INDEX_EXPR@6038..60423838                                    LHS_EXPR@6038..60393839                                      EXPR_VAR@6038..60393840                                        NAME@6038..60393841                                          IDENT@6038..6039 "v"3842                                    L_BRACK@6039..6040 "["3843                                    EXPR_NUMBER@6040..60413844                                      FLOAT@6040..6041 "1"3845                                    R_BRACK@6041..6042 "]"3846                                WHITESPACE@6042..6043 " "3847                                ELSE_KW@6043..6047 "else"3848                                WHITESPACE@6047..6048 " "3849                                FALSE_EXPR@6048..60503850                                  EXPR_OBJECT@6048..60503851                                    OBJ_BODY_MEMBER_LIST@6048..60503852                                      L_BRACE@6048..6049 "{"3853                                      R_BRACE@6049..6050 "}"3854                            SEMI@6050..6051 ";"3855                            WHITESPACE@6051..6062 "\n          "3856                            EXPR_LOCAL@6062..63263857                              LOCAL_KW@6062..6067 "local"3858                              WHITESPACE@6067..6068 " "3859                              BIND_DESTRUCT@6068..61133860                                DESTRUCT_FULL@6068..60763861                                  NAME@6068..60763862                                    IDENT@6068..6076 "children"3863                                WHITESPACE@6076..6077 " "3864                                ASSIGN@6077..6078 "="3865                                WHITESPACE@6078..6079 " "3866                                EXPR_IF_THEN_ELSE@6079..61133867                                  IF_KW@6079..6081 "if"3868                                  WHITESPACE@6081..6082 " "3869                                  EXPR_VAR@6082..60913870                                    NAME@6082..60913871                                      IDENT@6082..6091 "has_attrs"3872                                  WHITESPACE@6091..6092 " "3873                                  THEN_KW@6092..6096 "then"3874                                  WHITESPACE@6096..6097 " "3875                                  TRUE_EXPR@6097..61023876                                    EXPR_SLICE@6097..61023877                                      EXPR_VAR@6097..60983878                                        NAME@6097..60983879                                          IDENT@6097..6098 "v"3880                                      SLICE_DESC@6098..61023881                                        L_BRACK@6098..6099 "["3882                                        EXPR_NUMBER@6099..61003883                                          FLOAT@6099..6100 "2"3884                                        COLON@6100..6101 ":"3885                                        R_BRACK@6101..6102 "]"3886                                  WHITESPACE@6102..6103 " "3887                                  ELSE_KW@6103..6107 "else"3888                                  WHITESPACE@6107..6108 " "3889                                  FALSE_EXPR@6108..61133890                                    EXPR_SLICE@6108..61133891                                      EXPR_VAR@6108..61093892                                        NAME@6108..61093893                                          IDENT@6108..6109 "v"3894                                      SLICE_DESC@6109..61133895                                        L_BRACK@6109..6110 "["3896                                        EXPR_NUMBER@6110..61113897                                          FLOAT@6110..6111 "1"3898                                        COLON@6111..6112 ":"3899                                        R_BRACK@6112..6113 "]"3900                              SEMI@6113..6114 ";"3901                              WHITESPACE@6114..6125 "\n          "3902                              EXPR_LOCAL@6125..63263903                                LOCAL_KW@6125..6130 "local"3904                                WHITESPACE@6130..6131 " "3905                                BIND_DESTRUCT@6131..62303906                                  DESTRUCT_FULL@6131..61403907                                    NAME@6131..61403908                                      IDENT@6131..6140 "attrs_str"3909                                  WHITESPACE@6140..6141 " "3910                                  ASSIGN@6141..6142 "="3911                                  WHITESPACE@6142..6155 "\n            "3912                                  EXPR_APPLY@6155..62303913                                    EXPR_INDEX@6155..61633914                                      EXPR_VAR@6155..61583915                                        NAME@6155..61583916                                          IDENT@6155..6158 "std"3917                                      DOT@6158..6159 "."3918                                      NAME@6159..61633919                                        IDENT@6159..6163 "join"3920                                    ARGS_DESC@6163..62303921                                      L_PAREN@6163..6164 "("3922                                      ARG@6164..61663923                                        EXPR_STRING@6164..61663924                                          STRING_SINGLE@6164..6166 "''"3925                                      COMMA@6166..6167 ","3926                                      WHITESPACE@6167..6168 " "3927                                      ARG@6168..62293928                                        EXPR_ARRAY_COMP@6168..62293929                                          L_BRACK@6168..6169 "["3930                                          EXPR_BINARY@6169..61953931                                            LHS_EXPR@6169..61793932                                              EXPR_STRING@6169..61793933                                                STRING_SINGLE@6169..6179 "' %s=\"%s\"'"3934                                            WHITESPACE@6179..6180 " "3935                                            MODULO@6180..6181 "%"3936                                            WHITESPACE@6181..6182 " "3937                                            EXPR_ARRAY@6182..61953938                                              L_BRACK@6182..6183 "["3939                                              EXPR_VAR@6183..61843940                                                NAME@6183..61843941                                                  IDENT@6183..6184 "k"3942                                              COMMA@6184..6185 ","3943                                              WHITESPACE@6185..6186 " "3944                                              EXPR_INDEX_EXPR@6186..61943945                                                LHS_EXPR@6186..61913946                                                  EXPR_VAR@6186..61913947                                                    NAME@6186..61913948                                                      IDENT@6186..6191 "attrs"3949                                                L_BRACK@6191..6192 "["3950                                                EXPR_VAR@6192..61933951                                                  NAME@6192..61933952                                                    IDENT@6192..6193 "k"3953                                                R_BRACK@6193..6194 "]"3954                                              R_BRACK@6194..6195 "]"3955                                          WHITESPACE@6195..6196 " "3956                                          FOR_SPEC@6196..62283957                                            FOR_KW@6196..6199 "for"3958                                            WHITESPACE@6199..6200 " "3959                                            NAME@6200..62013960                                              IDENT@6200..6201 "k"3961                                            WHITESPACE@6201..6202 " "3962                                            IN_KW@6202..6204 "in"3963                                            WHITESPACE@6204..6205 " "3964                                            EXPR_APPLY@6205..62283965                                              EXPR_INDEX@6205..62213966                                                EXPR_VAR@6205..62083967                                                  NAME@6205..62083968                                                    IDENT@6205..6208 "std"3969                                                DOT@6208..6209 "."3970                                                NAME@6209..62213971                                                  IDENT@6209..6221 "objectFields"3972                                              ARGS_DESC@6221..62283973                                                L_PAREN@6221..6222 "("3974                                                ARG@6222..62273975                                                  EXPR_VAR@6222..62273976                                                    NAME@6222..62273977                                                      IDENT@6222..6227 "attrs"3978                                                R_PAREN@6227..6228 ")"3979                                          R_BRACK@6228..6229 "]"3980                                      R_PAREN@6229..6230 ")"3981                                SEMI@6230..6231 ";"3982                                WHITESPACE@6231..6242 "\n          "3983                                EXPR_APPLY@6242..63263984                                  EXPR_INDEX@6242..62543985                                    EXPR_VAR@6242..62453986                                      NAME@6242..62453987                                        IDENT@6242..6245 "std"3988                                    DOT@6245..6246 "."3989                                    NAME@6246..62543990                                      IDENT@6246..6254 "deepJoin"3991                                  ARGS_DESC@6254..63263992                                    L_PAREN@6254..6255 "("3993                                    ARG@6255..63253994                                      EXPR_ARRAY@6255..63253995                                        L_BRACK@6255..6256 "["3996                                        EXPR_STRING@6256..62593997                                          STRING_SINGLE@6256..6259 "'<'"3998                                        COMMA@6259..6260 ","3999                                        WHITESPACE@6260..6261 " "4000                                        EXPR_VAR@6261..62644001                                          NAME@6261..62644002                                            IDENT@6261..6264 "tag"4003                                        COMMA@6264..6265 ","4004                                        WHITESPACE@6265..6266 " "4005                                        EXPR_VAR@6266..62754006                                          NAME@6266..62754007                                            IDENT@6266..6275 "attrs_str"4008                                        COMMA@6275..6276 ","4009                                        WHITESPACE@6276..6277 " "4010                                        EXPR_STRING@6277..62804011                                          STRING_SINGLE@6277..6280 "'>'"4012                                        COMMA@6280..6281 ","4013                                        WHITESPACE@6281..6282 " "4014                                        EXPR_ARRAY_COMP@6282..63084015                                          L_BRACK@6282..6283 "["4016                                          EXPR_APPLY@6283..62894017                                            EXPR_VAR@6283..62864018                                              NAME@6283..62864019                                                IDENT@6283..6286 "aux"4020                                            ARGS_DESC@6286..62894021                                              L_PAREN@6286..6287 "("4022                                              ARG@6287..62884023                                                EXPR_VAR@6287..62884024                                                  NAME@6287..62884025                                                    IDENT@6287..6288 "x"4026                                              R_PAREN@6288..6289 ")"4027                                          WHITESPACE@6289..6290 " "4028                                          FOR_SPEC@6290..63074029                                            FOR_KW@6290..6293 "for"4030                                            WHITESPACE@6293..6294 " "4031                                            NAME@6294..62954032                                              IDENT@6294..6295 "x"4033                                            WHITESPACE@6295..6296 " "4034                                            IN_KW@6296..6298 "in"4035                                            WHITESPACE@6298..6299 " "4036                                            EXPR_VAR@6299..63074037                                              NAME@6299..63074038                                                IDENT@6299..6307 "children"4039                                          R_BRACK@6307..6308 "]"4040                                        COMMA@6308..6309 ","4041                                        WHITESPACE@6309..6310 " "4042                                        EXPR_STRING@6310..63144043                                          STRING_SINGLE@6310..6314 "'</'"4044                                        COMMA@6314..6315 ","4045                                        WHITESPACE@6315..6316 " "4046                                        EXPR_VAR@6316..63194047                                          NAME@6316..63194048                                            IDENT@6316..6319 "tag"4049                                        COMMA@6319..6320 ","4050                                        WHITESPACE@6320..6321 " "4051                                        EXPR_STRING@6321..63244052                                          STRING_SINGLE@6321..6324 "'>'"4053                                        R_BRACK@6324..6325 "]"4054                                    R_PAREN@6325..6326 ")"4055                SEMI@6326..6327 ";"4056                WHITESPACE@6327..6335 "\n\n      "4057                EXPR_APPLY@6335..63454058                  EXPR_VAR@6335..63384059                    NAME@6335..63384060                      IDENT@6335..6338 "aux"4061                  ARGS_DESC@6338..63454062                    L_PAREN@6338..6339 "("4063                    ARG@6339..63444064                      EXPR_VAR@6339..63444065                        NAME@6339..63444066                          IDENT@6339..6344 "value"4067                    R_PAREN@6344..6345 ")"4068      COMMA@6345..6346 ","4069      WHITESPACE@6346..6350 "\n\n  "4070      MEMBER_FIELD@6350..65564071        FIELD_METHOD@6350..65564072          FIELD_NAME_FIXED@6350..63544073            NAME@6350..63544074              IDENT@6350..6354 "uniq"4075          PARAMS_DESC@6354..63684076            L_PAREN@6354..6355 "("4077            PARAM@6355..63584078              DESTRUCT_FULL@6355..63584079                NAME@6355..63584080                  IDENT@6355..6358 "arr"4081            COMMA@6358..6359 ","4082            WHITESPACE@6359..6360 " "4083            PARAM@6360..63674084              DESTRUCT_FULL@6360..63644085                NAME@6360..63644086                  IDENT@6360..6364 "keyF"4087              ASSIGN@6364..6365 "="4088              EXPR_VAR@6365..63674089                NAME@6365..63674090                  IDENT@6365..6367 "id"4091            R_PAREN@6367..6368 ")"4092          COLONCOLON@6368..6370 "::"4093          WHITESPACE@6370..6375 "\n    "4094          EXPR_LOCAL@6375..65564095            LOCAL_KW@6375..6380 "local"4096            WHITESPACE@6380..6381 " "4097            BIND_FUNCTION@6381..65294098              NAME@6381..63824099                IDENT@6381..6382 "f"4100              PARAMS_DESC@6382..63884101                L_PAREN@6382..6383 "("4102                PARAM@6383..63844103                  DESTRUCT_FULL@6383..63844104                    NAME@6383..63844105                      IDENT@6383..6384 "a"4106                COMMA@6384..6385 ","4107                WHITESPACE@6385..6386 " "4108                PARAM@6386..63874109                  DESTRUCT_FULL@6386..63874110                    NAME@6386..63874111                      IDENT@6386..6387 "b"4112                R_PAREN@6387..6388 ")"4113              WHITESPACE@6388..6389 " "4114              ASSIGN@6389..6390 "="4115              WHITESPACE@6390..6397 "\n      "4116              EXPR_IF_THEN_ELSE@6397..65294117                IF_KW@6397..6399 "if"4118                WHITESPACE@6399..6400 " "4119                EXPR_BINARY@6400..64184120                  LHS_EXPR@6400..64134121                    EXPR_APPLY@6400..64134122                      EXPR_INDEX@6400..64104123                        EXPR_VAR@6400..64034124                          NAME@6400..64034125                            IDENT@6400..6403 "std"4126                        DOT@6403..6404 "."4127                        NAME@6404..64104128                          IDENT@6404..6410 "length"4129                      ARGS_DESC@6410..64134130                        L_PAREN@6410..6411 "("4131                        ARG@6411..64124132                          EXPR_VAR@6411..64124133                            NAME@6411..64124134                              IDENT@6411..6412 "a"4135                        R_PAREN@6412..6413 ")"4136                  WHITESPACE@6413..6414 " "4137                  EQ@6414..6416 "=="4138                  WHITESPACE@6416..6417 " "4139                  EXPR_NUMBER@6417..64184140                    FLOAT@6417..6418 "0"4141                WHITESPACE@6418..6419 " "4142                THEN_KW@6419..6423 "then"4143                WHITESPACE@6423..6432 "\n        "4144                TRUE_EXPR@6432..64354145                  EXPR_ARRAY@6432..64354146                    L_BRACK@6432..6433 "["4147                    EXPR_VAR@6433..64344148                      NAME@6433..64344149                        IDENT@6433..6434 "b"4150                    R_BRACK@6434..6435 "]"4151                WHITESPACE@6435..6442 "\n      "4152                ELSE_KW@6442..6446 "else"4153                WHITESPACE@6446..6447 " "4154                FALSE_EXPR@6447..65294155                  EXPR_IF_THEN_ELSE@6447..65294156                    IF_KW@6447..6449 "if"4157                    WHITESPACE@6449..6450 " "4158                    EXPR_BINARY@6450..64874159                      LHS_EXPR@6450..64764160                        EXPR_APPLY@6450..64764161                          EXPR_VAR@6450..64544162                            NAME@6450..64544163                              IDENT@6450..6454 "keyF"4164                          ARGS_DESC@6454..64764165                            L_PAREN@6454..6455 "("4166                            ARG@6455..64754167                              EXPR_INDEX_EXPR@6455..64754168                                LHS_EXPR@6455..64564169                                  EXPR_VAR@6455..64564170                                    NAME@6455..64564171                                      IDENT@6455..6456 "a"4172                                L_BRACK@6456..6457 "["4173                                EXPR_BINARY@6457..64744174                                  LHS_EXPR@6457..64704175                                    EXPR_APPLY@6457..64704176                                      EXPR_INDEX@6457..64674177                                        EXPR_VAR@6457..64604178                                          NAME@6457..64604179                                            IDENT@6457..6460 "std"4180                                        DOT@6460..6461 "."4181                                        NAME@6461..64674182                                          IDENT@6461..6467 "length"4183                                      ARGS_DESC@6467..64704184                                        L_PAREN@6467..6468 "("4185                                        ARG@6468..64694186                                          EXPR_VAR@6468..64694187                                            NAME@6468..64694188                                              IDENT@6468..6469 "a"4189                                        R_PAREN@6469..6470 ")"4190                                  WHITESPACE@6470..6471 " "4191                                  MINUS@6471..6472 "-"4192                                  WHITESPACE@6472..6473 " "4193                                  EXPR_NUMBER@6473..64744194                                    FLOAT@6473..6474 "1"4195                                R_BRACK@6474..6475 "]"4196                            R_PAREN@6475..6476 ")"4197                      WHITESPACE@6476..6477 " "4198                      EQ@6477..6479 "=="4199                      WHITESPACE@6479..6480 " "4200                      EXPR_APPLY@6480..64874201                        EXPR_VAR@6480..64844202                          NAME@6480..64844203                            IDENT@6480..6484 "keyF"4204                        ARGS_DESC@6484..64874205                          L_PAREN@6484..6485 "("4206                          ARG@6485..64864207                            EXPR_VAR@6485..64864208                              NAME@6485..64864209                                IDENT@6485..6486 "b"4210                          R_PAREN@6486..6487 ")"4211                    WHITESPACE@6487..6488 " "4212                    THEN_KW@6488..6492 "then"4213                    WHITESPACE@6492..6501 "\n        "4214                    TRUE_EXPR@6501..65024215                      EXPR_VAR@6501..65024216                        NAME@6501..65024217                          IDENT@6501..6502 "a"4218                    WHITESPACE@6502..6509 "\n      "4219                    ELSE_KW@6509..6513 "else"4220                    WHITESPACE@6513..6522 "\n        "4221                    FALSE_EXPR@6522..65294222                      EXPR_BINARY@6522..65294223                        LHS_EXPR@6522..65234224                          EXPR_VAR@6522..65234225                            NAME@6522..65234226                              IDENT@6522..6523 "a"4227                        WHITESPACE@6523..6524 " "4228                        PLUS@6524..6525 "+"4229                        WHITESPACE@6525..6526 " "4230                        EXPR_ARRAY@6526..65294231                          L_BRACK@6526..6527 "["4232                          EXPR_VAR@6527..65284233                            NAME@6527..65284234                              IDENT@6527..6528 "b"4235                          R_BRACK@6528..6529 "]"4236            SEMI@6529..6530 ";"4237            WHITESPACE@6530..6535 "\n    "4238            EXPR_APPLY@6535..65564239              EXPR_INDEX@6535..65444240                EXPR_VAR@6535..65384241                  NAME@6535..65384242                    IDENT@6535..6538 "std"4243                DOT@6538..6539 "."4244                NAME@6539..65444245                  IDENT@6539..6544 "foldl"4246              ARGS_DESC@6544..65564247                L_PAREN@6544..6545 "("4248                ARG@6545..65464249                  EXPR_VAR@6545..65464250                    NAME@6545..65464251                      IDENT@6545..6546 "f"4252                COMMA@6546..6547 ","4253                WHITESPACE@6547..6548 " "4254                ARG@6548..65514255                  EXPR_VAR@6548..65514256                    NAME@6548..65514257                      IDENT@6548..6551 "arr"4258                COMMA@6551..6552 ","4259                WHITESPACE@6552..6553 " "4260                ARG@6553..65554261                  EXPR_ARRAY@6553..65554262                    L_BRACK@6553..6554 "["4263                    R_BRACK@6554..6555 "]"4264                R_PAREN@6555..6556 ")"4265      COMMA@6556..6557 ","4266      WHITESPACE@6557..6561 "\n\n  "4267      MEMBER_FIELD@6561..66204268        FIELD_METHOD@6561..66204269          FIELD_NAME_FIXED@6561..65644270            NAME@6561..65644271              IDENT@6561..6564 "set"4272          PARAMS_DESC@6564..65784273            L_PAREN@6564..6565 "("4274            PARAM@6565..65684275              DESTRUCT_FULL@6565..65684276                NAME@6565..65684277                  IDENT@6565..6568 "arr"4278            COMMA@6568..6569 ","4279            WHITESPACE@6569..6570 " "4280            PARAM@6570..65774281              DESTRUCT_FULL@6570..65744282                NAME@6570..65744283                  IDENT@6570..6574 "keyF"4284              ASSIGN@6574..6575 "="4285              EXPR_VAR@6575..65774286                NAME@6575..65774287                  IDENT@6575..6577 "id"4288            R_PAREN@6577..6578 ")"4289          COLONCOLON@6578..6580 "::"4290          WHITESPACE@6580..6585 "\n    "4291          EXPR_APPLY@6585..66204292            EXPR_INDEX@6585..65934293              EXPR_VAR@6585..65884294                NAME@6585..65884295                  IDENT@6585..6588 "std"4296              DOT@6588..6589 "."4297              NAME@6589..65934298                IDENT@6589..6593 "uniq"4299            ARGS_DESC@6593..66204300              L_PAREN@6593..6594 "("4301              ARG@6594..66134302                EXPR_APPLY@6594..66134303                  EXPR_INDEX@6594..66024304                    EXPR_VAR@6594..65974305                      NAME@6594..65974306                        IDENT@6594..6597 "std"4307                    DOT@6597..6598 "."4308                    NAME@6598..66024309                      IDENT@6598..6602 "sort"4310                  ARGS_DESC@6602..66134311                    L_PAREN@6602..6603 "("4312                    ARG@6603..66064313                      EXPR_VAR@6603..66064314                        NAME@6603..66064315                          IDENT@6603..6606 "arr"4316                    COMMA@6606..6607 ","4317                    WHITESPACE@6607..6608 " "4318                    ARG@6608..66124319                      EXPR_VAR@6608..66124320                        NAME@6608..66124321                          IDENT@6608..6612 "keyF"4322                    R_PAREN@6612..6613 ")"4323              COMMA@6613..6614 ","4324              WHITESPACE@6614..6615 " "4325              ARG@6615..66194326                EXPR_VAR@6615..66194327                  NAME@6615..66194328                    IDENT@6615..6619 "keyF"4329              R_PAREN@6619..6620 ")"4330      COMMA@6620..6621 ","4331      WHITESPACE@6621..6625 "\n\n  "4332      MEMBER_FIELD@6625..67604333        FIELD_METHOD@6625..67604334          FIELD_NAME_FIXED@6625..66344335            NAME@6625..66344336              IDENT@6625..6634 "setMember"4337          PARAMS_DESC@6634..66514338            L_PAREN@6634..6635 "("4339            PARAM@6635..66364340              DESTRUCT_FULL@6635..66364341                NAME@6635..66364342                  IDENT@6635..6636 "x"4343            COMMA@6636..6637 ","4344            WHITESPACE@6637..6638 " "4345            PARAM@6638..66414346              DESTRUCT_FULL@6638..66414347                NAME@6638..66414348                  IDENT@6638..6641 "arr"4349            COMMA@6641..6642 ","4350            WHITESPACE@6642..6643 " "4351            PARAM@6643..66504352              DESTRUCT_FULL@6643..66474353                NAME@6643..66474354                  IDENT@6643..6647 "keyF"4355              ASSIGN@6647..6648 "="4356              EXPR_VAR@6648..66504357                NAME@6648..66504358                  IDENT@6648..6650 "id"4359            R_PAREN@6650..6651 ")"4360          COLONCOLON@6651..6653 "::"4361          WHITESPACE@6653..6658 "\n    "4362          SINGLE_LINE_SLASH_COMMENT@6658..6712 "// TODO(dcunnin): Bin ..."4363          WHITESPACE@6712..6716 "    "4364          EXPR_BINARY@6716..67604365            LHS_EXPR@6716..67564366              EXPR_APPLY@6716..67564367                EXPR_INDEX@6716..67264368                  EXPR_VAR@6716..67194369                    NAME@6716..67194370                      IDENT@6716..6719 "std"4371                  DOT@6719..6720 "."4372                  NAME@6720..67264373                    IDENT@6720..6726 "length"4374                ARGS_DESC@6726..67564375                  L_PAREN@6726..6727 "("4376                  ARG@6727..67554377                    EXPR_APPLY@6727..67554378                      EXPR_INDEX@6727..67394379                        EXPR_VAR@6727..67304380                          NAME@6727..67304381                            IDENT@6727..6730 "std"4382                        DOT@6730..6731 "."4383                        NAME@6731..67394384                          IDENT@6731..6739 "setInter"4385                      ARGS_DESC@6739..67554386                        L_PAREN@6739..6740 "("4387                        ARG@6740..67434388                          EXPR_ARRAY@6740..67434389                            L_BRACK@6740..6741 "["4390                            EXPR_VAR@6741..67424391                              NAME@6741..67424392                                IDENT@6741..6742 "x"4393                            R_BRACK@6742..6743 "]"4394                        COMMA@6743..6744 ","4395                        WHITESPACE@6744..6745 " "4396                        ARG@6745..67484397                          EXPR_VAR@6745..67484398                            NAME@6745..67484399                              IDENT@6745..6748 "arr"4400                        COMMA@6748..6749 ","4401                        WHITESPACE@6749..6750 " "4402                        ARG@6750..67544403                          EXPR_VAR@6750..67544404                            NAME@6750..67544405                              IDENT@6750..6754 "keyF"4406                        R_PAREN@6754..6755 ")"4407                  R_PAREN@6755..6756 ")"4408            WHITESPACE@6756..6757 " "4409            GT@6757..6758 ">"4410            WHITESPACE@6758..6759 " "4411            EXPR_NUMBER@6759..67604412              FLOAT@6759..6760 "0"4413      COMMA@6760..6761 ","4414      WHITESPACE@6761..6765 "\n\n  "4415      MEMBER_FIELD@6765..73144416        FIELD_METHOD@6765..73144417          FIELD_NAME_FIXED@6765..67734418            NAME@6765..67734419              IDENT@6765..6773 "setUnion"4420          PARAMS_DESC@6773..67884421            L_PAREN@6773..6774 "("4422            PARAM@6774..67754423              DESTRUCT_FULL@6774..67754424                NAME@6774..67754425                  IDENT@6774..6775 "a"4426            COMMA@6775..6776 ","4427            WHITESPACE@6776..6777 " "4428            PARAM@6777..67784429              DESTRUCT_FULL@6777..67784430                NAME@6777..67784431                  IDENT@6777..6778 "b"4432            COMMA@6778..6779 ","4433            WHITESPACE@6779..6780 " "4434            PARAM@6780..67874435              DESTRUCT_FULL@6780..67844436                NAME@6780..67844437                  IDENT@6780..6784 "keyF"4438              ASSIGN@6784..6785 "="4439              EXPR_VAR@6785..67874440                NAME@6785..67874441                  IDENT@6785..6787 "id"4442            R_PAREN@6787..6788 ")"4443          COLONCOLON@6788..6790 "::"4444          WHITESPACE@6790..6795 "\n    "4445          SINGLE_LINE_SLASH_COMMENT@6795..6837 "// NOTE: order matter ..."4446          WHITESPACE@6837..6841 "    "4447          EXPR_LOCAL@6841..73144448            LOCAL_KW@6841..6846 "local"4449            WHITESPACE@6846..6847 " "4450            BIND_FUNCTION@6847..72894451              NAME@6847..68504452                IDENT@6847..6850 "aux"4453              PARAMS_DESC@6850..68674454                L_PAREN@6850..6851 "("4455                PARAM@6851..68524456                  DESTRUCT_FULL@6851..68524457                    NAME@6851..68524458                      IDENT@6851..6852 "a"4459                COMMA@6852..6853 ","4460                WHITESPACE@6853..6854 " "4461                PARAM@6854..68554462                  DESTRUCT_FULL@6854..68554463                    NAME@6854..68554464                      IDENT@6854..6855 "b"4465                COMMA@6855..6856 ","4466                WHITESPACE@6856..6857 " "4467                PARAM@6857..68584468                  DESTRUCT_FULL@6857..68584469                    NAME@6857..68584470                      IDENT@6857..6858 "i"4471                COMMA@6858..6859 ","4472                WHITESPACE@6859..6860 " "4473                PARAM@6860..68614474                  DESTRUCT_FULL@6860..68614475                    NAME@6860..68614476                      IDENT@6860..6861 "j"4477                COMMA@6861..6862 ","4478                WHITESPACE@6862..6863 " "4479                PARAM@6863..68664480                  DESTRUCT_FULL@6863..68664481                    NAME@6863..68664482                      IDENT@6863..6866 "acc"4483                R_PAREN@6866..6867 ")"4484              WHITESPACE@6867..6868 " "4485              ASSIGN@6868..6869 "="4486              WHITESPACE@6869..6876 "\n      "4487              EXPR_IF_THEN_ELSE@6876..72894488                IF_KW@6876..6878 "if"4489                WHITESPACE@6878..6879 " "4490                EXPR_BINARY@6879..68974491                  LHS_EXPR@6879..68804492                    EXPR_VAR@6879..68804493                      NAME@6879..68804494                        IDENT@6879..6880 "i"4495                  WHITESPACE@6880..6881 " "4496                  GE@6881..6883 ">="4497                  WHITESPACE@6883..6884 " "4498                  EXPR_APPLY@6884..68974499                    EXPR_INDEX@6884..68944500                      EXPR_VAR@6884..68874501                        NAME@6884..68874502                          IDENT@6884..6887 "std"4503                      DOT@6887..6888 "."4504                      NAME@6888..68944505                        IDENT@6888..6894 "length"4506                    ARGS_DESC@6894..68974507                      L_PAREN@6894..6895 "("4508                      ARG@6895..68964509                        EXPR_VAR@6895..68964510                          NAME@6895..68964511                            IDENT@6895..6896 "a"4512                      R_PAREN@6896..6897 ")"4513                WHITESPACE@6897..6898 " "4514                THEN_KW@6898..6902 "then"4515                WHITESPACE@6902..6911 "\n        "4516                TRUE_EXPR@6911..69224517                  EXPR_BINARY@6911..69224518                    LHS_EXPR@6911..69144519                      EXPR_VAR@6911..69144520                        NAME@6911..69144521                          IDENT@6911..6914 "acc"4522                    WHITESPACE@6914..6915 " "4523                    PLUS@6915..6916 "+"4524                    WHITESPACE@6916..6917 " "4525                    EXPR_SLICE@6917..69224526                      EXPR_VAR@6917..69184527                        NAME@6917..69184528                          IDENT@6917..6918 "b"4529                      SLICE_DESC@6918..69224530                        L_BRACK@6918..6919 "["4531                        EXPR_VAR@6919..69204532                          NAME@6919..69204533                            IDENT@6919..6920 "j"4534                        COLON@6920..6921 ":"4535                        R_BRACK@6921..6922 "]"4536                WHITESPACE@6922..6929 "\n      "4537                ELSE_KW@6929..6933 "else"4538                WHITESPACE@6933..6934 " "4539                FALSE_EXPR@6934..72894540                  EXPR_IF_THEN_ELSE@6934..72894541                    IF_KW@6934..6936 "if"4542                    WHITESPACE@6936..6937 " "4543                    EXPR_BINARY@6937..69554544                      LHS_EXPR@6937..69384545                        EXPR_VAR@6937..69384546                          NAME@6937..69384547                            IDENT@6937..6938 "j"4548                      WHITESPACE@6938..6939 " "4549                      GE@6939..6941 ">="4550                      WHITESPACE@6941..6942 " "4551                      EXPR_APPLY@6942..69554552                        EXPR_INDEX@6942..69524553                          EXPR_VAR@6942..69454554                            NAME@6942..69454555                              IDENT@6942..6945 "std"4556                          DOT@6945..6946 "."4557                          NAME@6946..69524558                            IDENT@6946..6952 "length"4559                        ARGS_DESC@6952..69554560                          L_PAREN@6952..6953 "("4561                          ARG@6953..69544562                            EXPR_VAR@6953..69544563                              NAME@6953..69544564                                IDENT@6953..6954 "b"4565                          R_PAREN@6954..6955 ")"4566                    WHITESPACE@6955..6956 " "4567                    THEN_KW@6956..6960 "then"4568                    WHITESPACE@6960..6969 "\n        "4569                    TRUE_EXPR@6969..69804570                      EXPR_BINARY@6969..69804571                        LHS_EXPR@6969..69724572                          EXPR_VAR@6969..69724573                            NAME@6969..69724574                              IDENT@6969..6972 "acc"4575                        WHITESPACE@6972..6973 " "4576                        PLUS@6973..6974 "+"4577                        WHITESPACE@6974..6975 " "4578                        EXPR_SLICE@6975..69804579                          EXPR_VAR@6975..69764580                            NAME@6975..69764581                              IDENT@6975..6976 "a"4582                          SLICE_DESC@6976..69804583                            L_BRACK@6976..6977 "["4584                            EXPR_VAR@6977..69784585                              NAME@6977..69784586                                IDENT@6977..6978 "i"4587                            COLON@6978..6979 ":"4588                            R_BRACK@6979..6980 "]"4589                    WHITESPACE@6980..6987 "\n      "4590                    ELSE_KW@6987..6991 "else"4591                    WHITESPACE@6991..7000 "\n        "4592                    FALSE_EXPR@7000..72894593                      EXPR_LOCAL@7000..72894594                        LOCAL_KW@7000..7005 "local"4595                        WHITESPACE@7005..7006 " "4596                        BIND_DESTRUCT@7006..70214597                          DESTRUCT_FULL@7006..70084598                            NAME@7006..70084599                              IDENT@7006..7008 "ak"4600                          WHITESPACE@7008..7009 " "4601                          ASSIGN@7009..7010 "="4602                          WHITESPACE@7010..7011 " "4603                          EXPR_APPLY@7011..70214604                            EXPR_VAR@7011..70154605                              NAME@7011..70154606                                IDENT@7011..7015 "keyF"4607                            ARGS_DESC@7015..70214608                              L_PAREN@7015..7016 "("4609                              ARG@7016..70204610                                EXPR_INDEX_EXPR@7016..70204611                                  LHS_EXPR@7016..70174612                                    EXPR_VAR@7016..70174613                                      NAME@7016..70174614                                        IDENT@7016..7017 "a"4615                                  L_BRACK@7017..7018 "["4616                                  EXPR_VAR@7018..70194617                                    NAME@7018..70194618                                      IDENT@7018..7019 "i"4619                                  R_BRACK@7019..7020 "]"4620                              R_PAREN@7020..7021 ")"4621                        SEMI@7021..7022 ";"4622                        WHITESPACE@7022..7031 "\n        "4623                        EXPR_LOCAL@7031..72894624                          LOCAL_KW@7031..7036 "local"4625                          WHITESPACE@7036..7037 " "4626                          BIND_DESTRUCT@7037..70524627                            DESTRUCT_FULL@7037..70394628                              NAME@7037..70394629                                IDENT@7037..7039 "bk"4630                            WHITESPACE@7039..7040 " "4631                            ASSIGN@7040..7041 "="4632                            WHITESPACE@7041..7042 " "4633                            EXPR_APPLY@7042..70524634                              EXPR_VAR@7042..70464635                                NAME@7042..70464636                                  IDENT@7042..7046 "keyF"4637                              ARGS_DESC@7046..70524638                                L_PAREN@7046..7047 "("4639                                ARG@7047..70514640                                  EXPR_INDEX_EXPR@7047..70514641                                    LHS_EXPR@7047..70484642                                      EXPR_VAR@7047..70484643                                        NAME@7047..70484644                                          IDENT@7047..7048 "b"4645                                    L_BRACK@7048..7049 "["4646                                    EXPR_VAR@7049..70504647                                      NAME@7049..70504648                                        IDENT@7049..7050 "j"4649                                    R_BRACK@7050..7051 "]"4650                                R_PAREN@7051..7052 ")"4651                          SEMI@7052..7053 ";"4652                          WHITESPACE@7053..7062 "\n        "4653                          EXPR_IF_THEN_ELSE@7062..72894654                            IF_KW@7062..7064 "if"4655                            WHITESPACE@7064..7065 " "4656                            EXPR_BINARY@7065..70734657                              LHS_EXPR@7065..70674658                                EXPR_VAR@7065..70674659                                  NAME@7065..70674660                                    IDENT@7065..7067 "ak"4661                              WHITESPACE@7067..7068 " "4662                              EQ@7068..7070 "=="4663                              WHITESPACE@7070..7071 " "4664                              EXPR_VAR@7071..70734665                                NAME@7071..70734666                                  IDENT@7071..7073 "bk"4667                            WHITESPACE@7073..7074 " "4668                            THEN_KW@7074..7078 "then"4669                            WHITESPACE@7078..7089 "\n          "4670                            TRUE_EXPR@7089..71374671                              EXPR_APPLY@7089..71374672                                EXPR_VAR@7089..70924673                                  NAME@7089..70924674                                    IDENT@7089..7092 "aux"4675                                ARGS_DESC@7092..71374676                                  L_PAREN@7092..7093 "("4677                                  ARG@7093..70944678                                    EXPR_VAR@7093..70944679                                      NAME@7093..70944680                                        IDENT@7093..7094 "a"4681                                  COMMA@7094..7095 ","4682                                  WHITESPACE@7095..7096 " "4683                                  ARG@7096..70974684                                    EXPR_VAR@7096..70974685                                      NAME@7096..70974686                                        IDENT@7096..7097 "b"4687                                  COMMA@7097..7098 ","4688                                  WHITESPACE@7098..7099 " "4689                                  ARG@7099..71044690                                    EXPR_BINARY@7099..71044691                                      LHS_EXPR@7099..71004692                                        EXPR_VAR@7099..71004693                                          NAME@7099..71004694                                            IDENT@7099..7100 "i"4695                                      WHITESPACE@7100..7101 " "4696                                      PLUS@7101..7102 "+"4697                                      WHITESPACE@7102..7103 " "4698                                      EXPR_NUMBER@7103..71044699                                        FLOAT@7103..7104 "1"4700                                  COMMA@7104..7105 ","4701                                  WHITESPACE@7105..7106 " "4702                                  ARG@7106..71114703                                    EXPR_BINARY@7106..71114704                                      LHS_EXPR@7106..71074705                                        EXPR_VAR@7106..71074706                                          NAME@7106..71074707                                            IDENT@7106..7107 "j"4708                                      WHITESPACE@7107..7108 " "4709                                      PLUS@7108..7109 "+"4710                                      WHITESPACE@7109..7110 " "4711                                      EXPR_NUMBER@7110..71114712                                        FLOAT@7110..7111 "1"4713                                  COMMA@7111..7112 ","4714                                  WHITESPACE@7112..7113 " "4715                                  ARG@7113..71254716                                    EXPR_BINARY@7113..71254717                                      LHS_EXPR@7113..71164718                                        EXPR_VAR@7113..71164719                                          NAME@7113..71164720                                            IDENT@7113..7116 "acc"4721                                      WHITESPACE@7116..7117 " "4722                                      PLUS@7117..7118 "+"4723                                      WHITESPACE@7118..7119 " "4724                                      EXPR_ARRAY@7119..71254725                                        L_BRACK@7119..7120 "["4726                                        EXPR_INDEX_EXPR@7120..71244727                                          LHS_EXPR@7120..71214728                                            EXPR_VAR@7120..71214729                                              NAME@7120..71214730                                                IDENT@7120..7121 "a"4731                                          L_BRACK@7121..7122 "["4732                                          EXPR_VAR@7122..71234733                                            NAME@7122..71234734                                              IDENT@7122..7123 "i"4735                                          R_BRACK@7123..7124 "]"4736                                        R_BRACK@7124..7125 "]"4737                                  R_PAREN@7125..7126 ")"4738                                  WHITESPACE@7126..7127 " "4739                                  TAILSTRICT_KW@7127..7137 "tailstrict"4740                            WHITESPACE@7137..7146 "\n        "4741                            ELSE_KW@7146..7150 "else"4742                            WHITESPACE@7150..7151 " "4743                            FALSE_EXPR@7151..72894744                              EXPR_IF_THEN_ELSE@7151..72894745                                IF_KW@7151..7153 "if"4746                                WHITESPACE@7153..7154 " "4747                                EXPR_BINARY@7154..71614748                                  LHS_EXPR@7154..71564749                                    EXPR_VAR@7154..71564750                                      NAME@7154..71564751                                        IDENT@7154..7156 "ak"4752                                  WHITESPACE@7156..7157 " "4753                                  LT@7157..7158 "<"4754                                  WHITESPACE@7158..7159 " "4755                                  EXPR_VAR@7159..71614756                                    NAME@7159..71614757                                      IDENT@7159..7161 "bk"4758                                WHITESPACE@7161..7162 " "4759                                THEN_KW@7162..7166 "then"4760                                WHITESPACE@7166..7177 "\n          "4761                                TRUE_EXPR@7177..72214762                                  EXPR_APPLY@7177..72214763                                    EXPR_VAR@7177..71804764                                      NAME@7177..71804765                                        IDENT@7177..7180 "aux"4766                                    ARGS_DESC@7180..72214767                                      L_PAREN@7180..7181 "("4768                                      ARG@7181..71824769                                        EXPR_VAR@7181..71824770                                          NAME@7181..71824771                                            IDENT@7181..7182 "a"4772                                      COMMA@7182..7183 ","4773                                      WHITESPACE@7183..7184 " "4774                                      ARG@7184..71854775                                        EXPR_VAR@7184..71854776                                          NAME@7184..71854777                                            IDENT@7184..7185 "b"4778                                      COMMA@7185..7186 ","4779                                      WHITESPACE@7186..7187 " "4780                                      ARG@7187..71924781                                        EXPR_BINARY@7187..71924782                                          LHS_EXPR@7187..71884783                                            EXPR_VAR@7187..71884784                                              NAME@7187..71884785                                                IDENT@7187..7188 "i"4786                                          WHITESPACE@7188..7189 " "4787                                          PLUS@7189..7190 "+"4788                                          WHITESPACE@7190..7191 " "4789                                          EXPR_NUMBER@7191..71924790                                            FLOAT@7191..7192 "1"4791                                      COMMA@7192..7193 ","4792                                      WHITESPACE@7193..7194 " "4793                                      ARG@7194..71954794                                        EXPR_VAR@7194..71954795                                          NAME@7194..71954796                                            IDENT@7194..7195 "j"4797                                      COMMA@7195..7196 ","4798                                      WHITESPACE@7196..7197 " "4799                                      ARG@7197..72094800                                        EXPR_BINARY@7197..72094801                                          LHS_EXPR@7197..72004802                                            EXPR_VAR@7197..72004803                                              NAME@7197..72004804                                                IDENT@7197..7200 "acc"4805                                          WHITESPACE@7200..7201 " "4806                                          PLUS@7201..7202 "+"4807                                          WHITESPACE@7202..7203 " "4808                                          EXPR_ARRAY@7203..72094809                                            L_BRACK@7203..7204 "["4810                                            EXPR_INDEX_EXPR@7204..72084811                                              LHS_EXPR@7204..72054812                                                EXPR_VAR@7204..72054813                                                  NAME@7204..72054814                                                    IDENT@7204..7205 "a"4815                                              L_BRACK@7205..7206 "["4816                                              EXPR_VAR@7206..72074817                                                NAME@7206..72074818                                                  IDENT@7206..7207 "i"4819                                              R_BRACK@7207..7208 "]"4820                                            R_BRACK@7208..7209 "]"4821                                      R_PAREN@7209..7210 ")"4822                                      WHITESPACE@7210..7211 " "4823                                      TAILSTRICT_KW@7211..7221 "tailstrict"4824                                WHITESPACE@7221..7230 "\n        "4825                                ELSE_KW@7230..7234 "else"4826                                WHITESPACE@7234..7245 "\n          "4827                                FALSE_EXPR@7245..72894828                                  EXPR_APPLY@7245..72894829                                    EXPR_VAR@7245..72484830                                      NAME@7245..72484831                                        IDENT@7245..7248 "aux"4832                                    ARGS_DESC@7248..72894833                                      L_PAREN@7248..7249 "("4834                                      ARG@7249..72504835                                        EXPR_VAR@7249..72504836                                          NAME@7249..72504837                                            IDENT@7249..7250 "a"4838                                      COMMA@7250..7251 ","4839                                      WHITESPACE@7251..7252 " "4840                                      ARG@7252..72534841                                        EXPR_VAR@7252..72534842                                          NAME@7252..72534843                                            IDENT@7252..7253 "b"4844                                      COMMA@7253..7254 ","4845                                      WHITESPACE@7254..7255 " "4846                                      ARG@7255..72564847                                        EXPR_VAR@7255..72564848                                          NAME@7255..72564849                                            IDENT@7255..7256 "i"4850                                      COMMA@7256..7257 ","4851                                      WHITESPACE@7257..7258 " "4852                                      ARG@7258..72634853                                        EXPR_BINARY@7258..72634854                                          LHS_EXPR@7258..72594855                                            EXPR_VAR@7258..72594856                                              NAME@7258..72594857                                                IDENT@7258..7259 "j"4858                                          WHITESPACE@7259..7260 " "4859                                          PLUS@7260..7261 "+"4860                                          WHITESPACE@7261..7262 " "4861                                          EXPR_NUMBER@7262..72634862                                            FLOAT@7262..7263 "1"4863                                      COMMA@7263..7264 ","4864                                      WHITESPACE@7264..7265 " "4865                                      ARG@7265..72774866                                        EXPR_BINARY@7265..72774867                                          LHS_EXPR@7265..72684868                                            EXPR_VAR@7265..72684869                                              NAME@7265..72684870                                                IDENT@7265..7268 "acc"4871                                          WHITESPACE@7268..7269 " "4872                                          PLUS@7269..7270 "+"4873                                          WHITESPACE@7270..7271 " "4874                                          EXPR_ARRAY@7271..72774875                                            L_BRACK@7271..7272 "["4876                                            EXPR_INDEX_EXPR@7272..72764877                                              LHS_EXPR@7272..72734878                                                EXPR_VAR@7272..72734879                                                  NAME@7272..72734880                                                    IDENT@7272..7273 "b"4881                                              L_BRACK@7273..7274 "["4882                                              EXPR_VAR@7274..72754883                                                NAME@7274..72754884                                                  IDENT@7274..7275 "j"4885                                              R_BRACK@7275..7276 "]"4886                                            R_BRACK@7276..7277 "]"4887                                      R_PAREN@7277..7278 ")"4888                                      WHITESPACE@7278..7279 " "4889                                      TAILSTRICT_KW@7279..7289 "tailstrict"4890            SEMI@7289..7290 ";"4891            WHITESPACE@7290..7295 "\n    "4892            EXPR_APPLY@7295..73144893              EXPR_VAR@7295..72984894                NAME@7295..72984895                  IDENT@7295..7298 "aux"4896              ARGS_DESC@7298..73144897                L_PAREN@7298..7299 "("4898                ARG@7299..73004899                  EXPR_VAR@7299..73004900                    NAME@7299..73004901                      IDENT@7299..7300 "a"4902                COMMA@7300..7301 ","4903                WHITESPACE@7301..7302 " "4904                ARG@7302..73034905                  EXPR_VAR@7302..73034906                    NAME@7302..73034907                      IDENT@7302..7303 "b"4908                COMMA@7303..7304 ","4909                WHITESPACE@7304..7305 " "4910                ARG@7305..73064911                  EXPR_NUMBER@7305..73064912                    FLOAT@7305..7306 "0"4913                COMMA@7306..7307 ","4914                WHITESPACE@7307..7308 " "4915                ARG@7308..73094916                  EXPR_NUMBER@7308..73094917                    FLOAT@7308..7309 "0"4918                COMMA@7309..7310 ","4919                WHITESPACE@7310..7311 " "4920                ARG@7311..73134921                  EXPR_ARRAY@7311..73134922                    L_BRACK@7311..7312 "["4923                    R_BRACK@7312..7313 "]"4924                R_PAREN@7313..7314 ")"4925      COMMA@7314..7315 ","4926      WHITESPACE@7315..7319 "\n\n  "4927      MEMBER_FIELD@7319..77414928        FIELD_METHOD@7319..77414929          FIELD_NAME_FIXED@7319..73274930            NAME@7319..73274931              IDENT@7319..7327 "setInter"4932          PARAMS_DESC@7327..73424933            L_PAREN@7327..7328 "("4934            PARAM@7328..73294935              DESTRUCT_FULL@7328..73294936                NAME@7328..73294937                  IDENT@7328..7329 "a"4938            COMMA@7329..7330 ","4939            WHITESPACE@7330..7331 " "4940            PARAM@7331..73324941              DESTRUCT_FULL@7331..73324942                NAME@7331..73324943                  IDENT@7331..7332 "b"4944            COMMA@7332..7333 ","4945            WHITESPACE@7333..7334 " "4946            PARAM@7334..73414947              DESTRUCT_FULL@7334..73384948                NAME@7334..73384949                  IDENT@7334..7338 "keyF"4950              ASSIGN@7338..7339 "="4951              EXPR_VAR@7339..73414952                NAME@7339..73414953                  IDENT@7339..7341 "id"4954            R_PAREN@7341..7342 ")"4955          COLONCOLON@7342..7344 "::"4956          WHITESPACE@7344..7349 "\n    "4957          EXPR_LOCAL@7349..77414958            LOCAL_KW@7349..7354 "local"4959            WHITESPACE@7354..7355 " "4960            BIND_FUNCTION@7355..77054961              NAME@7355..73584962                IDENT@7355..7358 "aux"4963              PARAMS_DESC@7358..73754964                L_PAREN@7358..7359 "("4965                PARAM@7359..73604966                  DESTRUCT_FULL@7359..73604967                    NAME@7359..73604968                      IDENT@7359..7360 "a"4969                COMMA@7360..7361 ","4970                WHITESPACE@7361..7362 " "4971                PARAM@7362..73634972                  DESTRUCT_FULL@7362..73634973                    NAME@7362..73634974                      IDENT@7362..7363 "b"4975                COMMA@7363..7364 ","4976                WHITESPACE@7364..7365 " "4977                PARAM@7365..73664978                  DESTRUCT_FULL@7365..73664979                    NAME@7365..73664980                      IDENT@7365..7366 "i"4981                COMMA@7366..7367 ","4982                WHITESPACE@7367..7368 " "4983                PARAM@7368..73694984                  DESTRUCT_FULL@7368..73694985                    NAME@7368..73694986                      IDENT@7368..7369 "j"4987                COMMA@7369..7370 ","4988                WHITESPACE@7370..7371 " "4989                PARAM@7371..73744990                  DESTRUCT_FULL@7371..73744991                    NAME@7371..73744992                      IDENT@7371..7374 "acc"4993                R_PAREN@7374..7375 ")"4994              WHITESPACE@7375..7376 " "4995              ASSIGN@7376..7377 "="4996              WHITESPACE@7377..7384 "\n      "4997              EXPR_IF_THEN_ELSE@7384..77054998                IF_KW@7384..7386 "if"4999                WHITESPACE@7386..7387 " "5000                EXPR_BINARY@7387..74275001                  LHS_EXPR@7387..74055002                    EXPR_BINARY@7387..74055003                      LHS_EXPR@7387..73885004                        EXPR_VAR@7387..73885005                          NAME@7387..73885006                            IDENT@7387..7388 "i"5007                      WHITESPACE@7388..7389 " "5008                      GE@7389..7391 ">="5009                      WHITESPACE@7391..7392 " "5010                      EXPR_APPLY@7392..74055011                        EXPR_INDEX@7392..74025012                          EXPR_VAR@7392..73955013                            NAME@7392..73955014                              IDENT@7392..7395 "std"5015                          DOT@7395..7396 "."5016                          NAME@7396..74025017                            IDENT@7396..7402 "length"5018                        ARGS_DESC@7402..74055019                          L_PAREN@7402..7403 "("5020                          ARG@7403..74045021                            EXPR_VAR@7403..74045022                              NAME@7403..74045023                                IDENT@7403..7404 "a"5024                          R_PAREN@7404..7405 ")"5025                  WHITESPACE@7405..7406 " "5026                  OR@7406..7408 "||"5027                  WHITESPACE@7408..7409 " "5028                  EXPR_BINARY@7409..74275029                    LHS_EXPR@7409..74105030                      EXPR_VAR@7409..74105031                        NAME@7409..74105032                          IDENT@7409..7410 "j"5033                    WHITESPACE@7410..7411 " "5034                    GE@7411..7413 ">="5035                    WHITESPACE@7413..7414 " "5036                    EXPR_APPLY@7414..74275037                      EXPR_INDEX@7414..74245038                        EXPR_VAR@7414..74175039                          NAME@7414..74175040                            IDENT@7414..7417 "std"5041                        DOT@7417..7418 "."5042                        NAME@7418..74245043                          IDENT@7418..7424 "length"5044                      ARGS_DESC@7424..74275045                        L_PAREN@7424..7425 "("5046                        ARG@7425..74265047                          EXPR_VAR@7425..74265048                            NAME@7425..74265049                              IDENT@7425..7426 "b"5050                        R_PAREN@7426..7427 ")"5051                WHITESPACE@7427..7428 " "5052                THEN_KW@7428..7432 "then"5053                WHITESPACE@7432..7441 "\n        "5054                TRUE_EXPR@7441..74445055                  EXPR_VAR@7441..74445056                    NAME@7441..74445057                      IDENT@7441..7444 "acc"5058                WHITESPACE@7444..7451 "\n      "5059                ELSE_KW@7451..7455 "else"5060                WHITESPACE@7455..7464 "\n        "5061                FALSE_EXPR@7464..77055062                  EXPR_IF_THEN_ELSE@7464..77055063                    IF_KW@7464..7466 "if"5064                    WHITESPACE@7466..7467 " "5065                    EXPR_BINARY@7467..74915066                      LHS_EXPR@7467..74775067                        EXPR_APPLY@7467..74775068                          EXPR_VAR@7467..74715069                            NAME@7467..74715070                              IDENT@7467..7471 "keyF"5071                          ARGS_DESC@7471..74775072                            L_PAREN@7471..7472 "("5073                            ARG@7472..74765074                              EXPR_INDEX_EXPR@7472..74765075                                LHS_EXPR@7472..74735076                                  EXPR_VAR@7472..74735077                                    NAME@7472..74735078                                      IDENT@7472..7473 "a"5079                                L_BRACK@7473..7474 "["5080                                EXPR_VAR@7474..74755081                                  NAME@7474..74755082                                    IDENT@7474..7475 "i"5083                                R_BRACK@7475..7476 "]"5084                            R_PAREN@7476..7477 ")"5085                      WHITESPACE@7477..7478 " "5086                      EQ@7478..7480 "=="5087                      WHITESPACE@7480..7481 " "5088                      EXPR_APPLY@7481..74915089                        EXPR_VAR@7481..74855090                          NAME@7481..74855091                            IDENT@7481..7485 "keyF"5092                        ARGS_DESC@7485..74915093                          L_PAREN@7485..7486 "("5094                          ARG@7486..74905095                            EXPR_INDEX_EXPR@7486..74905096                              LHS_EXPR@7486..74875097                                EXPR_VAR@7486..74875098                                  NAME@7486..74875099                                    IDENT@7486..7487 "b"5100                              L_BRACK@7487..7488 "["5101                              EXPR_VAR@7488..74895102                                NAME@7488..74895103                                  IDENT@7488..7489 "j"5104                              R_BRACK@7489..7490 "]"5105                          R_PAREN@7490..7491 ")"5106                    WHITESPACE@7491..7492 " "5107                    THEN_KW@7492..7496 "then"5108                    WHITESPACE@7496..7507 "\n          "5109                    TRUE_EXPR@7507..75555110                      EXPR_APPLY@7507..75555111                        EXPR_VAR@7507..75105112                          NAME@7507..75105113                            IDENT@7507..7510 "aux"5114                        ARGS_DESC@7510..75555115                          L_PAREN@7510..7511 "("5116                          ARG@7511..75125117                            EXPR_VAR@7511..75125118                              NAME@7511..75125119                                IDENT@7511..7512 "a"5120                          COMMA@7512..7513 ","5121                          WHITESPACE@7513..7514 " "5122                          ARG@7514..75155123                            EXPR_VAR@7514..75155124                              NAME@7514..75155125                                IDENT@7514..7515 "b"5126                          COMMA@7515..7516 ","5127                          WHITESPACE@7516..7517 " "5128                          ARG@7517..75225129                            EXPR_BINARY@7517..75225130                              LHS_EXPR@7517..75185131                                EXPR_VAR@7517..75185132                                  NAME@7517..75185133                                    IDENT@7517..7518 "i"5134                              WHITESPACE@7518..7519 " "5135                              PLUS@7519..7520 "+"5136                              WHITESPACE@7520..7521 " "5137                              EXPR_NUMBER@7521..75225138                                FLOAT@7521..7522 "1"5139                          COMMA@7522..7523 ","5140                          WHITESPACE@7523..7524 " "5141                          ARG@7524..75295142                            EXPR_BINARY@7524..75295143                              LHS_EXPR@7524..75255144                                EXPR_VAR@7524..75255145                                  NAME@7524..75255146                                    IDENT@7524..7525 "j"5147                              WHITESPACE@7525..7526 " "5148                              PLUS@7526..7527 "+"5149                              WHITESPACE@7527..7528 " "5150                              EXPR_NUMBER@7528..75295151                                FLOAT@7528..7529 "1"5152                          COMMA@7529..7530 ","5153                          WHITESPACE@7530..7531 " "5154                          ARG@7531..75435155                            EXPR_BINARY@7531..75435156                              LHS_EXPR@7531..75345157                                EXPR_VAR@7531..75345158                                  NAME@7531..75345159                                    IDENT@7531..7534 "acc"5160                              WHITESPACE@7534..7535 " "5161                              PLUS@7535..7536 "+"5162                              WHITESPACE@7536..7537 " "5163                              EXPR_ARRAY@7537..75435164                                L_BRACK@7537..7538 "["5165                                EXPR_INDEX_EXPR@7538..75425166                                  LHS_EXPR@7538..75395167                                    EXPR_VAR@7538..75395168                                      NAME@7538..75395169                                        IDENT@7538..7539 "a"5170                                  L_BRACK@7539..7540 "["5171                                  EXPR_VAR@7540..75415172                                    NAME@7540..75415173                                      IDENT@7540..7541 "i"5174                                  R_BRACK@7541..7542 "]"5175                                R_BRACK@7542..7543 "]"5176                          R_PAREN@7543..7544 ")"5177                          WHITESPACE@7544..7545 " "5178                          TAILSTRICT_KW@7545..7555 "tailstrict"5179                    WHITESPACE@7555..7564 "\n        "5180                    ELSE_KW@7564..7568 "else"5181                    WHITESPACE@7568..7569 " "5182                    FALSE_EXPR@7569..77055183                      EXPR_IF_THEN_ELSE@7569..77055184                        IF_KW@7569..7571 "if"5185                        WHITESPACE@7571..7572 " "5186                        EXPR_BINARY@7572..75955187                          LHS_EXPR@7572..75825188                            EXPR_APPLY@7572..75825189                              EXPR_VAR@7572..75765190                                NAME@7572..75765191                                  IDENT@7572..7576 "keyF"5192                              ARGS_DESC@7576..75825193                                L_PAREN@7576..7577 "("5194                                ARG@7577..75815195                                  EXPR_INDEX_EXPR@7577..75815196                                    LHS_EXPR@7577..75785197                                      EXPR_VAR@7577..75785198                                        NAME@7577..75785199                                          IDENT@7577..7578 "a"5200                                    L_BRACK@7578..7579 "["5201                                    EXPR_VAR@7579..75805202                                      NAME@7579..75805203                                        IDENT@7579..7580 "i"5204                                    R_BRACK@7580..7581 "]"5205                                R_PAREN@7581..7582 ")"5206                          WHITESPACE@7582..7583 " "5207                          LT@7583..7584 "<"5208                          WHITESPACE@7584..7585 " "5209                          EXPR_APPLY@7585..75955210                            EXPR_VAR@7585..75895211                              NAME@7585..75895212                                IDENT@7585..7589 "keyF"5213                            ARGS_DESC@7589..75955214                              L_PAREN@7589..7590 "("5215                              ARG@7590..75945216                                EXPR_INDEX_EXPR@7590..75945217                                  LHS_EXPR@7590..75915218                                    EXPR_VAR@7590..75915219                                      NAME@7590..75915220                                        IDENT@7590..7591 "b"5221                                  L_BRACK@7591..7592 "["5222                                  EXPR_VAR@7592..75935223                                    NAME@7592..75935224                                      IDENT@7592..7593 "j"5225                                  R_BRACK@7593..7594 "]"5226                              R_PAREN@7594..7595 ")"5227                        WHITESPACE@7595..7596 " "5228                        THEN_KW@7596..7600 "then"5229                        WHITESPACE@7600..7611 "\n          "5230                        TRUE_EXPR@7611..76465231                          EXPR_APPLY@7611..76465232                            EXPR_VAR@7611..76145233                              NAME@7611..76145234                                IDENT@7611..7614 "aux"5235                            ARGS_DESC@7614..76465236                              L_PAREN@7614..7615 "("5237                              ARG@7615..76165238                                EXPR_VAR@7615..76165239                                  NAME@7615..76165240                                    IDENT@7615..7616 "a"5241                              COMMA@7616..7617 ","5242                              WHITESPACE@7617..7618 " "5243                              ARG@7618..76195244                                EXPR_VAR@7618..76195245                                  NAME@7618..76195246                                    IDENT@7618..7619 "b"5247                              COMMA@7619..7620 ","5248                              WHITESPACE@7620..7621 " "5249                              ARG@7621..76265250                                EXPR_BINARY@7621..76265251                                  LHS_EXPR@7621..76225252                                    EXPR_VAR@7621..76225253                                      NAME@7621..76225254                                        IDENT@7621..7622 "i"5255                                  WHITESPACE@7622..7623 " "5256                                  PLUS@7623..7624 "+"5257                                  WHITESPACE@7624..7625 " "5258                                  EXPR_NUMBER@7625..76265259                                    FLOAT@7625..7626 "1"5260                              COMMA@7626..7627 ","5261                              WHITESPACE@7627..7628 " "5262                              ARG@7628..76295263                                EXPR_VAR@7628..76295264                                  NAME@7628..76295265                                    IDENT@7628..7629 "j"5266                              COMMA@7629..7630 ","5267                              WHITESPACE@7630..7631 " "5268                              ARG@7631..76345269                                EXPR_VAR@7631..76345270                                  NAME@7631..76345271                                    IDENT@7631..7634 "acc"5272                              R_PAREN@7634..7635 ")"5273                              WHITESPACE@7635..7636 " "5274                              TAILSTRICT_KW@7636..7646 "tailstrict"5275                        WHITESPACE@7646..7655 "\n        "5276                        ELSE_KW@7655..7659 "else"5277                        WHITESPACE@7659..7670 "\n          "5278                        FALSE_EXPR@7670..77055279                          EXPR_APPLY@7670..77055280                            EXPR_VAR@7670..76735281                              NAME@7670..76735282                                IDENT@7670..7673 "aux"5283                            ARGS_DESC@7673..77055284                              L_PAREN@7673..7674 "("5285                              ARG@7674..76755286                                EXPR_VAR@7674..76755287                                  NAME@7674..76755288                                    IDENT@7674..7675 "a"5289                              COMMA@7675..7676 ","5290                              WHITESPACE@7676..7677 " "5291                              ARG@7677..76785292                                EXPR_VAR@7677..76785293                                  NAME@7677..76785294                                    IDENT@7677..7678 "b"5295                              COMMA@7678..7679 ","5296                              WHITESPACE@7679..7680 " "5297                              ARG@7680..76815298                                EXPR_VAR@7680..76815299                                  NAME@7680..76815300                                    IDENT@7680..7681 "i"5301                              COMMA@7681..7682 ","5302                              WHITESPACE@7682..7683 " "5303                              ARG@7683..76885304                                EXPR_BINARY@7683..76885305                                  LHS_EXPR@7683..76845306                                    EXPR_VAR@7683..76845307                                      NAME@7683..76845308                                        IDENT@7683..7684 "j"5309                                  WHITESPACE@7684..7685 " "5310                                  PLUS@7685..7686 "+"5311                                  WHITESPACE@7686..7687 " "5312                                  EXPR_NUMBER@7687..76885313                                    FLOAT@7687..7688 "1"5314                              COMMA@7688..7689 ","5315                              WHITESPACE@7689..7690 " "5316                              ARG@7690..76935317                                EXPR_VAR@7690..76935318                                  NAME@7690..76935319                                    IDENT@7690..7693 "acc"5320                              R_PAREN@7693..7694 ")"5321                              WHITESPACE@7694..7695 " "5322                              TAILSTRICT_KW@7695..7705 "tailstrict"5323            SEMI@7705..7706 ";"5324            WHITESPACE@7706..7711 "\n    "5325            EXPR_APPLY@7711..77415326              EXPR_VAR@7711..77145327                NAME@7711..77145328                  IDENT@7711..7714 "aux"5329              ARGS_DESC@7714..77415330                L_PAREN@7714..7715 "("5331                ARG@7715..77165332                  EXPR_VAR@7715..77165333                    NAME@7715..77165334                      IDENT@7715..7716 "a"5335                COMMA@7716..7717 ","5336                WHITESPACE@7717..7718 " "5337                ARG@7718..77195338                  EXPR_VAR@7718..77195339                    NAME@7718..77195340                      IDENT@7718..7719 "b"5341                COMMA@7719..7720 ","5342                WHITESPACE@7720..7721 " "5343                ARG@7721..77225344                  EXPR_NUMBER@7721..77225345                    FLOAT@7721..7722 "0"5346                COMMA@7722..7723 ","5347                WHITESPACE@7723..7724 " "5348                ARG@7724..77255349                  EXPR_NUMBER@7724..77255350                    FLOAT@7724..7725 "0"5351                COMMA@7725..7726 ","5352                WHITESPACE@7726..7727 " "5353                ARG@7727..77295354                  EXPR_ARRAY@7727..77295355                    L_BRACK@7727..7728 "["5356                    R_BRACK@7728..7729 "]"5357                R_PAREN@7729..7730 ")"5358                WHITESPACE@7730..7731 " "5359                TAILSTRICT_KW@7731..7741 "tailstrict"5360      COMMA@7741..7742 ","5361      WHITESPACE@7742..7746 "\n\n  "5362      MEMBER_FIELD@7746..82035363        FIELD_METHOD@7746..82035364          FIELD_NAME_FIXED@7746..77535365            NAME@7746..77535366              IDENT@7746..7753 "setDiff"5367          PARAMS_DESC@7753..77685368            L_PAREN@7753..7754 "("5369            PARAM@7754..77555370              DESTRUCT_FULL@7754..77555371                NAME@7754..77555372                  IDENT@7754..7755 "a"5373            COMMA@7755..7756 ","5374            WHITESPACE@7756..7757 " "5375            PARAM@7757..77585376              DESTRUCT_FULL@7757..77585377                NAME@7757..77585378                  IDENT@7757..7758 "b"5379            COMMA@7758..7759 ","5380            WHITESPACE@7759..7760 " "5381            PARAM@7760..77675382              DESTRUCT_FULL@7760..77645383                NAME@7760..77645384                  IDENT@7760..7764 "keyF"5385              ASSIGN@7764..7765 "="5386              EXPR_VAR@7765..77675387                NAME@7765..77675388                  IDENT@7765..7767 "id"5389            R_PAREN@7767..7768 ")"5390          COLONCOLON@7768..7770 "::"5391          WHITESPACE@7770..7775 "\n    "5392          EXPR_LOCAL@7775..82035393            LOCAL_KW@7775..7780 "local"5394            WHITESPACE@7780..7781 " "5395            BIND_FUNCTION@7781..81675396              NAME@7781..77845397                IDENT@7781..7784 "aux"5398              PARAMS_DESC@7784..78015399                L_PAREN@7784..7785 "("5400                PARAM@7785..77865401                  DESTRUCT_FULL@7785..77865402                    NAME@7785..77865403                      IDENT@7785..7786 "a"5404                COMMA@7786..7787 ","5405                WHITESPACE@7787..7788 " "5406                PARAM@7788..77895407                  DESTRUCT_FULL@7788..77895408                    NAME@7788..77895409                      IDENT@7788..7789 "b"5410                COMMA@7789..7790 ","5411                WHITESPACE@7790..7791 " "5412                PARAM@7791..77925413                  DESTRUCT_FULL@7791..77925414                    NAME@7791..77925415                      IDENT@7791..7792 "i"5416                COMMA@7792..7793 ","5417                WHITESPACE@7793..7794 " "5418                PARAM@7794..77955419                  DESTRUCT_FULL@7794..77955420                    NAME@7794..77955421                      IDENT@7794..7795 "j"5422                COMMA@7795..7796 ","5423                WHITESPACE@7796..7797 " "5424                PARAM@7797..78005425                  DESTRUCT_FULL@7797..78005426                    NAME@7797..78005427                      IDENT@7797..7800 "acc"5428                R_PAREN@7800..7801 ")"5429              WHITESPACE@7801..7802 " "5430              ASSIGN@7802..7803 "="5431              WHITESPACE@7803..7810 "\n      "5432              EXPR_IF_THEN_ELSE@7810..81675433                IF_KW@7810..7812 "if"5434                WHITESPACE@7812..7813 " "5435                EXPR_BINARY@7813..78315436                  LHS_EXPR@7813..78145437                    EXPR_VAR@7813..78145438                      NAME@7813..78145439                        IDENT@7813..7814 "i"5440                  WHITESPACE@7814..7815 " "5441                  GE@7815..7817 ">="5442                  WHITESPACE@7817..7818 " "5443                  EXPR_APPLY@7818..78315444                    EXPR_INDEX@7818..78285445                      EXPR_VAR@7818..78215446                        NAME@7818..78215447                          IDENT@7818..7821 "std"5448                      DOT@7821..7822 "."5449                      NAME@7822..78285450                        IDENT@7822..7828 "length"5451                    ARGS_DESC@7828..78315452                      L_PAREN@7828..7829 "("5453                      ARG@7829..78305454                        EXPR_VAR@7829..78305455                          NAME@7829..78305456                            IDENT@7829..7830 "a"5457                      R_PAREN@7830..7831 ")"5458                WHITESPACE@7831..7832 " "5459                THEN_KW@7832..7836 "then"5460                WHITESPACE@7836..7845 "\n        "5461                TRUE_EXPR@7845..78485462                  EXPR_VAR@7845..78485463                    NAME@7845..78485464                      IDENT@7845..7848 "acc"5465                WHITESPACE@7848..7855 "\n      "5466                ELSE_KW@7855..7859 "else"5467                WHITESPACE@7859..7860 " "5468                FALSE_EXPR@7860..81675469                  EXPR_IF_THEN_ELSE@7860..81675470                    IF_KW@7860..7862 "if"5471                    WHITESPACE@7862..7863 " "5472                    EXPR_BINARY@7863..78815473                      LHS_EXPR@7863..78645474                        EXPR_VAR@7863..78645475                          NAME@7863..78645476                            IDENT@7863..7864 "j"5477                      WHITESPACE@7864..7865 " "5478                      GE@7865..7867 ">="5479                      WHITESPACE@7867..7868 " "5480                      EXPR_APPLY@7868..78815481                        EXPR_INDEX@7868..78785482                          EXPR_VAR@7868..78715483                            NAME@7868..78715484                              IDENT@7868..7871 "std"5485                          DOT@7871..7872 "."5486                          NAME@7872..78785487                            IDENT@7872..7878 "length"5488                        ARGS_DESC@7878..78815489                          L_PAREN@7878..7879 "("5490                          ARG@7879..78805491                            EXPR_VAR@7879..78805492                              NAME@7879..78805493                                IDENT@7879..7880 "b"5494                          R_PAREN@7880..7881 ")"5495                    WHITESPACE@7881..7882 " "5496                    THEN_KW@7882..7886 "then"5497                    WHITESPACE@7886..7895 "\n        "5498                    TRUE_EXPR@7895..79065499                      EXPR_BINARY@7895..79065500                        LHS_EXPR@7895..78985501                          EXPR_VAR@7895..78985502                            NAME@7895..78985503                              IDENT@7895..7898 "acc"5504                        WHITESPACE@7898..7899 " "5505                        PLUS@7899..7900 "+"5506                        WHITESPACE@7900..7901 " "5507                        EXPR_SLICE@7901..79065508                          EXPR_VAR@7901..79025509                            NAME@7901..79025510                              IDENT@7901..7902 "a"5511                          SLICE_DESC@7902..79065512                            L_BRACK@7902..7903 "["5513                            EXPR_VAR@7903..79045514                              NAME@7903..79045515                                IDENT@7903..7904 "i"5516                            COLON@7904..7905 ":"5517                            R_BRACK@7905..7906 "]"5518                    WHITESPACE@7906..7913 "\n      "5519                    ELSE_KW@7913..7917 "else"5520                    WHITESPACE@7917..7926 "\n        "5521                    FALSE_EXPR@7926..81675522                      EXPR_IF_THEN_ELSE@7926..81675523                        IF_KW@7926..7928 "if"5524                        WHITESPACE@7928..7929 " "5525                        EXPR_BINARY@7929..79535526                          LHS_EXPR@7929..79395527                            EXPR_APPLY@7929..79395528                              EXPR_VAR@7929..79335529                                NAME@7929..79335530                                  IDENT@7929..7933 "keyF"5531                              ARGS_DESC@7933..79395532                                L_PAREN@7933..7934 "("5533                                ARG@7934..79385534                                  EXPR_INDEX_EXPR@7934..79385535                                    LHS_EXPR@7934..79355536                                      EXPR_VAR@7934..79355537                                        NAME@7934..79355538                                          IDENT@7934..7935 "a"5539                                    L_BRACK@7935..7936 "["5540                                    EXPR_VAR@7936..79375541                                      NAME@7936..79375542                                        IDENT@7936..7937 "i"5543                                    R_BRACK@7937..7938 "]"5544                                R_PAREN@7938..7939 ")"5545                          WHITESPACE@7939..7940 " "5546                          EQ@7940..7942 "=="5547                          WHITESPACE@7942..7943 " "5548                          EXPR_APPLY@7943..79535549                            EXPR_VAR@7943..79475550                              NAME@7943..79475551                                IDENT@7943..7947 "keyF"5552                            ARGS_DESC@7947..79535553                              L_PAREN@7947..7948 "("5554                              ARG@7948..79525555                                EXPR_INDEX_EXPR@7948..79525556                                  LHS_EXPR@7948..79495557                                    EXPR_VAR@7948..79495558                                      NAME@7948..79495559                                        IDENT@7948..7949 "b"5560                                  L_BRACK@7949..7950 "["5561                                  EXPR_VAR@7950..79515562                                    NAME@7950..79515563                                      IDENT@7950..7951 "j"5564                                  R_BRACK@7951..7952 "]"5565                              R_PAREN@7952..7953 ")"5566                        WHITESPACE@7953..7954 " "5567                        THEN_KW@7954..7958 "then"5568                        WHITESPACE@7958..7969 "\n          "5569                        TRUE_EXPR@7969..80085570                          EXPR_APPLY@7969..80085571                            EXPR_VAR@7969..79725572                              NAME@7969..79725573                                IDENT@7969..7972 "aux"5574                            ARGS_DESC@7972..80085575                              L_PAREN@7972..7973 "("5576                              ARG@7973..79745577                                EXPR_VAR@7973..79745578                                  NAME@7973..79745579                                    IDENT@7973..7974 "a"5580                              COMMA@7974..7975 ","5581                              WHITESPACE@7975..7976 " "5582                              ARG@7976..79775583                                EXPR_VAR@7976..79775584                                  NAME@7976..79775585                                    IDENT@7976..7977 "b"5586                              COMMA@7977..7978 ","5587                              WHITESPACE@7978..7979 " "5588                              ARG@7979..79845589                                EXPR_BINARY@7979..79845590                                  LHS_EXPR@7979..79805591                                    EXPR_VAR@7979..79805592                                      NAME@7979..79805593                                        IDENT@7979..7980 "i"5594                                  WHITESPACE@7980..7981 " "5595                                  PLUS@7981..7982 "+"5596                                  WHITESPACE@7982..7983 " "5597                                  EXPR_NUMBER@7983..79845598                                    FLOAT@7983..7984 "1"5599                              COMMA@7984..7985 ","5600                              WHITESPACE@7985..7986 " "5601                              ARG@7986..79915602                                EXPR_BINARY@7986..79915603                                  LHS_EXPR@7986..79875604                                    EXPR_VAR@7986..79875605                                      NAME@7986..79875606                                        IDENT@7986..7987 "j"5607                                  WHITESPACE@7987..7988 " "5608                                  PLUS@7988..7989 "+"5609                                  WHITESPACE@7989..7990 " "5610                                  EXPR_NUMBER@7990..79915611                                    FLOAT@7990..7991 "1"5612                              COMMA@7991..7992 ","5613                              WHITESPACE@7992..7993 " "5614                              ARG@7993..79965615                                EXPR_VAR@7993..79965616                                  NAME@7993..79965617                                    IDENT@7993..7996 "acc"5618                              R_PAREN@7996..7997 ")"5619                              WHITESPACE@7997..7998 " "5620                              TAILSTRICT_KW@7998..8008 "tailstrict"5621                        WHITESPACE@8008..8017 "\n        "5622                        ELSE_KW@8017..8021 "else"5623                        WHITESPACE@8021..8022 " "5624                        FALSE_EXPR@8022..81675625                          EXPR_IF_THEN_ELSE@8022..81675626                            IF_KW@8022..8024 "if"5627                            WHITESPACE@8024..8025 " "5628                            EXPR_BINARY@8025..80485629                              LHS_EXPR@8025..80355630                                EXPR_APPLY@8025..80355631                                  EXPR_VAR@8025..80295632                                    NAME@8025..80295633                                      IDENT@8025..8029 "keyF"5634                                  ARGS_DESC@8029..80355635                                    L_PAREN@8029..8030 "("5636                                    ARG@8030..80345637                                      EXPR_INDEX_EXPR@8030..80345638                                        LHS_EXPR@8030..80315639                                          EXPR_VAR@8030..80315640                                            NAME@8030..80315641                                              IDENT@8030..8031 "a"5642                                        L_BRACK@8031..8032 "["5643                                        EXPR_VAR@8032..80335644                                          NAME@8032..80335645                                            IDENT@8032..8033 "i"5646                                        R_BRACK@8033..8034 "]"5647                                    R_PAREN@8034..8035 ")"5648                              WHITESPACE@8035..8036 " "5649                              LT@8036..8037 "<"5650                              WHITESPACE@8037..8038 " "5651                              EXPR_APPLY@8038..80485652                                EXPR_VAR@8038..80425653                                  NAME@8038..80425654                                    IDENT@8038..8042 "keyF"5655                                ARGS_DESC@8042..80485656                                  L_PAREN@8042..8043 "("5657                                  ARG@8043..80475658                                    EXPR_INDEX_EXPR@8043..80475659                                      LHS_EXPR@8043..80445660                                        EXPR_VAR@8043..80445661                                          NAME@8043..80445662                                            IDENT@8043..8044 "b"5663                                      L_BRACK@8044..8045 "["5664                                      EXPR_VAR@8045..80465665                                        NAME@8045..80465666                                          IDENT@8045..8046 "j"5667                                      R_BRACK@8046..8047 "]"5668                                  R_PAREN@8047..8048 ")"5669                            WHITESPACE@8048..8049 " "5670                            THEN_KW@8049..8053 "then"5671                            WHITESPACE@8053..8064 "\n          "5672                            TRUE_EXPR@8064..81085673                              EXPR_APPLY@8064..81085674                                EXPR_VAR@8064..80675675                                  NAME@8064..80675676                                    IDENT@8064..8067 "aux"5677                                ARGS_DESC@8067..81085678                                  L_PAREN@8067..8068 "("5679                                  ARG@8068..80695680                                    EXPR_VAR@8068..80695681                                      NAME@8068..80695682                                        IDENT@8068..8069 "a"5683                                  COMMA@8069..8070 ","5684                                  WHITESPACE@8070..8071 " "5685                                  ARG@8071..80725686                                    EXPR_VAR@8071..80725687                                      NAME@8071..80725688                                        IDENT@8071..8072 "b"5689                                  COMMA@8072..8073 ","5690                                  WHITESPACE@8073..8074 " "5691                                  ARG@8074..80795692                                    EXPR_BINARY@8074..80795693                                      LHS_EXPR@8074..80755694                                        EXPR_VAR@8074..80755695                                          NAME@8074..80755696                                            IDENT@8074..8075 "i"5697                                      WHITESPACE@8075..8076 " "5698                                      PLUS@8076..8077 "+"5699                                      WHITESPACE@8077..8078 " "5700                                      EXPR_NUMBER@8078..80795701                                        FLOAT@8078..8079 "1"5702                                  COMMA@8079..8080 ","5703                                  WHITESPACE@8080..8081 " "5704                                  ARG@8081..80825705                                    EXPR_VAR@8081..80825706                                      NAME@8081..80825707                                        IDENT@8081..8082 "j"5708                                  COMMA@8082..8083 ","5709                                  WHITESPACE@8083..8084 " "5710                                  ARG@8084..80965711                                    EXPR_BINARY@8084..80965712                                      LHS_EXPR@8084..80875713                                        EXPR_VAR@8084..80875714                                          NAME@8084..80875715                                            IDENT@8084..8087 "acc"5716                                      WHITESPACE@8087..8088 " "5717                                      PLUS@8088..8089 "+"5718                                      WHITESPACE@8089..8090 " "5719                                      EXPR_ARRAY@8090..80965720                                        L_BRACK@8090..8091 "["5721                                        EXPR_INDEX_EXPR@8091..80955722                                          LHS_EXPR@8091..80925723                                            EXPR_VAR@8091..80925724                                              NAME@8091..80925725                                                IDENT@8091..8092 "a"5726                                          L_BRACK@8092..8093 "["5727                                          EXPR_VAR@8093..80945728                                            NAME@8093..80945729                                              IDENT@8093..8094 "i"5730                                          R_BRACK@8094..8095 "]"5731                                        R_BRACK@8095..8096 "]"5732                                  R_PAREN@8096..8097 ")"5733                                  WHITESPACE@8097..8098 " "5734                                  TAILSTRICT_KW@8098..8108 "tailstrict"5735                            WHITESPACE@8108..8117 "\n        "5736                            ELSE_KW@8117..8121 "else"5737                            WHITESPACE@8121..8132 "\n          "5738                            FALSE_EXPR@8132..81675739                              EXPR_APPLY@8132..81675740                                EXPR_VAR@8132..81355741                                  NAME@8132..81355742                                    IDENT@8132..8135 "aux"5743                                ARGS_DESC@8135..81675744                                  L_PAREN@8135..8136 "("5745                                  ARG@8136..81375746                                    EXPR_VAR@8136..81375747                                      NAME@8136..81375748                                        IDENT@8136..8137 "a"5749                                  COMMA@8137..8138 ","5750                                  WHITESPACE@8138..8139 " "5751                                  ARG@8139..81405752                                    EXPR_VAR@8139..81405753                                      NAME@8139..81405754                                        IDENT@8139..8140 "b"5755                                  COMMA@8140..8141 ","5756                                  WHITESPACE@8141..8142 " "5757                                  ARG@8142..81435758                                    EXPR_VAR@8142..81435759                                      NAME@8142..81435760                                        IDENT@8142..8143 "i"5761                                  COMMA@8143..8144 ","5762                                  WHITESPACE@8144..8145 " "5763                                  ARG@8145..81505764                                    EXPR_BINARY@8145..81505765                                      LHS_EXPR@8145..81465766                                        EXPR_VAR@8145..81465767                                          NAME@8145..81465768                                            IDENT@8145..8146 "j"5769                                      WHITESPACE@8146..8147 " "5770                                      PLUS@8147..8148 "+"5771                                      WHITESPACE@8148..8149 " "5772                                      EXPR_NUMBER@8149..81505773                                        FLOAT@8149..8150 "1"5774                                  COMMA@8150..8151 ","5775                                  WHITESPACE@8151..8152 " "5776                                  ARG@8152..81555777                                    EXPR_VAR@8152..81555778                                      NAME@8152..81555779                                        IDENT@8152..8155 "acc"5780                                  R_PAREN@8155..8156 ")"5781                                  WHITESPACE@8156..8157 " "5782                                  TAILSTRICT_KW@8157..8167 "tailstrict"5783            SEMI@8167..8168 ";"5784            WHITESPACE@8168..8173 "\n    "5785            EXPR_APPLY@8173..82035786              EXPR_VAR@8173..81765787                NAME@8173..81765788                  IDENT@8173..8176 "aux"5789              ARGS_DESC@8176..82035790                L_PAREN@8176..8177 "("5791                ARG@8177..81785792                  EXPR_VAR@8177..81785793                    NAME@8177..81785794                      IDENT@8177..8178 "a"5795                COMMA@8178..8179 ","5796                WHITESPACE@8179..8180 " "5797                ARG@8180..81815798                  EXPR_VAR@8180..81815799                    NAME@8180..81815800                      IDENT@8180..8181 "b"5801                COMMA@8181..8182 ","5802                WHITESPACE@8182..8183 " "5803                ARG@8183..81845804                  EXPR_NUMBER@8183..81845805                    FLOAT@8183..8184 "0"5806                COMMA@8184..8185 ","5807                WHITESPACE@8185..8186 " "5808                ARG@8186..81875809                  EXPR_NUMBER@8186..81875810                    FLOAT@8186..8187 "0"5811                COMMA@8187..8188 ","5812                WHITESPACE@8188..8189 " "5813                ARG@8189..81915814                  EXPR_ARRAY@8189..81915815                    L_BRACK@8189..8190 "["5816                    R_BRACK@8190..8191 "]"5817                R_PAREN@8191..8192 ")"5818                WHITESPACE@8192..8193 " "5819                TAILSTRICT_KW@8193..8203 "tailstrict"5820      COMMA@8203..8204 ","5821      WHITESPACE@8204..8208 "\n\n  "5822      MEMBER_FIELD@8208..89965823        FIELD_METHOD@8208..89965824          FIELD_NAME_FIXED@8208..82185825            NAME@8208..82185826              IDENT@8208..8218 "mergePatch"5827          PARAMS_DESC@8218..82335828            L_PAREN@8218..8219 "("5829            PARAM@8219..82255830              DESTRUCT_FULL@8219..82255831                NAME@8219..82255832                  IDENT@8219..8225 "target"5833            COMMA@8225..8226 ","5834            WHITESPACE@8226..8227 " "5835            PARAM@8227..82325836              DESTRUCT_FULL@8227..82325837                NAME@8227..82325838                  IDENT@8227..8232 "patch"5839            R_PAREN@8232..8233 ")"5840          COLONCOLON@8233..8235 "::"5841          WHITESPACE@8235..8240 "\n    "5842          EXPR_IF_THEN_ELSE@8240..89965843            IF_KW@8240..8242 "if"5844            WHITESPACE@8242..8243 " "5845            EXPR_APPLY@8243..82625846              EXPR_INDEX@8243..82555847                EXPR_VAR@8243..82465848                  NAME@8243..82465849                    IDENT@8243..8246 "std"5850                DOT@8246..8247 "."5851                NAME@8247..82555852                  IDENT@8247..8255 "isObject"5853              ARGS_DESC@8255..82625854                L_PAREN@8255..8256 "("5855                ARG@8256..82615856                  EXPR_VAR@8256..82615857                    NAME@8256..82615858                      IDENT@8256..8261 "patch"5859                R_PAREN@8261..8262 ")"5860            WHITESPACE@8262..8263 " "5861            THEN_KW@8263..8267 "then"5862            WHITESPACE@8267..8274 "\n      "5863            TRUE_EXPR@8274..89755864              EXPR_LOCAL@8274..89755865                LOCAL_KW@8274..8279 "local"5866                WHITESPACE@8279..8280 " "5867                BIND_DESTRUCT@8280..83475868                  DESTRUCT_FULL@8280..82935869                    NAME@8280..82935870                      IDENT@8280..8293 "target_object"5871                  WHITESPACE@8293..8294 " "5872                  ASSIGN@8294..8295 "="5873                  WHITESPACE@8295..8304 "\n        "5874                  EXPR_IF_THEN_ELSE@8304..83475875                    IF_KW@8304..8306 "if"5876                    WHITESPACE@8306..8307 " "5877                    EXPR_APPLY@8307..83275878                      EXPR_INDEX@8307..83195879                        EXPR_VAR@8307..83105880                          NAME@8307..83105881                            IDENT@8307..8310 "std"5882                        DOT@8310..8311 "."5883                        NAME@8311..83195884                          IDENT@8311..8319 "isObject"5885                      ARGS_DESC@8319..83275886                        L_PAREN@8319..8320 "("5887                        ARG@8320..83265888                          EXPR_VAR@8320..83265889                            NAME@8320..83265890                              IDENT@8320..8326 "target"5891                        R_PAREN@8326..8327 ")"5892                    WHITESPACE@8327..8328 " "5893                    THEN_KW@8328..8332 "then"5894                    WHITESPACE@8332..8333 " "5895                    TRUE_EXPR@8333..83395896                      EXPR_VAR@8333..83395897                        NAME@8333..83395898                          IDENT@8333..8339 "target"5899                    WHITESPACE@8339..8340 " "5900                    ELSE_KW@8340..8344 "else"5901                    WHITESPACE@8344..8345 " "5902                    FALSE_EXPR@8345..83475903                      EXPR_OBJECT@8345..83475904                        OBJ_BODY_MEMBER_LIST@8345..83475905                          L_BRACE@8345..8346 "{"5906                          R_BRACE@8346..8347 "}"5907                SEMI@8347..8348 ";"5908                WHITESPACE@8348..8356 "\n\n      "5909                EXPR_LOCAL@8356..89755910                  LOCAL_KW@8356..8361 "local"5911                  WHITESPACE@8361..8362 " "5912                  BIND_DESTRUCT@8362..84615913                    DESTRUCT_FULL@8362..83755914                      NAME@8362..83755915                        IDENT@8362..8375 "target_fields"5916                    WHITESPACE@8375..8376 " "5917                    ASSIGN@8376..8377 "="5918                    WHITESPACE@8377..8386 "\n        "5919                    EXPR_IF_THEN_ELSE@8386..84615920                      IF_KW@8386..8388 "if"5921                      WHITESPACE@8388..8389 " "5922                      EXPR_APPLY@8389..84165923                        EXPR_INDEX@8389..84015924                          EXPR_VAR@8389..83925925                            NAME@8389..83925926                              IDENT@8389..8392 "std"5927                          DOT@8392..8393 "."5928                          NAME@8393..84015929                            IDENT@8393..8401 "isObject"5930                        ARGS_DESC@8401..84165931                          L_PAREN@8401..8402 "("5932                          ARG@8402..84155933                            EXPR_VAR@8402..84155934                              NAME@8402..84155935                                IDENT@8402..8415 "target_object"5936                          R_PAREN@8415..8416 ")"5937                      WHITESPACE@8416..8417 " "5938                      THEN_KW@8417..8421 "then"5939                      WHITESPACE@8421..8422 " "5940                      TRUE_EXPR@8422..84535941                        EXPR_APPLY@8422..84535942                          EXPR_INDEX@8422..84385943                            EXPR_VAR@8422..84255944                              NAME@8422..84255945                                IDENT@8422..8425 "std"5946                            DOT@8425..8426 "."5947                            NAME@8426..84385948                              IDENT@8426..8438 "objectFields"5949                          ARGS_DESC@8438..84535950                            L_PAREN@8438..8439 "("5951                            ARG@8439..84525952                              EXPR_VAR@8439..84525953                                NAME@8439..84525954                                  IDENT@8439..8452 "target_object"5955                            R_PAREN@8452..8453 ")"5956                      WHITESPACE@8453..8454 " "5957                      ELSE_KW@8454..8458 "else"5958                      WHITESPACE@8458..8459 " "5959                      FALSE_EXPR@8459..84615960                        EXPR_ARRAY@8459..84615961                          L_BRACK@8459..8460 "["5962                          R_BRACK@8460..8461 "]"5963                  SEMI@8461..8462 ";"5964                  WHITESPACE@8462..8470 "\n\n      "5965                  EXPR_LOCAL@8470..89755966                    LOCAL_KW@8470..8475 "local"5967                    WHITESPACE@8475..8476 " "5968                    BIND_DESTRUCT@8476..85465969                      DESTRUCT_FULL@8476..84875970                        NAME@8476..84875971                          IDENT@8476..8487 "null_fields"5972                      WHITESPACE@8487..8488 " "5973                      ASSIGN@8488..8489 "="5974                      WHITESPACE@8489..8490 " "5975                      EXPR_ARRAY_COMP@8490..85465976                        L_BRACK@8490..8491 "["5977                        EXPR_VAR@8491..84925978                          NAME@8491..84925979                            IDENT@8491..8492 "k"5980                        WHITESPACE@8492..8493 " "5981                        FOR_SPEC@8493..85255982                          FOR_KW@8493..8496 "for"5983                          WHITESPACE@8496..8497 " "5984                          NAME@8497..84985985                            IDENT@8497..8498 "k"5986                          WHITESPACE@8498..8499 " "5987                          IN_KW@8499..8501 "in"5988                          WHITESPACE@8501..8502 " "5989                          EXPR_APPLY@8502..85255990                            EXPR_INDEX@8502..85185991                              EXPR_VAR@8502..85055992                                NAME@8502..85055993                                  IDENT@8502..8505 "std"5994                              DOT@8505..8506 "."5995                              NAME@8506..85185996                                IDENT@8506..8518 "objectFields"5997                            ARGS_DESC@8518..85255998                              L_PAREN@8518..8519 "("5999                              ARG@8519..85246000                                EXPR_VAR@8519..85246001                                  NAME@8519..85246002                                    IDENT@8519..8524 "patch"6003                              R_PAREN@8524..8525 ")"6004                        WHITESPACE@8525..8526 " "6005                        IF_SPEC@8526..85456006                          IF_KW@8526..8528 "if"6007                          WHITESPACE@8528..8529 " "6008                          EXPR_BINARY@8529..85456009                            LHS_EXPR@8529..85376010                              EXPR_INDEX_EXPR@8529..85376011                                LHS_EXPR@8529..85346012                                  EXPR_VAR@8529..85346013                                    NAME@8529..85346014                                      IDENT@8529..8534 "patch"6015                                L_BRACK@8534..8535 "["6016                                EXPR_VAR@8535..85366017                                  NAME@8535..85366018                                    IDENT@8535..8536 "k"6019                                R_BRACK@8536..8537 "]"6020                            WHITESPACE@8537..8538 " "6021                            EQ@8538..8540 "=="6022                            WHITESPACE@8540..8541 " "6023                            EXPR_LITERAL@8541..85456024                              NULL_KW@8541..8545 "null"6025                        R_BRACK@8545..8546 "]"6026                    SEMI@8546..8547 ";"6027                    WHITESPACE@8547..8554 "\n      "6028                    EXPR_LOCAL@8554..89756029                      LOCAL_KW@8554..8559 "local"6030                      WHITESPACE@8559..8560 " "6031                      BIND_DESTRUCT@8560..86266032                        DESTRUCT_FULL@8560..85716033                          NAME@8560..85716034                            IDENT@8560..8571 "both_fields"6035                        WHITESPACE@8571..8572 " "6036                        ASSIGN@8572..8573 "="6037                        WHITESPACE@8573..8574 " "6038                        EXPR_APPLY@8574..86266039                          EXPR_INDEX@8574..85866040                            EXPR_VAR@8574..85776041                              NAME@8574..85776042                                IDENT@8574..8577 "std"6043                            DOT@8577..8578 "."6044                            NAME@8578..85866045                              IDENT@8578..8586 "setUnion"6046                          ARGS_DESC@8586..86266047                            L_PAREN@8586..8587 "("6048                            ARG@8587..86006049                              EXPR_VAR@8587..86006050                                NAME@8587..86006051                                  IDENT@8587..8600 "target_fields"6052                            COMMA@8600..8601 ","6053                            WHITESPACE@8601..8602 " "6054                            ARG@8602..86256055                              EXPR_APPLY@8602..86256056                                EXPR_INDEX@8602..86186057                                  EXPR_VAR@8602..86056058                                    NAME@8602..86056059                                      IDENT@8602..8605 "std"6060                                  DOT@8605..8606 "."6061                                  NAME@8606..86186062                                    IDENT@8606..8618 "objectFields"6063                                ARGS_DESC@8618..86256064                                  L_PAREN@8618..8619 "("6065                                  ARG@8619..86246066                                    EXPR_VAR@8619..86246067                                      NAME@8619..86246068                                        IDENT@8619..8624 "patch"6069                                  R_PAREN@8624..8625 ")"6070                            R_PAREN@8625..8626 ")"6071                      SEMI@8626..8627 ";"6072                      WHITESPACE@8627..8635 "\n\n      "6073                      EXPR_OBJECT@8635..89756074                        OBJ_BODY_MEMBER_LIST@8635..89756075                          L_BRACE@8635..8636 "{"6076                          WHITESPACE@8636..8645 "\n        "6077                          MEMBER_FIELD@8645..89676078                            FIELD_NORMAL@8645..89126079                              FIELD_NAME_DYNAMIC@8645..86486080                                L_BRACK@8645..8646 "["6081                                EXPR_VAR@8646..86476082                                  NAME@8646..86476083                                    IDENT@8646..8647 "k"6084                                R_BRACK@8647..8648 "]"6085                              COLON@8648..8649 ":"6086                              WHITESPACE@8649..8660 "\n          "6087                              EXPR_IF_THEN_ELSE@8660..89126088                                IF_KW@8660..8662 "if"6089                                WHITESPACE@8662..8663 " "6090                                EXPR_UNARY@8663..86876091                                  NOT@8663..8664 "!"6092                                  EXPR_APPLY@8664..86876093                                    EXPR_INDEX@8664..86776094                                      EXPR_VAR@8664..86676095                                        NAME@8664..86676096                                          IDENT@8664..8667 "std"6097                                      DOT@8667..8668 "."6098                                      NAME@8668..86776099                                        IDENT@8668..8677 "objectHas"6100                                    ARGS_DESC@8677..86876101                                      L_PAREN@8677..8678 "("6102                                      ARG@8678..86836103                                        EXPR_VAR@8678..86836104                                          NAME@8678..86836105                                            IDENT@8678..8683 "patch"6106                                      COMMA@8683..8684 ","6107                                      WHITESPACE@8684..8685 " "6108                                      ARG@8685..86866109                                        EXPR_VAR@8685..86866110                                          NAME@8685..86866111                                            IDENT@8685..8686 "k"6112                                      R_PAREN@8686..8687 ")"6113                                WHITESPACE@8687..8688 " "6114                                THEN_KW@8688..8692 "then"6115                                WHITESPACE@8692..8705 "\n            "6116                                TRUE_EXPR@8705..87216117                                  EXPR_INDEX_EXPR@8705..87216118                                    LHS_EXPR@8705..87186119                                      EXPR_VAR@8705..87186120                                        NAME@8705..87186121                                          IDENT@8705..8718 "target_object"6122                                    L_BRACK@8718..8719 "["6123                                    EXPR_VAR@8719..87206124                                      NAME@8719..87206125                                        IDENT@8719..8720 "k"6126                                    R_BRACK@8720..8721 "]"6127                                WHITESPACE@8721..8732 "\n          "6128                                ELSE_KW@8732..8736 "else"6129                                WHITESPACE@8736..8737 " "6130                                FALSE_EXPR@8737..89126131                                  EXPR_IF_THEN_ELSE@8737..89126132                                    IF_KW@8737..8739 "if"6133                                    WHITESPACE@8739..8740 " "6134                                    EXPR_UNARY@8740..87726135                                      NOT@8740..8741 "!"6136                                      EXPR_APPLY@8741..87726137                                        EXPR_INDEX@8741..87546138                                          EXPR_VAR@8741..87446139                                            NAME@8741..87446140                                              IDENT@8741..8744 "std"6141                                          DOT@8744..8745 "."6142                                          NAME@8745..87546143                                            IDENT@8745..8754 "objectHas"6144                                        ARGS_DESC@8754..87726145                                          L_PAREN@8754..8755 "("6146                                          ARG@8755..87686147                                            EXPR_VAR@8755..87686148                                              NAME@8755..87686149                                                IDENT@8755..8768 "target_object"6150                                          COMMA@8768..8769 ","6151                                          WHITESPACE@8769..8770 " "6152                                          ARG@8770..87716153                                            EXPR_VAR@8770..87716154                                              NAME@8770..87716155                                                IDENT@8770..8771 "k"6156                                          R_PAREN@8771..8772 ")"6157                                    WHITESPACE@8772..8773 " "6158                                    THEN_KW@8773..8777 "then"6159                                    WHITESPACE@8777..8790 "\n            "6160                                    TRUE_EXPR@8790..88316161                                      EXPR_APPLY@8790..88316162                                        EXPR_INDEX@8790..88046163                                          EXPR_VAR@8790..87936164                                            NAME@8790..87936165                                              IDENT@8790..8793 "std"6166                                          DOT@8793..8794 "."6167                                          NAME@8794..88046168                                            IDENT@8794..8804 "mergePatch"6169                                        ARGS_DESC@8804..88316170                                          L_PAREN@8804..8805 "("6171                                          ARG@8805..88096172                                            EXPR_LITERAL@8805..88096173                                              NULL_KW@8805..8809 "null"6174                                          COMMA@8809..8810 ","6175                                          WHITESPACE@8810..8811 " "6176                                          ARG@8811..88196177                                            EXPR_INDEX_EXPR@8811..88196178                                              LHS_EXPR@8811..88166179                                                EXPR_VAR@8811..88166180                                                  NAME@8811..88166181                                                    IDENT@8811..8816 "patch"6182                                              L_BRACK@8816..8817 "["6183                                              EXPR_VAR@8817..88186184                                                NAME@8817..88186185                                                  IDENT@8817..8818 "k"6186                                              R_BRACK@8818..8819 "]"6187                                          R_PAREN@8819..8820 ")"6188                                          WHITESPACE@8820..8821 " "6189                                          TAILSTRICT_KW@8821..8831 "tailstrict"6190                                    WHITESPACE@8831..8842 "\n          "6191                                    ELSE_KW@8842..8846 "else"6192                                    WHITESPACE@8846..8859 "\n            "6193                                    FALSE_EXPR@8859..89126194                                      EXPR_APPLY@8859..89126195                                        EXPR_INDEX@8859..88736196                                          EXPR_VAR@8859..88626197                                            NAME@8859..88626198                                              IDENT@8859..8862 "std"6199                                          DOT@8862..8863 "."6200                                          NAME@8863..88736201                                            IDENT@8863..8873 "mergePatch"6202                                        ARGS_DESC@8873..89126203                                          L_PAREN@8873..8874 "("6204                                          ARG@8874..88906205                                            EXPR_INDEX_EXPR@8874..88906206                                              LHS_EXPR@8874..88876207                                                EXPR_VAR@8874..88876208                                                  NAME@8874..88876209                                                    IDENT@8874..8887 "target_object"6210                                              L_BRACK@8887..8888 "["6211                                              EXPR_VAR@8888..88896212                                                NAME@8888..88896213                                                  IDENT@8888..8889 "k"6214                                              R_BRACK@8889..8890 "]"6215                                          COMMA@8890..8891 ","6216                                          WHITESPACE@8891..8892 " "6217                                          ARG@8892..89006218                                            EXPR_INDEX_EXPR@8892..89006219                                              LHS_EXPR@8892..88976220                                                EXPR_VAR@8892..88976221                                                  NAME@8892..88976222                                                    IDENT@8892..8897 "patch"6223                                              L_BRACK@8897..8898 "["6224                                              EXPR_VAR@8898..88996225                                                NAME@8898..88996226                                                  IDENT@8898..8899 "k"6227                                              R_BRACK@8899..8900 "]"6228                                          R_PAREN@8900..8901 ")"6229                                          WHITESPACE@8901..8902 " "6230                                          TAILSTRICT_KW@8902..8912 "tailstrict"6231                            WHITESPACE@8912..8921 "\n        "6232                            FOR_SPEC@8921..89676233                              FOR_KW@8921..8924 "for"6234                              WHITESPACE@8924..8925 " "6235                              NAME@8925..89266236                                IDENT@8925..8926 "k"6237                              WHITESPACE@8926..8927 " "6238                              IN_KW@8927..8929 "in"6239                              WHITESPACE@8929..8930 " "6240                              EXPR_APPLY@8930..89676241                                EXPR_INDEX@8930..89416242                                  EXPR_VAR@8930..89336243                                    NAME@8930..89336244                                      IDENT@8930..8933 "std"6245                                  DOT@8933..8934 "."6246                                  NAME@8934..89416247                                    IDENT@8934..8941 "setDiff"6248                                ARGS_DESC@8941..89676249                                  L_PAREN@8941..8942 "("6250                                  ARG@8942..89536251                                    EXPR_VAR@8942..89536252                                      NAME@8942..89536253                                        IDENT@8942..8953 "both_fields"6254                                  COMMA@8953..8954 ","6255                                  WHITESPACE@8954..8955 " "6256                                  ARG@8955..89666257                                    EXPR_VAR@8955..89666258                                      NAME@8955..89666259                                        IDENT@8955..8966 "null_fields"6260                                  R_PAREN@8966..8967 ")"6261                          WHITESPACE@8967..8974 "\n      "6262                          R_BRACE@8974..8975 "}"6263            WHITESPACE@8975..8980 "\n    "6264            ELSE_KW@8980..8984 "else"6265            WHITESPACE@8984..8991 "\n      "6266            FALSE_EXPR@8991..89966267              EXPR_VAR@8991..89966268                NAME@8991..89966269                  IDENT@8991..8996 "patch"6270      COMMA@8996..8997 ","6271      WHITESPACE@8997..9001 "\n\n  "6272      MEMBER_FIELD@9001..91076273        FIELD_METHOD@9001..91076274          FIELD_NAME_FIXED@9001..90046275            NAME@9001..90046276              IDENT@9001..9004 "get"6277          PARAMS_DESC@9004..90416278            L_PAREN@9004..9005 "("6279            PARAM@9005..90066280              DESTRUCT_FULL@9005..90066281                NAME@9005..90066282                  IDENT@9005..9006 "o"6283            COMMA@9006..9007 ","6284            WHITESPACE@9007..9008 " "6285            PARAM@9008..90096286              DESTRUCT_FULL@9008..90096287                NAME@9008..90096288                  IDENT@9008..9009 "f"6289            COMMA@9009..9010 ","6290            WHITESPACE@9010..9011 " "6291            PARAM@9011..90236292              DESTRUCT_FULL@9011..90186293                NAME@9011..90186294                  IDENT@9011..9018 "default"6295              ASSIGN@9018..9019 "="6296              EXPR_LITERAL@9019..90236297                NULL_KW@9019..9023 "null"6298            COMMA@9023..9024 ","6299            WHITESPACE@9024..9025 " "6300            PARAM@9025..90406301              DESTRUCT_FULL@9025..90356302                NAME@9025..90356303                  IDENT@9025..9035 "inc_hidden"6304              ASSIGN@9035..9036 "="6305              EXPR_LITERAL@9036..90406306                TRUE_KW@9036..9040 "true"6307            R_PAREN@9040..9041 ")"6308          COLONCOLON@9041..9043 "::"6309          WHITESPACE@9043..9048 "\n    "6310          EXPR_IF_THEN_ELSE@9048..91076311            IF_KW@9048..9050 "if"6312            WHITESPACE@9050..9051 " "6313            EXPR_APPLY@9051..90846314              EXPR_INDEX@9051..90666315                EXPR_VAR@9051..90546316                  NAME@9051..90546317                    IDENT@9051..9054 "std"6318                DOT@9054..9055 "."6319                NAME@9055..90666320                  IDENT@9055..9066 "objectHasEx"6321              ARGS_DESC@9066..90846322                L_PAREN@9066..9067 "("6323                ARG@9067..90686324                  EXPR_VAR@9067..90686325                    NAME@9067..90686326                      IDENT@9067..9068 "o"6327                COMMA@9068..9069 ","6328                WHITESPACE@9069..9070 " "6329                ARG@9070..90716330                  EXPR_VAR@9070..90716331                    NAME@9070..90716332                      IDENT@9070..9071 "f"6333                COMMA@9071..9072 ","6334                WHITESPACE@9072..9073 " "6335                ARG@9073..90836336                  EXPR_VAR@9073..90836337                    NAME@9073..90836338                      IDENT@9073..9083 "inc_hidden"6339                R_PAREN@9083..9084 ")"6340            WHITESPACE@9084..9085 " "6341            THEN_KW@9085..9089 "then"6342            WHITESPACE@9089..9090 " "6343            TRUE_EXPR@9090..90946344              EXPR_INDEX_EXPR@9090..90946345                LHS_EXPR@9090..90916346                  EXPR_VAR@9090..90916347                    NAME@9090..90916348                      IDENT@9090..9091 "o"6349                L_BRACK@9091..9092 "["6350                EXPR_VAR@9092..90936351                  NAME@9092..90936352                    IDENT@9092..9093 "f"6353                R_BRACK@9093..9094 "]"6354            WHITESPACE@9094..9095 " "6355            ELSE_KW@9095..9099 "else"6356            WHITESPACE@9099..9100 " "6357            FALSE_EXPR@9100..91076358              EXPR_VAR@9100..91076359                NAME@9100..91076360                  IDENT@9100..9107 "default"6361      COMMA@9107..9108 ","6362      WHITESPACE@9108..9112 "\n\n  "6363      MEMBER_FIELD@9112..91626364        FIELD_METHOD@9112..91626365          FIELD_NAME_FIXED@9112..91246366            NAME@9112..91246367              IDENT@9112..9124 "objectFields"6368          PARAMS_DESC@9124..91276369            L_PAREN@9124..9125 "("6370            PARAM@9125..91266371              DESTRUCT_FULL@9125..91266372                NAME@9125..91266373                  IDENT@9125..9126 "o"6374            R_PAREN@9126..9127 ")"6375          COLONCOLON@9127..9129 "::"6376          WHITESPACE@9129..9134 "\n    "6377          EXPR_APPLY@9134..91626378            EXPR_INDEX@9134..91526379              EXPR_VAR@9134..91376380                NAME@9134..91376381                  IDENT@9134..9137 "std"6382              DOT@9137..9138 "."6383              NAME@9138..91526384                IDENT@9138..9152 "objectFieldsEx"6385            ARGS_DESC@9152..91626386              L_PAREN@9152..9153 "("6387              ARG@9153..91546388                EXPR_VAR@9153..91546389                  NAME@9153..91546390                    IDENT@9153..9154 "o"6391              COMMA@9154..9155 ","6392              WHITESPACE@9155..9156 " "6393              ARG@9156..91616394                EXPR_LITERAL@9156..91616395                  FALSE_KW@9156..9161 "false"6396              R_PAREN@9161..9162 ")"6397      COMMA@9162..9163 ","6398      WHITESPACE@9163..9167 "\n\n  "6399      MEMBER_FIELD@9167..92196400        FIELD_METHOD@9167..92196401          FIELD_NAME_FIXED@9167..91826402            NAME@9167..91826403              IDENT@9167..9182 "objectFieldsAll"6404          PARAMS_DESC@9182..91856405            L_PAREN@9182..9183 "("6406            PARAM@9183..91846407              DESTRUCT_FULL@9183..91846408                NAME@9183..91846409                  IDENT@9183..9184 "o"6410            R_PAREN@9184..9185 ")"6411          COLONCOLON@9185..9187 "::"6412          WHITESPACE@9187..9192 "\n    "6413          EXPR_APPLY@9192..92196414            EXPR_INDEX@9192..92106415              EXPR_VAR@9192..91956416                NAME@9192..91956417                  IDENT@9192..9195 "std"6418              DOT@9195..9196 "."6419              NAME@9196..92106420                IDENT@9196..9210 "objectFieldsEx"6421            ARGS_DESC@9210..92196422              L_PAREN@9210..9211 "("6423              ARG@9211..92126424                EXPR_VAR@9211..92126425                  NAME@9211..92126426                    IDENT@9211..9212 "o"6427              COMMA@9212..9213 ","6428              WHITESPACE@9213..9214 " "6429              ARG@9214..92186430                EXPR_LITERAL@9214..92186431                  TRUE_KW@9214..9218 "true"6432              R_PAREN@9218..9219 ")"6433      COMMA@9219..9220 ","6434      WHITESPACE@9220..9224 "\n\n  "6435      MEMBER_FIELD@9224..92746436        FIELD_METHOD@9224..92746437          FIELD_NAME_FIXED@9224..92336438            NAME@9224..92336439              IDENT@9224..9233 "objectHas"6440          PARAMS_DESC@9233..92396441            L_PAREN@9233..9234 "("6442            PARAM@9234..92356443              DESTRUCT_FULL@9234..92356444                NAME@9234..92356445                  IDENT@9234..9235 "o"6446            COMMA@9235..9236 ","6447            WHITESPACE@9236..9237 " "6448            PARAM@9237..92386449              DESTRUCT_FULL@9237..92386450                NAME@9237..92386451                  IDENT@9237..9238 "f"6452            R_PAREN@9238..9239 ")"6453          COLONCOLON@9239..9241 "::"6454          WHITESPACE@9241..9246 "\n    "6455          EXPR_APPLY@9246..92746456            EXPR_INDEX@9246..92616457              EXPR_VAR@9246..92496458                NAME@9246..92496459                  IDENT@9246..9249 "std"6460              DOT@9249..9250 "."6461              NAME@9250..92616462                IDENT@9250..9261 "objectHasEx"6463            ARGS_DESC@9261..92746464              L_PAREN@9261..9262 "("6465              ARG@9262..92636466                EXPR_VAR@9262..92636467                  NAME@9262..92636468                    IDENT@9262..9263 "o"6469              COMMA@9263..9264 ","6470              WHITESPACE@9264..9265 " "6471              ARG@9265..92666472                EXPR_VAR@9265..92666473                  NAME@9265..92666474                    IDENT@9265..9266 "f"6475              COMMA@9266..9267 ","6476              WHITESPACE@9267..9268 " "6477              ARG@9268..92736478                EXPR_LITERAL@9268..92736479                  FALSE_KW@9268..9273 "false"6480              R_PAREN@9273..9274 ")"6481      COMMA@9274..9275 ","6482      WHITESPACE@9275..9279 "\n\n  "6483      MEMBER_FIELD@9279..93316484        FIELD_METHOD@9279..93316485          FIELD_NAME_FIXED@9279..92916486            NAME@9279..92916487              IDENT@9279..9291 "objectHasAll"6488          PARAMS_DESC@9291..92976489            L_PAREN@9291..9292 "("6490            PARAM@9292..92936491              DESTRUCT_FULL@9292..92936492                NAME@9292..92936493                  IDENT@9292..9293 "o"6494            COMMA@9293..9294 ","6495            WHITESPACE@9294..9295 " "6496            PARAM@9295..92966497              DESTRUCT_FULL@9295..92966498                NAME@9295..92966499                  IDENT@9295..9296 "f"6500            R_PAREN@9296..9297 ")"6501          COLONCOLON@9297..9299 "::"6502          WHITESPACE@9299..9304 "\n    "6503          EXPR_APPLY@9304..93316504            EXPR_INDEX@9304..93196505              EXPR_VAR@9304..93076506                NAME@9304..93076507                  IDENT@9304..9307 "std"6508              DOT@9307..9308 "."6509              NAME@9308..93196510                IDENT@9308..9319 "objectHasEx"6511            ARGS_DESC@9319..93316512              L_PAREN@9319..9320 "("6513              ARG@9320..93216514                EXPR_VAR@9320..93216515                  NAME@9320..93216516                    IDENT@9320..9321 "o"6517              COMMA@9321..9322 ","6518              WHITESPACE@9322..9323 " "6519              ARG@9323..93246520                EXPR_VAR@9323..93246521                  NAME@9323..93246522                    IDENT@9323..9324 "f"6523              COMMA@9324..9325 ","6524              WHITESPACE@9325..9326 " "6525              ARG@9326..93306526                EXPR_LITERAL@9326..93306527                  TRUE_KW@9326..9330 "true"6528              R_PAREN@9330..9331 ")"6529      COMMA@9331..9332 ","6530      WHITESPACE@9332..9336 "\n\n  "6531      MEMBER_FIELD@9336..93936532        FIELD_METHOD@9336..93936533          FIELD_NAME_FIXED@9336..93486534            NAME@9336..93486535              IDENT@9336..9348 "objectValues"6536          PARAMS_DESC@9348..93516537            L_PAREN@9348..9349 "("6538            PARAM@9349..93506539              DESTRUCT_FULL@9349..93506540                NAME@9349..93506541                  IDENT@9349..9350 "o"6542            R_PAREN@9350..9351 ")"6543          COLONCOLON@9351..9353 "::"6544          WHITESPACE@9353..9358 "\n    "6545          EXPR_ARRAY_COMP@9358..93936546            L_BRACK@9358..9359 "["6547            EXPR_INDEX_EXPR@9359..93636548              LHS_EXPR@9359..93606549                EXPR_VAR@9359..93606550                  NAME@9359..93606551                    IDENT@9359..9360 "o"6552              L_BRACK@9360..9361 "["6553              EXPR_VAR@9361..93626554                NAME@9361..93626555                  IDENT@9361..9362 "k"6556              R_BRACK@9362..9363 "]"6557            WHITESPACE@9363..9364 " "6558            FOR_SPEC@9364..93926559              FOR_KW@9364..9367 "for"6560              WHITESPACE@9367..9368 " "6561              NAME@9368..93696562                IDENT@9368..9369 "k"6563              WHITESPACE@9369..9370 " "6564              IN_KW@9370..9372 "in"6565              WHITESPACE@9372..9373 " "6566              EXPR_APPLY@9373..93926567                EXPR_INDEX@9373..93896568                  EXPR_VAR@9373..93766569                    NAME@9373..93766570                      IDENT@9373..9376 "std"6571                  DOT@9376..9377 "."6572                  NAME@9377..93896573                    IDENT@9377..9389 "objectFields"6574                ARGS_DESC@9389..93926575                  L_PAREN@9389..9390 "("6576                  ARG@9390..93916577                    EXPR_VAR@9390..93916578                      NAME@9390..93916579                        IDENT@9390..9391 "o"6580                  R_PAREN@9391..9392 ")"6581            R_BRACK@9392..9393 "]"6582      COMMA@9393..9394 ","6583      WHITESPACE@9394..9398 "\n\n  "6584      MEMBER_FIELD@9398..94616585        FIELD_METHOD@9398..94616586          FIELD_NAME_FIXED@9398..94136587            NAME@9398..94136588              IDENT@9398..9413 "objectValuesAll"6589          PARAMS_DESC@9413..94166590            L_PAREN@9413..9414 "("6591            PARAM@9414..94156592              DESTRUCT_FULL@9414..94156593                NAME@9414..94156594                  IDENT@9414..9415 "o"6595            R_PAREN@9415..9416 ")"6596          COLONCOLON@9416..9418 "::"6597          WHITESPACE@9418..9423 "\n    "6598          EXPR_ARRAY_COMP@9423..94616599            L_BRACK@9423..9424 "["6600            EXPR_INDEX_EXPR@9424..94286601              LHS_EXPR@9424..94256602                EXPR_VAR@9424..94256603                  NAME@9424..94256604                    IDENT@9424..9425 "o"6605              L_BRACK@9425..9426 "["6606              EXPR_VAR@9426..94276607                NAME@9426..94276608                  IDENT@9426..9427 "k"6609              R_BRACK@9427..9428 "]"6610            WHITESPACE@9428..9429 " "6611            FOR_SPEC@9429..94606612              FOR_KW@9429..9432 "for"6613              WHITESPACE@9432..9433 " "6614              NAME@9433..94346615                IDENT@9433..9434 "k"6616              WHITESPACE@9434..9435 " "6617              IN_KW@9435..9437 "in"6618              WHITESPACE@9437..9438 " "6619              EXPR_APPLY@9438..94606620                EXPR_INDEX@9438..94576621                  EXPR_VAR@9438..94416622                    NAME@9438..94416623                      IDENT@9438..9441 "std"6624                  DOT@9441..9442 "."6625                  NAME@9442..94576626                    IDENT@9442..9457 "objectFieldsAll"6627                ARGS_DESC@9457..94606628                  L_PAREN@9457..9458 "("6629                  ARG@9458..94596630                    EXPR_VAR@9458..94596631                      NAME@9458..94596632                        IDENT@9458..9459 "o"6633                  R_PAREN@9459..9460 ")"6634            R_BRACK@9460..9461 "]"6635      COMMA@9461..9462 ","6636      WHITESPACE@9462..9466 "\n\n  "6637      MEMBER_FIELD@9466..96006638        FIELD_METHOD@9466..96006639          FIELD_NAME_FIXED@9466..94776640            NAME@9466..94776641              IDENT@9466..9477 "resolvePath"6642          PARAMS_DESC@9477..94836643            L_PAREN@9477..9478 "("6644            PARAM@9478..94796645              DESTRUCT_FULL@9478..94796646                NAME@9478..94796647                  IDENT@9478..9479 "f"6648            COMMA@9479..9480 ","6649            WHITESPACE@9480..9481 " "6650            PARAM@9481..94826651              DESTRUCT_FULL@9481..94826652                NAME@9481..94826653                  IDENT@9481..9482 "r"6654            R_PAREN@9482..9483 ")"6655          COLONCOLON@9483..9485 "::"6656          WHITESPACE@9485..9490 "\n    "6657          EXPR_LOCAL@9490..96006658            LOCAL_KW@9490..9495 "local"6659            WHITESPACE@9495..9496 " "6660            BIND_DESTRUCT@9496..95196661              DESTRUCT_FULL@9496..94996662                NAME@9496..94996663                  IDENT@9496..9499 "arr"6664              WHITESPACE@9499..9500 " "6665              ASSIGN@9500..9501 "="6666              WHITESPACE@9501..9502 " "6667              EXPR_APPLY@9502..95196668                EXPR_INDEX@9502..95116669                  EXPR_VAR@9502..95056670                    NAME@9502..95056671                      IDENT@9502..9505 "std"6672                  DOT@9505..9506 "."6673                  NAME@9506..95116674                    IDENT@9506..9511 "split"6675                ARGS_DESC@9511..95196676                  L_PAREN@9511..9512 "("6677                  ARG@9512..95136678                    EXPR_VAR@9512..95136679                      NAME@9512..95136680                        IDENT@9512..9513 "f"6681                  COMMA@9513..9514 ","6682                  WHITESPACE@9514..9515 " "6683                  ARG@9515..95186684                    EXPR_STRING@9515..95186685                      STRING_SINGLE@9515..9518 "'/'"6686                  R_PAREN@9518..9519 ")"6687            SEMI@9519..9520 ";"6688            WHITESPACE@9520..9525 "\n    "6689            EXPR_APPLY@9525..96006690              EXPR_INDEX@9525..95336691                EXPR_VAR@9525..95286692                  NAME@9525..95286693                    IDENT@9525..9528 "std"6694                DOT@9528..9529 "."6695                NAME@9529..95336696                  IDENT@9529..9533 "join"6697              ARGS_DESC@9533..96006698                L_PAREN@9533..9534 "("6699                ARG@9534..95376700                  EXPR_STRING@9534..95376701                    STRING_SINGLE@9534..9537 "'/'"6702                COMMA@9537..9538 ","6703                WHITESPACE@9538..9539 " "6704                ARG@9539..95996705                  EXPR_BINARY@9539..95996706                    LHS_EXPR@9539..95936707                      EXPR_APPLY@9539..95936708                        EXPR_INDEX@9539..95526709                          EXPR_VAR@9539..95426710                            NAME@9539..95426711                              IDENT@9539..9542 "std"6712                          DOT@9542..9543 "."6713                          NAME@9543..95526714                            IDENT@9543..9552 "makeArray"6715                        ARGS_DESC@9552..95936716                          L_PAREN@9552..9553 "("6717                          ARG@9553..95726718                            EXPR_BINARY@9553..95726719                              LHS_EXPR@9553..95686720                                EXPR_APPLY@9553..95686721                                  EXPR_INDEX@9553..95636722                                    EXPR_VAR@9553..95566723                                      NAME@9553..95566724                                        IDENT@9553..9556 "std"6725                                    DOT@9556..9557 "."6726                                    NAME@9557..95636727                                      IDENT@9557..9563 "length"6728                                  ARGS_DESC@9563..95686729                                    L_PAREN@9563..9564 "("6730                                    ARG@9564..95676731                                      EXPR_VAR@9564..95676732                                        NAME@9564..95676733                                          IDENT@9564..9567 "arr"6734                                    R_PAREN@9567..9568 ")"6735                              WHITESPACE@9568..9569 " "6736                              MINUS@9569..9570 "-"6737                              WHITESPACE@9570..9571 " "6738                              EXPR_NUMBER@9571..95726739                                FLOAT@9571..9572 "1"6740                          COMMA@9572..9573 ","6741                          WHITESPACE@9573..9574 " "6742                          ARG@9574..95926743                            EXPR_FUNCTION@9574..95926744                              FUNCTION_KW@9574..9582 "function"6745                              PARAMS_DESC@9582..95856746                                L_PAREN@9582..9583 "("6747                                PARAM@9583..95846748                                  DESTRUCT_FULL@9583..95846749                                    NAME@9583..95846750                                      IDENT@9583..9584 "i"6751                                R_PAREN@9584..9585 ")"6752                              WHITESPACE@9585..9586 " "6753                              EXPR_INDEX_EXPR@9586..95926754                                LHS_EXPR@9586..95896755                                  EXPR_VAR@9586..95896756                                    NAME@9586..95896757                                      IDENT@9586..9589 "arr"6758                                L_BRACK@9589..9590 "["6759                                EXPR_VAR@9590..95916760                                  NAME@9590..95916761                                    IDENT@9590..9591 "i"6762                                R_BRACK@9591..9592 "]"6763                          R_PAREN@9592..9593 ")"6764                    WHITESPACE@9593..9594 " "6765                    PLUS@9594..9595 "+"6766                    WHITESPACE@9595..9596 " "6767                    EXPR_ARRAY@9596..95996768                      L_BRACK@9596..9597 "["6769                      EXPR_VAR@9597..95986770                        NAME@9597..95986771                          IDENT@9597..9598 "r"6772                      R_BRACK@9598..9599 "]"6773                R_PAREN@9599..9600 ")"6774      COMMA@9600..9601 ","6775      WHITESPACE@9601..9605 "\n\n  "6776      MEMBER_FIELD@9605..100586777        FIELD_METHOD@9605..100586778          FIELD_NAME_FIXED@9605..96106779            NAME@9605..96106780              IDENT@9605..9610 "prune"6781          PARAMS_DESC@9610..96136782            L_PAREN@9610..9611 "("6783            PARAM@9611..96126784              DESTRUCT_FULL@9611..96126785                NAME@9611..96126786                  IDENT@9611..9612 "a"6787            R_PAREN@9612..9613 ")"6788          COLONCOLON@9613..9615 "::"6789          WHITESPACE@9615..9620 "\n    "6790          EXPR_LOCAL@9620..100586791            LOCAL_KW@9620..9625 "local"6792            WHITESPACE@9625..9626 " "6793            BIND_FUNCTION@9626..98236794              NAME@9626..96356795                IDENT@9626..9635 "isContent"6796              PARAMS_DESC@9635..96386797                L_PAREN@9635..9636 "("6798                PARAM@9636..96376799                  DESTRUCT_FULL@9636..96376800                    NAME@9636..96376801                      IDENT@9636..9637 "b"6802                R_PAREN@9637..9638 ")"6803              WHITESPACE@9638..9639 " "6804              ASSIGN@9639..9640 "="6805              WHITESPACE@9640..9647 "\n      "6806              EXPR_IF_THEN_ELSE@9647..98236807                IF_KW@9647..9649 "if"6808                WHITESPACE@9649..9650 " "6809                EXPR_BINARY@9650..96596810                  LHS_EXPR@9650..96516811                    EXPR_VAR@9650..96516812                      NAME@9650..96516813                        IDENT@9650..9651 "b"6814                  WHITESPACE@9651..9652 " "6815                  EQ@9652..9654 "=="6816                  WHITESPACE@9654..9655 " "6817                  EXPR_LITERAL@9655..96596818                    NULL_KW@9655..9659 "null"6819                WHITESPACE@9659..9660 " "6820                THEN_KW@9660..9664 "then"6821                WHITESPACE@9664..9673 "\n        "6822                TRUE_EXPR@9673..96786823                  EXPR_LITERAL@9673..96786824                    FALSE_KW@9673..9678 "false"6825                WHITESPACE@9678..9685 "\n      "6826                ELSE_KW@9685..9689 "else"6827                WHITESPACE@9689..9690 " "6828                FALSE_EXPR@9690..98236829                  EXPR_IF_THEN_ELSE@9690..98236830                    IF_KW@9690..9692 "if"6831                    WHITESPACE@9692..9693 " "6832                    EXPR_APPLY@9693..97076833                      EXPR_INDEX@9693..97046834                        EXPR_VAR@9693..96966835                          NAME@9693..96966836                            IDENT@9693..9696 "std"6837                        DOT@9696..9697 "."6838                        NAME@9697..97046839                          IDENT@9697..9704 "isArray"6840                      ARGS_DESC@9704..97076841                        L_PAREN@9704..9705 "("6842                        ARG@9705..97066843                          EXPR_VAR@9705..97066844                            NAME@9705..97066845                              IDENT@9705..9706 "b"6846                        R_PAREN@9706..9707 ")"6847                    WHITESPACE@9707..9708 " "6848                    THEN_KW@9708..9712 "then"6849                    WHITESPACE@9712..9721 "\n        "6850                    TRUE_EXPR@9721..97386851                      EXPR_BINARY@9721..97386852                        LHS_EXPR@9721..97346853                          EXPR_APPLY@9721..97346854                            EXPR_INDEX@9721..97316855                              EXPR_VAR@9721..97246856                                NAME@9721..97246857                                  IDENT@9721..9724 "std"6858                              DOT@9724..9725 "."6859                              NAME@9725..97316860                                IDENT@9725..9731 "length"6861                            ARGS_DESC@9731..97346862                              L_PAREN@9731..9732 "("6863                              ARG@9732..97336864                                EXPR_VAR@9732..97336865                                  NAME@9732..97336866                                    IDENT@9732..9733 "b"6867                              R_PAREN@9733..9734 ")"6868                        WHITESPACE@9734..9735 " "6869                        GT@9735..9736 ">"6870                        WHITESPACE@9736..9737 " "6871                        EXPR_NUMBER@9737..97386872                          FLOAT@9737..9738 "0"6873                    WHITESPACE@9738..9745 "\n      "6874                    ELSE_KW@9745..9749 "else"6875                    WHITESPACE@9749..9750 " "6876                    FALSE_EXPR@9750..98236877                      EXPR_IF_THEN_ELSE@9750..98236878                        IF_KW@9750..9752 "if"6879                        WHITESPACE@9752..9753 " "6880                        EXPR_APPLY@9753..97686881                          EXPR_INDEX@9753..97656882                            EXPR_VAR@9753..97566883                              NAME@9753..97566884                                IDENT@9753..9756 "std"6885                            DOT@9756..9757 "."6886                            NAME@9757..97656887                              IDENT@9757..9765 "isObject"6888                          ARGS_DESC@9765..97686889                            L_PAREN@9765..9766 "("6890                            ARG@9766..97676891                              EXPR_VAR@9766..97676892                                NAME@9766..97676893                                  IDENT@9766..9767 "b"6894                            R_PAREN@9767..9768 ")"6895                        WHITESPACE@9768..9769 " "6896                        THEN_KW@9769..9773 "then"6897                        WHITESPACE@9773..9782 "\n        "6898                        TRUE_EXPR@9782..97996899                          EXPR_BINARY@9782..97996900                            LHS_EXPR@9782..97956901                              EXPR_APPLY@9782..97956902                                EXPR_INDEX@9782..97926903                                  EXPR_VAR@9782..97856904                                    NAME@9782..97856905                                      IDENT@9782..9785 "std"6906                                  DOT@9785..9786 "."6907                                  NAME@9786..97926908                                    IDENT@9786..9792 "length"6909                                ARGS_DESC@9792..97956910                                  L_PAREN@9792..9793 "("6911                                  ARG@9793..97946912                                    EXPR_VAR@9793..97946913                                      NAME@9793..97946914                                        IDENT@9793..9794 "b"6915                                  R_PAREN@9794..9795 ")"6916                            WHITESPACE@9795..9796 " "6917                            GT@9796..9797 ">"6918                            WHITESPACE@9797..9798 " "6919                            EXPR_NUMBER@9798..97996920                              FLOAT@9798..9799 "0"6921                        WHITESPACE@9799..9806 "\n      "6922                        ELSE_KW@9806..9810 "else"6923                        WHITESPACE@9810..9819 "\n        "6924                        FALSE_EXPR@9819..98236925                          EXPR_LITERAL@9819..98236926                            TRUE_KW@9819..9823 "true"6927            SEMI@9823..9824 ";"6928            WHITESPACE@9824..9829 "\n    "6929            EXPR_IF_THEN_ELSE@9829..100586930              IF_KW@9829..9831 "if"6931              WHITESPACE@9831..9832 " "6932              EXPR_APPLY@9832..98466933                EXPR_INDEX@9832..98436934                  EXPR_VAR@9832..98356935                    NAME@9832..98356936                      IDENT@9832..9835 "std"6937                  DOT@9835..9836 "."6938                  NAME@9836..98436939                    IDENT@9836..9843 "isArray"6940                ARGS_DESC@9843..98466941                  L_PAREN@9843..9844 "("6942                  ARG@9844..98456943                    EXPR_VAR@9844..98456944                      NAME@9844..98456945                        IDENT@9844..9845 "a"6946                  R_PAREN@9845..9846 ")"6947              WHITESPACE@9846..9847 " "6948              THEN_KW@9847..9851 "then"6949              WHITESPACE@9851..9858 "\n      "6950              TRUE_EXPR@9858..99086951                EXPR_ARRAY_COMP@9858..99086952                  L_BRACK@9858..9859 "["6953                  EXPR_APPLY@9859..98716954                    EXPR_INDEX@9859..98686955                      EXPR_VAR@9859..98626956                        NAME@9859..98626957                          IDENT@9859..9862 "std"6958                      DOT@9862..9863 "."6959                      NAME@9863..98686960                        IDENT@9863..9868 "prune"6961                    ARGS_DESC@9868..98716962                      L_PAREN@9868..9869 "("6963                      ARG@9869..98706964                        EXPR_VAR@9869..98706965                          NAME@9869..98706966                            IDENT@9869..9870 "x"6967                      R_PAREN@9870..9871 ")"6968                  WHITESPACE@9871..9872 " "6969                  FOR_SPEC@9872..98826970                    FOR_KW@9872..9875 "for"6971                    WHITESPACE@9875..9876 " "6972                    NAME@9876..98776973                      IDENT@9876..9877 "x"6974                    WHITESPACE@9877..9878 " "6975                    IN_KW@9878..9880 "in"6976                    WHITESPACE@9880..9881 " "6977                    EXPR_VAR@9881..98826978                      NAME@9881..98826979                        IDENT@9881..9882 "a"6980                  WHITESPACE@9882..9883 " "6981                  IF_SPEC@9883..99076982                    IF_KW@9883..9885 "if"6983                    WHITESPACE@9885..9886 " "6984                    EXPR_APPLY@9886..99076985                      EXPR_VAR@9886..98956986                        NAME@9886..98956987                          IDENT@9886..9895 "isContent"6988                      ARGS_DESC@9895..99076989                        L_PAREN@9895..9896 "("6990                        ARG@9896..99066991                          EXPR_APPLY@9896..99066992                            EXPR_INDEX@9896..99036993                              EXPR_LITERAL@9896..98976994                                DOLLAR@9896..9897 "$"6995                              DOT@9897..9898 "."6996                              NAME@9898..99036997                                IDENT@9898..9903 "prune"6998                            ARGS_DESC@9903..99066999                              L_PAREN@9903..9904 "("7000                              ARG@9904..99057001                                EXPR_VAR@9904..99057002                                  NAME@9904..99057003                                    IDENT@9904..9905 "x"7004                              R_PAREN@9905..9906 ")"7005                        R_PAREN@9906..9907 ")"7006                  R_BRACK@9907..9908 "]"7007              WHITESPACE@9908..9913 "\n    "7008              ELSE_KW@9913..9917 "else"7009              WHITESPACE@9917..9918 " "7010              FALSE_EXPR@9918..100587011                EXPR_IF_THEN_ELSE@9918..100587012                  IF_KW@9918..9920 "if"7013                  WHITESPACE@9920..9921 " "7014                  EXPR_APPLY@9921..99367015                    EXPR_INDEX@9921..99337016                      EXPR_VAR@9921..99247017                        NAME@9921..99247018                          IDENT@9921..9924 "std"7019                      DOT@9924..9925 "."7020                      NAME@9925..99337021                        IDENT@9925..9933 "isObject"7022                    ARGS_DESC@9933..99367023                      L_PAREN@9933..9934 "("7024                      ARG@9934..99357025                        EXPR_VAR@9934..99357026                          NAME@9934..99357027                            IDENT@9934..9935 "a"7028                      R_PAREN@9935..9936 ")"7029                  WHITESPACE@9936..9937 " "7030                  THEN_KW@9937..9941 "then"7031                  WHITESPACE@9941..9942 " "7032                  TRUE_EXPR@9942..100457033                    EXPR_OBJECT@9942..100457034                      OBJ_BODY_MEMBER_LIST@9942..100457035                        L_BRACE@9942..9943 "{"7036                        WHITESPACE@9943..9950 "\n      "7037                        MEMBER_FIELD@9950..100397038                          FIELD_NORMAL@9950..99687039                            FIELD_NAME_DYNAMIC@9950..99537040                              L_BRACK@9950..9951 "["7041                              EXPR_VAR@9951..99527042                                NAME@9951..99527043                                  IDENT@9951..9952 "x"7044                              R_BRACK@9952..9953 "]"7045                            COLON@9953..9954 ":"7046                            WHITESPACE@9954..9955 " "7047                            EXPR_APPLY@9955..99687048                              EXPR_INDEX@9955..99627049                                EXPR_LITERAL@9955..99567050                                  DOLLAR@9955..9956 "$"7051                                DOT@9956..9957 "."7052                                NAME@9957..99627053                                  IDENT@9957..9962 "prune"7054                              ARGS_DESC@9962..99687055                                L_PAREN@9962..9963 "("7056                                ARG@9963..99677057                                  EXPR_INDEX_EXPR@9963..99677058                                    LHS_EXPR@9963..99647059                                      EXPR_VAR@9963..99647060                                        NAME@9963..99647061                                          IDENT@9963..9964 "a"7062                                    L_BRACK@9964..9965 "["7063                                    EXPR_VAR@9965..99667064                                      NAME@9965..99667065                                        IDENT@9965..9966 "x"7066                                    R_BRACK@9966..9967 "]"7067                                R_PAREN@9967..9968 ")"7068                          WHITESPACE@9968..9975 "\n      "7069                          FOR_SPEC@9975..100037070                            FOR_KW@9975..9978 "for"7071                            WHITESPACE@9978..9979 " "7072                            NAME@9979..99807073                              IDENT@9979..9980 "x"7074                            WHITESPACE@9980..9981 " "7075                            IN_KW@9981..9983 "in"7076                            WHITESPACE@9983..9984 " "7077                            EXPR_APPLY@9984..100037078                              EXPR_INDEX@9984..100007079                                EXPR_VAR@9984..99877080                                  NAME@9984..99877081                                    IDENT@9984..9987 "std"7082                                DOT@9987..9988 "."7083                                NAME@9988..100007084                                  IDENT@9988..10000 "objectFields"7085                              ARGS_DESC@10000..100037086                                L_PAREN@10000..10001 "("7087                                ARG@10001..100027088                                  EXPR_VAR@10001..100027089                                    NAME@10001..100027090                                      IDENT@10001..10002 "a"7091                                R_PAREN@10002..10003 ")"7092                          WHITESPACE@10003..10010 "\n      "7093                          IF_SPEC@10010..100397094                            IF_KW@10010..10012 "if"7095                            WHITESPACE@10012..10013 " "7096                            EXPR_APPLY@10013..100397097                              EXPR_VAR@10013..100227098                                NAME@10013..100227099                                  IDENT@10013..10022 "isContent"7100                              ARGS_DESC@10022..100397101                                L_PAREN@10022..10023 "("7102                                ARG@10023..100387103                                  EXPR_APPLY@10023..100387104                                    EXPR_INDEX@10023..100327105                                      EXPR_VAR@10023..100267106                                        NAME@10023..100267107                                          IDENT@10023..10026 "std"7108                                      DOT@10026..10027 "."7109                                      NAME@10027..100327110                                        IDENT@10027..10032 "prune"7111                                    ARGS_DESC@10032..100387112                                      L_PAREN@10032..10033 "("7113                                      ARG@10033..100377114                                        EXPR_INDEX_EXPR@10033..100377115                                          LHS_EXPR@10033..100347116                                            EXPR_VAR@10033..100347117                                              NAME@10033..100347118                                                IDENT@10033..10034 "a"7119                                          L_BRACK@10034..10035 "["7120                                          EXPR_VAR@10035..100367121                                            NAME@10035..100367122                                              IDENT@10035..10036 "x"7123                                          R_BRACK@10036..10037 "]"7124                                      R_PAREN@10037..10038 ")"7125                                R_PAREN@10038..10039 ")"7126                        WHITESPACE@10039..10044 "\n    "7127                        R_BRACE@10044..10045 "}"7128                  WHITESPACE@10045..10046 " "7129                  ELSE_KW@10046..10050 "else"7130                  WHITESPACE@10050..10057 "\n      "7131                  FALSE_EXPR@10057..100587132                    EXPR_VAR@10057..100587133                      NAME@10057..100587134                        IDENT@10057..10058 "a"7135      COMMA@10058..10059 ","7136      WHITESPACE@10059..10063 "\n\n  "7137      MEMBER_FIELD@10063..102787138        FIELD_METHOD@10063..102787139          FIELD_NAME_FIXED@10063..100677140            NAME@10063..100677141              IDENT@10063..10067 "find"7142          PARAMS_DESC@10067..100797143            L_PAREN@10067..10068 "("7144            PARAM@10068..100737145              DESTRUCT_FULL@10068..100737146                NAME@10068..100737147                  IDENT@10068..10073 "value"7148            COMMA@10073..10074 ","7149            WHITESPACE@10074..10075 " "7150            PARAM@10075..100787151              DESTRUCT_FULL@10075..100787152                NAME@10075..100787153                  IDENT@10075..10078 "arr"7154            R_PAREN@10078..10079 ")"7155          COLONCOLON@10079..10081 "::"7156          WHITESPACE@10081..10086 "\n    "7157          EXPR_IF_THEN_ELSE@10086..102787158            IF_KW@10086..10088 "if"7159            WHITESPACE@10088..10089 " "7160            EXPR_UNARY@10089..101067161              NOT@10089..10090 "!"7162              EXPR_APPLY@10090..101067163                EXPR_INDEX@10090..101017164                  EXPR_VAR@10090..100937165                    NAME@10090..100937166                      IDENT@10090..10093 "std"7167                  DOT@10093..10094 "."7168                  NAME@10094..101017169                    IDENT@10094..10101 "isArray"7170                ARGS_DESC@10101..101067171                  L_PAREN@10101..10102 "("7172                  ARG@10102..101057173                    EXPR_VAR@10102..101057174                      NAME@10102..101057175                        IDENT@10102..10105 "arr"7176                  R_PAREN@10105..10106 ")"7177            WHITESPACE@10106..10107 " "7178            THEN_KW@10107..10111 "then"7179            WHITESPACE@10111..10118 "\n      "7180            TRUE_EXPR@10118..101887181              EXPR_ERROR@10118..101887182                ERROR_KW@10118..10123 "error"7183                WHITESPACE@10123..10124 " "7184                EXPR_BINARY@10124..101887185                  LHS_EXPR@10124..101727186                    EXPR_STRING@10124..101727187                      STRING_SINGLE@10124..10172 "'find second paramete ..."7188                  WHITESPACE@10172..10173 " "7189                  PLUS@10173..10174 "+"7190                  WHITESPACE@10174..10175 " "7191                  EXPR_APPLY@10175..101887192                    EXPR_INDEX@10175..101837193                      EXPR_VAR@10175..101787194                        NAME@10175..101787195                          IDENT@10175..10178 "std"7196                      DOT@10178..10179 "."7197                      NAME@10179..101837198                        IDENT@10179..10183 "type"7199                    ARGS_DESC@10183..101887200                      L_PAREN@10183..10184 "("7201                      ARG@10184..101877202                        EXPR_VAR@10184..101877203                          NAME@10184..101877204                            IDENT@10184..10187 "arr"7205                      R_PAREN@10187..10188 ")"7206            WHITESPACE@10188..10193 "\n    "7207            ELSE_KW@10193..10197 "else"7208            WHITESPACE@10197..10204 "\n      "7209            FALSE_EXPR@10204..102787210              EXPR_APPLY@10204..102787211                EXPR_INDEX@10204..102147212                  EXPR_VAR@10204..102077213                    NAME@10204..102077214                      IDENT@10204..10207 "std"7215                  DOT@10207..10208 "."7216                  NAME@10208..102147217                    IDENT@10208..10214 "filter"7218                ARGS_DESC@10214..102787219                  L_PAREN@10214..10215 "("7220                  ARG@10215..102427221                    EXPR_FUNCTION@10215..102427222                      FUNCTION_KW@10215..10223 "function"7223                      PARAMS_DESC@10223..102267224                        L_PAREN@10223..10224 "("7225                        PARAM@10224..102257226                          DESTRUCT_FULL@10224..102257227                            NAME@10224..102257228                              IDENT@10224..10225 "i"7229                        R_PAREN@10225..10226 ")"7230                      WHITESPACE@10226..10227 " "7231                      EXPR_BINARY@10227..102427232                        LHS_EXPR@10227..102337233                          EXPR_INDEX_EXPR@10227..102337234                            LHS_EXPR@10227..102307235                              EXPR_VAR@10227..102307236                                NAME@10227..102307237                                  IDENT@10227..10230 "arr"7238                            L_BRACK@10230..10231 "["7239                            EXPR_VAR@10231..102327240                              NAME@10231..102327241                                IDENT@10231..10232 "i"7242                            R_BRACK@10232..10233 "]"7243                        WHITESPACE@10233..10234 " "7244                        EQ@10234..10236 "=="7245                        WHITESPACE@10236..10237 " "7246                        EXPR_VAR@10237..102427247                          NAME@10237..102427248                            IDENT@10237..10242 "value"7249                  COMMA@10242..10243 ","7250                  WHITESPACE@10243..10244 " "7251                  ARG@10244..102777252                    EXPR_APPLY@10244..102777253                      EXPR_INDEX@10244..102537254                        EXPR_VAR@10244..102477255                          NAME@10244..102477256                            IDENT@10244..10247 "std"7257                        DOT@10247..10248 "."7258                        NAME@10248..102537259                          IDENT@10248..10253 "range"7260                      ARGS_DESC@10253..102777261                        L_PAREN@10253..10254 "("7262                        ARG@10254..102557263                          EXPR_NUMBER@10254..102557264                            FLOAT@10254..10255 "0"7265                        COMMA@10255..10256 ","7266                        WHITESPACE@10256..10257 " "7267                        ARG@10257..102767268                          EXPR_BINARY@10257..102767269                            LHS_EXPR@10257..102727270                              EXPR_APPLY@10257..102727271                                EXPR_INDEX@10257..102677272                                  EXPR_VAR@10257..102607273                                    NAME@10257..102607274                                      IDENT@10257..10260 "std"7275                                  DOT@10260..10261 "."7276                                  NAME@10261..102677277                                    IDENT@10261..10267 "length"7278                                ARGS_DESC@10267..102727279                                  L_PAREN@10267..10268 "("7280                                  ARG@10268..102717281                                    EXPR_VAR@10268..102717282                                      NAME@10268..102717283                                        IDENT@10268..10271 "arr"7284                                  R_PAREN@10271..10272 ")"7285                            WHITESPACE@10272..10273 " "7286                            MINUS@10273..10274 "-"7287                            WHITESPACE@10274..10275 " "7288                            EXPR_NUMBER@10275..102767289                              FLOAT@10275..10276 "1"7290                        R_PAREN@10276..10277 ")"7291                  R_PAREN@10277..10278 ")"7292      COMMA@10278..10279 ","7293      WHITESPACE@10279..10280 "\n"7294      R_BRACE@10280..10281 "}"7295  WHITESPACE@10281..10282 "\n"
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__unexpected_destruct.snapdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__unexpected_destruct.snap
@@ -0,0 +1,32 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "local * = 1;\na\n"
+---
+SOURCE_FILE@0..15
+  EXPR_LOCAL@0..14
+    LOCAL_KW@0..5 "local"
+    WHITESPACE@5..6 " "
+    BIND_DESTRUCT@6..11
+      ERROR_UNEXPECTED_TOKEN@6..7
+        MUL@6..7 "*"
+      WHITESPACE@7..8 " "
+      ASSIGN@8..9 "="
+      WHITESPACE@9..10 " "
+      EXPR_NUMBER@10..11
+        FLOAT@10..11 "1"
+    SEMI@11..12 ";"
+    WHITESPACE@12..13 "\n"
+    EXPR_VAR@13..14
+      NAME@13..14
+        IDENT@13..14 "a"
+  WHITESPACE@14..15 "\n"
+===
+LocatedSyntaxError { error: Unexpected { expected: Named("destruction specifier"), found: MUL }, range: 6..7 }
+===
+  x syntax error
+   ,-[1:1]
+ 1 | local * = 1;
+   :       |
+   :       `-- expected destruction specifier, found MUL
+ 2 | a
+   `----
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__wrong_field_end.snapdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__wrong_field_end.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__wrong_field_end.snap
@@ -2,29 +2,37 @@
 source: crates/jrsonnet-rowan-parser/src/tests.rs
 expression: "{\n\ta: 1;\n\tb: 2;\n}\n"
 ---
-SOURCE_FILE@0..10
-  OBJ_BODY@0..7
-    L_BRACE@0..1 "{"
-    WHITESPACE@1..3 "\n\t"
-    MEMBER@3..7
-      IDENT@3..4 "a"
-      COLON@4..5 ":"
-      WHITESPACE@5..6 " "
-      EXPR_NUMBER@6..7
-        NUMBER@6..7 "1"
-  SEMI@7..8 ";"
+SOURCE_FILE@0..11
+  EXPR_OBJECT@0..8
+    OBJ_BODY_MEMBER_LIST@0..8
+      L_BRACE@0..1 "{"
+      WHITESPACE@1..3 "\n\t"
+      MEMBER_FIELD@3..7
+        FIELD_NORMAL@3..7
+          FIELD_NAME_FIXED@3..4
+            NAME@3..4
+              IDENT@3..4 "a"
+          COLON@4..5 ":"
+          WHITESPACE@5..6 " "
+          EXPR_NUMBER@6..7
+            FLOAT@6..7 "1"
+      ERROR_UNEXPECTED_TOKEN@7..8
+        SEMI@7..8 ";"
   WHITESPACE@8..10 "\n\t"
+  ERROR_UNEXPECTED_TOKEN@10..11
+    IDENT@10..11 "b"
 ===
-Missing { expected: Unnamed(R_BRACE), offset: 7 }
-Custom { error: "unexpected input after expression", range: 7..8 }
+LocatedSyntaxError { error: Unexpected { expected: Unnamed(R_BRACE), found: SEMI }, range: 7..8 }
+LocatedSyntaxError { error: Unexpected { expected: Unnamed(EOF), found: IDENT }, range: 10..11 }
 ===
   x syntax error
    ,-[1:1]
  1 | {
- 2 | 	a: 1;
-   :      ^
-   :      |`-- unexpected input after expression
-   :      `-- missing R_BRACE
- 3 | 	b: 2;
+ 2 |     a: 1;
+   :         |
+   :         `-- expected R_BRACE, found SEMI
+ 3 |     b: 2;
+   :     |
+   :     `-- expected EOF, found IDENT
+ 4 | }
    `----
-
modifiedcrates/jrsonnet-rowan-parser/src/tests.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/tests.rs
+++ b/crates/jrsonnet-rowan-parser/src/tests.rs
@@ -53,8 +53,17 @@
 		for err in &errors {
 			writeln!(out, "{:?}", err).unwrap();
 		}
+		let mut code = text.to_string();
+
+		// Prettier errors at EOF position
+		if code.ends_with('\n') {
+			code.truncate(code.len() - 1);
+			code += " ";
+		}
+		code += " ";
+
 		let diag = MyDiagnostic {
-			code: text.to_string(),
+			code,
 			spans: errors.into_iter().map(|e| e.into()).collect(),
 		};
 
@@ -64,9 +73,16 @@
 		});
 
 		write!(out, "===").unwrap();
-		handler.render_report(&mut out, &diag).unwrap();
+		handler
+			.render_report(&mut out, &diag)
+			.expect("fmt error?..");
 	}
-	out
+	out.split('\n')
+		.map(|s| s.trim_end().to_string())
+		.collect::<Vec<String>>()
+		.join("\n")
+		.trim_end()
+		.to_string()
 }
 macro_rules! mk_test {
 		($($name:ident => $test:expr)+) => {$(
@@ -165,11 +181,16 @@
 		|||
 		hello
 	"
+
+	unexpected_destruct => "
+		local * = 1;
+		a
+	"
 );
 
 #[test]
 fn stdlib() {
-	let src = jrsonnet_stdlib::STDLIB_STR;
+	let src = include_str!("../../jrsonnet-stdlib/src/std.jsonnet");
 	let result = process(src);
 	insta::assert_snapshot!("stdlib", result, src);
 }
modifiedcrates/jrsonnet-rowan-parser/src/token_set.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/token_set.rs
+++ b/crates/jrsonnet-rowan-parser/src/token_set.rs
@@ -45,7 +45,7 @@
 #[test]
 fn sanity() {
 	assert!(
-		(SyntaxKind::ERROR as u32) < 127,
+		(SyntaxKind::LEXING_ERROR as u32) < 127,
 		"can't keep KindSet as bitset"
 	);
 }
modifiedflake.nixdiffbeforeafterboth
--- a/flake.nix
+++ b/flake.nix
@@ -131,6 +131,7 @@
             cargo-edit
             cargo-asm
             cargo-outdated
+            cargo-watch
             lld
             hyperfine
             graphviz
modifiedxtask/src/sourcegen/mod.rsdiffbeforeafterboth
--- a/xtask/src/sourcegen/mod.rs
+++ b/xtask/src/sourcegen/mod.rs
@@ -149,8 +149,9 @@
 			#[doc(hidden)]
 			EOF,
 			#(#token_kinds,)*
+			/// Also acts as __LAST_TOKEN
 			#[error]
-			ERROR,
+			LEXING_ERROR,
 			#(#nodes,)*
 			#[doc(hidden)]
 			__LAST,