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

difftreelog

refactor upgrade for new master

Yaroslav Bolyukin2023-09-04parent: #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
1---1---
2source: crates/jrsonnet-rowan-parser/src/tests.rs2source: crates/jrsonnet-rowan-parser/src/tests.rs
3expression: "{\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"3expression: "{\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---4---
5SOURCE_FILE@0..189785SOURCE_FILE@0..10282
6 EXPR_OBJECT@0..189786 EXPR_OBJECT@0..10281
7 OBJ_BODY_MEMBER_LIST@0..189787 OBJ_BODY_MEMBER_LIST@0..10281
8 L_BRACE@0..1 "{"8 L_BRACE@0..1 "{"
9 WHITESPACE@1..4 "\n "9 WHITESPACE@1..4 "\n "
10 MEMBER_BIND_STMT@4..2010 MEMBER_BIND_STMT@4..20
42 IDENT@39..41 "id"42 IDENT@39..41 "id"
43 COMMA@41..42 ","43 COMMA@41..42 ","
44 WHITESPACE@42..46 "\n\n "44 WHITESPACE@42..46 "\n\n "
45 SINGLE_LINE_HASH_COMMENT@46..67 "# Magic legacy field\n"45 MEMBER_FIELD@46..224
46 WHITESPACE@67..69 " "46 FIELD_NORMAL@46..224
47 MEMBER_FIELD@69..9847 FIELD_NAME_FIXED@46..54
48 FIELD_NORMAL@69..9848 NAME@46..54
49 FIELD_NAME_FIXED@69..7749 IDENT@46..54 "thisFile"
50 NAME@69..7750 COLONCOLON@54..56 "::"
51 IDENT@69..77 "thisFile"51 WHITESPACE@56..57 " "
52 COLONCOLON@77..79 "::"52 EXPR_ERROR@57..224
53 WHITESPACE@79..80 " "53 ERROR_KW@57..62 "error"
54 EXPR_INTRINSIC_THIS_FILE@80..9854 WHITESPACE@62..63 " "
55 INTRINSIC_THIS_FILE@80..98 "$intrinsicThisFile"55 EXPR_STRING@63..224
56 COMMA@98..99 ","56 STRING_SINGLE@63..224 "'std.thisFile is depr ..."
57 WHITESPACE@99..102 "\n "57 COMMA@224..225 ","
58 MEMBER_FIELD@102..11958 WHITESPACE@225..229 "\n\n "
59 FIELD_NORMAL@102..11959 MEMBER_FIELD@229..249
60 FIELD_NAME_FIXED@102..10460 FIELD_METHOD@229..249
61 NAME@102..10461 FIELD_NAME_FIXED@229..237
62 IDENT@102..104 "id"62 NAME@229..237
63 COLONCOLON@104..106 "::"63 IDENT@229..237 "toString"
64 WHITESPACE@106..107 " "64 PARAMS_DESC@237..240
65 EXPR_INTRINSIC_ID@107..11965 L_PAREN@237..238 "("
66 INTRINSIC_ID@107..119 "$intrinsicId"66 PARAM@238..239
67 COMMA@119..120 ","67 DESTRUCT_FULL@238..239
68 WHITESPACE@120..124 "\n\n "68 NAME@238..239
69 SINGLE_LINE_HASH_COMMENT@124..176 "# Those functions are ..."69 IDENT@238..239 "a"
70 WHITESPACE@176..178 " "70 R_PAREN@239..240 ")"
71 MEMBER_FIELD@178..20571 COLONCOLON@240..242 "::"
72 FIELD_NORMAL@178..20572 WHITESPACE@242..243 " "
73 FIELD_NAME_FIXED@178..18473 EXPR_BINARY@243..249
74 NAME@178..18474 LHS_EXPR@243..245
75 IDENT@178..184 "length"75 EXPR_STRING@243..245
76 COLONCOLON@184..186 "::"76 STRING_SINGLE@243..245 "''"
77 WHITESPACE@186..187 " "77 WHITESPACE@245..246 " "
78 EXPR_INTRINSIC@187..20578 PLUS@246..247 "+"
79 INTRINSIC@187..197 "$intrinsic"79 WHITESPACE@247..248 " "
80 L_PAREN@197..198 "("80 EXPR_VAR@248..249
81 NAME@198..20481 NAME@248..249
82 IDENT@198..204 "length"82 IDENT@248..249 "a"
83 R_PAREN@204..205 ")"83 COMMA@249..250 ","
84 COMMA@205..206 ","84 WHITESPACE@250..254 "\n\n "
85 WHITESPACE@206..209 "\n "85 MEMBER_FIELD@254..397
86 MEMBER_FIELD@209..23286 FIELD_METHOD@254..397
87 FIELD_NORMAL@209..23287 FIELD_NAME_FIXED@254..265
88 FIELD_NAME_FIXED@209..21388 NAME@254..265
89 NAME@209..21389 IDENT@254..265 "lstripChars"
90 IDENT@209..213 "type"90 PARAMS_DESC@265..277
91 COLONCOLON@213..215 "::"91 L_PAREN@265..266 "("
92 WHITESPACE@215..216 " "92 PARAM@266..269
93 EXPR_INTRINSIC@216..23293 DESTRUCT_FULL@266..269
94 INTRINSIC@216..226 "$intrinsic"94 NAME@266..269
95 L_PAREN@226..227 "("95 IDENT@266..269 "str"
96 NAME@227..23196 COMMA@269..270 ","
97 IDENT@227..231 "type"97 WHITESPACE@270..271 " "
98 R_PAREN@231..232 ")"98 PARAM@271..276
99 COMMA@232..233 ","99 DESTRUCT_FULL@271..276
100 WHITESPACE@233..236 "\n "100 NAME@271..276
101 MEMBER_FIELD@236..269101 IDENT@271..276 "chars"
102 FIELD_NORMAL@236..269102 R_PAREN@276..277 ")"
103 FIELD_NAME_FIXED@236..245103 COLONCOLON@277..279 "::"
104 NAME@236..245104 WHITESPACE@279..284 "\n "
105 IDENT@236..245 "makeArray"105 EXPR_IF_THEN_ELSE@284..397
106 COLONCOLON@245..247 "::"106 IF_KW@284..286 "if"
107 WHITESPACE@247..248 " "107 WHITESPACE@286..287 " "
108 EXPR_INTRINSIC@248..269108 EXPR_BINARY@287..335
109 INTRINSIC@248..258 "$intrinsic"109 LHS_EXPR@287..306
110 L_PAREN@258..259 "("110 EXPR_BINARY@287..306
111 NAME@259..268111 LHS_EXPR@287..302
112 IDENT@259..268 "makeArray"112 EXPR_APPLY@287..302
113 R_PAREN@268..269 ")"113 EXPR_INDEX@287..297
114 COMMA@269..270 ","114 EXPR_VAR@287..290
115 WHITESPACE@270..273 "\n "115 NAME@287..290
116 MEMBER_FIELD@273..306116 IDENT@287..290 "std"
117 FIELD_NORMAL@273..306117 DOT@290..291 "."
118 FIELD_NAME_FIXED@273..282118 NAME@291..297
119 NAME@273..282119 IDENT@291..297 "length"
120 IDENT@273..282 "codepoint"120 ARGS_DESC@297..302
121 COLONCOLON@282..284 "::"121 L_PAREN@297..298 "("
122 WHITESPACE@284..285 " "122 ARG@298..301
123 EXPR_INTRINSIC@285..306123 EXPR_VAR@298..301
124 INTRINSIC@285..295 "$intrinsic"124 NAME@298..301
125 L_PAREN@295..296 "("125 IDENT@298..301 "str"
126 NAME@296..305126 R_PAREN@301..302 ")"
127 IDENT@296..305 "codepoint"127 WHITESPACE@302..303 " "
128 R_PAREN@305..306 ")"128 GT@303..304 ">"
129 COMMA@306..307 ","129 WHITESPACE@304..305 " "
130 WHITESPACE@307..310 "\n "130 EXPR_NUMBER@305..306
131 MEMBER_FIELD@310..353131 FLOAT@305..306 "0"
132 FIELD_NORMAL@310..353132 WHITESPACE@306..307 " "
133 FIELD_NAME_FIXED@310..324133 AND@307..309 "&&"
134 NAME@310..324134 WHITESPACE@309..310 " "
135 IDENT@310..324 "objectFieldsEx"135 EXPR_APPLY@310..335
136 COLONCOLON@324..326 "::"136 EXPR_INDEX@310..320
137 WHITESPACE@326..327 " "137 EXPR_VAR@310..313
138 EXPR_INTRINSIC@327..353138 NAME@310..313
139 INTRINSIC@327..337 "$intrinsic"139 IDENT@310..313 "std"
140 L_PAREN@337..338 "("140 DOT@313..314 "."
141 NAME@338..352141 NAME@314..320
142 IDENT@338..352 "objectFieldsEx"142 IDENT@314..320 "member"
143 R_PAREN@352..353 ")"143 ARGS_DESC@320..335
144 COMMA@353..354 ","144 L_PAREN@320..321 "("
145 WHITESPACE@354..357 "\n "145 ARG@321..326
146 MEMBER_FIELD@357..394146 EXPR_VAR@321..326
147 FIELD_NORMAL@357..394147 NAME@321..326
148 FIELD_NAME_FIXED@357..368148 IDENT@321..326 "chars"
149 NAME@357..368149 COMMA@326..327 ","
150 IDENT@357..368 "objectHasEx"150 WHITESPACE@327..328 " "
151 COLONCOLON@368..370 "::"151 ARG@328..334
152 WHITESPACE@370..371 " "152 EXPR_INDEX_EXPR@328..334
153 EXPR_INTRINSIC@371..394153 LHS_EXPR@328..331
154 INTRINSIC@371..381 "$intrinsic"154 EXPR_VAR@328..331
155 L_PAREN@381..382 "("155 NAME@328..331
156 NAME@382..393156 IDENT@328..331 "str"
157 IDENT@382..393 "objectHasEx"157 L_BRACK@331..332 "["
158 R_PAREN@393..394 ")"158 EXPR_NUMBER@332..333
159 COMMA@394..395 ","159 FLOAT@332..333 "0"
160 WHITESPACE@395..398 "\n "160 R_BRACK@333..334 "]"
161 MEMBER_FIELD@398..443161 R_PAREN@334..335 ")"
162 FIELD_NORMAL@398..443162 WHITESPACE@335..336 " "
163 FIELD_NAME_FIXED@398..413163 THEN_KW@336..340 "then"
164 NAME@398..413164 WHITESPACE@340..347 "\n "
165 IDENT@398..413 "primitiveEquals"165 TRUE_EXPR@347..378
166 COLONCOLON@413..415 "::"166 EXPR_APPLY@347..378
167 WHITESPACE@415..416 " "167 EXPR_INDEX@347..362
168 EXPR_INTRINSIC@416..443168 EXPR_VAR@347..350
169 INTRINSIC@416..426 "$intrinsic"169 NAME@347..350
170 L_PAREN@426..427 "("170 IDENT@347..350 "std"
171 NAME@427..442171 DOT@350..351 "."
172 IDENT@427..442 "primitiveEquals"172 NAME@351..362
173 R_PAREN@442..443 ")"173 IDENT@351..362 "lstripChars"
174 COMMA@443..444 ","174 ARGS_DESC@362..378
175 WHITESPACE@444..447 "\n "175 L_PAREN@362..363 "("
176 MEMBER_FIELD@447..474176 ARG@363..370
177 FIELD_NORMAL@447..474177 EXPR_SLICE@363..370
178 FIELD_NAME_FIXED@447..453178 EXPR_VAR@363..366
179 NAME@447..453179 NAME@363..366
180 IDENT@447..453 "modulo"180 IDENT@363..366 "str"
181 COLONCOLON@453..455 "::"181 SLICE_DESC@366..370
182 WHITESPACE@455..456 " "182 L_BRACK@366..367 "["
183 EXPR_INTRINSIC@456..474183 EXPR_NUMBER@367..368
184 INTRINSIC@456..466 "$intrinsic"184 FLOAT@367..368 "1"
185 L_PAREN@466..467 "("185 COLON@368..369 ":"
186 NAME@467..473186 R_BRACK@369..370 "]"
187 IDENT@467..473 "modulo"187 COMMA@370..371 ","
188 R_PAREN@473..474 ")"188 WHITESPACE@371..372 " "
189 COMMA@474..475 ","189 ARG@372..377
190 WHITESPACE@475..478 "\n "190 EXPR_VAR@372..377
191 MEMBER_FIELD@478..503191 NAME@372..377
192 FIELD_NORMAL@478..503192 IDENT@372..377 "chars"
193 FIELD_NAME_FIXED@478..483193 R_PAREN@377..378 ")"
194 NAME@478..483194 WHITESPACE@378..383 "\n "
195 IDENT@478..483 "floor"195 ELSE_KW@383..387 "else"
196 COLONCOLON@483..485 "::"196 WHITESPACE@387..394 "\n "
197 WHITESPACE@485..486 " "197 FALSE_EXPR@394..397
198 EXPR_INTRINSIC@486..503198 EXPR_VAR@394..397
199 INTRINSIC@486..496 "$intrinsic"199 NAME@394..397
200 L_PAREN@496..497 "("200 IDENT@394..397 "str"
201 NAME@497..502201 COMMA@397..398 ","
202 IDENT@497..502 "floor"202 WHITESPACE@398..402 "\n\n "
203 R_PAREN@502..503 ")"203 MEMBER_FIELD@402..578
204 COMMA@503..504 ","204 FIELD_METHOD@402..578
205 WHITESPACE@504..507 "\n "205 FIELD_NAME_FIXED@402..413
206 MEMBER_FIELD@507..530206 NAME@402..413
207 FIELD_NORMAL@507..530207 IDENT@402..413 "rstripChars"
208 FIELD_NAME_FIXED@507..511208 PARAMS_DESC@413..425
209 NAME@507..511209 L_PAREN@413..414 "("
210 IDENT@507..511 "ceil"210 PARAM@414..417
211 COLONCOLON@511..513 "::"211 DESTRUCT_FULL@414..417
212 WHITESPACE@513..514 " "212 NAME@414..417
213 EXPR_INTRINSIC@514..530213 IDENT@414..417 "str"
214 INTRINSIC@514..524 "$intrinsic"214 COMMA@417..418 ","
215 L_PAREN@524..525 "("215 WHITESPACE@418..419 " "
216 NAME@525..529216 PARAM@419..424
217 IDENT@525..529 "ceil"217 DESTRUCT_FULL@419..424
218 R_PAREN@529..530 ")"218 NAME@419..424
219 COMMA@530..531 ","219 IDENT@419..424 "chars"
220 WHITESPACE@531..534 "\n "220 R_PAREN@424..425 ")"
221 MEMBER_FIELD@534..561221 COLONCOLON@425..427 "::"
222 FIELD_NORMAL@534..561222 WHITESPACE@427..432 "\n "
223 FIELD_NAME_FIXED@534..540223 EXPR_LOCAL@432..578
224 NAME@534..540224 LOCAL_KW@432..437 "local"
225 IDENT@534..540 "extVar"225 WHITESPACE@437..438 " "
226 COLONCOLON@540..542 "::"226 BIND_DESTRUCT@438..459
227 WHITESPACE@542..543 " "227 DESTRUCT_FULL@438..441
228 EXPR_INTRINSIC@543..561228 NAME@438..441
229 INTRINSIC@543..553 "$intrinsic"229 IDENT@438..441 "len"
230 L_PAREN@553..554 "("230 WHITESPACE@441..442 " "
231 NAME@554..560231 ASSIGN@442..443 "="
232 IDENT@554..560 "extVar"232 WHITESPACE@443..444 " "
233 R_PAREN@560..561 ")"233 EXPR_APPLY@444..459
234 COMMA@561..562 ","234 EXPR_INDEX@444..454
235 WHITESPACE@562..565 "\n "235 EXPR_VAR@444..447
236 MEMBER_FIELD@565..592236 NAME@444..447
237 FIELD_NORMAL@565..592237 IDENT@444..447 "std"
238 FIELD_NAME_FIXED@565..571238 DOT@447..448 "."
239 NAME@565..571239 NAME@448..454
240 IDENT@565..571 "native"240 IDENT@448..454 "length"
241 COLONCOLON@571..573 "::"241 ARGS_DESC@454..459
242 WHITESPACE@573..574 " "242 L_PAREN@454..455 "("
243 EXPR_INTRINSIC@574..592243 ARG@455..458
244 INTRINSIC@574..584 "$intrinsic"244 EXPR_VAR@455..458
245 L_PAREN@584..585 "("245 NAME@455..458
246 NAME@585..591246 IDENT@455..458 "str"
247 IDENT@585..591 "native"247 R_PAREN@458..459 ")"
248 R_PAREN@591..592 ")"248 SEMI@459..460 ";"
249 COMMA@592..593 ","249 WHITESPACE@460..465 "\n "
250 WHITESPACE@593..596 "\n "250 EXPR_IF_THEN_ELSE@465..578
251 MEMBER_FIELD@596..623251 IF_KW@465..467 "if"
252 FIELD_NORMAL@596..623252 WHITESPACE@467..468 " "
253 FIELD_NAME_FIXED@596..602253 EXPR_BINARY@468..510
254 NAME@596..602254 LHS_EXPR@468..475
255 IDENT@596..602 "filter"255 EXPR_BINARY@468..475
256 COLONCOLON@602..604 "::"256 LHS_EXPR@468..471
257 WHITESPACE@604..605 " "257 EXPR_VAR@468..471
258 EXPR_INTRINSIC@605..623258 NAME@468..471
259 INTRINSIC@605..615 "$intrinsic"259 IDENT@468..471 "len"
260 L_PAREN@615..616 "("260 WHITESPACE@471..472 " "
261 NAME@616..622261 GT@472..473 ">"
262 IDENT@616..622 "filter"262 WHITESPACE@473..474 " "
263 R_PAREN@622..623 ")"263 EXPR_NUMBER@474..475
264 COMMA@623..624 ","264 FLOAT@474..475 "0"
265 WHITESPACE@624..627 "\n "265 WHITESPACE@475..476 " "
266 MEMBER_FIELD@627..650266 AND@476..478 "&&"
267 FIELD_NORMAL@627..650267 WHITESPACE@478..479 " "
268 FIELD_NAME_FIXED@627..631268 EXPR_APPLY@479..510
269 NAME@627..631269 EXPR_INDEX@479..489
270 IDENT@627..631 "char"270 EXPR_VAR@479..482
271 COLONCOLON@631..633 "::"271 NAME@479..482
272 WHITESPACE@633..634 " "272 IDENT@479..482 "std"
273 EXPR_INTRINSIC@634..650273 DOT@482..483 "."
274 INTRINSIC@634..644 "$intrinsic"274 NAME@483..489
275 L_PAREN@644..645 "("275 IDENT@483..489 "member"
276 NAME@645..649276 ARGS_DESC@489..510
277 IDENT@645..649 "char"277 L_PAREN@489..490 "("
278 R_PAREN@649..650 ")"278 ARG@490..495
279 COMMA@650..651 ","279 EXPR_VAR@490..495
280 WHITESPACE@651..654 "\n "280 NAME@490..495
281 MEMBER_FIELD@654..689281 IDENT@490..495 "chars"
282 FIELD_NORMAL@654..689282 COMMA@495..496 ","
283 FIELD_NAME_FIXED@654..664283 WHITESPACE@496..497 " "
284 NAME@654..664284 ARG@497..509
285 IDENT@654..664 "encodeUTF8"285 EXPR_INDEX_EXPR@497..509
286 COLONCOLON@664..666 "::"286 LHS_EXPR@497..500
287 WHITESPACE@666..667 " "287 EXPR_VAR@497..500
288 EXPR_INTRINSIC@667..689288 NAME@497..500
289 INTRINSIC@667..677 "$intrinsic"289 IDENT@497..500 "str"
290 L_PAREN@677..678 "("290 L_BRACK@500..501 "["
291 NAME@678..688291 EXPR_BINARY@501..508
292 IDENT@678..688 "encodeUTF8"292 LHS_EXPR@501..504
293 R_PAREN@688..689 ")"293 EXPR_VAR@501..504
294 COMMA@689..690 ","294 NAME@501..504
295 WHITESPACE@690..693 "\n "295 IDENT@501..504 "len"
296 MEMBER_FIELD@693..728296 WHITESPACE@504..505 " "
297 FIELD_NORMAL@693..728297 MINUS@505..506 "-"
298 FIELD_NAME_FIXED@693..703298 WHITESPACE@506..507 " "
299 NAME@693..703299 EXPR_NUMBER@507..508
300 IDENT@693..703 "decodeUTF8"300 FLOAT@507..508 "1"
301 COLONCOLON@703..705 "::"301 R_BRACK@508..509 "]"
302 WHITESPACE@705..706 " "302 R_PAREN@509..510 ")"
303 EXPR_INTRINSIC@706..728303 WHITESPACE@510..511 " "
304 INTRINSIC@706..716 "$intrinsic"304 THEN_KW@511..515 "then"
305 L_PAREN@716..717 "("305 WHITESPACE@515..522 "\n "
306 NAME@717..727306 TRUE_EXPR@522..559
307 IDENT@717..727 "decodeUTF8"307 EXPR_APPLY@522..559
308 R_PAREN@727..728 ")"308 EXPR_INDEX@522..537
309 COMMA@728..729 ","309 EXPR_VAR@522..525
310 WHITESPACE@729..732 "\n "310 NAME@522..525
311 MEMBER_FIELD@732..753311 IDENT@522..525 "std"
312 FIELD_NORMAL@732..753312 DOT@525..526 "."
313 FIELD_NAME_FIXED@732..735313 NAME@526..537
314 NAME@732..735314 IDENT@526..537 "rstripChars"
315 IDENT@732..735 "md5"315 ARGS_DESC@537..559
316 COLONCOLON@735..737 "::"316 L_PAREN@537..538 "("
317 WHITESPACE@737..738 " "317 ARG@538..551
318 EXPR_INTRINSIC@738..753318 EXPR_SLICE@538..551
319 INTRINSIC@738..748 "$intrinsic"319 EXPR_VAR@538..541
320 L_PAREN@748..749 "("320 NAME@538..541
321 NAME@749..752321 IDENT@538..541 "str"
322 IDENT@749..752 "md5"322 SLICE_DESC@541..551
323 R_PAREN@752..753 ")"323 L_BRACK@541..542 "["
324 COMMA@753..754 ","324 COLON@542..543 ":"
325 WHITESPACE@754..757 "\n "325 SLICE_DESC_END@543..550
326 MEMBER_FIELD@757..782326 EXPR_BINARY@543..550
327 FIELD_NORMAL@757..782327 LHS_EXPR@543..546
328 FIELD_NAME_FIXED@757..762328 EXPR_VAR@543..546
329 NAME@757..762329 NAME@543..546
330 IDENT@757..762 "trace"330 IDENT@543..546 "len"
331 COLONCOLON@762..764 "::"331 WHITESPACE@546..547 " "
332 WHITESPACE@764..765 " "332 MINUS@547..548 "-"
333 EXPR_INTRINSIC@765..782333 WHITESPACE@548..549 " "
334 INTRINSIC@765..775 "$intrinsic"334 EXPR_NUMBER@549..550
335 L_PAREN@775..776 "("335 FLOAT@549..550 "1"
336 NAME@776..781336 R_BRACK@550..551 "]"
337 IDENT@776..781 "trace"337 COMMA@551..552 ","
338 R_PAREN@781..782 ")"338 WHITESPACE@552..553 " "
339 COMMA@782..783 ","339 ARG@553..558
340 WHITESPACE@783..786 "\n "340 EXPR_VAR@553..558
341 MEMBER_FIELD@786..819341 NAME@553..558
342 FIELD_NORMAL@786..819342 IDENT@553..558 "chars"
343 FIELD_NAME_FIXED@786..795343 R_PAREN@558..559 ")"
344 NAME@786..795344 WHITESPACE@559..564 "\n "
345 IDENT@786..795 "parseJson"345 ELSE_KW@564..568 "else"
346 COLONCOLON@795..797 "::"346 WHITESPACE@568..575 "\n "
347 WHITESPACE@797..798 " "347 FALSE_EXPR@575..578
348 EXPR_INTRINSIC@798..819348 EXPR_VAR@575..578
349 INTRINSIC@798..808 "$intrinsic"349 NAME@575..578
350 L_PAREN@808..809 "("350 IDENT@575..578 "str"
351 NAME@809..818351 COMMA@578..579 ","
352 IDENT@809..818 "parseJson"352 WHITESPACE@579..583 "\n\n "
353 R_PAREN@818..819 ")"353 MEMBER_FIELD@583..663
354 COMMA@819..820 ","354 FIELD_METHOD@583..663
355 WHITESPACE@820..823 "\n "355 FIELD_NAME_FIXED@583..593
356 MEMBER_FIELD@823..856356 NAME@583..593
357 FIELD_NORMAL@823..856357 IDENT@583..593 "stripChars"
358 FIELD_NAME_FIXED@823..832358 PARAMS_DESC@593..605
359 NAME@823..832359 L_PAREN@593..594 "("
360 IDENT@823..832 "parseYaml"360 PARAM@594..597
361 COLONCOLON@832..834 "::"361 DESTRUCT_FULL@594..597
362 WHITESPACE@834..835 " "362 NAME@594..597
363 EXPR_INTRINSIC@835..856363 IDENT@594..597 "str"
364 INTRINSIC@835..845 "$intrinsic"364 COMMA@597..598 ","
365 L_PAREN@845..846 "("365 WHITESPACE@598..599 " "
366 NAME@846..855366 PARAM@599..604
367 IDENT@846..855 "parseYaml"367 DESTRUCT_FULL@599..604
368 R_PAREN@855..856 ")"368 NAME@599..604
369 COMMA@856..857 ","369 IDENT@599..604 "chars"
370 WHITESPACE@857..861 "\n\n "370 R_PAREN@604..605 ")"
371 MEMBER_FIELD@861..882371 COLONCOLON@605..607 "::"
372 FIELD_NORMAL@861..882372 WHITESPACE@607..612 "\n "
373 FIELD_NAME_FIXED@861..864373 EXPR_APPLY@612..663
374 NAME@861..864374 EXPR_INDEX@612..627
375 IDENT@861..864 "log"375 EXPR_VAR@612..615
376 COLONCOLON@864..866 "::"376 NAME@612..615
377 WHITESPACE@866..867 " "377 IDENT@612..615 "std"
378 EXPR_INTRINSIC@867..882378 DOT@615..616 "."
379 INTRINSIC@867..877 "$intrinsic"379 NAME@616..627
380 L_PAREN@877..878 "("380 IDENT@616..627 "lstripChars"
381 NAME@878..881381 ARGS_DESC@627..663
382 IDENT@878..881 "log"382 L_PAREN@627..628 "("
383 R_PAREN@881..882 ")"383 ARG@628..655
384 COMMA@882..883 ","384 EXPR_APPLY@628..655
385 WHITESPACE@883..886 "\n "385 EXPR_INDEX@628..643
386 MEMBER_FIELD@886..907386 EXPR_VAR@628..631
387 FIELD_NORMAL@886..907387 NAME@628..631
388 FIELD_NAME_FIXED@886..889388 IDENT@628..631 "std"
389 NAME@886..889389 DOT@631..632 "."
390 IDENT@886..889 "pow"390 NAME@632..643
391 COLONCOLON@889..891 "::"391 IDENT@632..643 "rstripChars"
392 WHITESPACE@891..892 " "392 ARGS_DESC@643..655
393 EXPR_INTRINSIC@892..907393 L_PAREN@643..644 "("
394 INTRINSIC@892..902 "$intrinsic"394 ARG@644..647
395 L_PAREN@902..903 "("395 EXPR_VAR@644..647
396 NAME@903..906396 NAME@644..647
397 IDENT@903..906 "pow"397 IDENT@644..647 "str"
398 R_PAREN@906..907 ")"398 COMMA@647..648 ","
399 COMMA@907..908 ","399 WHITESPACE@648..649 " "
400 WHITESPACE@908..911 "\n "400 ARG@649..654
401 MEMBER_FIELD@911..934401 EXPR_VAR@649..654
402 FIELD_NORMAL@911..934402 NAME@649..654
403 FIELD_NAME_FIXED@911..915403 IDENT@649..654 "chars"
404 NAME@911..915404 R_PAREN@654..655 ")"
405 IDENT@911..915 "sqrt"405 COMMA@655..656 ","
406 COLONCOLON@915..917 "::"406 WHITESPACE@656..657 " "
407 WHITESPACE@917..918 " "407 ARG@657..662
408 EXPR_INTRINSIC@918..934408 EXPR_VAR@657..662
409 INTRINSIC@918..928 "$intrinsic"409 NAME@657..662
410 L_PAREN@928..929 "("410 IDENT@657..662 "chars"
411 NAME@929..933411 R_PAREN@662..663 ")"
412 IDENT@929..933 "sqrt"412 COMMA@663..664 ","
413 R_PAREN@933..934 ")"413 WHITESPACE@664..668 "\n\n "
414 COMMA@934..935 ","414 MEMBER_FIELD@668..741
415 WHITESPACE@935..939 "\n\n "415 FIELD_METHOD@668..741
416 MEMBER_FIELD@939..960416 FIELD_NAME_FIXED@668..679
417 FIELD_NORMAL@939..960417 NAME@668..679
418 FIELD_NAME_FIXED@939..942418 IDENT@668..679 "stringChars"
419 NAME@939..942419 PARAMS_DESC@679..684
420 IDENT@939..942 "sin"420 L_PAREN@679..680 "("
421 COLONCOLON@942..944 "::"421 PARAM@680..683
422 WHITESPACE@944..945 " "422 DESTRUCT_FULL@680..683
423 EXPR_INTRINSIC@945..960423 NAME@680..683
424 INTRINSIC@945..955 "$intrinsic"424 IDENT@680..683 "str"
425 L_PAREN@955..956 "("425 R_PAREN@683..684 ")"
426 NAME@956..959426 COLONCOLON@684..686 "::"
427 IDENT@956..959 "sin"427 WHITESPACE@686..691 "\n "
428 R_PAREN@959..960 ")"428 EXPR_APPLY@691..741
429 COMMA@960..961 ","429 EXPR_INDEX@691..704
430 WHITESPACE@961..964 "\n "430 EXPR_VAR@691..694
431 MEMBER_FIELD@964..985431 NAME@691..694
432 FIELD_NORMAL@964..985432 IDENT@691..694 "std"
433 FIELD_NAME_FIXED@964..967433 DOT@694..695 "."
434 NAME@964..967434 NAME@695..704
435 IDENT@964..967 "cos"435 IDENT@695..704 "makeArray"
436 COLONCOLON@967..969 "::"436 ARGS_DESC@704..741
437 WHITESPACE@969..970 " "437 L_PAREN@704..705 "("
438 EXPR_INTRINSIC@970..985438 ARG@705..720
439 INTRINSIC@970..980 "$intrinsic"439 EXPR_APPLY@705..720
440 L_PAREN@980..981 "("440 EXPR_INDEX@705..715
441 NAME@981..984441 EXPR_VAR@705..708
442 IDENT@981..984 "cos"442 NAME@705..708
443 R_PAREN@984..985 ")"443 IDENT@705..708 "std"
444 COMMA@985..986 ","444 DOT@708..709 "."
445 WHITESPACE@986..989 "\n "445 NAME@709..715
446 MEMBER_FIELD@989..1010446 IDENT@709..715 "length"
447 FIELD_NORMAL@989..1010447 ARGS_DESC@715..720
448 FIELD_NAME_FIXED@989..992448 L_PAREN@715..716 "("
449 NAME@989..992449 ARG@716..719
450 IDENT@989..992 "tan"450 EXPR_VAR@716..719
451 COLONCOLON@992..994 "::"451 NAME@716..719
452 WHITESPACE@994..995 " "452 IDENT@716..719 "str"
453 EXPR_INTRINSIC@995..1010453 R_PAREN@719..720 ")"
454 INTRINSIC@995..1005 "$intrinsic"454 COMMA@720..721 ","
455 L_PAREN@1005..1006 "("455 WHITESPACE@721..722 " "
456 NAME@1006..1009456 ARG@722..740
457 IDENT@1006..1009 "tan"457 EXPR_FUNCTION@722..740
458 R_PAREN@1009..1010 ")"458 FUNCTION_KW@722..730 "function"
459 COMMA@1010..1011 ","459 PARAMS_DESC@730..733
460 WHITESPACE@1011..1014 "\n "460 L_PAREN@730..731 "("
461 MEMBER_FIELD@1014..1037461 PARAM@731..732
462 FIELD_NORMAL@1014..1037462 DESTRUCT_FULL@731..732
463 FIELD_NAME_FIXED@1014..1018463 NAME@731..732
464 NAME@1014..1018464 IDENT@731..732 "i"
465 IDENT@1014..1018 "asin"465 R_PAREN@732..733 ")"
466 COLONCOLON@1018..1020 "::"466 WHITESPACE@733..734 " "
467 WHITESPACE@1020..1021 " "467 EXPR_INDEX_EXPR@734..740
468 EXPR_INTRINSIC@1021..1037468 LHS_EXPR@734..737
469 INTRINSIC@1021..1031 "$intrinsic"469 EXPR_VAR@734..737
470 L_PAREN@1031..1032 "("470 NAME@734..737
471 NAME@1032..1036471 IDENT@734..737 "str"
472 IDENT@1032..1036 "asin"472 L_BRACK@737..738 "["
473 R_PAREN@1036..1037 ")"473 EXPR_VAR@738..739
474 COMMA@1037..1038 ","474 NAME@738..739
475 WHITESPACE@1038..1041 "\n "475 IDENT@738..739 "i"
476 MEMBER_FIELD@1041..1064476 R_BRACK@739..740 "]"
477 FIELD_NORMAL@1041..1064477 R_PAREN@740..741 ")"
478 FIELD_NAME_FIXED@1041..1045478 COMMA@741..742 ","
479 NAME@1041..1045479 WHITESPACE@742..746 "\n\n "
480 IDENT@1041..1045 "acos"480 MEMBER_FIELD@746..1024
481 COLONCOLON@1045..1047 "::"481 FIELD_METHOD@746..1024
482 WHITESPACE@1047..1048 " "482 FIELD_NAME_FIXED@746..757
483 EXPR_INTRINSIC@1048..1064483 NAME@746..757
484 INTRINSIC@1048..1058 "$intrinsic"484 IDENT@746..757 "splitLimitR"
485 L_PAREN@1058..1059 "("485 PARAMS_DESC@757..776
486 NAME@1059..1063486 L_PAREN@757..758 "("
487 IDENT@1059..1063 "acos"487 PARAM@758..761
488 R_PAREN@1063..1064 ")"488 DESTRUCT_FULL@758..761
489 COMMA@1064..1065 ","489 NAME@758..761
490 WHITESPACE@1065..1068 "\n "490 IDENT@758..761 "str"
491 MEMBER_FIELD@1068..1091491 COMMA@761..762 ","
492 FIELD_NORMAL@1068..1091492 WHITESPACE@762..763 " "
493 FIELD_NAME_FIXED@1068..1072493 PARAM@763..764
494 NAME@1068..1072494 DESTRUCT_FULL@763..764
495 IDENT@1068..1072 "atan"495 NAME@763..764
496 COLONCOLON@1072..1074 "::"496 IDENT@763..764 "c"
497 WHITESPACE@1074..1075 " "497 COMMA@764..765 ","
498 EXPR_INTRINSIC@1075..1091498 WHITESPACE@765..766 " "
499 INTRINSIC@1075..1085 "$intrinsic"499 PARAM@766..775
500 L_PAREN@1085..1086 "("500 DESTRUCT_FULL@766..775
501 NAME@1086..1090501 NAME@766..775
502 IDENT@1086..1090 "atan"502 IDENT@766..775 "maxsplits"
503 R_PAREN@1090..1091 ")"503 R_PAREN@775..776 ")"
504 COMMA@1091..1092 ","504 COLONCOLON@776..778 "::"
505 WHITESPACE@1092..1096 "\n\n "505 WHITESPACE@778..783 "\n "
506 MEMBER_FIELD@1096..1117506 EXPR_IF_THEN_ELSE@783..1024
507 FIELD_NORMAL@1096..1117507 IF_KW@783..785 "if"
508 FIELD_NAME_FIXED@1096..1099508 WHITESPACE@785..786 " "
509 NAME@1096..1099509 EXPR_BINARY@786..801
510 IDENT@1096..1099 "exp"510 LHS_EXPR@786..795
511 EXPR_VAR@786..795
512 NAME@786..795
513 IDENT@786..795 "maxsplits"
514 WHITESPACE@795..796 " "
515 EQ@796..798 "=="
516 WHITESPACE@798..799 " "
517 EXPR_UNARY@799..801
518 MINUS@799..800 "-"
519 EXPR_NUMBER@800..801
520 FLOAT@800..801 "1"
521 WHITESPACE@801..802 " "
522 THEN_KW@802..806 "then"
523 WHITESPACE@806..813 "\n "
524 TRUE_EXPR@813..839
525 EXPR_APPLY@813..839
526 EXPR_INDEX@813..827
527 EXPR_VAR@813..816
528 NAME@813..816
529 IDENT@813..816 "std"
530 DOT@816..817 "."
531 NAME@817..827
532 IDENT@817..827 "splitLimit"
533 ARGS_DESC@827..839
534 L_PAREN@827..828 "("
535 ARG@828..831
536 EXPR_VAR@828..831
537 NAME@828..831
538 IDENT@828..831 "str"
539 COMMA@831..832 ","
540 WHITESPACE@832..833 " "
541 ARG@833..834
542 EXPR_VAR@833..834
543 NAME@833..834
544 IDENT@833..834 "c"
545 COMMA@834..835 ","
546 WHITESPACE@835..836 " "
547 ARG@836..838
548 EXPR_UNARY@836..838
549 MINUS@836..837 "-"
550 EXPR_NUMBER@837..838
551 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..1024
557 EXPR_LOCAL@855..1024
558 LOCAL_KW@855..860 "local"
559 WHITESPACE@860..861 " "
560 BIND_FUNCTION@861..922
561 NAME@861..867
562 IDENT@861..867 "revStr"
563 PARAMS_DESC@867..872
564 L_PAREN@867..868 "("
565 PARAM@868..871
566 DESTRUCT_FULL@868..871
567 NAME@868..871
568 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..922
574 EXPR_INDEX@875..883
575 EXPR_VAR@875..878
576 NAME@875..878
577 IDENT@875..878 "std"
578 DOT@878..879 "."
579 NAME@879..883
580 IDENT@879..883 "join"
581 ARGS_DESC@883..922
582 L_PAREN@883..884 "("
583 ARG@884..886
584 EXPR_STRING@884..886
585 STRING_SINGLE@884..886 "''"
586 COMMA@886..887 ","
587 WHITESPACE@887..888 " "
588 ARG@888..921
589 EXPR_APPLY@888..921
590 EXPR_INDEX@888..899
591 EXPR_VAR@888..891
592 NAME@888..891
593 IDENT@888..891 "std"
594 DOT@891..892 "."
595 NAME@892..899
596 IDENT@892..899 "reverse"
597 ARGS_DESC@899..921
598 L_PAREN@899..900 "("
599 ARG@900..920
600 EXPR_APPLY@900..920
601 EXPR_INDEX@900..915
602 EXPR_VAR@900..903
603 NAME@900..903
604 IDENT@900..903 "std"
605 DOT@903..904 "."
606 NAME@904..915
607 IDENT@904..915 "stringChars"
608 ARGS_DESC@915..920
609 L_PAREN@915..916 "("
610 ARG@916..919
611 EXPR_VAR@916..919
612 NAME@916..919
613 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..1024
620 EXPR_INDEX@930..937
621 EXPR_VAR@930..933
622 NAME@930..933
623 IDENT@930..933 "std"
624 DOT@933..934 "."
625 NAME@934..937
626 IDENT@934..937 "map"
627 ARGS_DESC@937..1024
628 L_PAREN@937..938 "("
629 ARG@938..959
630 EXPR_FUNCTION@938..959
631 FUNCTION_KW@938..946 "function"
632 PARAMS_DESC@946..949
633 L_PAREN@946..947 "("
634 PARAM@947..948
635 DESTRUCT_FULL@947..948
636 NAME@947..948
637 IDENT@947..948 "e"
638 R_PAREN@948..949 ")"
639 WHITESPACE@949..950 " "
640 EXPR_APPLY@950..959
641 EXPR_VAR@950..956
642 NAME@950..956
643 IDENT@950..956 "revStr"
644 ARGS_DESC@956..959
645 L_PAREN@956..957 "("
646 ARG@957..958
647 EXPR_VAR@957..958
648 NAME@957..958
649 IDENT@957..958 "e"
650 R_PAREN@958..959 ")"
651 COMMA@959..960 ","
652 WHITESPACE@960..961 " "
653 ARG@961..1023
654 EXPR_APPLY@961..1023
655 EXPR_INDEX@961..972
656 EXPR_VAR@961..964
657 NAME@961..964
658 IDENT@961..964 "std"
659 DOT@964..965 "."
660 NAME@965..972
661 IDENT@965..972 "reverse"
662 ARGS_DESC@972..1023
663 L_PAREN@972..973 "("
664 ARG@973..1022
665 EXPR_APPLY@973..1022
666 EXPR_INDEX@973..987
667 EXPR_VAR@973..976
668 NAME@973..976
669 IDENT@973..976 "std"
670 DOT@976..977 "."
671 NAME@977..987
672 IDENT@977..987 "splitLimit"
673 ARGS_DESC@987..1022
674 L_PAREN@987..988 "("
675 ARG@988..999
676 EXPR_APPLY@988..999
677 EXPR_VAR@988..994
678 NAME@988..994
679 IDENT@988..994 "revStr"
680 ARGS_DESC@994..999
681 L_PAREN@994..995 "("
682 ARG@995..998
683 EXPR_VAR@995..998
684 NAME@995..998
685 IDENT@995..998 "str"
686 R_PAREN@998..999 ")"
687 COMMA@999..1000 ","
688 WHITESPACE@1000..1001 " "
689 ARG@1001..1010
690 EXPR_APPLY@1001..1010
691 EXPR_VAR@1001..1007
692 NAME@1001..1007
693 IDENT@1001..1007 "revStr"
694 ARGS_DESC@1007..1010
695 L_PAREN@1007..1008 "("
696 ARG@1008..1009
697 EXPR_VAR@1008..1009
698 NAME@1008..1009
699 IDENT@1008..1009 "c"
700 R_PAREN@1009..1010 ")"
701 COMMA@1010..1011 ","
702 WHITESPACE@1011..1012 " "
703 ARG@1012..1021
704 EXPR_VAR@1012..1021
705 NAME@1012..1021
706 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..1071
713 FIELD_METHOD@1029..1071
714 FIELD_NAME_FIXED@1029..1034
715 NAME@1029..1034
716 IDENT@1029..1034 "split"
717 PARAMS_DESC@1034..1042
718 L_PAREN@1034..1035 "("
719 PARAM@1035..1038
720 DESTRUCT_FULL@1035..1038
721 NAME@1035..1038
722 IDENT@1035..1038 "str"
723 COMMA@1038..1039 ","
724 WHITESPACE@1039..1040 " "
725 PARAM@1040..1041
726 DESTRUCT_FULL@1040..1041
727 NAME@1040..1041
728 IDENT@1040..1041 "c"
729 R_PAREN@1041..1042 ")"
730 COLONCOLON@1042..1044 "::"
731 WHITESPACE@1044..1045 " "
732 EXPR_APPLY@1045..1071
733 EXPR_INDEX@1045..1059
734 EXPR_VAR@1045..1048
735 NAME@1045..1048
736 IDENT@1045..1048 "std"
737 DOT@1048..1049 "."
738 NAME@1049..1059
739 IDENT@1049..1059 "splitLimit"
740 ARGS_DESC@1059..1071
741 L_PAREN@1059..1060 "("
742 ARG@1060..1063
743 EXPR_VAR@1060..1063
744 NAME@1060..1063
745 IDENT@1060..1063 "str"
746 COMMA@1063..1064 ","
747 WHITESPACE@1064..1065 " "
748 ARG@1065..1066
749 EXPR_VAR@1065..1066
750 NAME@1065..1066
751 IDENT@1065..1066 "c"
752 COMMA@1066..1067 ","
753 WHITESPACE@1067..1068 " "
754 ARG@1068..1070
755 EXPR_UNARY@1068..1070
756 MINUS@1068..1069 "-"
757 EXPR_NUMBER@1069..1070
758 FLOAT@1069..1070 "1"
759 R_PAREN@1070..1071 ")"
760 COMMA@1071..1072 ","
761 WHITESPACE@1072..1076 "\n\n "
762 MEMBER_FIELD@1076..1434
763 FIELD_METHOD@1076..1434
764 FIELD_NAME_FIXED@1076..1088
765 NAME@1076..1088
766 IDENT@1076..1088 "mapWithIndex"
767 PARAMS_DESC@1088..1099
768 L_PAREN@1088..1089 "("
769 PARAM@1089..1093
770 DESTRUCT_FULL@1089..1093
771 NAME@1089..1093
772 IDENT@1089..1093 "func"
773 COMMA@1093..1094 ","
774 WHITESPACE@1094..1095 " "
775 PARAM@1095..1098
776 DESTRUCT_FULL@1095..1098
777 NAME@1095..1098
778 IDENT@1095..1098 "arr"
779 R_PAREN@1098..1099 ")"
511 COLONCOLON@1099..1101 "::"780 COLONCOLON@1099..1101 "::"
512 WHITESPACE@1101..1102 " "781 WHITESPACE@1101..1106 "\n "
513 EXPR_INTRINSIC@1102..1117782 EXPR_IF_THEN_ELSE@1106..1434
514 INTRINSIC@1102..1112 "$intrinsic"783 IF_KW@1106..1108 "if"
515 L_PAREN@1112..1113 "("784 WHITESPACE@1108..1109 " "
516 NAME@1113..1116785 EXPR_UNARY@1109..1130
517 IDENT@1113..1116 "exp"786 NOT@1109..1110 "!"
518 R_PAREN@1116..1117 ")"787 EXPR_APPLY@1110..1130
519 COMMA@1117..1118 ","788 EXPR_INDEX@1110..1124
520 WHITESPACE@1118..1121 "\n "789 EXPR_VAR@1110..1113
521 MEMBER_FIELD@1121..1152790 NAME@1110..1113
522 FIELD_NORMAL@1121..1152791 IDENT@1110..1113 "std"
523 FIELD_NAME_FIXED@1121..1129792 DOT@1113..1114 "."
524 NAME@1121..1129793 NAME@1114..1124
525 IDENT@1121..1129 "mantissa"794 IDENT@1114..1124 "isFunction"
526 COLONCOLON@1129..1131 "::"795 ARGS_DESC@1124..1130
527 WHITESPACE@1131..1132 " "796 L_PAREN@1124..1125 "("
528 EXPR_INTRINSIC@1132..1152797 ARG@1125..1129
529 INTRINSIC@1132..1142 "$intrinsic"798 EXPR_VAR@1125..1129
530 L_PAREN@1142..1143 "("799 NAME@1125..1129
531 NAME@1143..1151800 IDENT@1125..1129 "func"
532 IDENT@1143..1151 "mantissa"801 R_PAREN@1129..1130 ")"
533 R_PAREN@1151..1152 ")"802 WHITESPACE@1130..1131 " "
534 COMMA@1152..1153 ","803 THEN_KW@1131..1135 "then"
535 WHITESPACE@1153..1156 "\n "804 WHITESPACE@1135..1142 "\n "
536 MEMBER_FIELD@1156..1187805 TRUE_EXPR@1142..1220
537 FIELD_NORMAL@1156..1187806 EXPR_ERROR@1142..1220
538 FIELD_NAME_FIXED@1156..1164807 ERROR_KW@1142..1147 "error"
539 NAME@1156..1164808 WHITESPACE@1147..1148 " "
540 IDENT@1156..1164 "exponent"809 EXPR_PARENED@1148..1220
541 COLONCOLON@1164..1166 "::"810 L_PAREN@1148..1149 "("
542 WHITESPACE@1166..1167 " "811 EXPR_BINARY@1149..1219
543 EXPR_INTRINSIC@1167..1187812 LHS_EXPR@1149..1202
544 INTRINSIC@1167..1177 "$intrinsic"813 EXPR_STRING@1149..1202
545 L_PAREN@1177..1178 "("814 STRING_SINGLE@1149..1202 "'std.mapWithIndex fir ..."
546 NAME@1178..1186815 WHITESPACE@1202..1203 " "
547 IDENT@1178..1186 "exponent"816 PLUS@1203..1204 "+"
548 R_PAREN@1186..1187 ")"817 WHITESPACE@1204..1205 " "
549 COMMA@1187..1188 ","818 EXPR_APPLY@1205..1219
550 WHITESPACE@1188..1192 "\n\n "819 EXPR_INDEX@1205..1213
551 MEMBER_FIELD@1192..1213820 EXPR_VAR@1205..1208
552 FIELD_NORMAL@1192..1213821 NAME@1205..1208
553 FIELD_NAME_FIXED@1192..1195822 IDENT@1205..1208 "std"
554 NAME@1192..1195823 DOT@1208..1209 "."
555 IDENT@1192..1195 "any"824 NAME@1209..1213
556 COLONCOLON@1195..1197 "::"825 IDENT@1209..1213 "type"
557 WHITESPACE@1197..1198 " "826 ARGS_DESC@1213..1219
558 EXPR_INTRINSIC@1198..1213827 L_PAREN@1213..1214 "("
559 INTRINSIC@1198..1208 "$intrinsic"828 ARG@1214..1218
560 L_PAREN@1208..1209 "("829 EXPR_VAR@1214..1218
561 NAME@1209..1212830 NAME@1214..1218
562 IDENT@1209..1212 "any"831 IDENT@1214..1218 "func"
563 R_PAREN@1212..1213 ")"832 R_PAREN@1218..1219 ")"
564 COMMA@1213..1214 ","833 R_PAREN@1219..1220 ")"
565 WHITESPACE@1214..1217 "\n "834 WHITESPACE@1220..1225 "\n "
566 MEMBER_FIELD@1217..1238835 ELSE_KW@1225..1229 "else"
567 FIELD_NORMAL@1217..1238836 WHITESPACE@1229..1230 " "
568 FIELD_NAME_FIXED@1217..1220837 FALSE_EXPR@1230..1434
569 NAME@1217..1220838 EXPR_IF_THEN_ELSE@1230..1434
570 IDENT@1217..1220 "all"839 IF_KW@1230..1232 "if"
571 COLONCOLON@1220..1222 "::"840 WHITESPACE@1232..1233 " "
572 WHITESPACE@1222..1223 " "841 EXPR_BINARY@1233..1272
573 EXPR_INTRINSIC@1223..1238842 LHS_EXPR@1233..1250
574 INTRINSIC@1223..1233 "$intrinsic"843 EXPR_UNARY@1233..1250
575 L_PAREN@1233..1234 "("844 NOT@1233..1234 "!"
576 NAME@1234..1237845 EXPR_APPLY@1234..1250
577 IDENT@1234..1237 "all"846 EXPR_INDEX@1234..1245
578 R_PAREN@1237..1238 ")"847 EXPR_VAR@1234..1237
579 COMMA@1238..1239 ","848 NAME@1234..1237
580 WHITESPACE@1239..1243 "\n\n "849 IDENT@1234..1237 "std"
581 MEMBER_FIELD@1243..1280850 DOT@1237..1238 "."
582 FIELD_METHOD@1243..1280851 NAME@1238..1245
583 FIELD_NAME_FIXED@1243..1251852 IDENT@1238..1245 "isArray"
584 NAME@1243..1251853 ARGS_DESC@1245..1250
585 IDENT@1243..1251 "isString"854 L_PAREN@1245..1246 "("
586 PARAMS_DESC@1251..1254855 ARG@1246..1249
587 L_PAREN@1251..1252 "("856 EXPR_VAR@1246..1249
588 PARAM@1252..1253857 NAME@1246..1249
589 DESTRUCT_FULL@1252..1253858 IDENT@1246..1249 "arr"
590 NAME@1252..1253859 R_PAREN@1249..1250 ")"
591 IDENT@1252..1253 "v"860 WHITESPACE@1250..1251 " "
592 R_PAREN@1253..1254 ")"861 AND@1251..1253 "&&"
593 COLONCOLON@1254..1256 "::"862 WHITESPACE@1253..1254 " "
594 WHITESPACE@1256..1257 " "863 EXPR_UNARY@1254..1272
595 EXPR_BINARY@1257..1280864 NOT@1254..1255 "!"
596 LHS_EXPR@1257..1268865 EXPR_APPLY@1255..1272
597 EXPR_APPLY@1257..1268866 EXPR_INDEX@1255..1267
598 EXPR_INDEX@1257..1265867 EXPR_VAR@1255..1258
599 EXPR_VAR@1257..1260868 NAME@1255..1258
600 NAME@1257..1260869 IDENT@1255..1258 "std"
601 IDENT@1257..1260 "std"870 DOT@1258..1259 "."
602 DOT@1260..1261 "."871 NAME@1259..1267
603 NAME@1261..1265872 IDENT@1259..1267 "isString"
604 IDENT@1261..1265 "type"873 ARGS_DESC@1267..1272
605 ARGS_DESC@1265..1268874 L_PAREN@1267..1268 "("
606 L_PAREN@1265..1266 "("875 ARG@1268..1271
607 ARG@1266..1267876 EXPR_VAR@1268..1271
608 EXPR_VAR@1266..1267877 NAME@1268..1271
609 NAME@1266..1267878 IDENT@1268..1271 "arr"
610 IDENT@1266..1267 "v"879 R_PAREN@1271..1272 ")"
611 R_PAREN@1267..1268 ")"880 WHITESPACE@1272..1273 " "
612 WHITESPACE@1268..1269 " "881 THEN_KW@1273..1277 "then"
613 EQ@1269..1271 "=="882 WHITESPACE@1277..1284 "\n "
614 WHITESPACE@1271..1272 " "883 TRUE_EXPR@1284..1359
615 EXPR_STRING@1272..1280884 EXPR_ERROR@1284..1359
616 STRING_SINGLE@1272..1280 "'string'"885 ERROR_KW@1284..1289 "error"
617 COMMA@1280..1281 ","886 WHITESPACE@1289..1290 " "
618 WHITESPACE@1281..1284 "\n "887 EXPR_PARENED@1290..1359
619 MEMBER_FIELD@1284..1321888 L_PAREN@1290..1291 "("
620 FIELD_METHOD@1284..1321889 EXPR_BINARY@1291..1358
621 FIELD_NAME_FIXED@1284..1292890 LHS_EXPR@1291..1342
622 NAME@1284..1292891 EXPR_STRING@1291..1342
623 IDENT@1284..1292 "isNumber"892 STRING_SINGLE@1291..1342 "'std.mapWithIndex sec ..."
624 PARAMS_DESC@1292..1295893 WHITESPACE@1342..1343 " "
625 L_PAREN@1292..1293 "("894 PLUS@1343..1344 "+"
626 PARAM@1293..1294895 WHITESPACE@1344..1345 " "
627 DESTRUCT_FULL@1293..1294896 EXPR_APPLY@1345..1358
628 NAME@1293..1294897 EXPR_INDEX@1345..1353
629 IDENT@1293..1294 "v"898 EXPR_VAR@1345..1348
630 R_PAREN@1294..1295 ")"899 NAME@1345..1348
631 COLONCOLON@1295..1297 "::"900 IDENT@1345..1348 "std"
632 WHITESPACE@1297..1298 " "901 DOT@1348..1349 "."
633 EXPR_BINARY@1298..1321902 NAME@1349..1353
634 LHS_EXPR@1298..1309903 IDENT@1349..1353 "type"
635 EXPR_APPLY@1298..1309904 ARGS_DESC@1353..1358
636 EXPR_INDEX@1298..1306905 L_PAREN@1353..1354 "("
637 EXPR_VAR@1298..1301906 ARG@1354..1357
638 NAME@1298..1301907 EXPR_VAR@1354..1357
639 IDENT@1298..1301 "std"908 NAME@1354..1357
640 DOT@1301..1302 "."909 IDENT@1354..1357 "arr"
641 NAME@1302..1306910 R_PAREN@1357..1358 ")"
642 IDENT@1302..1306 "type"911 R_PAREN@1358..1359 ")"
643 ARGS_DESC@1306..1309912 WHITESPACE@1359..1364 "\n "
644 L_PAREN@1306..1307 "("913 ELSE_KW@1364..1368 "else"
645 ARG@1307..1308914 WHITESPACE@1368..1375 "\n "
646 EXPR_VAR@1307..1308915 FALSE_EXPR@1375..1434
647 NAME@1307..1308916 EXPR_APPLY@1375..1434
648 IDENT@1307..1308 "v"917 EXPR_INDEX@1375..1388
649 R_PAREN@1308..1309 ")"918 EXPR_VAR@1375..1378
650 WHITESPACE@1309..1310 " "919 NAME@1375..1378
651 EQ@1310..1312 "=="920 IDENT@1375..1378 "std"
652 WHITESPACE@1312..1313 " "921 DOT@1378..1379 "."
653 EXPR_STRING@1313..1321922 NAME@1379..1388
654 STRING_SINGLE@1313..1321 "'number'"923 IDENT@1379..1388 "makeArray"
655 COMMA@1321..1322 ","924 ARGS_DESC@1388..1434
656 WHITESPACE@1322..1325 "\n "925 L_PAREN@1388..1389 "("
657 MEMBER_FIELD@1325..1364926 ARG@1389..1404
658 FIELD_METHOD@1325..1364927 EXPR_APPLY@1389..1404
659 FIELD_NAME_FIXED@1325..1334928 EXPR_INDEX@1389..1399
660 NAME@1325..1334929 EXPR_VAR@1389..1392
661 IDENT@1325..1334 "isBoolean"930 NAME@1389..1392
662 PARAMS_DESC@1334..1337931 IDENT@1389..1392 "std"
663 L_PAREN@1334..1335 "("932 DOT@1392..1393 "."
664 PARAM@1335..1336933 NAME@1393..1399
665 DESTRUCT_FULL@1335..1336934 IDENT@1393..1399 "length"
666 NAME@1335..1336935 ARGS_DESC@1399..1404
667 IDENT@1335..1336 "v"936 L_PAREN@1399..1400 "("
668 R_PAREN@1336..1337 ")"937 ARG@1400..1403
669 COLONCOLON@1337..1339 "::"938 EXPR_VAR@1400..1403
670 WHITESPACE@1339..1340 " "939 NAME@1400..1403
671 EXPR_BINARY@1340..1364940 IDENT@1400..1403 "arr"
672 LHS_EXPR@1340..1351941 R_PAREN@1403..1404 ")"
673 EXPR_APPLY@1340..1351942 COMMA@1404..1405 ","
674 EXPR_INDEX@1340..1348943 WHITESPACE@1405..1406 " "
675 EXPR_VAR@1340..1343944 ARG@1406..1433
676 NAME@1340..1343945 EXPR_FUNCTION@1406..1433
677 IDENT@1340..1343 "std"946 FUNCTION_KW@1406..1414 "function"
678 DOT@1343..1344 "."947 PARAMS_DESC@1414..1417
679 NAME@1344..1348948 L_PAREN@1414..1415 "("
680 IDENT@1344..1348 "type"949 PARAM@1415..1416
681 ARGS_DESC@1348..1351950 DESTRUCT_FULL@1415..1416
682 L_PAREN@1348..1349 "("951 NAME@1415..1416
683 ARG@1349..1350952 IDENT@1415..1416 "i"
684 EXPR_VAR@1349..1350953 R_PAREN@1416..1417 ")"
685 NAME@1349..1350954 WHITESPACE@1417..1418 " "
686 IDENT@1349..1350 "v"955 EXPR_APPLY@1418..1433
687 R_PAREN@1350..1351 ")"956 EXPR_VAR@1418..1422
688 WHITESPACE@1351..1352 " "957 NAME@1418..1422
689 EQ@1352..1354 "=="958 IDENT@1418..1422 "func"
690 WHITESPACE@1354..1355 " "959 ARGS_DESC@1422..1433
691 EXPR_STRING@1355..1364960 L_PAREN@1422..1423 "("
692 STRING_SINGLE@1355..1364 "'boolean'"961 ARG@1423..1424
693 COMMA@1364..1365 ","962 EXPR_VAR@1423..1424
694 WHITESPACE@1365..1368 "\n "963 NAME@1423..1424
695 MEMBER_FIELD@1368..1405964 IDENT@1423..1424 "i"
696 FIELD_METHOD@1368..1405965 COMMA@1424..1425 ","
697 FIELD_NAME_FIXED@1368..1376966 WHITESPACE@1425..1426 " "
698 NAME@1368..1376967 ARG@1426..1432
699 IDENT@1368..1376 "isObject"968 EXPR_INDEX_EXPR@1426..1432
700 PARAMS_DESC@1376..1379969 LHS_EXPR@1426..1429
701 L_PAREN@1376..1377 "("970 EXPR_VAR@1426..1429
702 PARAM@1377..1378971 NAME@1426..1429
703 DESTRUCT_FULL@1377..1378972 IDENT@1426..1429 "arr"
704 NAME@1377..1378973 L_BRACK@1429..1430 "["
705 IDENT@1377..1378 "v"974 EXPR_VAR@1430..1431
706 R_PAREN@1378..1379 ")"975 NAME@1430..1431
707 COLONCOLON@1379..1381 "::"976 IDENT@1430..1431 "i"
708 WHITESPACE@1381..1382 " "977 R_BRACK@1431..1432 "]"
709 EXPR_BINARY@1382..1405978 R_PAREN@1432..1433 ")"
710 LHS_EXPR@1382..1393979 R_PAREN@1433..1434 ")"
711 EXPR_APPLY@1382..1393980 COMMA@1434..1435 ","
712 EXPR_INDEX@1382..1390981 WHITESPACE@1435..1439 "\n\n "
713 EXPR_VAR@1382..1385982 MEMBER_FIELD@1439..1767
714 NAME@1382..1385983 FIELD_METHOD@1439..1767
715 IDENT@1382..1385 "std"984 FIELD_NAME_FIXED@1439..1449
716 DOT@1385..1386 "."985 NAME@1439..1449
717 NAME@1386..1390986 IDENT@1439..1449 "mapWithKey"
718 IDENT@1386..1390 "type"987 PARAMS_DESC@1449..1460
719 ARGS_DESC@1390..1393988 L_PAREN@1449..1450 "("
720 L_PAREN@1390..1391 "("989 PARAM@1450..1454
721 ARG@1391..1392990 DESTRUCT_FULL@1450..1454
722 EXPR_VAR@1391..1392991 NAME@1450..1454
723 NAME@1391..1392992 IDENT@1450..1454 "func"
724 IDENT@1391..1392 "v"993 COMMA@1454..1455 ","
725 R_PAREN@1392..1393 ")"994 WHITESPACE@1455..1456 " "
726 WHITESPACE@1393..1394 " "995 PARAM@1456..1459
727 EQ@1394..1396 "=="996 DESTRUCT_FULL@1456..1459
728 WHITESPACE@1396..1397 " "997 NAME@1456..1459
729 EXPR_STRING@1397..1405998 IDENT@1456..1459 "obj"
730 STRING_SINGLE@1397..1405 "'object'"999 R_PAREN@1459..1460 ")"
731 COMMA@1405..1406 ","1000 COLONCOLON@1460..1462 "::"
732 WHITESPACE@1406..1409 "\n "1001 WHITESPACE@1462..1467 "\n "
733 MEMBER_FIELD@1409..14441002 EXPR_IF_THEN_ELSE@1467..1767
734 FIELD_METHOD@1409..14441003 IF_KW@1467..1469 "if"
735 FIELD_NAME_FIXED@1409..14161004 WHITESPACE@1469..1470 " "
736 NAME@1409..14161005 EXPR_UNARY@1470..1491
737 IDENT@1409..1416 "isArray"1006 NOT@1470..1471 "!"
738 PARAMS_DESC@1416..14191007 EXPR_APPLY@1471..1491
739 L_PAREN@1416..1417 "("1008 EXPR_INDEX@1471..1485
740 PARAM@1417..14181009 EXPR_VAR@1471..1474
741 DESTRUCT_FULL@1417..14181010 NAME@1471..1474
742 NAME@1417..14181011 IDENT@1471..1474 "std"
743 IDENT@1417..1418 "v"1012 DOT@1474..1475 "."
744 R_PAREN@1418..1419 ")"1013 NAME@1475..1485
745 COLONCOLON@1419..1421 "::"1014 IDENT@1475..1485 "isFunction"
746 WHITESPACE@1421..1422 " "1015 ARGS_DESC@1485..1491
747 EXPR_BINARY@1422..14441016 L_PAREN@1485..1486 "("
748 LHS_EXPR@1422..14331017 ARG@1486..1490
749 EXPR_APPLY@1422..14331018 EXPR_VAR@1486..1490
750 EXPR_INDEX@1422..14301019 NAME@1486..1490
751 EXPR_VAR@1422..14251020 IDENT@1486..1490 "func"
752 NAME@1422..14251021 R_PAREN@1490..1491 ")"
753 IDENT@1422..1425 "std"1022 WHITESPACE@1491..1492 " "
754 DOT@1425..1426 "."1023 THEN_KW@1492..1496 "then"
755 NAME@1426..14301024 WHITESPACE@1496..1503 "\n "
756 IDENT@1426..1430 "type"1025 TRUE_EXPR@1503..1579
757 ARGS_DESC@1430..14331026 EXPR_ERROR@1503..1579
758 L_PAREN@1430..1431 "("1027 ERROR_KW@1503..1508 "error"
759 ARG@1431..14321028 WHITESPACE@1508..1509 " "
760 EXPR_VAR@1431..14321029 EXPR_PARENED@1509..1579
761 NAME@1431..14321030 L_PAREN@1509..1510 "("
762 IDENT@1431..1432 "v"1031 EXPR_BINARY@1510..1578
763 R_PAREN@1432..1433 ")"1032 LHS_EXPR@1510..1561
764 WHITESPACE@1433..1434 " "1033 EXPR_STRING@1510..1561
765 EQ@1434..1436 "=="1034 STRING_SINGLE@1510..1561 "'std.mapWithKey first ..."
766 WHITESPACE@1436..1437 " "1035 WHITESPACE@1561..1562 " "
767 EXPR_STRING@1437..14441036 PLUS@1562..1563 "+"
768 STRING_SINGLE@1437..1444 "'array'"1037 WHITESPACE@1563..1564 " "
769 COMMA@1444..1445 ","1038 EXPR_APPLY@1564..1578
770 WHITESPACE@1445..1448 "\n "1039 EXPR_INDEX@1564..1572
771 MEMBER_FIELD@1448..14891040 EXPR_VAR@1564..1567
772 FIELD_METHOD@1448..14891041 NAME@1564..1567
773 FIELD_NAME_FIXED@1448..14581042 IDENT@1564..1567 "std"
774 NAME@1448..14581043 DOT@1567..1568 "."
775 IDENT@1448..1458 "isFunction"1044 NAME@1568..1572
776 PARAMS_DESC@1458..14611045 IDENT@1568..1572 "type"
777 L_PAREN@1458..1459 "("1046 ARGS_DESC@1572..1578
778 PARAM@1459..14601047 L_PAREN@1572..1573 "("
779 DESTRUCT_FULL@1459..14601048 ARG@1573..1577
780 NAME@1459..14601049 EXPR_VAR@1573..1577
781 IDENT@1459..1460 "v"1050 NAME@1573..1577
782 R_PAREN@1460..1461 ")"1051 IDENT@1573..1577 "func"
783 COLONCOLON@1461..1463 "::"1052 R_PAREN@1577..1578 ")"
784 WHITESPACE@1463..1464 " "1053 R_PAREN@1578..1579 ")"
785 EXPR_BINARY@1464..14891054 WHITESPACE@1579..1584 "\n "
786 LHS_EXPR@1464..14751055 ELSE_KW@1584..1588 "else"
787 EXPR_APPLY@1464..14751056 WHITESPACE@1588..1589 " "
788 EXPR_INDEX@1464..14721057 FALSE_EXPR@1589..1767
789 EXPR_VAR@1464..14671058 EXPR_IF_THEN_ELSE@1589..1767
790 NAME@1464..14671059 IF_KW@1589..1591 "if"
791 IDENT@1464..1467 "std"1060 WHITESPACE@1591..1592 " "
792 DOT@1467..1468 "."1061 EXPR_UNARY@1592..1610
793 NAME@1468..14721062 NOT@1592..1593 "!"
794 IDENT@1468..1472 "type"1063 EXPR_APPLY@1593..1610
795 ARGS_DESC@1472..14751064 EXPR_INDEX@1593..1605
796 L_PAREN@1472..1473 "("1065 EXPR_VAR@1593..1596
797 ARG@1473..14741066 NAME@1593..1596
798 EXPR_VAR@1473..14741067 IDENT@1593..1596 "std"
799 NAME@1473..14741068 DOT@1596..1597 "."
800 IDENT@1473..1474 "v"1069 NAME@1597..1605
801 R_PAREN@1474..1475 ")"1070 IDENT@1597..1605 "isObject"
802 WHITESPACE@1475..1476 " "1071 ARGS_DESC@1605..1610
803 EQ@1476..1478 "=="1072 L_PAREN@1605..1606 "("
804 WHITESPACE@1478..1479 " "1073 ARG@1606..1609
805 EXPR_STRING@1479..14891074 EXPR_VAR@1606..1609
806 STRING_SINGLE@1479..1489 "'function'"1075 NAME@1606..1609
807 COMMA@1489..1490 ","1076 IDENT@1606..1609 "obj"
808 WHITESPACE@1490..1494 "\n\n "1077 R_PAREN@1609..1610 ")"
809 MEMBER_FIELD@1494..15571078 WHITESPACE@1610..1611 " "
810 FIELD_METHOD@1494..15571079 THEN_KW@1611..1615 "then"
811 FIELD_NAME_FIXED@1494..15021080 WHITESPACE@1615..1622 "\n "
812 NAME@1494..15021081 TRUE_EXPR@1622..1696
813 IDENT@1494..1502 "toString"1082 EXPR_ERROR@1622..1696
814 PARAMS_DESC@1502..15051083 ERROR_KW@1622..1627 "error"
815 L_PAREN@1502..1503 "("1084 WHITESPACE@1627..1628 " "
816 PARAM@1503..15041085 EXPR_PARENED@1628..1696
817 DESTRUCT_FULL@1503..15041086 L_PAREN@1628..1629 "("
818 NAME@1503..15041087 EXPR_BINARY@1629..1695
819 IDENT@1503..1504 "a"1088 LHS_EXPR@1629..1679
820 R_PAREN@1504..1505 ")"1089 EXPR_STRING@1629..1679
821 COLONCOLON@1505..1507 "::"1090 STRING_SINGLE@1629..1679 "'std.mapWithKey secon ..."
822 WHITESPACE@1507..1512 "\n "1091 WHITESPACE@1679..1680 " "
823 EXPR_IF_THEN_ELSE@1512..15571092 PLUS@1680..1681 "+"
824 IF_KW@1512..1514 "if"1093 WHITESPACE@1681..1682 " "
825 WHITESPACE@1514..1515 " "1094 EXPR_APPLY@1682..1695
826 EXPR_BINARY@1515..15381095 EXPR_INDEX@1682..1690
827 LHS_EXPR@1515..15261096 EXPR_VAR@1682..1685
828 EXPR_APPLY@1515..15261097 NAME@1682..1685
829 EXPR_INDEX@1515..15231098 IDENT@1682..1685 "std"
830 EXPR_VAR@1515..15181099 DOT@1685..1686 "."
831 NAME@1515..15181100 NAME@1686..1690
832 IDENT@1515..1518 "std"1101 IDENT@1686..1690 "type"
833 DOT@1518..1519 "."1102 ARGS_DESC@1690..1695
834 NAME@1519..15231103 L_PAREN@1690..1691 "("
835 IDENT@1519..1523 "type"1104 ARG@1691..1694
836 ARGS_DESC@1523..15261105 EXPR_VAR@1691..1694
837 L_PAREN@1523..1524 "("1106 NAME@1691..1694
838 ARG@1524..15251107 IDENT@1691..1694 "obj"
839 EXPR_VAR@1524..15251108 R_PAREN@1694..1695 ")"
840 NAME@1524..15251109 R_PAREN@1695..1696 ")"
841 IDENT@1524..1525 "a"1110 WHITESPACE@1696..1701 "\n "
842 R_PAREN@1525..1526 ")"1111 ELSE_KW@1701..1705 "else"
843 WHITESPACE@1526..1527 " "1112 WHITESPACE@1705..1712 "\n "
844 EQ@1527..1529 "=="1113 FALSE_EXPR@1712..1767
845 WHITESPACE@1529..1530 " "1114 EXPR_OBJECT@1712..1767
846 EXPR_STRING@1530..15381115 OBJ_BODY_MEMBER_LIST@1712..1767
847 STRING_SINGLE@1530..1538 "'string'"1116 L_BRACE@1712..1713 "{"
848 WHITESPACE@1538..1539 " "1117 WHITESPACE@1713..1714 " "
849 THEN_KW@1539..1543 "then"1118 MEMBER_FIELD@1714..1765
850 WHITESPACE@1543..1544 " "1119 FIELD_NORMAL@1714..1734
851 TRUE_EXPR@1544..15451120 FIELD_NAME_DYNAMIC@1714..1717
852 EXPR_VAR@1544..15451121 L_BRACK@1714..1715 "["
853 NAME@1544..15451122 EXPR_VAR@1715..1716
854 IDENT@1544..1545 "a"1123 NAME@1715..1716
855 WHITESPACE@1545..1546 " "1124 IDENT@1715..1716 "k"
856 ELSE_KW@1546..1550 "else"1125 R_BRACK@1716..1717 "]"
857 WHITESPACE@1550..1551 " "1126 COLON@1717..1718 ":"
858 FALSE_EXPR@1551..15571127 WHITESPACE@1718..1719 " "
859 EXPR_BINARY@1551..15571128 EXPR_APPLY@1719..1734
860 LHS_EXPR@1551..15531129 EXPR_VAR@1719..1723
861 EXPR_STRING@1551..15531130 NAME@1719..1723
862 STRING_SINGLE@1551..1553 "''"1131 IDENT@1719..1723 "func"
863 WHITESPACE@1553..1554 " "1132 ARGS_DESC@1723..1734
864 PLUS@1554..1555 "+"1133 L_PAREN@1723..1724 "("
865 WHITESPACE@1555..1556 " "1134 ARG@1724..1725
866 EXPR_VAR@1556..15571135 EXPR_VAR@1724..1725
867 NAME@1556..15571136 NAME@1724..1725
868 IDENT@1556..1557 "a"1137 IDENT@1724..1725 "k"
869 COMMA@1557..1558 ","1138 COMMA@1725..1726 ","
870 WHITESPACE@1558..1562 "\n\n "1139 WHITESPACE@1726..1727 " "
871 MEMBER_FIELD@1562..15891140 ARG@1727..1733
872 FIELD_NORMAL@1562..15891141 EXPR_INDEX_EXPR@1727..1733
873 FIELD_NAME_FIXED@1562..15681142 LHS_EXPR@1727..1730
874 NAME@1562..15681143 EXPR_VAR@1727..1730
875 IDENT@1562..1568 "substr"1144 NAME@1727..1730
876 COLONCOLON@1568..1570 "::"1145 IDENT@1727..1730 "obj"
877 WHITESPACE@1570..1571 " "1146 L_BRACK@1730..1731 "["
878 EXPR_INTRINSIC@1571..15891147 EXPR_VAR@1731..1732
879 INTRINSIC@1571..1581 "$intrinsic"1148 NAME@1731..1732
880 L_PAREN@1581..1582 "("1149 IDENT@1731..1732 "k"
881 NAME@1582..15881150 R_BRACK@1732..1733 "]"
882 IDENT@1582..1588 "substr"1151 R_PAREN@1733..1734 ")"
883 R_PAREN@1588..1589 ")"1152 WHITESPACE@1734..1735 " "
884 COMMA@1589..1590 ","1153 FOR_SPEC@1735..1765
885 WHITESPACE@1590..1594 "\n\n "1154 FOR_KW@1735..1738 "for"
886 MEMBER_FIELD@1594..17181155 WHITESPACE@1738..1739 " "
887 FIELD_METHOD@1594..17181156 NAME@1739..1740
888 FIELD_NAME_FIXED@1594..16041157 IDENT@1739..1740 "k"
889 NAME@1594..16041158 WHITESPACE@1740..1741 " "
890 IDENT@1594..1604 "startsWith"1159 IN_KW@1741..1743 "in"
891 PARAMS_DESC@1604..16101160 WHITESPACE@1743..1744 " "
892 L_PAREN@1604..1605 "("1161 EXPR_APPLY@1744..1765
893 PARAM@1605..16061162 EXPR_INDEX@1744..1760
894 DESTRUCT_FULL@1605..16061163 EXPR_VAR@1744..1747
895 NAME@1605..16061164 NAME@1744..1747
896 IDENT@1605..1606 "a"1165 IDENT@1744..1747 "std"
897 COMMA@1606..1607 ","1166 DOT@1747..1748 "."
898 WHITESPACE@1607..1608 " "1167 NAME@1748..1760
899 PARAM@1608..16091168 IDENT@1748..1760 "objectFields"
900 DESTRUCT_FULL@1608..16091169 ARGS_DESC@1760..1765
901 NAME@1608..16091170 L_PAREN@1760..1761 "("
902 IDENT@1608..1609 "b"1171 ARG@1761..1764
903 R_PAREN@1609..1610 ")"1172 EXPR_VAR@1761..1764
904 COLONCOLON@1610..1612 "::"1173 NAME@1761..1764
905 WHITESPACE@1612..1617 "\n "1174 IDENT@1761..1764 "obj"
906 EXPR_IF_THEN_ELSE@1617..17181175 R_PAREN@1764..1765 ")"
907 IF_KW@1617..1619 "if"1176 WHITESPACE@1765..1766 " "
908 WHITESPACE@1619..1620 " "1177 R_BRACE@1766..1767 "}"
909 EXPR_BINARY@1620..16491178 COMMA@1767..1768 ","
910 LHS_EXPR@1620..16331179 WHITESPACE@1768..1772 "\n\n "
911 EXPR_APPLY@1620..16331180 MEMBER_FIELD@1772..1815
912 EXPR_INDEX@1620..16301181 FIELD_METHOD@1772..1815
913 EXPR_VAR@1620..16231182 FIELD_NAME_FIXED@1772..1777
914 NAME@1620..16231183 NAME@1772..1777
915 IDENT@1620..1623 "std"1184 IDENT@1772..1777 "lines"
916 DOT@1623..1624 "."1185 PARAMS_DESC@1777..1782
917 NAME@1624..16301186 L_PAREN@1777..1778 "("
918 IDENT@1624..1630 "length"1187 PARAM@1778..1781
919 ARGS_DESC@1630..16331188 DESTRUCT_FULL@1778..1781
920 L_PAREN@1630..1631 "("1189 NAME@1778..1781
921 ARG@1631..16321190 IDENT@1778..1781 "arr"
922 EXPR_VAR@1631..16321191 R_PAREN@1781..1782 ")"
923 NAME@1631..16321192 COLONCOLON@1782..1784 "::"
924 IDENT@1631..1632 "a"1193 WHITESPACE@1784..1789 "\n "
925 R_PAREN@1632..1633 ")"1194 EXPR_APPLY@1789..1815
926 WHITESPACE@1633..1634 " "1195 EXPR_INDEX@1789..1797
927 LT@1634..1635 "<"1196 EXPR_VAR@1789..1792
928 WHITESPACE@1635..1636 " "1197 NAME@1789..1792
929 EXPR_APPLY@1636..16491198 IDENT@1789..1792 "std"
930 EXPR_INDEX@1636..16461199 DOT@1792..1793 "."
931 EXPR_VAR@1636..16391200 NAME@1793..1797
932 NAME@1636..16391201 IDENT@1793..1797 "join"
933 IDENT@1636..1639 "std"1202 ARGS_DESC@1797..1815
934 DOT@1639..1640 "."1203 L_PAREN@1797..1798 "("
935 NAME@1640..16461204 ARG@1798..1802
936 IDENT@1640..1646 "length"1205 EXPR_STRING@1798..1802
937 ARGS_DESC@1646..16491206 STRING_SINGLE@1798..1802 "'\\n'"
938 L_PAREN@1646..1647 "("1207 COMMA@1802..1803 ","
939 ARG@1647..16481208 WHITESPACE@1803..1804 " "
940 EXPR_VAR@1647..16481209 ARG@1804..1814
941 NAME@1647..16481210 EXPR_BINARY@1804..1814
942 IDENT@1647..1648 "b"1211 LHS_EXPR@1804..1807
943 R_PAREN@1648..1649 ")"1212 EXPR_VAR@1804..1807
944 WHITESPACE@1649..1650 " "1213 NAME@1804..1807
945 THEN_KW@1650..1654 "then"1214 IDENT@1804..1807 "arr"
946 WHITESPACE@1654..1661 "\n "1215 WHITESPACE@1807..1808 " "
947 TRUE_EXPR@1661..16661216 PLUS@1808..1809 "+"
948 EXPR_LITERAL@1661..16661217 WHITESPACE@1809..1810 " "
949 FALSE_KW@1661..1666 "false"1218 EXPR_ARRAY@1810..1814
950 WHITESPACE@1666..1671 "\n "1219 L_BRACK@1810..1811 "["
951 ELSE_KW@1671..1675 "else"1220 EXPR_STRING@1811..1813
952 WHITESPACE@1675..1682 "\n "1221 STRING_SINGLE@1811..1813 "''"
953 FALSE_EXPR@1682..17181222 R_BRACK@1813..1814 "]"
954 EXPR_BINARY@1682..17181223 R_PAREN@1814..1815 ")"
955 LHS_EXPR@1682..17131224 COMMA@1815..1816 ","
956 EXPR_APPLY@1682..17131225 WHITESPACE@1816..1820 "\n\n "
957 EXPR_INDEX@1682..16921226 MEMBER_FIELD@1820..2032
958 EXPR_VAR@1682..16851227 FIELD_METHOD@1820..2032
959 NAME@1682..16851228 FIELD_NAME_FIXED@1820..1828
960 IDENT@1682..1685 "std"1229 NAME@1820..1828
961 DOT@1685..1686 "."1230 IDENT@1820..1828 "deepJoin"
962 NAME@1686..16921231 PARAMS_DESC@1828..1833
963 IDENT@1686..1692 "substr"1232 L_PAREN@1828..1829 "("
964 ARGS_DESC@1692..17131233 PARAM@1829..1832
965 L_PAREN@1692..1693 "("1234 DESTRUCT_FULL@1829..1832
966 ARG@1693..16941235 NAME@1829..1832
967 EXPR_VAR@1693..16941236 IDENT@1829..1832 "arr"
968 NAME@1693..16941237 R_PAREN@1832..1833 ")"
969 IDENT@1693..1694 "a"1238 COLONCOLON@1833..1835 "::"
970 COMMA@1694..1695 ","1239 WHITESPACE@1835..1840 "\n "
971 WHITESPACE@1695..1696 " "1240 EXPR_IF_THEN_ELSE@1840..2032
972 ARG@1696..16971241 IF_KW@1840..1842 "if"
973 EXPR_NUMBER@1696..16971242 WHITESPACE@1842..1843 " "
974 FLOAT@1696..1697 "0"1243 EXPR_APPLY@1843..1860
975 COMMA@1697..1698 ","1244 EXPR_INDEX@1843..1855
976 WHITESPACE@1698..1699 " "1245 EXPR_VAR@1843..1846
977 ARG@1699..17121246 NAME@1843..1846
978 EXPR_APPLY@1699..17121247 IDENT@1843..1846 "std"
979 EXPR_INDEX@1699..17091248 DOT@1846..1847 "."
980 EXPR_VAR@1699..17021249 NAME@1847..1855
981 NAME@1699..17021250 IDENT@1847..1855 "isString"
982 IDENT@1699..1702 "std"1251 ARGS_DESC@1855..1860
983 DOT@1702..1703 "."1252 L_PAREN@1855..1856 "("
984 NAME@1703..17091253 ARG@1856..1859
985 IDENT@1703..1709 "length"1254 EXPR_VAR@1856..1859
986 ARGS_DESC@1709..17121255 NAME@1856..1859
987 L_PAREN@1709..1710 "("1256 IDENT@1856..1859 "arr"
988 ARG@1710..17111257 R_PAREN@1859..1860 ")"
989 EXPR_VAR@1710..17111258 WHITESPACE@1860..1861 " "
990 NAME@1710..17111259 THEN_KW@1861..1865 "then"
991 IDENT@1710..1711 "b"1260 WHITESPACE@1865..1872 "\n "
992 R_PAREN@1711..1712 ")"1261 TRUE_EXPR@1872..1875
993 R_PAREN@1712..1713 ")"1262 EXPR_VAR@1872..1875
994 WHITESPACE@1713..1714 " "1263 NAME@1872..1875
995 EQ@1714..1716 "=="1264 IDENT@1872..1875 "arr"
996 WHITESPACE@1716..1717 " "1265 WHITESPACE@1875..1880 "\n "
997 EXPR_VAR@1717..17181266 ELSE_KW@1880..1884 "else"
998 NAME@1717..17181267 WHITESPACE@1884..1885 " "
999 IDENT@1717..1718 "b"1268 FALSE_EXPR@1885..2032
1000 COMMA@1718..1719 ","1269 EXPR_IF_THEN_ELSE@1885..2032
1001 WHITESPACE@1719..1723 "\n\n "1270 IF_KW@1885..1887 "if"
1002 MEMBER_FIELD@1723..18731271 WHITESPACE@1887..1888 " "
1003 FIELD_METHOD@1723..18731272 EXPR_APPLY@1888..1904
1004 FIELD_NAME_FIXED@1723..17311273 EXPR_INDEX@1888..1899
1005 NAME@1723..17311274 EXPR_VAR@1888..1891
1006 IDENT@1723..1731 "endsWith"1275 NAME@1888..1891
1007 PARAMS_DESC@1731..17371276 IDENT@1888..1891 "std"
1008 L_PAREN@1731..1732 "("1277 DOT@1891..1892 "."
1009 PARAM@1732..17331278 NAME@1892..1899
1010 DESTRUCT_FULL@1732..17331279 IDENT@1892..1899 "isArray"
1011 NAME@1732..17331280 ARGS_DESC@1899..1904
1012 IDENT@1732..1733 "a"1281 L_PAREN@1899..1900 "("
1013 COMMA@1733..1734 ","1282 ARG@1900..1903
1014 WHITESPACE@1734..1735 " "1283 EXPR_VAR@1900..1903
1015 PARAM@1735..17361284 NAME@1900..1903
1016 DESTRUCT_FULL@1735..17361285 IDENT@1900..1903 "arr"
1017 NAME@1735..17361286 R_PAREN@1903..1904 ")"
1018 IDENT@1735..1736 "b"1287 WHITESPACE@1904..1905 " "
1019 R_PAREN@1736..1737 ")"1288 THEN_KW@1905..1909 "then"
1020 COLONCOLON@1737..1739 "::"1289 WHITESPACE@1909..1916 "\n "
1021 WHITESPACE@1739..1744 "\n "1290 TRUE_EXPR@1916..1960
1022 EXPR_IF_THEN_ELSE@1744..18731291 EXPR_APPLY@1916..1960
1023 IF_KW@1744..1746 "if"1292 EXPR_INDEX@1916..1924
1024 WHITESPACE@1746..1747 " "1293 EXPR_VAR@1916..1919
1025 EXPR_BINARY@1747..17761294 NAME@1916..1919
1026 LHS_EXPR@1747..17601295 IDENT@1916..1919 "std"
1027 EXPR_APPLY@1747..17601296 DOT@1919..1920 "."
1028 EXPR_INDEX@1747..17571297 NAME@1920..1924
1029 EXPR_VAR@1747..17501298 IDENT@1920..1924 "join"
1030 NAME@1747..17501299 ARGS_DESC@1924..1960
1031 IDENT@1747..1750 "std"1300 L_PAREN@1924..1925 "("
1032 DOT@1750..1751 "."1301 ARG@1925..1927
1033 NAME@1751..17571302 EXPR_STRING@1925..1927
1034 IDENT@1751..1757 "length"1303 STRING_SINGLE@1925..1927 "''"
1035 ARGS_DESC@1757..17601304 COMMA@1927..1928 ","
1036 L_PAREN@1757..1758 "("1305 WHITESPACE@1928..1929 " "
1037 ARG@1758..17591306 ARG@1929..1959
1038 EXPR_VAR@1758..17591307 EXPR_ARRAY_COMP@1929..1959
1039 NAME@1758..17591308 L_BRACK@1929..1930 "["
1040 IDENT@1758..1759 "a"1309 EXPR_APPLY@1930..1945
1041 R_PAREN@1759..1760 ")"1310 EXPR_INDEX@1930..1942
1042 WHITESPACE@1760..1761 " "1311 EXPR_VAR@1930..1933
1043 LT@1761..1762 "<"1312 NAME@1930..1933
1044 WHITESPACE@1762..1763 " "1313 IDENT@1930..1933 "std"
1045 EXPR_APPLY@1763..17761314 DOT@1933..1934 "."
1046 EXPR_INDEX@1763..17731315 NAME@1934..1942
1047 EXPR_VAR@1763..17661316 IDENT@1934..1942 "deepJoin"
1048 NAME@1763..17661317 ARGS_DESC@1942..1945
1049 IDENT@1763..1766 "std"1318 L_PAREN@1942..1943 "("
1050 DOT@1766..1767 "."1319 ARG@1943..1944
1051 NAME@1767..17731320 EXPR_VAR@1943..1944
1052 IDENT@1767..1773 "length"1321 NAME@1943..1944
1053 ARGS_DESC@1773..17761322 IDENT@1943..1944 "x"
1054 L_PAREN@1773..1774 "("1323 R_PAREN@1944..1945 ")"
1055 ARG@1774..17751324 WHITESPACE@1945..1946 " "
1056 EXPR_VAR@1774..17751325 FOR_SPEC@1946..1958
1057 NAME@1774..17751326 FOR_KW@1946..1949 "for"
1058 IDENT@1774..1775 "b"1327 WHITESPACE@1949..1950 " "
1059 R_PAREN@1775..1776 ")"1328 NAME@1950..1951
1060 WHITESPACE@1776..1777 " "1329 IDENT@1950..1951 "x"
1061 THEN_KW@1777..1781 "then"1330 WHITESPACE@1951..1952 " "
1062 WHITESPACE@1781..1788 "\n "1331 IN_KW@1952..1954 "in"
1063 TRUE_EXPR@1788..17931332 WHITESPACE@1954..1955 " "
1064 EXPR_LITERAL@1788..17931333 EXPR_VAR@1955..1958
1065 FALSE_KW@1788..1793 "false"1334 NAME@1955..1958
1066 WHITESPACE@1793..1798 "\n "1335 IDENT@1955..1958 "arr"
1067 ELSE_KW@1798..1802 "else"1336 R_BRACK@1958..1959 "]"
1068 WHITESPACE@1802..1809 "\n "1337 R_PAREN@1959..1960 ")"
1069 FALSE_EXPR@1809..18731338 WHITESPACE@1960..1965 "\n "
1070 EXPR_BINARY@1809..18731339 ELSE_KW@1965..1969 "else"
1071 LHS_EXPR@1809..18681340 WHITESPACE@1969..1976 "\n "
1072 EXPR_APPLY@1809..18681341 FALSE_EXPR@1976..2032
1073 EXPR_INDEX@1809..18191342 EXPR_ERROR@1976..2032
1074 EXPR_VAR@1809..18121343 ERROR_KW@1976..1981 "error"
1075 NAME@1809..18121344 WHITESPACE@1981..1982 " "
1076 IDENT@1809..1812 "std"1345 EXPR_BINARY@1982..2032
1077 DOT@1812..1813 "."1346 LHS_EXPR@1982..2016
1078 NAME@1813..18191347 EXPR_STRING@1982..2016
1079 IDENT@1813..1819 "substr"1348 STRING_SINGLE@1982..2016 "'Expected string or a ..."
1080 ARGS_DESC@1819..18681349 WHITESPACE@2016..2017 " "
1081 L_PAREN@1819..1820 "("1350 MODULO@2017..2018 "%"
1082 ARG@1820..18211351 WHITESPACE@2018..2019 " "
1083 EXPR_VAR@1820..18211352 EXPR_APPLY@2019..2032
1084 NAME@1820..18211353 EXPR_INDEX@2019..2027
1085 IDENT@1820..1821 "a"1354 EXPR_VAR@2019..2022
1086 COMMA@1821..1822 ","1355 NAME@2019..2022
1087 WHITESPACE@1822..1823 " "1356 IDENT@2019..2022 "std"
1088 ARG@1823..18521357 DOT@2022..2023 "."
1089 EXPR_BINARY@1823..18521358 NAME@2023..2027
1090 LHS_EXPR@1823..18361359 IDENT@2023..2027 "type"
1091 EXPR_APPLY@1823..18361360 ARGS_DESC@2027..2032
1092 EXPR_INDEX@1823..18331361 L_PAREN@2027..2028 "("
1093 EXPR_VAR@1823..18261362 ARG@2028..2031
1094 NAME@1823..18261363 EXPR_VAR@2028..2031
1095 IDENT@1823..1826 "std"1364 NAME@2028..2031
1096 DOT@1826..1827 "."1365 IDENT@2028..2031 "arr"
1097 NAME@1827..18331366 R_PAREN@2031..2032 ")"
1098 IDENT@1827..1833 "length"1367 COMMA@2032..2033 ","
1099 ARGS_DESC@1833..18361368 WHITESPACE@2033..2037 "\n\n "
1100 L_PAREN@1833..1834 "("1369 MEMBER_FIELD@2037..2512
1101 ARG@1834..18351370 FIELD_METHOD@2037..2512
1102 EXPR_VAR@1834..18351371 FIELD_NAME_FIXED@2037..2046
1103 NAME@1834..18351372 NAME@2037..2046
1104 IDENT@1834..1835 "a"1373 IDENT@2037..2046 "filterMap"
1105 R_PAREN@1835..1836 ")"1374 PARAMS_DESC@2046..2074
1106 WHITESPACE@1836..1837 " "1375 L_PAREN@2046..2047 "("
1107 MINUS@1837..1838 "-"1376 PARAM@2047..2058
1108 WHITESPACE@1838..1839 " "1377 DESTRUCT_FULL@2047..2058
1109 EXPR_APPLY@1839..18521378 NAME@2047..2058
1110 EXPR_INDEX@1839..18491379 IDENT@2047..2058 "filter_func"
1111 EXPR_VAR@1839..18421380 COMMA@2058..2059 ","
1112 NAME@1839..18421381 WHITESPACE@2059..2060 " "
1113 IDENT@1839..1842 "std"1382 PARAM@2060..2068
1114 DOT@1842..1843 "."1383 DESTRUCT_FULL@2060..2068
1115 NAME@1843..18491384 NAME@2060..2068
1116 IDENT@1843..1849 "length"1385 IDENT@2060..2068 "map_func"
1117 ARGS_DESC@1849..18521386 COMMA@2068..2069 ","
1118 L_PAREN@1849..1850 "("1387 WHITESPACE@2069..2070 " "
1119 ARG@1850..18511388 PARAM@2070..2073
1120 EXPR_VAR@1850..18511389 DESTRUCT_FULL@2070..2073
1121 NAME@1850..18511390 NAME@2070..2073
1122 IDENT@1850..1851 "b"1391 IDENT@2070..2073 "arr"
1123 R_PAREN@1851..1852 ")"1392 R_PAREN@2073..2074 ")"
1124 COMMA@1852..1853 ","1393 COLONCOLON@2074..2076 "::"
1125 WHITESPACE@1853..1854 " "1394 WHITESPACE@2076..2081 "\n "
1126 ARG@1854..18671395 EXPR_IF_THEN_ELSE@2081..2512
1127 EXPR_APPLY@1854..18671396 IF_KW@2081..2083 "if"
1128 EXPR_INDEX@1854..18641397 WHITESPACE@2083..2084 " "
1129 EXPR_VAR@1854..18571398 EXPR_UNARY@2084..2112
1130 NAME@1854..18571399 NOT@2084..2085 "!"
1131 IDENT@1854..1857 "std"1400 EXPR_APPLY@2085..2112
1132 DOT@1857..1858 "."1401 EXPR_INDEX@2085..2099
1133 NAME@1858..18641402 EXPR_VAR@2085..2088
1134 IDENT@1858..1864 "length"1403 NAME@2085..2088
1135 ARGS_DESC@1864..18671404 IDENT@2085..2088 "std"
1136 L_PAREN@1864..1865 "("1405 DOT@2088..2089 "."
1137 ARG@1865..18661406 NAME@2089..2099
1138 EXPR_VAR@1865..18661407 IDENT@2089..2099 "isFunction"
1139 NAME@1865..18661408 ARGS_DESC@2099..2112
1140 IDENT@1865..1866 "b"1409 L_PAREN@2099..2100 "("
1141 R_PAREN@1866..1867 ")"1410 ARG@2100..2111
1142 R_PAREN@1867..1868 ")"1411 EXPR_VAR@2100..2111
1143 WHITESPACE@1868..1869 " "1412 NAME@2100..2111
1144 EQ@1869..1871 "=="1413 IDENT@2100..2111 "filter_func"
1145 WHITESPACE@1871..1872 " "1414 R_PAREN@2111..2112 ")"
1146 EXPR_VAR@1872..18731415 WHITESPACE@2112..2113 " "
1147 NAME@1872..18731416 THEN_KW@2113..2117 "then"
1148 IDENT@1872..1873 "b"1417 WHITESPACE@2117..2124 "\n "
1149 COMMA@1873..1874 ","1418 TRUE_EXPR@2124..2206
1150 WHITESPACE@1874..1878 "\n\n "1419 EXPR_ERROR@2124..2206
1151 MEMBER_FIELD@1878..20211420 ERROR_KW@2124..2129 "error"
1152 FIELD_METHOD@1878..20211421 WHITESPACE@2129..2130 " "
1153 FIELD_NAME_FIXED@1878..18891422 EXPR_PARENED@2130..2206
1154 NAME@1878..18891423 L_PAREN@2130..2131 "("
1155 IDENT@1878..1889 "lstripChars"1424 EXPR_BINARY@2131..2205
1156 PARAMS_DESC@1889..19011425 LHS_EXPR@2131..2181
1157 L_PAREN@1889..1890 "("1426 EXPR_STRING@2131..2181
1158 PARAM@1890..18931427 STRING_SINGLE@2131..2181 "'std.filterMap first ..."
1159 DESTRUCT_FULL@1890..18931428 WHITESPACE@2181..2182 " "
1160 NAME@1890..18931429 PLUS@2182..2183 "+"
1161 IDENT@1890..1893 "str"1430 WHITESPACE@2183..2184 " "
1162 COMMA@1893..1894 ","1431 EXPR_APPLY@2184..2205
1163 WHITESPACE@1894..1895 " "1432 EXPR_INDEX@2184..2192
1164 PARAM@1895..19001433 EXPR_VAR@2184..2187
1165 DESTRUCT_FULL@1895..19001434 NAME@2184..2187
1166 NAME@1895..19001435 IDENT@2184..2187 "std"
1167 IDENT@1895..1900 "chars"1436 DOT@2187..2188 "."
1168 R_PAREN@1900..1901 ")"1437 NAME@2188..2192
1169 COLONCOLON@1901..1903 "::"1438 IDENT@2188..2192 "type"
1170 WHITESPACE@1903..1908 "\n "1439 ARGS_DESC@2192..2205
1171 EXPR_IF_THEN_ELSE@1908..20211440 L_PAREN@2192..2193 "("
1172 IF_KW@1908..1910 "if"1441 ARG@2193..2204
1173 WHITESPACE@1910..1911 " "1442 EXPR_VAR@2193..2204
1174 EXPR_BINARY@1911..19591443 NAME@2193..2204
1175 LHS_EXPR@1911..19301444 IDENT@2193..2204 "filter_func"
1176 EXPR_BINARY@1911..19301445 R_PAREN@2204..2205 ")"
1177 LHS_EXPR@1911..19261446 R_PAREN@2205..2206 ")"
1178 EXPR_APPLY@1911..19261447 WHITESPACE@2206..2211 "\n "
1179 EXPR_INDEX@1911..19211448 ELSE_KW@2211..2215 "else"
1180 EXPR_VAR@1911..19141449 WHITESPACE@2215..2216 " "
1181 NAME@1911..19141450 FALSE_EXPR@2216..2512
1182 IDENT@1911..1914 "std"1451 EXPR_IF_THEN_ELSE@2216..2512
1183 DOT@1914..1915 "."1452 IF_KW@2216..2218 "if"
1184 NAME@1915..19211453 WHITESPACE@2218..2219 " "
1185 IDENT@1915..1921 "length"1454 EXPR_UNARY@2219..2244
1186 ARGS_DESC@1921..19261455 NOT@2219..2220 "!"
1187 L_PAREN@1921..1922 "("1456 EXPR_APPLY@2220..2244
1188 ARG@1922..19251457 EXPR_INDEX@2220..2234
1189 EXPR_VAR@1922..19251458 EXPR_VAR@2220..2223
1190 NAME@1922..19251459 NAME@2220..2223
1191 IDENT@1922..1925 "str"1460 IDENT@2220..2223 "std"
1192 R_PAREN@1925..1926 ")"1461 DOT@2223..2224 "."
1193 WHITESPACE@1926..1927 " "1462 NAME@2224..2234
1194 GT@1927..1928 ">"1463 IDENT@2224..2234 "isFunction"
1195 WHITESPACE@1928..1929 " "1464 ARGS_DESC@2234..2244
1196 EXPR_NUMBER@1929..19301465 L_PAREN@2234..2235 "("
1197 FLOAT@1929..1930 "0"1466 ARG@2235..2243
1198 WHITESPACE@1930..1931 " "1467 EXPR_VAR@2235..2243
1199 AND@1931..1933 "&&"1468 NAME@2235..2243
1200 WHITESPACE@1933..1934 " "1469 IDENT@2235..2243 "map_func"
1201 EXPR_APPLY@1934..19591470 R_PAREN@2243..2244 ")"
1202 EXPR_INDEX@1934..19441471 WHITESPACE@2244..2245 " "
1203 EXPR_VAR@1934..19371472 THEN_KW@2245..2249 "then"
1204 NAME@1934..19371473 WHITESPACE@2249..2256 "\n "
1205 IDENT@1934..1937 "std"1474 TRUE_EXPR@2256..2336
1206 DOT@1937..1938 "."1475 EXPR_ERROR@2256..2336
1207 NAME@1938..19441476 ERROR_KW@2256..2261 "error"
1208 IDENT@1938..1944 "member"1477 WHITESPACE@2261..2262 " "
1209 ARGS_DESC@1944..19591478 EXPR_PARENED@2262..2336
1210 L_PAREN@1944..1945 "("1479 L_PAREN@2262..2263 "("
1211 ARG@1945..19501480 EXPR_BINARY@2263..2335
1212 EXPR_VAR@1945..19501481 LHS_EXPR@2263..2314
1213 NAME@1945..19501482 EXPR_STRING@2263..2314
1214 IDENT@1945..1950 "chars"1483 STRING_SINGLE@2263..2314 "'std.filterMap second ..."
1215 COMMA@1950..1951 ","1484 WHITESPACE@2314..2315 " "
1216 WHITESPACE@1951..1952 " "1485 PLUS@2315..2316 "+"
1217 ARG@1952..19581486 WHITESPACE@2316..2317 " "
1218 EXPR_INDEX_EXPR@1952..19581487 EXPR_APPLY@2317..2335
1219 LHS_EXPR@1952..19551488 EXPR_INDEX@2317..2325
1220 EXPR_VAR@1952..19551489 EXPR_VAR@2317..2320
1221 NAME@1952..19551490 NAME@2317..2320
1222 IDENT@1952..1955 "str"1491 IDENT@2317..2320 "std"
1223 L_BRACK@1955..1956 "["1492 DOT@2320..2321 "."
1224 EXPR_NUMBER@1956..19571493 NAME@2321..2325
1225 FLOAT@1956..1957 "0"1494 IDENT@2321..2325 "type"
1226 R_BRACK@1957..1958 "]"1495 ARGS_DESC@2325..2335
1227 R_PAREN@1958..1959 ")"1496 L_PAREN@2325..2326 "("
1228 WHITESPACE@1959..1960 " "1497 ARG@2326..2334
1229 THEN_KW@1960..1964 "then"1498 EXPR_VAR@2326..2334
1230 WHITESPACE@1964..1971 "\n "1499 NAME@2326..2334
1231 TRUE_EXPR@1971..20021500 IDENT@2326..2334 "map_func"
1232 EXPR_APPLY@1971..20021501 R_PAREN@2334..2335 ")"
1233 EXPR_INDEX@1971..19861502 R_PAREN@2335..2336 ")"
1234 EXPR_VAR@1971..19741503 WHITESPACE@2336..2341 "\n "
1235 NAME@1971..19741504 ELSE_KW@2341..2345 "else"
1236 IDENT@1971..1974 "std"1505 WHITESPACE@2345..2346 " "
1237 DOT@1974..1975 "."1506 FALSE_EXPR@2346..2512
1238 NAME@1975..19861507 EXPR_IF_THEN_ELSE@2346..2512
1239 IDENT@1975..1986 "lstripChars"1508 IF_KW@2346..2348 "if"
1240 ARGS_DESC@1986..20021509 WHITESPACE@2348..2349 " "
1241 L_PAREN@1986..1987 "("1510 EXPR_UNARY@2349..2366
1242 ARG@1987..19941511 NOT@2349..2350 "!"
1243 EXPR_SLICE@1987..19941512 EXPR_APPLY@2350..2366
1244 EXPR_VAR@1987..19901513 EXPR_INDEX@2350..2361
1245 NAME@1987..19901514 EXPR_VAR@2350..2353
1246 IDENT@1987..1990 "str"1515 NAME@2350..2353
1247 SLICE_DESC@1990..19941516 IDENT@2350..2353 "std"
1248 L_BRACK@1990..1991 "["1517 DOT@2353..2354 "."
1249 EXPR_NUMBER@1991..19921518 NAME@2354..2361
1250 FLOAT@1991..1992 "1"1519 IDENT@2354..2361 "isArray"
1251 COLON@1992..1993 ":"1520 ARGS_DESC@2361..2366
1252 R_BRACK@1993..1994 "]"1521 L_PAREN@2361..2362 "("
1253 COMMA@1994..1995 ","1522 ARG@2362..2365
1254 WHITESPACE@1995..1996 " "1523 EXPR_VAR@2362..2365
1255 ARG@1996..20011524 NAME@2362..2365
1256 EXPR_VAR@1996..20011525 IDENT@2362..2365 "arr"
1257 NAME@1996..20011526 R_PAREN@2365..2366 ")"
1258 IDENT@1996..2001 "chars"1527 WHITESPACE@2366..2367 " "
1259 R_PAREN@2001..2002 ")"1528 THEN_KW@2367..2371 "then"
1260 WHITESPACE@2002..2007 "\n "1529 WHITESPACE@2371..2378 "\n "
1261 ELSE_KW@2007..2011 "else"1530 TRUE_EXPR@2378..2449
1262 WHITESPACE@2011..2018 "\n "1531 EXPR_ERROR@2378..2449
1263 FALSE_EXPR@2018..20211532 ERROR_KW@2378..2383 "error"
1264 EXPR_VAR@2018..20211533 WHITESPACE@2383..2384 " "
1265 NAME@2018..20211534 EXPR_PARENED@2384..2449
1266 IDENT@2018..2021 "str"1535 L_PAREN@2384..2385 "("
1267 COMMA@2021..2022 ","1536 EXPR_BINARY@2385..2448
1268 WHITESPACE@2022..2026 "\n\n "1537 LHS_EXPR@2385..2432
1269 MEMBER_FIELD@2026..22021538 EXPR_STRING@2385..2432
1270 FIELD_METHOD@2026..22021539 STRING_SINGLE@2385..2432 "'std.filterMap third ..."
1271 FIELD_NAME_FIXED@2026..20371540 WHITESPACE@2432..2433 " "
1272 NAME@2026..20371541 PLUS@2433..2434 "+"
1273 IDENT@2026..2037 "rstripChars"1542 WHITESPACE@2434..2435 " "
1274 PARAMS_DESC@2037..20491543 EXPR_APPLY@2435..2448
1275 L_PAREN@2037..2038 "("1544 EXPR_INDEX@2435..2443
1276 PARAM@2038..20411545 EXPR_VAR@2435..2438
1277 DESTRUCT_FULL@2038..20411546 NAME@2435..2438
1278 NAME@2038..20411547 IDENT@2435..2438 "std"
1279 IDENT@2038..2041 "str"1548 DOT@2438..2439 "."
1280 COMMA@2041..2042 ","1549 NAME@2439..2443
1281 WHITESPACE@2042..2043 " "1550 IDENT@2439..2443 "type"
1282 PARAM@2043..20481551 ARGS_DESC@2443..2448
1283 DESTRUCT_FULL@2043..20481552 L_PAREN@2443..2444 "("
1284 NAME@2043..20481553 ARG@2444..2447
1285 IDENT@2043..2048 "chars"1554 EXPR_VAR@2444..2447
1286 R_PAREN@2048..2049 ")"1555 NAME@2444..2447
1287 COLONCOLON@2049..2051 "::"1556 IDENT@2444..2447 "arr"
1288 WHITESPACE@2051..2056 "\n "1557 R_PAREN@2447..2448 ")"
1289 EXPR_LOCAL@2056..22021558 R_PAREN@2448..2449 ")"
1290 LOCAL_KW@2056..2061 "local"1559 WHITESPACE@2449..2454 "\n "
1291 WHITESPACE@2061..2062 " "1560 ELSE_KW@2454..2458 "else"
1292 BIND_DESTRUCT@2062..20831561 WHITESPACE@2458..2465 "\n "
1293 DESTRUCT_FULL@2062..20651562 FALSE_EXPR@2465..2512
1294 NAME@2062..20651563 EXPR_APPLY@2465..2512
1295 IDENT@2062..2065 "len"1564 EXPR_INDEX@2465..2472
1296 WHITESPACE@2065..2066 " "1565 EXPR_VAR@2465..2468
1297 ASSIGN@2066..2067 "="1566 NAME@2465..2468
1298 WHITESPACE@2067..2068 " "1567 IDENT@2465..2468 "std"
1299 EXPR_APPLY@2068..20831568 DOT@2468..2469 "."
1300 EXPR_INDEX@2068..20781569 NAME@2469..2472
1301 EXPR_VAR@2068..20711570 IDENT@2469..2472 "map"
1302 NAME@2068..20711571 ARGS_DESC@2472..2512
1303 IDENT@2068..2071 "std"1572 L_PAREN@2472..2473 "("
1304 DOT@2071..2072 "."1573 ARG@2473..2481
1305 NAME@2072..20781574 EXPR_VAR@2473..2481
1306 IDENT@2072..2078 "length"1575 NAME@2473..2481
1307 ARGS_DESC@2078..20831576 IDENT@2473..2481 "map_func"
1308 L_PAREN@2078..2079 "("1577 COMMA@2481..2482 ","
1309 ARG@2079..20821578 WHITESPACE@2482..2483 " "
1310 EXPR_VAR@2079..20821579 ARG@2483..2511
1311 NAME@2079..20821580 EXPR_APPLY@2483..2511
1312 IDENT@2079..2082 "str"1581 EXPR_INDEX@2483..2493
1313 R_PAREN@2082..2083 ")"1582 EXPR_VAR@2483..2486
1314 SEMI@2083..2084 ";"1583 NAME@2483..2486
1315 WHITESPACE@2084..2089 "\n "1584 IDENT@2483..2486 "std"
1316 EXPR_IF_THEN_ELSE@2089..22021585 DOT@2486..2487 "."
1317 IF_KW@2089..2091 "if"1586 NAME@2487..2493
1318 WHITESPACE@2091..2092 " "1587 IDENT@2487..2493 "filter"
1319 EXPR_BINARY@2092..21341588 ARGS_DESC@2493..2511
1320 LHS_EXPR@2092..20991589 L_PAREN@2493..2494 "("
1321 EXPR_BINARY@2092..20991590 ARG@2494..2505
1322 LHS_EXPR@2092..20951591 EXPR_VAR@2494..2505
1323 EXPR_VAR@2092..20951592 NAME@2494..2505
1324 NAME@2092..20951593 IDENT@2494..2505 "filter_func"
1325 IDENT@2092..2095 "len"1594 COMMA@2505..2506 ","
1326 WHITESPACE@2095..2096 " "1595 WHITESPACE@2506..2507 " "
1327 GT@2096..2097 ">"1596 ARG@2507..2510
1328 WHITESPACE@2097..2098 " "1597 EXPR_VAR@2507..2510
1329 EXPR_NUMBER@2098..20991598 NAME@2507..2510
1330 FLOAT@2098..2099 "0"1599 IDENT@2507..2510 "arr"
1331 WHITESPACE@2099..2100 " "1600 R_PAREN@2510..2511 ")"
1332 AND@2100..2102 "&&"1601 R_PAREN@2511..2512 ")"
1333 WHITESPACE@2102..2103 " "1602 COMMA@2512..2513 ","
1334 EXPR_APPLY@2103..21341603 WHITESPACE@2513..2517 "\n\n "
1335 EXPR_INDEX@2103..21131604 MEMBER_FIELD@2517..2625
1336 EXPR_VAR@2103..21061605 FIELD_METHOD@2517..2625
1337 NAME@2103..21061606 FIELD_NAME_FIXED@2517..2528
1338 IDENT@2103..2106 "std"1607 NAME@2517..2528
1339 DOT@2106..2107 "."1608 IDENT@2517..2528 "assertEqual"
1340 NAME@2107..21131609 PARAMS_DESC@2528..2534
1341 IDENT@2107..2113 "member"1610 L_PAREN@2528..2529 "("
1342 ARGS_DESC@2113..21341611 PARAM@2529..2530
1343 L_PAREN@2113..2114 "("1612 DESTRUCT_FULL@2529..2530
1344 ARG@2114..21191613 NAME@2529..2530
1345 EXPR_VAR@2114..21191614 IDENT@2529..2530 "a"
1346 NAME@2114..21191615 COMMA@2530..2531 ","
1347 IDENT@2114..2119 "chars"1616 WHITESPACE@2531..2532 " "
1348 COMMA@2119..2120 ","1617 PARAM@2532..2533
1349 WHITESPACE@2120..2121 " "1618 DESTRUCT_FULL@2532..2533
1350 ARG@2121..21331619 NAME@2532..2533
1351 EXPR_INDEX_EXPR@2121..21331620 IDENT@2532..2533 "b"
1352 LHS_EXPR@2121..21241621 R_PAREN@2533..2534 ")"
1353 EXPR_VAR@2121..21241622 COLONCOLON@2534..2536 "::"
1354 NAME@2121..21241623 WHITESPACE@2536..2541 "\n "
1355 IDENT@2121..2124 "str"1624 EXPR_IF_THEN_ELSE@2541..2625
1356 L_BRACK@2124..2125 "["1625 IF_KW@2541..2543 "if"
1357 EXPR_BINARY@2125..21321626 WHITESPACE@2543..2544 " "
1358 LHS_EXPR@2125..21281627 EXPR_BINARY@2544..2550
1359 EXPR_VAR@2125..21281628 LHS_EXPR@2544..2545
1360 NAME@2125..21281629 EXPR_VAR@2544..2545
1361 IDENT@2125..2128 "len"1630 NAME@2544..2545
1362 WHITESPACE@2128..2129 " "1631 IDENT@2544..2545 "a"
1363 MINUS@2129..2130 "-"1632 WHITESPACE@2545..2546 " "
1364 WHITESPACE@2130..2131 " "1633 EQ@2546..2548 "=="
1365 EXPR_NUMBER@2131..21321634 WHITESPACE@2548..2549 " "
1366 FLOAT@2131..2132 "1"1635 EXPR_VAR@2549..2550
1367 R_BRACK@2132..2133 "]"1636 NAME@2549..2550
1368 R_PAREN@2133..2134 ")"1637 IDENT@2549..2550 "b"
1369 WHITESPACE@2134..2135 " "1638 WHITESPACE@2550..2551 " "
1370 THEN_KW@2135..2139 "then"1639 THEN_KW@2551..2555 "then"
1371 WHITESPACE@2139..2146 "\n "1640 WHITESPACE@2555..2562 "\n "
1372 TRUE_EXPR@2146..21831641 TRUE_EXPR@2562..2566
1373 EXPR_APPLY@2146..21831642 EXPR_LITERAL@2562..2566
1374 EXPR_INDEX@2146..21611643 TRUE_KW@2562..2566 "true"
1375 EXPR_VAR@2146..21491644 WHITESPACE@2566..2571 "\n "
1376 NAME@2146..21491645 ELSE_KW@2571..2575 "else"
1377 IDENT@2146..2149 "std"1646 WHITESPACE@2575..2582 "\n "
1378 DOT@2149..2150 "."1647 FALSE_EXPR@2582..2625
1379 NAME@2150..21611648 EXPR_ERROR@2582..2625
1380 IDENT@2150..2161 "rstripChars"1649 ERROR_KW@2582..2587 "error"
1381 ARGS_DESC@2161..21831650 WHITESPACE@2587..2588 " "
1382 L_PAREN@2161..2162 "("1651 EXPR_BINARY@2588..2625
1383 ARG@2162..21751652 LHS_EXPR@2588..2621
1384 EXPR_SLICE@2162..21751653 EXPR_BINARY@2588..2621
1385 EXPR_VAR@2162..21651654 LHS_EXPR@2588..2612
1386 NAME@2162..21651655 EXPR_BINARY@2588..2612
1387 IDENT@2162..2165 "str"1656 LHS_EXPR@2588..2608
1388 SLICE_DESC@2165..21751657 EXPR_STRING@2588..2608
1389 L_BRACK@2165..2166 "["1658 STRING_SINGLE@2588..2608 "'Assertion failed. '"
1390 COLON@2166..2167 ":"1659 WHITESPACE@2608..2609 " "
1391 SLICE_DESC_END@2167..21741660 PLUS@2609..2610 "+"
1392 EXPR_BINARY@2167..21741661 WHITESPACE@2610..2611 " "
1393 LHS_EXPR@2167..21701662 EXPR_VAR@2611..2612
1394 EXPR_VAR@2167..21701663 NAME@2611..2612
1395 NAME@2167..21701664 IDENT@2611..2612 "a"
1396 IDENT@2167..2170 "len"1665 WHITESPACE@2612..2613 " "
1397 WHITESPACE@2170..2171 " "1666 PLUS@2613..2614 "+"
1398 MINUS@2171..2172 "-"1667 WHITESPACE@2614..2615 " "
1399 WHITESPACE@2172..2173 " "1668 EXPR_STRING@2615..2621
1400 EXPR_NUMBER@2173..21741669 STRING_SINGLE@2615..2621 "' != '"
1401 FLOAT@2173..2174 "1"1670 WHITESPACE@2621..2622 " "
1402 R_BRACK@2174..2175 "]"1671 PLUS@2622..2623 "+"
1403 COMMA@2175..2176 ","1672 WHITESPACE@2623..2624 " "
1404 WHITESPACE@2176..2177 " "1673 EXPR_VAR@2624..2625
1405 ARG@2177..21821674 NAME@2624..2625
1406 EXPR_VAR@2177..21821675 IDENT@2624..2625 "b"
1407 NAME@2177..21821676 COMMA@2625..2626 ","
1408 IDENT@2177..2182 "chars"1677 WHITESPACE@2626..2630 "\n\n "
1409 R_PAREN@2182..2183 ")"1678 MEMBER_FIELD@2630..2732
1410 WHITESPACE@2183..2188 "\n "1679 FIELD_METHOD@2630..2732
1411 ELSE_KW@2188..2192 "else"1680 FIELD_NAME_FIXED@2630..2635
1412 WHITESPACE@2192..2199 "\n "1681 NAME@2630..2635
1413 FALSE_EXPR@2199..22021682 IDENT@2630..2635 "clamp"
1414 EXPR_VAR@2199..22021683 PARAMS_DESC@2635..2654
1415 NAME@2199..22021684 L_PAREN@2635..2636 "("
1416 IDENT@2199..2202 "str"1685 PARAM@2636..2637
1417 COMMA@2202..2203 ","1686 DESTRUCT_FULL@2636..2637
1418 WHITESPACE@2203..2207 "\n\n "1687 NAME@2636..2637
1419 MEMBER_FIELD@2207..22871688 IDENT@2636..2637 "x"
1420 FIELD_METHOD@2207..22871689 COMMA@2637..2638 ","
1421 FIELD_NAME_FIXED@2207..22171690 WHITESPACE@2638..2639 " "
1422 NAME@2207..22171691 PARAM@2639..2645
1423 IDENT@2207..2217 "stripChars"1692 DESTRUCT_FULL@2639..2645
1424 PARAMS_DESC@2217..22291693 NAME@2639..2645
1425 L_PAREN@2217..2218 "("1694 IDENT@2639..2645 "minVal"
1426 PARAM@2218..22211695 COMMA@2645..2646 ","
1427 DESTRUCT_FULL@2218..22211696 WHITESPACE@2646..2647 " "
1428 NAME@2218..22211697 PARAM@2647..2653
1429 IDENT@2218..2221 "str"1698 DESTRUCT_FULL@2647..2653
1430 COMMA@2221..2222 ","1699 NAME@2647..2653
1431 WHITESPACE@2222..2223 " "1700 IDENT@2647..2653 "maxVal"
1432 PARAM@2223..22281701 R_PAREN@2653..2654 ")"
1433 DESTRUCT_FULL@2223..22281702 COLONCOLON@2654..2656 "::"
1434 NAME@2223..22281703 WHITESPACE@2656..2661 "\n "
1435 IDENT@2223..2228 "chars"1704 EXPR_IF_THEN_ELSE@2661..2732
1436 R_PAREN@2228..2229 ")"1705 IF_KW@2661..2663 "if"
1437 COLONCOLON@2229..2231 "::"1706 WHITESPACE@2663..2664 " "
1438 WHITESPACE@2231..2236 "\n "1707 EXPR_BINARY@2664..2674
1439 EXPR_APPLY@2236..22871708 LHS_EXPR@2664..2665
1440 EXPR_INDEX@2236..22511709 EXPR_VAR@2664..2665
1441 EXPR_VAR@2236..22391710 NAME@2664..2665
1442 NAME@2236..22391711 IDENT@2664..2665 "x"
1443 IDENT@2236..2239 "std"1712 WHITESPACE@2665..2666 " "
1444 DOT@2239..2240 "."1713 LT@2666..2667 "<"
1445 NAME@2240..22511714 WHITESPACE@2667..2668 " "
1446 IDENT@2240..2251 "lstripChars"1715 EXPR_VAR@2668..2674
1447 ARGS_DESC@2251..22871716 NAME@2668..2674
1448 L_PAREN@2251..2252 "("1717 IDENT@2668..2674 "minVal"
1449 ARG@2252..22791718 WHITESPACE@2674..2675 " "
1450 EXPR_APPLY@2252..22791719 THEN_KW@2675..2679 "then"
1451 EXPR_INDEX@2252..22671720 WHITESPACE@2679..2680 " "
1452 EXPR_VAR@2252..22551721 TRUE_EXPR@2680..2686
1453 NAME@2252..22551722 EXPR_VAR@2680..2686
1454 IDENT@2252..2255 "std"1723 NAME@2680..2686
1455 DOT@2255..2256 "."1724 IDENT@2680..2686 "minVal"
1456 NAME@2256..22671725 WHITESPACE@2686..2691 "\n "
1457 IDENT@2256..2267 "rstripChars"1726 ELSE_KW@2691..2695 "else"
1458 ARGS_DESC@2267..22791727 WHITESPACE@2695..2696 " "
1459 L_PAREN@2267..2268 "("1728 FALSE_EXPR@2696..2732
1460 ARG@2268..22711729 EXPR_IF_THEN_ELSE@2696..2732
1461 EXPR_VAR@2268..22711730 IF_KW@2696..2698 "if"
1462 NAME@2268..22711731 WHITESPACE@2698..2699 " "
1463 IDENT@2268..2271 "str"1732 EXPR_BINARY@2699..2709
1464 COMMA@2271..2272 ","1733 LHS_EXPR@2699..2700
1465 WHITESPACE@2272..2273 " "1734 EXPR_VAR@2699..2700
1466 ARG@2273..22781735 NAME@2699..2700
1467 EXPR_VAR@2273..22781736 IDENT@2699..2700 "x"
1468 NAME@2273..22781737 WHITESPACE@2700..2701 " "
1469 IDENT@2273..2278 "chars"1738 GT@2701..2702 ">"
1470 R_PAREN@2278..2279 ")"1739 WHITESPACE@2702..2703 " "
1471 COMMA@2279..2280 ","1740 EXPR_VAR@2703..2709
1472 WHITESPACE@2280..2281 " "1741 NAME@2703..2709
1473 ARG@2281..22861742 IDENT@2703..2709 "maxVal"
1474 EXPR_VAR@2281..22861743 WHITESPACE@2709..2710 " "
1475 NAME@2281..22861744 THEN_KW@2710..2714 "then"
1476 IDENT@2281..2286 "chars"1745 WHITESPACE@2714..2715 " "
1477 R_PAREN@2286..2287 ")"1746 TRUE_EXPR@2715..2721
1478 COMMA@2287..2288 ","1747 EXPR_VAR@2715..2721
1479 WHITESPACE@2288..2292 "\n\n "1748 NAME@2715..2721
1480 MEMBER_FIELD@2292..23651749 IDENT@2715..2721 "maxVal"
1481 FIELD_METHOD@2292..23651750 WHITESPACE@2721..2726 "\n "
1482 FIELD_NAME_FIXED@2292..23031751 ELSE_KW@2726..2730 "else"
1483 NAME@2292..23031752 WHITESPACE@2730..2731 " "
1484 IDENT@2292..2303 "stringChars"1753 FALSE_EXPR@2731..2732
1485 PARAMS_DESC@2303..23081754 EXPR_VAR@2731..2732
1486 L_PAREN@2303..2304 "("1755 NAME@2731..2732
1487 PARAM@2304..23071756 IDENT@2731..2732 "x"
1488 DESTRUCT_FULL@2304..23071757 COMMA@2732..2733 ","
1489 NAME@2304..23071758 WHITESPACE@2733..2737 "\n\n "
1490 IDENT@2304..2307 "str"1759 MEMBER_FIELD@2737..2804
1491 R_PAREN@2307..2308 ")"1760 FIELD_METHOD@2737..2804
1492 COLONCOLON@2308..2310 "::"1761 FIELD_NAME_FIXED@2737..2750
1493 WHITESPACE@2310..2315 "\n "1762 NAME@2737..2750
1494 EXPR_APPLY@2315..23651763 IDENT@2737..2750 "flattenArrays"
1495 EXPR_INDEX@2315..23281764 PARAMS_DESC@2750..2756
1496 EXPR_VAR@2315..23181765 L_PAREN@2750..2751 "("
1497 NAME@2315..23181766 PARAM@2751..2755
1498 IDENT@2315..2318 "std"1767 DESTRUCT_FULL@2751..2755
1499 DOT@2318..2319 "."1768 NAME@2751..2755
1500 NAME@2319..23281769 IDENT@2751..2755 "arrs"
1501 IDENT@2319..2328 "makeArray"1770 R_PAREN@2755..2756 ")"
1502 ARGS_DESC@2328..23651771 COLONCOLON@2756..2758 "::"
1503 L_PAREN@2328..2329 "("1772 WHITESPACE@2758..2763 "\n "
1504 ARG@2329..23441773 EXPR_APPLY@2763..2804
1505 EXPR_APPLY@2329..23441774 EXPR_INDEX@2763..2772
1506 EXPR_INDEX@2329..23391775 EXPR_VAR@2763..2766
1507 EXPR_VAR@2329..23321776 NAME@2763..2766
1508 NAME@2329..23321777 IDENT@2763..2766 "std"
1509 IDENT@2329..2332 "std"1778 DOT@2766..2767 "."
1510 DOT@2332..2333 "."1779 NAME@2767..2772
1511 NAME@2333..23391780 IDENT@2767..2772 "foldl"
1512 IDENT@2333..2339 "length"1781 ARGS_DESC@2772..2804
1513 ARGS_DESC@2339..23441782 L_PAREN@2772..2773 "("
1514 L_PAREN@2339..2340 "("1783 ARG@2773..2793
1515 ARG@2340..23431784 EXPR_FUNCTION@2773..2793
1516 EXPR_VAR@2340..23431785 FUNCTION_KW@2773..2781 "function"
1517 NAME@2340..23431786 PARAMS_DESC@2781..2787
1518 IDENT@2340..2343 "str"1787 L_PAREN@2781..2782 "("
1519 R_PAREN@2343..2344 ")"1788 PARAM@2782..2783
1520 COMMA@2344..2345 ","1789 DESTRUCT_FULL@2782..2783
1521 WHITESPACE@2345..2346 " "1790 NAME@2782..2783
1522 ARG@2346..23641791 IDENT@2782..2783 "a"
1523 EXPR_FUNCTION@2346..23641792 COMMA@2783..2784 ","
1524 FUNCTION_KW@2346..2354 "function"1793 WHITESPACE@2784..2785 " "
1525 PARAMS_DESC@2354..23571794 PARAM@2785..2786
1526 L_PAREN@2354..2355 "("1795 DESTRUCT_FULL@2785..2786
1527 PARAM@2355..23561796 NAME@2785..2786
1528 DESTRUCT_FULL@2355..23561797 IDENT@2785..2786 "b"
1529 NAME@2355..23561798 R_PAREN@2786..2787 ")"
1530 IDENT@2355..2356 "i"1799 WHITESPACE@2787..2788 " "
1531 R_PAREN@2356..2357 ")"1800 EXPR_BINARY@2788..2793
1532 WHITESPACE@2357..2358 " "1801 LHS_EXPR@2788..2789
1533 EXPR_INDEX_EXPR@2358..23641802 EXPR_VAR@2788..2789
1534 LHS_EXPR@2358..23611803 NAME@2788..2789
1535 EXPR_VAR@2358..23611804 IDENT@2788..2789 "a"
1536 NAME@2358..23611805 WHITESPACE@2789..2790 " "
1537 IDENT@2358..2361 "str"1806 PLUS@2790..2791 "+"
1538 L_BRACK@2361..2362 "["1807 WHITESPACE@2791..2792 " "
1539 EXPR_VAR@2362..23631808 EXPR_VAR@2792..2793
1540 NAME@2362..23631809 NAME@2792..2793
1541 IDENT@2362..2363 "i"1810 IDENT@2792..2793 "b"
1542 R_BRACK@2363..2364 "]"1811 COMMA@2793..2794 ","
1543 R_PAREN@2364..2365 ")"1812 WHITESPACE@2794..2795 " "
1544 COMMA@2365..2366 ","1813 ARG@2795..2799
1545 WHITESPACE@2366..2370 "\n\n "1814 EXPR_VAR@2795..2799
1546 MEMBER_BIND_STMT@2370..30861815 NAME@2795..2799
1547 OBJ_LOCAL@2370..30861816 IDENT@2795..2799 "arrs"
1548 LOCAL_KW@2370..2375 "local"1817 COMMA@2799..2800 ","
1549 WHITESPACE@2375..2376 " "1818 WHITESPACE@2800..2801 " "
1550 BIND_FUNCTION@2376..30861819 ARG@2801..2803
1551 NAME@2376..23851820 EXPR_ARRAY@2801..2803
1552 IDENT@2376..2385 "parse_nat"1821 L_BRACK@2801..2802 "["
1553 PARAMS_DESC@2385..23961822 R_BRACK@2802..2803 "]"
1554 L_PAREN@2385..2386 "("1823 R_PAREN@2803..2804 ")"
1555 PARAM@2386..23891824 COMMA@2804..2805 ","
1556 DESTRUCT_FULL@2386..23891825 WHITESPACE@2805..2809 "\n\n "
1557 NAME@2386..23891826 MEMBER_FIELD@2809..3495
1558 IDENT@2386..2389 "str"1827 FIELD_METHOD@2809..3495
1559 COMMA@2389..2390 ","1828 FIELD_NAME_FIXED@2809..2820
1560 WHITESPACE@2390..2391 " "1829 NAME@2809..2820
1561 PARAM@2391..23951830 IDENT@2809..2820 "manifestIni"
1562 DESTRUCT_FULL@2391..23951831 PARAMS_DESC@2820..2825
1563 NAME@2391..23951832 L_PAREN@2820..2821 "("
1564 IDENT@2391..2395 "base"1833 PARAM@2821..2824
1565 R_PAREN@2395..2396 ")"1834 DESTRUCT_FULL@2821..2824
1566 WHITESPACE@2396..2397 " "1835 NAME@2821..2824
1567 ASSIGN@2397..2398 "="1836 IDENT@2821..2824 "ini"
1568 WHITESPACE@2398..2403 "\n "1837 R_PAREN@2824..2825 ")"
1569 EXPR_ASSERT@2403..30861838 COLONCOLON@2825..2827 "::"
1570 ASSERTION@2403..24671839 WHITESPACE@2827..2832 "\n "
1571 ASSERT_KW@2403..2409 "assert"1840 EXPR_LOCAL@2832..3495
1572 WHITESPACE@2409..2410 " "1841 LOCAL_KW@2832..2837 "local"
1573 LHS_EXPR@2410..24321842 WHITESPACE@2837..2838 " "
1574 EXPR_BINARY@2410..24321843 BIND_FUNCTION@2838..3135
1575 LHS_EXPR@2410..24181844 NAME@2838..2848
1576 EXPR_BINARY@2410..24181845 IDENT@2838..2848 "body_lines"
1577 LHS_EXPR@2410..24141846 PARAMS_DESC@2848..2854
1578 EXPR_VAR@2410..24141847 L_PAREN@2848..2849 "("
1579 NAME@2410..24141848 PARAM@2849..2853
1580 IDENT@2410..2414 "base"1849 DESTRUCT_FULL@2849..2853
1581 WHITESPACE@2414..2415 " "1850 NAME@2849..2853
1582 GT@2415..2416 ">"1851 IDENT@2849..2853 "body"
1583 WHITESPACE@2416..2417 " "1852 R_PAREN@2853..2854 ")"
1584 EXPR_NUMBER@2417..24181853 WHITESPACE@2854..2855 " "
1585 FLOAT@2417..2418 "0"1854 ASSIGN@2855..2856 "="
1586 WHITESPACE@2418..2419 " "1855 WHITESPACE@2856..2863 "\n "
1587 AND@2419..2421 "&&"1856 EXPR_APPLY@2863..3135
1588 WHITESPACE@2421..2422 " "1857 EXPR_INDEX@2863..2871
1589 EXPR_BINARY@2422..24321858 EXPR_VAR@2863..2866
1590 LHS_EXPR@2422..24261859 NAME@2863..2866
1591 EXPR_VAR@2422..24261860 IDENT@2863..2866 "std"
1592 NAME@2422..24261861 DOT@2866..2867 "."
1593 IDENT@2422..2426 "base"1862 NAME@2867..2871
1594 WHITESPACE@2426..2427 " "1863 IDENT@2867..2871 "join"
1595 LE@2427..2429 "<="1864 ARGS_DESC@2871..3135
1596 WHITESPACE@2429..2430 " "1865 L_PAREN@2871..2872 "("
1597 EXPR_NUMBER@2430..24321866 ARG@2872..2874
1598 FLOAT@2430..2432 "16"1867 EXPR_ARRAY@2872..2874
1599 WHITESPACE@2432..2433 " "1868 L_BRACK@2872..2873 "["
1600 COLON@2433..2434 ":"1869 R_BRACK@2873..2874 "]"
1601 WHITESPACE@2434..2435 " "1870 COMMA@2874..2875 ","
1602 EXPR_BINARY@2435..24671871 WHITESPACE@2875..2876 " "
1603 LHS_EXPR@2435..24601872 ARG@2876..3134
1604 EXPR_STRING@2435..24601873 EXPR_ARRAY_COMP@2876..3134
1605 STRING_SINGLE@2435..2460 "'integer base %d inva ..."1874 L_BRACK@2876..2877 "["
1606 WHITESPACE@2460..2461 " "1875 WHITESPACE@2877..2886 "\n "
1607 MODULO@2461..2462 "%"1876 EXPR_LOCAL@2886..3085
1608 WHITESPACE@2462..2463 " "1877 LOCAL_KW@2886..2891 "local"
1609 EXPR_VAR@2463..24671878 WHITESPACE@2891..2892 " "
1610 NAME@2463..24671879 BIND_DESTRUCT@2892..2917
1611 IDENT@2463..2467 "base"1880 DESTRUCT_FULL@2892..2907
1612 SEMI@2467..2468 ";"1881 NAME@2892..2907
1613 WHITESPACE@2468..2473 "\n "1882 IDENT@2892..2907 "value_or_values"
1614 SINGLE_LINE_SLASH_COMMENT@2473..2517 "// These codepoints a ..."1883 WHITESPACE@2907..2908 " "
1615 WHITESPACE@2517..2521 " "1884 ASSIGN@2908..2909 "="
1616 EXPR_LOCAL@2521..30861885 WHITESPACE@2909..2910 " "
1617 LOCAL_KW@2521..2526 "local"1886 EXPR_INDEX_EXPR@2910..2917
1618 WHITESPACE@2526..2527 " "1887 LHS_EXPR@2910..2914
1619 BIND_DESTRUCT@2527..25571888 EXPR_VAR@2910..2914
1620 DESTRUCT_FULL@2527..25361889 NAME@2910..2914
1621 NAME@2527..25361890 IDENT@2910..2914 "body"
1622 IDENT@2527..2536 "zero_code"1891 L_BRACK@2914..2915 "["
1623 WHITESPACE@2536..2537 " "1892 EXPR_VAR@2915..2916
1624 ASSIGN@2537..2538 "="1893 NAME@2915..2916
1625 WHITESPACE@2538..2539 " "1894 IDENT@2915..2916 "k"
1626 EXPR_APPLY@2539..25571895 R_BRACK@2916..2917 "]"
1627 EXPR_INDEX@2539..25521896 SEMI@2917..2918 ";"
1628 EXPR_VAR@2539..25421897 WHITESPACE@2918..2927 "\n "
1629 NAME@2539..25421898 EXPR_IF_THEN_ELSE@2927..3085
1630 IDENT@2539..2542 "std"1899 IF_KW@2927..2929 "if"
1631 DOT@2542..2543 "."1900 WHITESPACE@2929..2930 " "
1632 NAME@2543..25521901 EXPR_APPLY@2930..2958
1633 IDENT@2543..2552 "codepoint"1902 EXPR_INDEX@2930..2941
1634 ARGS_DESC@2552..25571903 EXPR_VAR@2930..2933
1635 L_PAREN@2552..2553 "("1904 NAME@2930..2933
1636 ARG@2553..25561905 IDENT@2930..2933 "std"
1637 EXPR_STRING@2553..25561906 DOT@2933..2934 "."
1638 STRING_SINGLE@2553..2556 "'0'"1907 NAME@2934..2941
1639 R_PAREN@2556..2557 ")"1908 IDENT@2934..2941 "isArray"
1640 SEMI@2557..2558 ";"1909 ARGS_DESC@2941..2958
1641 WHITESPACE@2558..2563 "\n "1910 L_PAREN@2941..2942 "("
1642 EXPR_LOCAL@2563..30861911 ARG@2942..2957
1643 LOCAL_KW@2563..2568 "local"1912 EXPR_VAR@2942..2957
1644 WHITESPACE@2568..2569 " "1913 NAME@2942..2957
1645 BIND_DESTRUCT@2569..26021914 IDENT@2942..2957 "value_or_values"
1646 DESTRUCT_FULL@2569..25811915 R_PAREN@2957..2958 ")"
1647 NAME@2569..25811916 WHITESPACE@2958..2959 " "
1648 IDENT@2569..2581 "upper_a_code"1917 THEN_KW@2959..2963 "then"
1649 WHITESPACE@2581..2582 " "1918 WHITESPACE@2963..2974 "\n "
1650 ASSIGN@2582..2583 "="1919 TRUE_EXPR@2974..3027
1651 WHITESPACE@2583..2584 " "1920 EXPR_ARRAY_COMP@2974..3027
1652 EXPR_APPLY@2584..26021921 L_BRACK@2974..2975 "["
1653 EXPR_INDEX@2584..25971922 EXPR_BINARY@2975..2997
1654 EXPR_VAR@2584..25871923 LHS_EXPR@2975..2984
1655 NAME@2584..25871924 EXPR_STRING@2975..2984
1656 IDENT@2584..2587 "std"1925 STRING_SINGLE@2975..2984 "'%s = %s'"
1657 DOT@2587..2588 "."1926 WHITESPACE@2984..2985 " "
1658 NAME@2588..25971927 MODULO@2985..2986 "%"
1659 IDENT@2588..2597 "codepoint"1928 WHITESPACE@2986..2987 " "
1660 ARGS_DESC@2597..26021929 EXPR_ARRAY@2987..2997
1661 L_PAREN@2597..2598 "("1930 L_BRACK@2987..2988 "["
1662 ARG@2598..26011931 EXPR_VAR@2988..2989
1663 EXPR_STRING@2598..26011932 NAME@2988..2989
1664 STRING_SINGLE@2598..2601 "'A'"1933 IDENT@2988..2989 "k"
1665 R_PAREN@2601..2602 ")"1934 COMMA@2989..2990 ","
1666 SEMI@2602..2603 ";"
1667 WHITESPACE@2603..2608 "\n "
1668 EXPR_LOCAL@2608..3086
1669 LOCAL_KW@2608..2613 "local"
1670 WHITESPACE@2613..2614 " "
1671 BIND_DESTRUCT@2614..2647
1672 DESTRUCT_FULL@2614..2626
1673 NAME@2614..2626
1674 IDENT@2614..2626 "lower_a_code"
1675 WHITESPACE@2626..2627 " "
1676 ASSIGN@2627..2628 "="
1677 WHITESPACE@2628..2629 " "
1678 EXPR_APPLY@2629..2647
1679 EXPR_INDEX@2629..2642
1680 EXPR_VAR@2629..2632
1681 NAME@2629..2632
1682 IDENT@2629..2632 "std"
1683 DOT@2632..2633 "."
1684 NAME@2633..2642
1685 IDENT@2633..2642 "codepoint"
1686 ARGS_DESC@2642..2647
1687 L_PAREN@2642..2643 "("
1688 ARG@2643..2646
1689 EXPR_STRING@2643..2646
1690 STRING_SINGLE@2643..2646 "'a'"
1691 R_PAREN@2646..2647 ")"
1692 SEMI@2647..2648 ";"
1693 WHITESPACE@2648..2653 "\n "
1694 EXPR_LOCAL@2653..3086
1695 LOCAL_KW@2653..2658 "local"
1696 WHITESPACE@2658..2659 " "
1697 BIND_FUNCTION@2659..3036
1698 NAME@2659..2667
1699 IDENT@2659..2667 "addDigit"
1700 PARAMS_DESC@2667..2684
1701 L_PAREN@2667..2668 "("
1702 PARAM@2668..2677
1703 DESTRUCT_FULL@2668..2677
1704 NAME@2668..2677
1705 IDENT@2668..2677 "aggregate"
1706 COMMA@2677..2678 ","
1707 WHITESPACE@2678..2679 " "
1708 PARAM@2679..2683
1709 DESTRUCT_FULL@2679..2683
1710 NAME@2679..2683
1711 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..3036
1717 LOCAL_KW@2693..2698 "local"
1718 WHITESPACE@2698..2699 " "
1719 BIND_DESTRUCT@2699..2725
1720 DESTRUCT_FULL@2699..2703
1721 NAME@2699..2703
1722 IDENT@2699..2703 "code"
1723 WHITESPACE@2703..2704 " "
1724 ASSIGN@2704..2705 "="
1725 WHITESPACE@2705..2706 " "
1726 EXPR_APPLY@2706..2725
1727 EXPR_INDEX@2706..2719
1728 EXPR_VAR@2706..2709
1729 NAME@2706..2709
1730 IDENT@2706..2709 "std"
1731 DOT@2709..2710 "."
1732 NAME@2710..2719
1733 IDENT@2710..2719 "codepoint"
1734 ARGS_DESC@2719..2725
1735 L_PAREN@2719..2720 "("
1736 ARG@2720..2724
1737 EXPR_VAR@2720..2724
1738 NAME@2720..2724
1739 IDENT@2720..2724 "char"
1740 R_PAREN@2724..2725 ")"
1741 SEMI@2725..2726 ";"
1742 WHITESPACE@2726..2733 "\n "
1743 EXPR_LOCAL@2733..3036
1744 LOCAL_KW@2733..2738 "local"
1745 WHITESPACE@2738..2739 " "
1746 BIND_DESTRUCT@2739..2917
1747 DESTRUCT_FULL@2739..2744
1748 NAME@2739..2744
1749 IDENT@2739..2744 "digit"
1750 WHITESPACE@2744..2745 " "
1751 ASSIGN@2745..2746 "="
1752 WHITESPACE@2746..2747 " "
1753 EXPR_IF_THEN_ELSE@2747..2917
1754 IF_KW@2747..2749 "if"
1755 WHITESPACE@2749..2750 " "
1756 EXPR_BINARY@2750..2770
1757 LHS_EXPR@2750..2754
1758 EXPR_VAR@2750..2754
1759 NAME@2750..2754
1760 IDENT@2750..2754 "code"
1761 WHITESPACE@2754..2755 " "
1762 GE@2755..2757 ">="
1763 WHITESPACE@2757..2758 " "
1764 EXPR_VAR@2758..2770
1765 NAME@2758..2770
1766 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..2808
1771 EXPR_BINARY@2784..2808
1772 LHS_EXPR@2784..2803
1773 EXPR_BINARY@2784..2803
1774 LHS_EXPR@2784..2788
1775 EXPR_VAR@2784..2788
1776 NAME@2784..2788
1777 IDENT@2784..2788 "code"
1778 WHITESPACE@2788..2789 " "
1779 MINUS@2789..2790 "-"
1780 WHITESPACE@2790..2791 " "
1781 EXPR_VAR@2791..2803
1782 NAME@2791..2803
1783 IDENT@2791..2803 "lower_a_code"
1784 WHITESPACE@2803..2804 " "
1785 PLUS@2804..2805 "+"
1786 WHITESPACE@2805..2806 " "
1787 EXPR_NUMBER@2806..2808
1788 FLOAT@2806..2808 "10"
1789 WHITESPACE@2808..2815 "\n "
1790 ELSE_KW@2815..2819 "else"
1791 WHITESPACE@2819..2820 " "
1792 FALSE_EXPR@2820..2917
1793 EXPR_IF_THEN_ELSE@2820..2917
1794 IF_KW@2820..2822 "if"
1795 WHITESPACE@2822..2823 " "
1796 EXPR_BINARY@2823..2843
1797 LHS_EXPR@2823..2827
1798 EXPR_VAR@2823..2827
1799 NAME@2823..2827
1800 IDENT@2823..2827 "code"
1801 WHITESPACE@2827..2828 " "
1802 GE@2828..2830 ">="
1803 WHITESPACE@2830..2831 " "
1804 EXPR_VAR@2831..2843
1805 NAME@2831..2843
1806 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..2881
1811 EXPR_BINARY@2857..2881
1812 LHS_EXPR@2857..2876
1813 EXPR_BINARY@2857..2876
1814 LHS_EXPR@2857..2861
1815 EXPR_VAR@2857..2861
1816 NAME@2857..2861
1817 IDENT@2857..2861 "code"
1818 WHITESPACE@2861..2862 " "
1819 MINUS@2862..2863 "-"
1820 WHITESPACE@2863..2864 " "
1821 EXPR_VAR@2864..2876
1822 NAME@2864..2876
1823 IDENT@2864..2876 "upper_a_code"
1824 WHITESPACE@2876..2877 " "
1825 PLUS@2877..2878 "+"
1826 WHITESPACE@2878..2879 " "
1827 EXPR_NUMBER@2879..2881
1828 FLOAT@2879..2881 "10"
1829 WHITESPACE@2881..2888 "\n "
1830 ELSE_KW@2888..2892 "else"
1831 WHITESPACE@2892..2901 "\n "
1832 FALSE_EXPR@2901..2917
1833 EXPR_BINARY@2901..2917
1834 LHS_EXPR@2901..2905
1835 EXPR_VAR@2901..2905
1836 NAME@2901..2905
1837 IDENT@2901..2905 "code"
1838 WHITESPACE@2905..2906 " "
1839 MINUS@2906..2907 "-"
1840 WHITESPACE@2907..2908 " "
1841 EXPR_VAR@2908..2917
1842 NAME@2908..2917
1843 IDENT@2908..2917 "zero_code"
1844 SEMI@2917..2918 ";"
1845 WHITESPACE@2918..2925 "\n "
1846 EXPR_ASSERT@2925..3036
1847 ASSERTION@2925..3004
1848 ASSERT_KW@2925..2931 "assert"
1849 WHITESPACE@2931..2932 " "
1850 LHS_EXPR@2932..2958
1851 EXPR_BINARY@2932..2958
1852 LHS_EXPR@2932..2942
1853 EXPR_BINARY@2932..2942
1854 LHS_EXPR@2932..2937
1855 EXPR_VAR@2932..2937
1856 NAME@2932..2937
1857 IDENT@2932..2937 "digit"
1858 WHITESPACE@2937..2938 " "
1859 GE@2938..2940 ">="
1860 WHITESPACE@2940..2941 " "
1861 EXPR_NUMBER@2941..2942
1862 FLOAT@2941..2942 "0"
1863 WHITESPACE@2942..2943 " "
1864 AND@2943..2945 "&&"
1865 WHITESPACE@2945..2946 " "
1866 EXPR_BINARY@2946..2958
1867 LHS_EXPR@2946..2951
1868 EXPR_VAR@2946..2951
1869 NAME@2946..2951
1870 IDENT@2946..2951 "digit"
1871 WHITESPACE@2951..2952 " "
1872 LT@2952..2953 "<"
1873 WHITESPACE@2953..2954 " "
1874 EXPR_VAR@2954..2958
1875 NAME@2954..2958
1876 IDENT@2954..2958 "base"
1877 WHITESPACE@2958..2959 " "
1878 COLON@2959..2960 ":"
1879 WHITESPACE@2960..2961 " "
1880 EXPR_BINARY@2961..3004
1881 LHS_EXPR@2961..2990
1882 EXPR_STRING@2961..2990
1883 STRING_SINGLE@2961..2990 "'%s is not a base %d ..."
1884 WHITESPACE@2990..2991 " "1935 WHITESPACE@2990..2991 " "
1885 MODULO@2991..2992 "%"1936 EXPR_VAR@2991..2996
1886 WHITESPACE@2992..2993 " "1937 NAME@2991..2996
1887 EXPR_ARRAY@2993..30041938 IDENT@2991..2996 "value"
1888 L_BRACK@2993..2994 "["1939 R_BRACK@2996..2997 "]"
1889 EXPR_VAR@2994..29971940 WHITESPACE@2997..2998 " "
1890 NAME@2994..29971941 FOR_SPEC@2998..3026
1891 IDENT@2994..2997 "str"1942 FOR_KW@2998..3001 "for"
1892 COMMA@2997..2998 ","1943 WHITESPACE@3001..3002 " "
1893 WHITESPACE@2998..2999 " "1944 NAME@3002..3007
1894 EXPR_VAR@2999..30031945 IDENT@3002..3007 "value"
1895 NAME@2999..30031946 WHITESPACE@3007..3008 " "
1896 IDENT@2999..3003 "base"1947 IN_KW@3008..3010 "in"
1897 R_BRACK@3003..3004 "]"1948 WHITESPACE@3010..3011 " "
1898 SEMI@3004..3005 ";"1949 EXPR_VAR@3011..3026
1899 WHITESPACE@3005..3012 "\n "1950 NAME@3011..3026
1900 EXPR_BINARY@3012..30361951 IDENT@3011..3026 "value_or_values"
1901 LHS_EXPR@3012..30281952 R_BRACK@3026..3027 "]"
1902 EXPR_BINARY@3012..30281953 WHITESPACE@3027..3036 "\n "
1903 LHS_EXPR@3012..30161954 ELSE_KW@3036..3040 "else"
1904 EXPR_VAR@3012..30161955 WHITESPACE@3040..3051 "\n "
1905 NAME@3012..30161956 FALSE_EXPR@3051..3085
1906 IDENT@3012..3016 "base"1957 EXPR_ARRAY@3051..3085
1907 WHITESPACE@3016..3017 " "1958 L_BRACK@3051..3052 "["
1908 MUL@3017..3018 "*"1959 EXPR_BINARY@3052..3084
1909 WHITESPACE@3018..3019 " "1960 LHS_EXPR@3052..3061
1910 EXPR_VAR@3019..30281961 EXPR_STRING@3052..3061
1911 NAME@3019..30281962 STRING_SINGLE@3052..3061 "'%s = %s'"
1912 IDENT@3019..3028 "aggregate"1963 WHITESPACE@3061..3062 " "
1913 WHITESPACE@3028..3029 " "1964 MODULO@3062..3063 "%"
1914 PLUS@3029..3030 "+"1965 WHITESPACE@3063..3064 " "
1915 WHITESPACE@3030..3031 " "1966 EXPR_ARRAY@3064..3084
1916 EXPR_VAR@3031..30361967 L_BRACK@3064..3065 "["
1917 NAME@3031..30361968 EXPR_VAR@3065..3066
1918 IDENT@3031..3036 "digit"1969 NAME@3065..3066
1919 SEMI@3036..3037 ";"1970 IDENT@3065..3066 "k"
1920 WHITESPACE@3037..3042 "\n "1971 COMMA@3066..3067 ","
1921 EXPR_APPLY@3042..30861972 WHITESPACE@3067..3068 " "
1922 EXPR_INDEX@3042..30511973 EXPR_VAR@3068..3083
1923 EXPR_VAR@3042..30451974 NAME@3068..3083
1924 NAME@3042..30451975 IDENT@3068..3083 "value_or_values"
1925 IDENT@3042..3045 "std"1976 R_BRACK@3083..3084 "]"
1926 DOT@3045..3046 "."1977 R_BRACK@3084..3085 "]"
1927 NAME@3046..30511978 WHITESPACE@3085..3095 "\n\n "
1928 IDENT@3046..3051 "foldl"1979 FOR_SPEC@3095..3126
1929 ARGS_DESC@3051..30861980 FOR_KW@3095..3098 "for"
1930 L_PAREN@3051..3052 "("1981 WHITESPACE@3098..3099 " "
1931 ARG@3052..30601982 NAME@3099..3100
1932 EXPR_VAR@3052..30601983 IDENT@3099..3100 "k"
1933 NAME@3052..30601984 WHITESPACE@3100..3101 " "
1934 IDENT@3052..3060 "addDigit"1985 IN_KW@3101..3103 "in"
1935 COMMA@3060..3061 ","1986 WHITESPACE@3103..3104 " "
1936 WHITESPACE@3061..3062 " "1987 EXPR_APPLY@3104..3126
1937 ARG@3062..30821988 EXPR_INDEX@3104..3120
1938 EXPR_APPLY@3062..30821989 EXPR_VAR@3104..3107
1939 EXPR_INDEX@3062..30771990 NAME@3104..3107
1940 EXPR_VAR@3062..30651991 IDENT@3104..3107 "std"
1941 NAME@3062..30651992 DOT@3107..3108 "."
1942 IDENT@3062..3065 "std"1993 NAME@3108..3120
1943 DOT@3065..3066 "."1994 IDENT@3108..3120 "objectFields"
1944 NAME@3066..30771995 ARGS_DESC@3120..3126
1945 IDENT@3066..3077 "stringChars"1996 L_PAREN@3120..3121 "("
1946 ARGS_DESC@3077..30821997 ARG@3121..3125
1947 L_PAREN@3077..3078 "("1998 EXPR_VAR@3121..3125
1948 ARG@3078..30811999 NAME@3121..3125
1949 EXPR_VAR@3078..30812000 IDENT@3121..3125 "body"
1950 NAME@3078..30812001 R_PAREN@3125..3126 ")"
1951 IDENT@3078..3081 "str"2002 WHITESPACE@3126..3133 "\n "
1952 R_PAREN@3081..3082 ")"2003 R_BRACK@3133..3134 "]"
1953 COMMA@3082..3083 ","2004 R_PAREN@3134..3135 ")"
1954 WHITESPACE@3083..3084 " "2005 SEMI@3135..3136 ";"
1955 ARG@3084..30852006 WHITESPACE@3136..3142 "\n\n "
1956 EXPR_NUMBER@3084..30852007 EXPR_LOCAL@3142..3495
1957 FLOAT@3084..3085 "0"2008 LOCAL_KW@3142..3147 "local"
1958 R_PAREN@3085..3086 ")"2009 WHITESPACE@3147..3148 " "
1959 COMMA@3086..3087 ","2010 BIND_FUNCTION@3148..3216
1960 WHITESPACE@3087..3091 "\n\n "2011 NAME@3148..3161
1961 MEMBER_FIELD@3091..33472012 IDENT@3148..3161 "section_lines"
1962 FIELD_METHOD@3091..33472013 PARAMS_DESC@3161..3175
1963 FIELD_NAME_FIXED@3091..30992014 L_PAREN@3161..3162 "("
1964 NAME@3091..30992015 PARAM@3162..3167
1965 IDENT@3091..3099 "parseInt"2016 DESTRUCT_FULL@3162..3167
1966 PARAMS_DESC@3099..31042017 NAME@3162..3167
1967 L_PAREN@3099..3100 "("2018 IDENT@3162..3167 "sname"
1968 PARAM@3100..31032019 COMMA@3167..3168 ","
1969 DESTRUCT_FULL@3100..31032020 WHITESPACE@3168..3169 " "
1970 NAME@3100..31032021 PARAM@3169..3174
1971 IDENT@3100..3103 "str"2022 DESTRUCT_FULL@3169..3174
1972 R_PAREN@3103..3104 ")"2023 NAME@3169..3174
1973 COLONCOLON@3104..3106 "::"2024 IDENT@3169..3174 "sbody"
1974 WHITESPACE@3106..3111 "\n "2025 R_PAREN@3174..3175 ")"
1975 EXPR_ASSERT@3111..33472026 WHITESPACE@3175..3176 " "
1976 ASSERTION@3111..31772027 ASSIGN@3176..3177 "="
1977 ASSERT_KW@3111..3117 "assert"2028 WHITESPACE@3177..3178 " "
1978 WHITESPACE@3117..3118 " "2029 EXPR_BINARY@3178..3216
1979 LHS_EXPR@3118..31352030 LHS_EXPR@3178..3196
1980 EXPR_APPLY@3118..31352031 EXPR_ARRAY@3178..3196
1981 EXPR_INDEX@3118..31302032 L_BRACK@3178..3179 "["
1982 EXPR_VAR@3118..31212033 EXPR_BINARY@3179..3195
1983 NAME@3118..31212034 LHS_EXPR@3179..3185
1984 IDENT@3118..3121 "std"2035 EXPR_STRING@3179..3185
1985 DOT@3121..3122 "."2036 STRING_SINGLE@3179..3185 "'[%s]'"
1986 NAME@3122..31302037 WHITESPACE@3185..3186 " "
1987 IDENT@3122..3130 "isString"2038 MODULO@3186..3187 "%"
1988 ARGS_DESC@3130..31352039 WHITESPACE@3187..3188 " "
1989 L_PAREN@3130..3131 "("2040 EXPR_ARRAY@3188..3195
1990 ARG@3131..31342041 L_BRACK@3188..3189 "["
1991 EXPR_VAR@3131..31342042 EXPR_VAR@3189..3194
1992 NAME@3131..31342043 NAME@3189..3194
1993 IDENT@3131..3134 "str"2044 IDENT@3189..3194 "sname"
1994 R_PAREN@3134..3135 ")"2045 R_BRACK@3194..3195 "]"
1995 WHITESPACE@3135..3136 " "2046 R_BRACK@3195..3196 "]"
1996 COLON@3136..3137 ":"2047 WHITESPACE@3196..3197 " "
1997 WHITESPACE@3137..3138 " "2048 PLUS@3197..3198 "+"
1998 EXPR_BINARY@3138..31772049 WHITESPACE@3198..3199 " "
1999 LHS_EXPR@3138..31612050 EXPR_APPLY@3199..3216
2000 EXPR_STRING@3138..31612051 EXPR_VAR@3199..3209
2001 STRING_SINGLE@3138..3161 "'Expected string, got '"2052 NAME@3199..3209
2002 WHITESPACE@3161..3162 " "2053 IDENT@3199..3209 "body_lines"
2003 PLUS@3162..3163 "+"2054 ARGS_DESC@3209..3216
2004 WHITESPACE@3163..3164 " "2055 L_PAREN@3209..3210 "("
2005 EXPR_APPLY@3164..31772056 ARG@3210..3215
2006 EXPR_INDEX@3164..31722057 EXPR_VAR@3210..3215
2007 EXPR_VAR@3164..31672058 NAME@3210..3215
2008 NAME@3164..31672059 IDENT@3210..3215 "sbody"
2009 IDENT@3164..3167 "std"2060 R_PAREN@3215..3216 ")"
2010 DOT@3167..3168 "."2061 COMMA@3216..3217 ","
2011 NAME@3168..31722062 WHITESPACE@3217..3228 "\n "
2012 IDENT@3168..3172 "type"2063 BIND_DESTRUCT@3228..3303
2013 ARGS_DESC@3172..31772064 DESTRUCT_FULL@3228..3237
2014 L_PAREN@3172..3173 "("2065 NAME@3228..3237
2015 ARG@3173..31762066 IDENT@3228..3237 "main_body"
2016 EXPR_VAR@3173..31762067 WHITESPACE@3237..3238 " "
2017 NAME@3173..31762068 ASSIGN@3238..3239 "="
2018 IDENT@3173..3176 "str"2069 WHITESPACE@3239..3240 " "
2019 R_PAREN@3176..3177 ")"2070 EXPR_IF_THEN_ELSE@3240..3303
2020 SEMI@3177..3178 ";"2071 IF_KW@3240..3242 "if"
2021 WHITESPACE@3178..3183 "\n "2072 WHITESPACE@3242..3243 " "
2022 EXPR_ASSERT@3183..33472073 EXPR_APPLY@3243..3269
2023 ASSERTION@3183..32562074 EXPR_INDEX@3243..3256
2024 ASSERT_KW@3183..3189 "assert"2075 EXPR_VAR@3243..3246
2025 WHITESPACE@3189..3190 " "2076 NAME@3243..3246
2026 LHS_EXPR@3190..32232077 IDENT@3243..3246 "std"
2027 EXPR_BINARY@3190..32232078 DOT@3246..3247 "."
2028 LHS_EXPR@3190..32092079 NAME@3247..3256
2029 EXPR_BINARY@3190..32092080 IDENT@3247..3256 "objectHas"
2030 LHS_EXPR@3190..32052081 ARGS_DESC@3256..3269
2031 EXPR_APPLY@3190..32052082 L_PAREN@3256..3257 "("
2032 EXPR_INDEX@3190..32002083 ARG@3257..3260
2033 EXPR_VAR@3190..31932084 EXPR_VAR@3257..3260
2034 NAME@3190..31932085 NAME@3257..3260
2035 IDENT@3190..3193 "std"2086 IDENT@3257..3260 "ini"
2036 DOT@3193..3194 "."2087 COMMA@3260..3261 ","
2037 NAME@3194..32002088 WHITESPACE@3261..3262 " "
2038 IDENT@3194..3200 "length"2089 ARG@3262..3268
2039 ARGS_DESC@3200..32052090 EXPR_STRING@3262..3268
2040 L_PAREN@3200..3201 "("2091 STRING_SINGLE@3262..3268 "'main'"
2041 ARG@3201..32042092 R_PAREN@3268..3269 ")"
2042 EXPR_VAR@3201..32042093 WHITESPACE@3269..3270 " "
2043 NAME@3201..32042094 THEN_KW@3270..3274 "then"
2044 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..3209
2050 FLOAT@3208..3209 "0"
2051 WHITESPACE@3209..3210 " "
2052 AND@3210..3212 "&&"
2053 WHITESPACE@3212..3213 " "
2054 EXPR_BINARY@3213..3223
2055 LHS_EXPR@3213..3216
2056 EXPR_VAR@3213..3216
2057 NAME@3213..3216
2058 IDENT@3213..3216 "str"
2059 WHITESPACE@3216..3217 " "
2060 NE@3217..3219 "!="
2061 WHITESPACE@3219..3220 " "
2062 EXPR_STRING@3220..3223
2063 STRING_SINGLE@3220..3223 "'-'"
2064 WHITESPACE@3223..3224 " "
2065 COLON@3224..3225 ":"
2066 WHITESPACE@3225..3226 " "
2067 EXPR_BINARY@3226..3256
2068 LHS_EXPR@3226..3248
2069 EXPR_STRING@3226..3248
2070 STRING_SINGLE@3226..3248 "'Not an integer: \"%s\"'"
2071 WHITESPACE@3248..3249 " "
2072 MODULO@3249..3250 "%"
2073 WHITESPACE@3250..3251 " "
2074 EXPR_ARRAY@3251..3256
2075 L_BRACK@3251..3252 "["
2076 EXPR_VAR@3252..3255
2077 NAME@3252..3255
2078 IDENT@3252..3255 "str"
2079 R_BRACK@3255..3256 "]"
2080 SEMI@3256..3257 ";"
2081 WHITESPACE@3257..3262 "\n "
2082 EXPR_IF_THEN_ELSE@3262..3347
2083 IF_KW@3262..3264 "if"
2084 WHITESPACE@3264..3265 " "
2085 EXPR_BINARY@3265..3278
2086 LHS_EXPR@3265..3271
2087 EXPR_INDEX_EXPR@3265..3271
2088 LHS_EXPR@3265..3268
2089 EXPR_VAR@3265..3268
2090 NAME@3265..3268
2091 IDENT@3265..3268 "str"
2092 L_BRACK@3268..3269 "["
2093 EXPR_NUMBER@3269..3270
2094 FLOAT@3269..3270 "0"
2095 R_BRACK@3270..3271 "]"
2096 WHITESPACE@3271..3272 " "
2097 EQ@3272..3274 "=="
2098 WHITESPACE@3274..3275 " "2095 WHITESPACE@3274..3275 " "
2099 EXPR_STRING@3275..32782096 TRUE_EXPR@3275..3295
2100 STRING_SINGLE@3275..3278 "'-'"2097 EXPR_APPLY@3275..3295
2101 WHITESPACE@3278..3279 " "2098 EXPR_VAR@3275..3285
2102 THEN_KW@3279..3283 "then"2099 NAME@3275..3285
2103 WHITESPACE@3283..3290 "\n "2100 IDENT@3275..3285 "body_lines"
2104 TRUE_EXPR@3290..33132101 ARGS_DESC@3285..3295
2105 EXPR_UNARY@3290..33132102 L_PAREN@3285..3286 "("
2106 MINUS@3290..3291 "-"2103 ARG@3286..3294
2107 EXPR_APPLY@3291..33132104 EXPR_INDEX@3286..3294
2108 EXPR_VAR@3291..33002105 EXPR_VAR@3286..3289
2109 NAME@3291..33002106 NAME@3286..3289
2110 IDENT@3291..3300 "parse_nat"2107 IDENT@3286..3289 "ini"
2111 ARGS_DESC@3300..33132108 DOT@3289..3290 "."
2112 L_PAREN@3300..3301 "("2109 NAME@3290..3294
2113 ARG@3301..33082110 IDENT@3290..3294 "main"
2114 EXPR_SLICE@3301..33082111 R_PAREN@3294..3295 ")"
2115 EXPR_VAR@3301..33042112 WHITESPACE@3295..3296 " "
2116 NAME@3301..33042113 ELSE_KW@3296..3300 "else"
2117 IDENT@3301..3304 "str"2114 WHITESPACE@3300..3301 " "
2118 SLICE_DESC@3304..33082115 FALSE_EXPR@3301..3303
2119 L_BRACK@3304..3305 "["2116 EXPR_ARRAY@3301..3303
2120 EXPR_NUMBER@3305..33062117 L_BRACK@3301..3302 "["
2121 FLOAT@3305..3306 "1"2118 R_BRACK@3302..3303 "]"
2122 COLON@3306..3307 ":"2119 COMMA@3303..3304 ","
2123 R_BRACK@3307..3308 "]"2120 WHITESPACE@3304..3315 "\n "
2124 COMMA@3308..3309 ","2121 BIND_DESTRUCT@3315..3423
2125 WHITESPACE@3309..3310 " "2122 DESTRUCT_FULL@3315..3327
2126 ARG@3310..33122123 NAME@3315..3327
2127 EXPR_NUMBER@3310..33122124 IDENT@3315..3327 "all_sections"
2128 FLOAT@3310..3312 "10"2125 WHITESPACE@3327..3328 " "
2129 R_PAREN@3312..3313 ")"2126 ASSIGN@3328..3329 "="
2130 WHITESPACE@3313..3318 "\n "2127 WHITESPACE@3329..3330 " "
2131 ELSE_KW@3318..3322 "else"2128 EXPR_ARRAY_COMP@3330..3423
2132 WHITESPACE@3322..3329 "\n "2129 L_BRACK@3330..3331 "["
2133 FALSE_EXPR@3329..33472130 WHITESPACE@3331..3338 "\n "
2134 EXPR_APPLY@3329..33472131 EXPR_APPLY@3338..3371
2135 EXPR_VAR@3329..33382132 EXPR_VAR@3338..3351
2136 NAME@3329..33382133 NAME@3338..3351
2137 IDENT@3329..3338 "parse_nat"2134 IDENT@3338..3351 "section_lines"
2138 ARGS_DESC@3338..33472135 ARGS_DESC@3351..3371
2139 L_PAREN@3338..3339 "("2136 L_PAREN@3351..3352 "("
2140 ARG@3339..33422137 ARG@3352..3353
2141 EXPR_VAR@3339..33422138 EXPR_VAR@3352..3353
2142 NAME@3339..33422139 NAME@3352..3353
2143 IDENT@3339..3342 "str"2140 IDENT@3352..3353 "k"
2144 COMMA@3342..3343 ","2141 COMMA@3353..3354 ","
2145 WHITESPACE@3343..3344 " "2142 WHITESPACE@3354..3355 " "
2146 ARG@3344..33462143 ARG@3355..3370
2147 EXPR_NUMBER@3344..33462144 EXPR_INDEX_EXPR@3355..3370
2148 FLOAT@3344..3346 "10"2145 LHS_EXPR@3355..3367
2149 R_PAREN@3346..3347 ")"2146 EXPR_INDEX@3355..3367
2150 COMMA@3347..3348 ","2147 EXPR_VAR@3355..3358
2151 WHITESPACE@3348..3352 "\n\n "2148 NAME@3355..3358
2152 MEMBER_FIELD@3352..35232149 IDENT@3355..3358 "ini"
2153 FIELD_METHOD@3352..35232150 DOT@3358..3359 "."
2154 FIELD_NAME_FIXED@3352..33622151 NAME@3359..3367
2155 NAME@3352..33622152 IDENT@3359..3367 "sections"
2156 IDENT@3352..3362 "parseOctal"2153 L_BRACK@3367..3368 "["
2157 PARAMS_DESC@3362..33672154 EXPR_VAR@3368..3369
2158 L_PAREN@3362..3363 "("2155 NAME@3368..3369
2159 PARAM@3363..33662156 IDENT@3368..3369 "k"
2160 DESTRUCT_FULL@3363..33662157 R_BRACK@3369..3370 "]"
2161 NAME@3363..33662158 R_PAREN@3370..3371 ")"
2162 IDENT@3363..3366 "str"2159 WHITESPACE@3371..3378 "\n "
2163 R_PAREN@3366..3367 ")"2160 FOR_SPEC@3378..3417
2164 COLONCOLON@3367..3369 "::"2161 FOR_KW@3378..3381 "for"
2165 WHITESPACE@3369..3374 "\n "2162 WHITESPACE@3381..3382 " "
2166 EXPR_ASSERT@3374..35232163 NAME@3382..3383
2167 ASSERTION@3374..34402164 IDENT@3382..3383 "k"
2168 ASSERT_KW@3374..3380 "assert"2165 WHITESPACE@3383..3384 " "
2169 WHITESPACE@3380..3381 " "2166 IN_KW@3384..3386 "in"
2170 LHS_EXPR@3381..33982167 WHITESPACE@3386..3387 " "
2171 EXPR_APPLY@3381..33982168 EXPR_APPLY@3387..3417
2172 EXPR_INDEX@3381..33932169 EXPR_INDEX@3387..3403
2173 EXPR_VAR@3381..33842170 EXPR_VAR@3387..3390
2174 NAME@3381..33842171 NAME@3387..3390
2175 IDENT@3381..3384 "std"2172 IDENT@3387..3390 "std"
2176 DOT@3384..3385 "."2173 DOT@3390..3391 "."
2177 NAME@3385..33932174 NAME@3391..3403
2178 IDENT@3385..3393 "isString"2175 IDENT@3391..3403 "objectFields"
2179 ARGS_DESC@3393..33982176 ARGS_DESC@3403..3417
2180 L_PAREN@3393..3394 "("2177 L_PAREN@3403..3404 "("
2181 ARG@3394..33972178 ARG@3404..3416
2182 EXPR_VAR@3394..33972179 EXPR_INDEX@3404..3416
2183 NAME@3394..33972180 EXPR_VAR@3404..3407
2184 IDENT@3394..3397 "str"2181 NAME@3404..3407
2185 R_PAREN@3397..3398 ")"2182 IDENT@3404..3407 "ini"
2186 WHITESPACE@3398..3399 " "2183 DOT@3407..3408 "."
2187 COLON@3399..3400 ":"2184 NAME@3408..3416
2188 WHITESPACE@3400..3401 " "2185 IDENT@3408..3416 "sections"
2189 EXPR_BINARY@3401..34402186 R_PAREN@3416..3417 ")"
2190 LHS_EXPR@3401..34242187 WHITESPACE@3417..3422 "\n "
2191 EXPR_STRING@3401..34242188 R_BRACK@3422..3423 "]"
2192 STRING_SINGLE@3401..3424 "'Expected string, got '"2189 SEMI@3423..3424 ";"
2193 WHITESPACE@3424..3425 " "2190 WHITESPACE@3424..3429 "\n "
2194 PLUS@3425..3426 "+"2191 EXPR_APPLY@3429..3495
2195 WHITESPACE@3426..3427 " "2192 EXPR_INDEX@3429..3437
2196 EXPR_APPLY@3427..34402193 EXPR_VAR@3429..3432
2197 EXPR_INDEX@3427..34352194 NAME@3429..3432
2198 EXPR_VAR@3427..34302195 IDENT@3429..3432 "std"
2199 NAME@3427..34302196 DOT@3432..3433 "."
2200 IDENT@3427..3430 "std"2197 NAME@3433..3437
2201 DOT@3430..3431 "."2198 IDENT@3433..3437 "join"
2202 NAME@3431..34352199 ARGS_DESC@3437..3495
2203 IDENT@3431..3435 "type"2200 L_PAREN@3437..3438 "("
2204 ARGS_DESC@3435..34402201 ARG@3438..3442
2205 L_PAREN@3435..3436 "("2202 EXPR_STRING@3438..3442
2206 ARG@3436..34392203 STRING_SINGLE@3438..3442 "'\\n'"
2207 EXPR_VAR@3436..34392204 COMMA@3442..3443 ","
2208 NAME@3436..34392205 WHITESPACE@3443..3444 " "
2209 IDENT@3436..3439 "str"2206 ARG@3444..3494
2210 R_PAREN@3439..3440 ")"2207 EXPR_BINARY@3444..3494
2211 SEMI@3440..3441 ";"2208 LHS_EXPR@3444..3487
2212 WHITESPACE@3441..3446 "\n "2209 EXPR_BINARY@3444..3487
2213 EXPR_ASSERT@3446..35232210 LHS_EXPR@3444..3453
2214 ASSERTION@3446..35002211 EXPR_VAR@3444..3453
2215 ASSERT_KW@3446..3452 "assert"2212 NAME@3444..3453
2216 WHITESPACE@3452..3453 " "2213 IDENT@3444..3453 "main_body"
2217 LHS_EXPR@3453..34722214 WHITESPACE@3453..3454 " "
2218 EXPR_BINARY@3453..34722215 PLUS@3454..3455 "+"
2219 LHS_EXPR@3453..34682216 WHITESPACE@3455..3456 " "
2220 EXPR_APPLY@3453..34682217 EXPR_APPLY@3456..3487
2221 EXPR_INDEX@3453..34632218 EXPR_INDEX@3456..3473
2222 EXPR_VAR@3453..34562219 EXPR_VAR@3456..3459
2223 NAME@3453..34562220 NAME@3456..3459
2224 IDENT@3453..3456 "std"2221 IDENT@3456..3459 "std"
2225 DOT@3456..3457 "."2222 DOT@3459..3460 "."
2226 NAME@3457..34632223 NAME@3460..3473
2227 IDENT@3457..3463 "length"2224 IDENT@3460..3473 "flattenArrays"
2228 ARGS_DESC@3463..34682225 ARGS_DESC@3473..3487
2229 L_PAREN@3463..3464 "("2226 L_PAREN@3473..3474 "("
2230 ARG@3464..34672227 ARG@3474..3486
2231 EXPR_VAR@3464..34672228 EXPR_VAR@3474..3486
2232 NAME@3464..34672229 NAME@3474..3486
2233 IDENT@3464..3467 "str"2230 IDENT@3474..3486 "all_sections"
2234 R_PAREN@3467..3468 ")"2231 R_PAREN@3486..3487 ")"
2235 WHITESPACE@3468..3469 " "2232 WHITESPACE@3487..3488 " "
2236 GT@3469..3470 ">"2233 PLUS@3488..3489 "+"
2237 WHITESPACE@3470..3471 " "2234 WHITESPACE@3489..3490 " "
2238 EXPR_NUMBER@3471..34722235 EXPR_ARRAY@3490..3494
2239 FLOAT@3471..3472 "0"2236 L_BRACK@3490..3491 "["
2240 WHITESPACE@3472..3473 " "2237 EXPR_STRING@3491..3493
2241 COLON@3473..3474 ":"2238 STRING_SINGLE@3491..3493 "''"
2242 WHITESPACE@3474..3475 " "2239 R_BRACK@3493..3494 "]"
2243 EXPR_STRING@3475..35002240 R_PAREN@3494..3495 ")"
2244 STRING_SINGLE@3475..3500 "'Not an octal number: ..."2241 COMMA@3495..3496 ","
2245 SEMI@3500..3501 ";"2242 WHITESPACE@3496..3500 "\n\n "
2246 WHITESPACE@3501..3506 "\n "2243 MEMBER_FIELD@3500..3553
2247 EXPR_APPLY@3506..35232244 FIELD_METHOD@3500..3553
2248 EXPR_VAR@3506..35152245 FIELD_NAME_FIXED@3500..3512
2249 NAME@3506..35152246 NAME@3500..3512
2250 IDENT@3506..3515 "parse_nat"2247 IDENT@3500..3512 "manifestToml"
2251 ARGS_DESC@3515..35232248 PARAMS_DESC@3512..3519
2252 L_PAREN@3515..3516 "("2249 L_PAREN@3512..3513 "("
2253 ARG@3516..35192250 PARAM@3513..3518
2254 EXPR_VAR@3516..35192251 DESTRUCT_FULL@3513..3518
2255 NAME@3516..35192252 NAME@3513..3518
2256 IDENT@3516..3519 "str"2253 IDENT@3513..3518 "value"
2257 COMMA@3519..3520 ","2254 R_PAREN@3518..3519 ")"
2258 WHITESPACE@3520..3521 " "2255 COLONCOLON@3519..3521 "::"
2259 ARG@3521..35222256 WHITESPACE@3521..3522 " "
2260 EXPR_NUMBER@3521..35222257 EXPR_APPLY@3522..3553
2261 FLOAT@3521..3522 "8"2258 EXPR_INDEX@3522..3540
2262 R_PAREN@3522..3523 ")"2259 EXPR_VAR@3522..3525
2263 COMMA@3523..3524 ","2260 NAME@3522..3525
2264 WHITESPACE@3524..3528 "\n\n "2261 IDENT@3522..3525 "std"
2265 MEMBER_FIELD@3528..36942262 DOT@3525..3526 "."
2266 FIELD_METHOD@3528..36942263 NAME@3526..3540
2267 FIELD_NAME_FIXED@3528..35362264 IDENT@3526..3540 "manifestTomlEx"
2268 NAME@3528..35362265 ARGS_DESC@3540..3553
2269 IDENT@3528..3536 "parseHex"2266 L_PAREN@3540..3541 "("
2270 PARAMS_DESC@3536..35412267 ARG@3541..3546
2271 L_PAREN@3536..3537 "("2268 EXPR_VAR@3541..3546
2272 PARAM@3537..35402269 NAME@3541..3546
2273 DESTRUCT_FULL@3537..35402270 IDENT@3541..3546 "value"
2274 NAME@3537..35402271 COMMA@3546..3547 ","
2275 IDENT@3537..3540 "str"2272 WHITESPACE@3547..3548 " "
2276 R_PAREN@3540..3541 ")"2273 ARG@3548..3552
2277 COLONCOLON@3541..3543 "::"2274 EXPR_STRING@3548..3552
2278 WHITESPACE@3543..3548 "\n "2275 STRING_SINGLE@3548..3552 "' '"
2279 EXPR_ASSERT@3548..36942276 R_PAREN@3552..3553 ")"
2280 ASSERTION@3548..36142277 COMMA@3553..3554 ","
2281 ASSERT_KW@3548..3554 "assert"2278 WHITESPACE@3554..3558 "\n\n "
2282 WHITESPACE@3554..3555 " "2279 MEMBER_FIELD@3558..3613
2283 LHS_EXPR@3555..35722280 FIELD_METHOD@3558..3613
2284 EXPR_APPLY@3555..35722281 FIELD_NAME_FIXED@3558..3576
2285 EXPR_INDEX@3555..35672282 NAME@3558..3576
2286 EXPR_VAR@3555..35582283 IDENT@3558..3576 "escapeStringPython"
2287 NAME@3555..35582284 PARAMS_DESC@3576..3581
2288 IDENT@3555..3558 "std"2285 L_PAREN@3576..3577 "("
2289 DOT@3558..3559 "."2286 PARAM@3577..3580
2290 NAME@3559..35672287 DESTRUCT_FULL@3577..3580
2291 IDENT@3559..3567 "isString"2288 NAME@3577..3580
2292 ARGS_DESC@3567..35722289 IDENT@3577..3580 "str"
2293 L_PAREN@3567..3568 "("2290 R_PAREN@3580..3581 ")"
2294 ARG@3568..35712291 COLONCOLON@3581..3583 "::"
2295 EXPR_VAR@3568..35712292 WHITESPACE@3583..3588 "\n "
2296 NAME@3568..35712293 EXPR_APPLY@3588..3613
2297 IDENT@3568..3571 "str"2294 EXPR_INDEX@3588..3608
2298 R_PAREN@3571..3572 ")"2295 EXPR_VAR@3588..3591
2299 WHITESPACE@3572..3573 " "2296 NAME@3588..3591
2300 COLON@3573..3574 ":"2297 IDENT@3588..3591 "std"
2301 WHITESPACE@3574..3575 " "2298 DOT@3591..3592 "."
2302 EXPR_BINARY@3575..36142299 NAME@3592..3608
2303 LHS_EXPR@3575..35982300 IDENT@3592..3608 "escapeStringJson"
2304 EXPR_STRING@3575..35982301 ARGS_DESC@3608..3613
2305 STRING_SINGLE@3575..3598 "'Expected string, got '"2302 L_PAREN@3608..3609 "("
2306 WHITESPACE@3598..3599 " "2303 ARG@3609..3612
2307 PLUS@3599..3600 "+"2304 EXPR_VAR@3609..3612
2308 WHITESPACE@3600..3601 " "2305 NAME@3609..3612
2309 EXPR_APPLY@3601..36142306 IDENT@3609..3612 "str"
2310 EXPR_INDEX@3601..36092307 R_PAREN@3612..3613 ")"
2311 EXPR_VAR@3601..36042308 COMMA@3613..3614 ","
2312 NAME@3601..36042309 WHITESPACE@3614..3618 "\n\n "
2313 IDENT@3601..3604 "std"2310 MEMBER_FIELD@3618..3835
2314 DOT@3604..3605 "."2311 FIELD_METHOD@3618..3835
2315 NAME@3605..36092312 FIELD_NAME_FIXED@3618..3634
2316 IDENT@3605..3609 "type"2313 NAME@3618..3634
2317 ARGS_DESC@3609..36142314 IDENT@3618..3634 "escapeStringBash"
2318 L_PAREN@3609..3610 "("2315 PARAMS_DESC@3634..3640
2319 ARG@3610..36132316 L_PAREN@3634..3635 "("
2320 EXPR_VAR@3610..36132317 PARAM@3635..3639
2321 NAME@3610..36132318 DESTRUCT_FULL@3635..3639
2322 IDENT@3610..3613 "str"2319 NAME@3635..3639
2323 R_PAREN@3613..3614 ")"2320 IDENT@3635..3639 "str_"
2324 SEMI@3614..3615 ";"2321 R_PAREN@3639..3640 ")"
2325 WHITESPACE@3615..3620 "\n "2322 COLONCOLON@3640..3642 "::"
2326 EXPR_ASSERT@3620..36942323 WHITESPACE@3642..3647 "\n "
2327 ASSERTION@3620..36702324 EXPR_LOCAL@3647..3835
2328 ASSERT_KW@3620..3626 "assert"2325 LOCAL_KW@3647..3652 "local"
2329 WHITESPACE@3626..3627 " "2326 WHITESPACE@3652..3653 " "
2330 LHS_EXPR@3627..36462327 BIND_DESTRUCT@3653..3677
2331 EXPR_BINARY@3627..36462328 DESTRUCT_FULL@3653..3656
2332 LHS_EXPR@3627..36422329 NAME@3653..3656
2333 EXPR_APPLY@3627..36422330 IDENT@3653..3656 "str"
2334 EXPR_INDEX@3627..36372331 WHITESPACE@3656..3657 " "
2335 EXPR_VAR@3627..36302332 ASSIGN@3657..3658 "="
2336 NAME@3627..36302333 WHITESPACE@3658..3659 " "
2337 IDENT@3627..3630 "std"2334 EXPR_APPLY@3659..3677
2338 DOT@3630..3631 "."2335 EXPR_INDEX@3659..3671
2339 NAME@3631..36372336 EXPR_VAR@3659..3662
2340 IDENT@3631..3637 "length"2337 NAME@3659..3662
2341 ARGS_DESC@3637..36422338 IDENT@3659..3662 "std"
2342 L_PAREN@3637..3638 "("2339 DOT@3662..3663 "."
2343 ARG@3638..36412340 NAME@3663..3671
2344 EXPR_VAR@3638..36412341 IDENT@3663..3671 "toString"
2345 NAME@3638..36412342 ARGS_DESC@3671..3677
2346 IDENT@3638..3641 "str"2343 L_PAREN@3671..3672 "("
2347 R_PAREN@3641..3642 ")"2344 ARG@3672..3676
2348 WHITESPACE@3642..3643 " "2345 EXPR_VAR@3672..3676
2349 GT@3643..3644 ">"2346 NAME@3672..3676
2350 WHITESPACE@3644..3645 " "2347 IDENT@3672..3676 "str_"
2351 EXPR_NUMBER@3645..36462348 R_PAREN@3676..3677 ")"
2352 FLOAT@3645..3646 "0"2349 SEMI@3677..3678 ";"
2353 WHITESPACE@3646..3647 " "2350 WHITESPACE@3678..3683 "\n "
2354 COLON@3647..3648 ":"2351 EXPR_LOCAL@3683..3835
2355 WHITESPACE@3648..3649 " "2352 LOCAL_KW@3683..3688 "local"
2356 EXPR_STRING@3649..36702353 WHITESPACE@3688..3689 " "
2357 STRING_SINGLE@3649..3670 "'Not hexadecimal: \"\"'"2354 BIND_FUNCTION@3689..3764
2358 SEMI@3670..3671 ";"2355 NAME@3689..3694
2359 WHITESPACE@3671..3676 "\n "2356 IDENT@3689..3694 "trans"
2360 EXPR_APPLY@3676..36942357 PARAMS_DESC@3694..3698
2361 EXPR_VAR@3676..36852358 L_PAREN@3694..3695 "("
2362 NAME@3676..36852359 PARAM@3695..3697
2363 IDENT@3676..3685 "parse_nat"2360 DESTRUCT_FULL@3695..3697
2364 ARGS_DESC@3685..36942361 NAME@3695..3697
2365 L_PAREN@3685..3686 "("2362 IDENT@3695..3697 "ch"
2366 ARG@3686..36892363 R_PAREN@3697..3698 ")"
2367 EXPR_VAR@3686..36892364 WHITESPACE@3698..3699 " "
2368 NAME@3686..36892365 ASSIGN@3699..3700 "="
2369 IDENT@3686..3689 "str"2366 WHITESPACE@3700..3707 "\n "
2370 COMMA@3689..3690 ","2367 EXPR_IF_THEN_ELSE@3707..3764
2371 WHITESPACE@3690..3691 " "2368 IF_KW@3707..3709 "if"
2372 ARG@3691..36932369 WHITESPACE@3709..3710 " "
2373 EXPR_NUMBER@3691..36932370 EXPR_BINARY@3710..3719
2374 FLOAT@3691..3693 "16"2371 LHS_EXPR@3710..3712
2375 R_PAREN@3693..3694 ")"2372 EXPR_VAR@3710..3712
2376 COMMA@3694..3695 ","2373 NAME@3710..3712
2377 WHITESPACE@3695..3699 "\n\n "2374 IDENT@3710..3712 "ch"
2378 MEMBER_FIELD@3699..37412375 WHITESPACE@3712..3713 " "
2379 FIELD_METHOD@3699..37412376 EQ@3713..3715 "=="
2380 FIELD_NAME_FIXED@3699..37042377 WHITESPACE@3715..3716 " "
2381 NAME@3699..37042378 EXPR_STRING@3716..3719
2382 IDENT@3699..3704 "split"2379 STRING_DOUBLE@3716..3719 "\"'\""
2383 PARAMS_DESC@3704..37122380 WHITESPACE@3719..3720 " "
2384 L_PAREN@3704..3705 "("2381 THEN_KW@3720..3724 "then"
2385 PARAM@3705..37082382 WHITESPACE@3724..3733 "\n "
2386 DESTRUCT_FULL@3705..37082383 TRUE_EXPR@3733..3742
2387 NAME@3705..37082384 EXPR_STRING@3733..3742
2388 IDENT@3705..3708 "str"2385 STRING_DOUBLE@3733..3742 "\"'\\\"'\\\"'\""
2389 COMMA@3708..3709 ","2386 WHITESPACE@3742..3749 "\n "
2390 WHITESPACE@3709..3710 " "2387 ELSE_KW@3749..3753 "else"
2391 PARAM@3710..37112388 WHITESPACE@3753..3762 "\n "
2392 DESTRUCT_FULL@3710..37112389 FALSE_EXPR@3762..3764
2393 NAME@3710..37112390 EXPR_VAR@3762..3764
2394 IDENT@3710..3711 "c"2391 NAME@3762..3764
2395 R_PAREN@3711..3712 ")"2392 IDENT@3762..3764 "ch"
2396 COLONCOLON@3712..3714 "::"2393 SEMI@3764..3765 ";"
2397 WHITESPACE@3714..3715 " "2394 WHITESPACE@3765..3770 "\n "
2398 EXPR_APPLY@3715..37412395 EXPR_BINARY@3770..3835
2399 EXPR_INDEX@3715..37292396 LHS_EXPR@3770..3776
2400 EXPR_VAR@3715..37182397 EXPR_STRING@3770..3776
2401 NAME@3715..37182398 STRING_DOUBLE@3770..3776 "\"'%s'\""
2402 IDENT@3715..3718 "std"2399 WHITESPACE@3776..3777 " "
2403 DOT@3718..3719 "."2400 MODULO@3777..3778 "%"
2404 NAME@3719..37292401 WHITESPACE@3778..3779 " "
2405 IDENT@3719..3729 "splitLimit"2402 EXPR_APPLY@3779..3835
2406 ARGS_DESC@3729..37412403 EXPR_INDEX@3779..3787
2407 L_PAREN@3729..3730 "("2404 EXPR_VAR@3779..3782
2408 ARG@3730..37332405 NAME@3779..3782
2409 EXPR_VAR@3730..37332406 IDENT@3779..3782 "std"
2410 NAME@3730..37332407 DOT@3782..3783 "."
2411 IDENT@3730..3733 "str"2408 NAME@3783..3787
2412 COMMA@3733..3734 ","2409 IDENT@3783..3787 "join"
2413 WHITESPACE@3734..3735 " "2410 ARGS_DESC@3787..3835
2414 ARG@3735..37362411 L_PAREN@3787..3788 "("
2415 EXPR_VAR@3735..37362412 ARG@3788..3790
2416 NAME@3735..37362413 EXPR_STRING@3788..3790
2417 IDENT@3735..3736 "c"2414 STRING_SINGLE@3788..3790 "''"
2418 COMMA@3736..3737 ","2415 COMMA@3790..3791 ","
2419 WHITESPACE@3737..3738 " "2416 WHITESPACE@3791..3792 " "
2420 ARG@3738..37402417 ARG@3792..3834
2421 EXPR_UNARY@3738..37402418 EXPR_ARRAY_COMP@3792..3834
2422 MINUS@3738..3739 "-"2419 L_BRACK@3792..3793 "["
2423 EXPR_NUMBER@3739..37402420 EXPR_APPLY@3793..3802
2424 FLOAT@3739..3740 "1"2421 EXPR_VAR@3793..3798
2425 R_PAREN@3740..3741 ")"2422 NAME@3793..3798
2426 COMMA@3741..3742 ","2423 IDENT@3793..3798 "trans"
2427 WHITESPACE@3742..3746 "\n\n "2424 ARGS_DESC@3798..3802
2428 MEMBER_FIELD@3746..37812425 L_PAREN@3798..3799 "("
2429 FIELD_NORMAL@3746..37812426 ARG@3799..3801
2430 FIELD_NAME_FIXED@3746..37562427 EXPR_VAR@3799..3801
2431 NAME@3746..37562428 NAME@3799..3801
2432 IDENT@3746..3756 "splitLimit"2429 IDENT@3799..3801 "ch"
2433 COLONCOLON@3756..3758 "::"2430 R_PAREN@3801..3802 ")"
2434 WHITESPACE@3758..3759 " "2431 WHITESPACE@3802..3803 " "
2435 EXPR_INTRINSIC@3759..37812432 FOR_SPEC@3803..3833
2436 INTRINSIC@3759..3769 "$intrinsic"2433 FOR_KW@3803..3806 "for"
2437 L_PAREN@3769..3770 "("2434 WHITESPACE@3806..3807 " "
2438 NAME@3770..37802435 NAME@3807..3809
2439 IDENT@3770..3780 "splitLimit"2436 IDENT@3807..3809 "ch"
2440 R_PAREN@3780..3781 ")"2437 WHITESPACE@3809..3810 " "
2441 COMMA@3781..3782 ","2438 IN_KW@3810..3812 "in"
2442 WHITESPACE@3782..3786 "\n\n "2439 WHITESPACE@3812..3813 " "
2443 MEMBER_FIELD@3786..38212440 EXPR_APPLY@3813..3833
2444 FIELD_NORMAL@3786..38212441 EXPR_INDEX@3813..3828
2445 FIELD_NAME_FIXED@3786..37962442 EXPR_VAR@3813..3816
2446 NAME@3786..37962443 NAME@3813..3816
2447 IDENT@3786..3796 "strReplace"2444 IDENT@3813..3816 "std"
2448 COLONCOLON@3796..3798 "::"2445 DOT@3816..3817 "."
2449 WHITESPACE@3798..3799 " "2446 NAME@3817..3828
2450 EXPR_INTRINSIC@3799..38212447 IDENT@3817..3828 "stringChars"
2451 INTRINSIC@3799..3809 "$intrinsic"2448 ARGS_DESC@3828..3833
2452 L_PAREN@3809..3810 "("2449 L_PAREN@3828..3829 "("
2453 NAME@3810..38202450 ARG@3829..3832
2454 IDENT@3810..3820 "strReplace"2451 EXPR_VAR@3829..3832
2455 R_PAREN@3820..3821 ")"2452 NAME@3829..3832
2456 COMMA@3821..3822 ","2453 IDENT@3829..3832 "str"
2457 WHITESPACE@3822..3826 "\n\n "2454 R_PAREN@3832..3833 ")"
2458 MEMBER_FIELD@3826..38612455 R_BRACK@3833..3834 "]"
2459 FIELD_NORMAL@3826..38612456 R_PAREN@3834..3835 ")"
2460 FIELD_NAME_FIXED@3826..38362457 COMMA@3835..3836 ","
2461 NAME@3826..38362458 WHITESPACE@3836..3840 "\n\n "
2462 IDENT@3826..3836 "asciiUpper"2459 MEMBER_FIELD@3840..4054
2463 COLONCOLON@3836..3838 "::"2460 FIELD_METHOD@3840..4054
2464 WHITESPACE@3838..3839 " "2461 FIELD_NAME_FIXED@3840..3859
2465 EXPR_INTRINSIC@3839..38612462 NAME@3840..3859
2466 INTRINSIC@3839..3849 "$intrinsic"2463 IDENT@3840..3859 "escapeStringDollars"
2467 L_PAREN@3849..3850 "("2464 PARAMS_DESC@3859..3865
2468 NAME@3850..38602465 L_PAREN@3859..3860 "("
2469 IDENT@3850..3860 "asciiUpper"2466 PARAM@3860..3864
2470 R_PAREN@3860..3861 ")"2467 DESTRUCT_FULL@3860..3864
2471 COMMA@3861..3862 ","2468 NAME@3860..3864
2472 WHITESPACE@3862..3866 "\n\n "2469 IDENT@3860..3864 "str_"
2473 MEMBER_FIELD@3866..39012470 R_PAREN@3864..3865 ")"
2474 FIELD_NORMAL@3866..39012471 COLONCOLON@3865..3867 "::"
2475 FIELD_NAME_FIXED@3866..38762472 WHITESPACE@3867..3872 "\n "
2476 NAME@3866..38762473 EXPR_LOCAL@3872..4054
2477 IDENT@3866..3876 "asciiLower"2474 LOCAL_KW@3872..3877 "local"
2478 COLONCOLON@3876..3878 "::"2475 WHITESPACE@3877..3878 " "
2479 WHITESPACE@3878..3879 " "2476 BIND_DESTRUCT@3878..3902
2480 EXPR_INTRINSIC@3879..39012477 DESTRUCT_FULL@3878..3881
2481 INTRINSIC@3879..3889 "$intrinsic"2478 NAME@3878..3881
2482 L_PAREN@3889..3890 "("2479 IDENT@3878..3881 "str"
2483 NAME@3890..39002480 WHITESPACE@3881..3882 " "
2484 IDENT@3890..3900 "asciiLower"2481 ASSIGN@3882..3883 "="
2485 R_PAREN@3900..3901 ")"2482 WHITESPACE@3883..3884 " "
2486 COMMA@3901..3902 ","2483 EXPR_APPLY@3884..3902
2487 WHITESPACE@3902..3906 "\n\n "2484 EXPR_INDEX@3884..3896
2488 MEMBER_FIELD@3906..39312485 EXPR_VAR@3884..3887
2489 FIELD_NORMAL@3906..39312486 NAME@3884..3887
2490 FIELD_NAME_FIXED@3906..39112487 IDENT@3884..3887 "std"
2491 NAME@3906..39112488 DOT@3887..3888 "."
2492 IDENT@3906..3911 "range"2489 NAME@3888..3896
2493 COLONCOLON@3911..3913 "::"2490 IDENT@3888..3896 "toString"
2494 WHITESPACE@3913..3914 " "2491 ARGS_DESC@3896..3902
2495 EXPR_INTRINSIC@3914..39312492 L_PAREN@3896..3897 "("
2496 INTRINSIC@3914..3924 "$intrinsic"2493 ARG@3897..3901
2497 L_PAREN@3924..3925 "("2494 EXPR_VAR@3897..3901
2498 NAME@3925..39302495 NAME@3897..3901
2499 IDENT@3925..3930 "range"2496 IDENT@3897..3901 "str_"
2500 R_PAREN@3930..3931 ")"2497 R_PAREN@3901..3902 ")"
2501 COMMA@3931..3932 ","2498 SEMI@3902..3903 ";"
2502 WHITESPACE@3932..3936 "\n\n "2499 WHITESPACE@3903..3908 "\n "
2503 MEMBER_FIELD@3936..41882500 EXPR_LOCAL@3908..4054
2504 FIELD_METHOD@3936..41882501 LOCAL_KW@3908..3913 "local"
2505 FIELD_NAME_FIXED@3936..39422502 WHITESPACE@3913..3914 " "
2506 NAME@3936..39422503 BIND_FUNCTION@3914..3984
2507 IDENT@3936..3942 "repeat"2504 NAME@3914..3919
2508 PARAMS_DESC@3942..39552505 IDENT@3914..3919 "trans"
2509 L_PAREN@3942..3943 "("2506 PARAMS_DESC@3919..3923
2510 PARAM@3943..39472507 L_PAREN@3919..3920 "("
2511 DESTRUCT_FULL@3943..39472508 PARAM@3920..3922
2512 NAME@3943..39472509 DESTRUCT_FULL@3920..3922
2513 IDENT@3943..3947 "what"2510 NAME@3920..3922
2514 COMMA@3947..3948 ","2511 IDENT@3920..3922 "ch"
2515 WHITESPACE@3948..3949 " "2512 R_PAREN@3922..3923 ")"
2516 PARAM@3949..39542513 WHITESPACE@3923..3924 " "
2517 DESTRUCT_FULL@3949..39542514 ASSIGN@3924..3925 "="
2518 NAME@3949..39542515 WHITESPACE@3925..3932 "\n "
2519 IDENT@3949..3954 "count"2516 EXPR_IF_THEN_ELSE@3932..3984
2520 R_PAREN@3954..3955 ")"2517 IF_KW@3932..3934 "if"
2521 COLONCOLON@3955..3957 "::"2518 WHITESPACE@3934..3935 " "
2522 WHITESPACE@3957..3962 "\n "2519 EXPR_BINARY@3935..3944
2523 EXPR_LOCAL@3962..41882520 LHS_EXPR@3935..3937
2524 LOCAL_KW@3962..3967 "local"2521 EXPR_VAR@3935..3937
2525 WHITESPACE@3967..3968 " "2522 NAME@3935..3937
2526 BIND_DESTRUCT@3968..41262523 IDENT@3935..3937 "ch"
2527 DESTRUCT_FULL@3968..39742524 WHITESPACE@3937..3938 " "
2528 NAME@3968..39742525 EQ@3938..3940 "=="
2529 IDENT@3968..3974 "joiner"2526 WHITESPACE@3940..3941 " "
2530 WHITESPACE@3974..3975 " "2527 EXPR_STRING@3941..3944
2531 ASSIGN@3975..3976 "="2528 STRING_SINGLE@3941..3944 "'$'"
2532 WHITESPACE@3976..3983 "\n "2529 WHITESPACE@3944..3945 " "
2533 EXPR_IF_THEN_ELSE@3983..41262530 THEN_KW@3945..3949 "then"
2534 IF_KW@3983..3985 "if"2531 WHITESPACE@3949..3958 "\n "
2535 WHITESPACE@3985..3986 " "2532 TRUE_EXPR@3958..3962
2536 EXPR_APPLY@3986..40042533 EXPR_STRING@3958..3962
2537 EXPR_INDEX@3986..39982534 STRING_SINGLE@3958..3962 "'$$'"
2538 EXPR_VAR@3986..39892535 WHITESPACE@3962..3969 "\n "
2539 NAME@3986..39892536 ELSE_KW@3969..3973 "else"
2540 IDENT@3986..3989 "std"2537 WHITESPACE@3973..3982 "\n "
2541 DOT@3989..3990 "."2538 FALSE_EXPR@3982..3984
2542 NAME@3990..39982539 EXPR_VAR@3982..3984
2543 IDENT@3990..3998 "isString"2540 NAME@3982..3984
2544 ARGS_DESC@3998..40042541 IDENT@3982..3984 "ch"
2545 L_PAREN@3998..3999 "("2542 SEMI@3984..3985 ";"
2546 ARG@3999..40032543 WHITESPACE@3985..3990 "\n "
2547 EXPR_VAR@3999..40032544 EXPR_APPLY@3990..4054
2548 NAME@3999..40032545 EXPR_INDEX@3990..3999
2549 IDENT@3999..4003 "what"2546 EXPR_VAR@3990..3993
2550 R_PAREN@4003..4004 ")"2547 NAME@3990..3993
2551 WHITESPACE@4004..4005 " "2548 IDENT@3990..3993 "std"
2552 THEN_KW@4005..4009 "then"2549 DOT@3993..3994 "."
2553 WHITESPACE@4009..4010 " "2550 NAME@3994..3999
2554 TRUE_EXPR@4010..40122551 IDENT@3994..3999 "foldl"
2555 EXPR_STRING@4010..40122552 ARGS_DESC@3999..4054
2556 STRING_SINGLE@4010..4012 "''"2553 L_PAREN@3999..4000 "("
2557 WHITESPACE@4012..4019 "\n "2554 ARG@4000..4027
2558 ELSE_KW@4019..4023 "else"2555 EXPR_FUNCTION@4000..4027
2559 WHITESPACE@4023..4024 " "2556 FUNCTION_KW@4000..4008 "function"
2560 FALSE_EXPR@4024..41262557 PARAMS_DESC@4008..4014
2561 EXPR_IF_THEN_ELSE@4024..41262558 L_PAREN@4008..4009 "("
2562 IF_KW@4024..4026 "if"2559 PARAM@4009..4010
2563 WHITESPACE@4026..4027 " "2560 DESTRUCT_FULL@4009..4010
2564 EXPR_APPLY@4027..40442561 NAME@4009..4010
2565 EXPR_INDEX@4027..40382562 IDENT@4009..4010 "a"
2566 EXPR_VAR@4027..40302563 COMMA@4010..4011 ","
2567 NAME@4027..40302564 WHITESPACE@4011..4012 " "
2568 IDENT@4027..4030 "std"2565 PARAM@4012..4013
2569 DOT@4030..4031 "."2566 DESTRUCT_FULL@4012..4013
2570 NAME@4031..40382567 NAME@4012..4013
2571 IDENT@4031..4038 "isArray"2568 IDENT@4012..4013 "b"
2572 ARGS_DESC@4038..40442569 R_PAREN@4013..4014 ")"
2573 L_PAREN@4038..4039 "("2570 WHITESPACE@4014..4015 " "
2574 ARG@4039..40432571 EXPR_BINARY@4015..4027
2575 EXPR_VAR@4039..40432572 LHS_EXPR@4015..4016
2576 NAME@4039..40432573 EXPR_VAR@4015..4016
2577 IDENT@4039..4043 "what"2574 NAME@4015..4016
2578 R_PAREN@4043..4044 ")"2575 IDENT@4015..4016 "a"
2579 WHITESPACE@4044..4045 " "2576 WHITESPACE@4016..4017 " "
2580 THEN_KW@4045..4049 "then"2577 PLUS@4017..4018 "+"
2581 WHITESPACE@4049..4050 " "2578 WHITESPACE@4018..4019 " "
2582 TRUE_EXPR@4050..40522579 EXPR_APPLY@4019..4027
2583 EXPR_ARRAY@4050..40522580 EXPR_VAR@4019..4024
2584 L_BRACK@4050..4051 "["2581 NAME@4019..4024
2585 R_BRACK@4051..4052 "]"2582 IDENT@4019..4024 "trans"
2586 WHITESPACE@4052..4059 "\n "2583 ARGS_DESC@4024..4027
2587 ELSE_KW@4059..4063 "else"2584 L_PAREN@4024..4025 "("
2588 WHITESPACE@4063..4064 " "2585 ARG@4025..4026
2589 FALSE_EXPR@4064..41262586 EXPR_VAR@4025..4026
2590 EXPR_ERROR@4064..41262587 NAME@4025..4026
2591 ERROR_KW@4064..4069 "error"2588 IDENT@4025..4026 "b"
2592 WHITESPACE@4069..4070 " "2589 R_PAREN@4026..4027 ")"
2593 EXPR_STRING@4070..41262590 COMMA@4027..4028 ","
2594 STRING_SINGLE@4070..4126 "'std.repeat first arg ..."2591 WHITESPACE@4028..4029 " "
2595 SEMI@4126..4127 ";"2592 ARG@4029..4049
2596 WHITESPACE@4127..4132 "\n "2593 EXPR_APPLY@4029..4049
2597 EXPR_APPLY@4132..41882594 EXPR_INDEX@4029..4044
2598 EXPR_INDEX@4132..41402595 EXPR_VAR@4029..4032
2599 EXPR_VAR@4132..41352596 NAME@4029..4032
2600 NAME@4132..41352597 IDENT@4029..4032 "std"
2601 IDENT@4132..4135 "std"2598 DOT@4032..4033 "."
2602 DOT@4135..4136 "."2599 NAME@4033..4044
2603 NAME@4136..41402600 IDENT@4033..4044 "stringChars"
2604 IDENT@4136..4140 "join"2601 ARGS_DESC@4044..4049
2605 ARGS_DESC@4140..41882602 L_PAREN@4044..4045 "("
2606 L_PAREN@4140..4141 "("2603 ARG@4045..4048
2607 ARG@4141..41472604 EXPR_VAR@4045..4048
2608 EXPR_VAR@4141..41472605 NAME@4045..4048
2609 NAME@4141..41472606 IDENT@4045..4048 "str"
2610 IDENT@4141..4147 "joiner"2607 R_PAREN@4048..4049 ")"
2611 COMMA@4147..4148 ","2608 COMMA@4049..4050 ","
2612 WHITESPACE@4148..4149 " "2609 WHITESPACE@4050..4051 " "
2613 ARG@4149..41872610 ARG@4051..4053
2614 EXPR_APPLY@4149..41872611 EXPR_STRING@4051..4053
2615 EXPR_INDEX@4149..41622612 STRING_SINGLE@4051..4053 "''"
2616 EXPR_VAR@4149..41522613 R_PAREN@4053..4054 ")"
2617 NAME@4149..41522614 COMMA@4054..4055 ","
2618 IDENT@4149..4152 "std"2615 WHITESPACE@4055..4059 "\n\n "
2619 DOT@4152..4153 "."2616 MEMBER_BIND_STMT@4059..4174
2620 NAME@4153..41622617 OBJ_LOCAL@4059..4174
2621 IDENT@4153..4162 "makeArray"2618 LOCAL_KW@4059..4064 "local"
2622 ARGS_DESC@4162..41872619 WHITESPACE@4064..4065 " "
2623 L_PAREN@4162..4163 "("2620 BIND_DESTRUCT@4065..4174
2624 ARG@4163..41682621 DESTRUCT_FULL@4065..4076
2625 EXPR_VAR@4163..41682622 NAME@4065..4076
2626 NAME@4163..41682623 IDENT@4065..4076 "xml_escapes"
2627 IDENT@4163..4168 "count"2624 WHITESPACE@4076..4077 " "
2628 COMMA@4168..4169 ","2625 ASSIGN@4077..4078 "="
2629 WHITESPACE@4169..4170 " "2626 WHITESPACE@4078..4079 " "
2630 ARG@4170..41862627 EXPR_OBJECT@4079..4174
2631 EXPR_FUNCTION@4170..41862628 OBJ_BODY_MEMBER_LIST@4079..4174
2632 FUNCTION_KW@4170..4178 "function"2629 L_BRACE@4079..4080 "{"
2633 PARAMS_DESC@4178..41812630 WHITESPACE@4080..4085 "\n "
2634 L_PAREN@4178..4179 "("2631 MEMBER_FIELD@4085..4096
2635 PARAM@4179..41802632 FIELD_NORMAL@4085..4096
2636 DESTRUCT_FULL@4179..41802633 FIELD_NAME_FIXED@4085..4088
2637 NAME@4179..41802634 STRING_SINGLE@4085..4088 "'<'"
2638 IDENT@4179..4180 "i"2635 COLON@4088..4089 ":"
2639 R_PAREN@4180..4181 ")"2636 WHITESPACE@4089..4090 " "
2640 WHITESPACE@4181..4182 " "2637 EXPR_STRING@4090..4096
2641 EXPR_VAR@4182..41862638 STRING_SINGLE@4090..4096 "'&lt;'"
2642 NAME@4182..41862639 COMMA@4096..4097 ","
2643 IDENT@4182..4186 "what"2640 WHITESPACE@4097..4102 "\n "
2644 R_PAREN@4186..4187 ")"2641 MEMBER_FIELD@4102..4113
2645 R_PAREN@4187..4188 ")"2642 FIELD_NORMAL@4102..4113
2646 COMMA@4188..4189 ","2643 FIELD_NAME_FIXED@4102..4105
2647 WHITESPACE@4189..4193 "\n\n "2644 STRING_SINGLE@4102..4105 "'>'"
2648 MEMBER_FIELD@4193..42182645 COLON@4105..4106 ":"
2649 FIELD_NORMAL@4193..42182646 WHITESPACE@4106..4107 " "
2650 FIELD_NAME_FIXED@4193..41982647 EXPR_STRING@4107..4113
2651 NAME@4193..41982648 STRING_SINGLE@4107..4113 "'&gt;'"
2652 IDENT@4193..4198 "slice"2649 COMMA@4113..4114 ","
2653 COLONCOLON@4198..4200 "::"2650 WHITESPACE@4114..4119 "\n "
2654 WHITESPACE@4200..4201 " "2651 MEMBER_FIELD@4119..4131
2655 EXPR_INTRINSIC@4201..42182652 FIELD_NORMAL@4119..4131
2656 INTRINSIC@4201..4211 "$intrinsic"2653 FIELD_NAME_FIXED@4119..4122
2657 L_PAREN@4211..4212 "("2654 STRING_SINGLE@4119..4122 "'&'"
2658 NAME@4212..42172655 COLON@4122..4123 ":"
2659 IDENT@4212..4217 "slice"2656 WHITESPACE@4123..4124 " "
2660 R_PAREN@4217..4218 ")"2657 EXPR_STRING@4124..4131
2661 COMMA@4218..4219 ","2658 STRING_SINGLE@4124..4131 "'&amp;'"
2662 WHITESPACE@4219..4223 "\n\n "2659 COMMA@4131..4132 ","
2663 MEMBER_FIELD@4223..42502660 WHITESPACE@4132..4137 "\n "
2664 FIELD_NORMAL@4223..42502661 MEMBER_FIELD@4137..4150
2665 FIELD_NAME_FIXED@4223..42292662 FIELD_NORMAL@4137..4150
2666 NAME@4223..42292663 FIELD_NAME_FIXED@4137..4140
2667 IDENT@4223..4229 "member"2664 STRING_SINGLE@4137..4140 "'\"'"
2668 COLONCOLON@4229..4231 "::"2665 COLON@4140..4141 ":"
2669 WHITESPACE@4231..4232 " "2666 WHITESPACE@4141..4142 " "
2670 EXPR_INTRINSIC@4232..42502667 EXPR_STRING@4142..4150
2671 INTRINSIC@4232..4242 "$intrinsic"2668 STRING_SINGLE@4142..4150 "'&quot;'"
2672 L_PAREN@4242..4243 "("2669 COMMA@4150..4151 ","
2673 NAME@4243..42492670 WHITESPACE@4151..4156 "\n "
2674 IDENT@4243..4249 "member"2671 MEMBER_FIELD@4156..4169
2675 R_PAREN@4249..4250 ")"2672 FIELD_NORMAL@4156..4169
2676 COMMA@4250..4251 ","2673 FIELD_NAME_FIXED@4156..4159
2677 WHITESPACE@4251..4255 "\n\n "2674 STRING_DOUBLE@4156..4159 "\"'\""
2678 MEMBER_FIELD@4255..42802675 COLON@4159..4160 ":"
2679 FIELD_NORMAL@4255..42802676 WHITESPACE@4160..4161 " "
2680 FIELD_NAME_FIXED@4255..42602677 EXPR_STRING@4161..4169
2681 NAME@4255..42602678 STRING_SINGLE@4161..4169 "'&apos;'"
2682 IDENT@4255..4260 "count"2679 COMMA@4169..4170 ","
2683 COLONCOLON@4260..4262 "::"2680 WHITESPACE@4170..4173 "\n "
2684 WHITESPACE@4262..4263 " "2681 R_BRACE@4173..4174 "}"
2685 EXPR_INTRINSIC@4263..42802682 COMMA@4174..4175 ","
2686 INTRINSIC@4263..4273 "$intrinsic"2683 WHITESPACE@4175..4179 "\n\n "
2687 L_PAREN@4273..4274 "("2684 MEMBER_FIELD@4179..4318
2688 NAME@4274..42792685 FIELD_METHOD@4179..4318
2689 IDENT@4274..4279 "count"2686 FIELD_NAME_FIXED@4179..4194
2690 R_PAREN@4279..4280 ")"2687 NAME@4179..4194
2691 COMMA@4280..4281 ","2688 IDENT@4179..4194 "escapeStringXML"
2692 WHITESPACE@4281..4285 "\n\n "2689 PARAMS_DESC@4194..4200
2693 MEMBER_FIELD@4285..43062690 L_PAREN@4194..4195 "("
2694 FIELD_NORMAL@4285..43062691 PARAM@4195..4199
2695 FIELD_NAME_FIXED@4285..42882692 DESTRUCT_FULL@4195..4199
2696 NAME@4285..42882693 NAME@4195..4199
2697 IDENT@4285..4288 "mod"2694 IDENT@4195..4199 "str_"
2698 COLONCOLON@4288..4290 "::"2695 R_PAREN@4199..4200 ")"
2699 WHITESPACE@4290..4291 " "2696 COLONCOLON@4200..4202 "::"
2700 EXPR_INTRINSIC@4291..43062697 WHITESPACE@4202..4207 "\n "
2701 INTRINSIC@4291..4301 "$intrinsic"2698 EXPR_LOCAL@4207..4318
2702 L_PAREN@4301..4302 "("2699 LOCAL_KW@4207..4212 "local"
2703 NAME@4302..43052700 WHITESPACE@4212..4213 " "
2704 IDENT@4302..4305 "mod"2701 BIND_DESTRUCT@4213..4237
2705 R_PAREN@4305..4306 ")"2702 DESTRUCT_FULL@4213..4216
2706 COMMA@4306..4307 ","2703 NAME@4213..4216
2707 WHITESPACE@4307..4311 "\n\n "2704 IDENT@4213..4216 "str"
2708 MEMBER_FIELD@4311..43322705 WHITESPACE@4216..4217 " "
2709 FIELD_NORMAL@4311..43322706 ASSIGN@4217..4218 "="
2710 FIELD_NAME_FIXED@4311..43142707 WHITESPACE@4218..4219 " "
2711 NAME@4311..43142708 EXPR_APPLY@4219..4237
2712 IDENT@4311..4314 "map"2709 EXPR_INDEX@4219..4231
2713 COLONCOLON@4314..4316 "::"2710 EXPR_VAR@4219..4222
2714 WHITESPACE@4316..4317 " "2711 NAME@4219..4222
2715 EXPR_INTRINSIC@4317..43322712 IDENT@4219..4222 "std"
2716 INTRINSIC@4317..4327 "$intrinsic"2713 DOT@4222..4223 "."
2717 L_PAREN@4327..4328 "("2714 NAME@4223..4231
2718 NAME@4328..43312715 IDENT@4223..4231 "toString"
2719 IDENT@4328..4331 "map"2716 ARGS_DESC@4231..4237
2720 R_PAREN@4331..4332 ")"2717 L_PAREN@4231..4232 "("
2721 COMMA@4332..4333 ","2718 ARG@4232..4236
2722 WHITESPACE@4333..4337 "\n\n "2719 EXPR_VAR@4232..4236
2723 MEMBER_FIELD@4337..46952720 NAME@4232..4236
2724 FIELD_METHOD@4337..46952721 IDENT@4232..4236 "str_"
2725 FIELD_NAME_FIXED@4337..43492722 R_PAREN@4236..4237 ")"
2726 NAME@4337..43492723 SEMI@4237..4238 ";"
2727 IDENT@4337..4349 "mapWithIndex"2724 WHITESPACE@4238..4243 "\n "
2728 PARAMS_DESC@4349..43602725 EXPR_APPLY@4243..4318
2729 L_PAREN@4349..4350 "("2726 EXPR_INDEX@4243..4251
2730 PARAM@4350..43542727 EXPR_VAR@4243..4246
2731 DESTRUCT_FULL@4350..43542728 NAME@4243..4246
2732 NAME@4350..43542729 IDENT@4243..4246 "std"
2733 IDENT@4350..4354 "func"2730 DOT@4246..4247 "."
2734 COMMA@4354..4355 ","2731 NAME@4247..4251
2735 WHITESPACE@4355..4356 " "2732 IDENT@4247..4251 "join"
2736 PARAM@4356..43592733 ARGS_DESC@4251..4318
2737 DESTRUCT_FULL@4356..43592734 L_PAREN@4251..4252 "("
2738 NAME@4356..43592735 ARG@4252..4254
2739 IDENT@4356..4359 "arr"2736 EXPR_STRING@4252..4254
2740 R_PAREN@4359..4360 ")"2737 STRING_SINGLE@4252..4254 "''"
2741 COLONCOLON@4360..4362 "::"2738 COMMA@4254..4255 ","
2742 WHITESPACE@4362..4367 "\n "2739 WHITESPACE@4255..4256 " "
2743 EXPR_IF_THEN_ELSE@4367..46952740 ARG@4256..4317
2744 IF_KW@4367..4369 "if"2741 EXPR_ARRAY_COMP@4256..4317
2745 WHITESPACE@4369..4370 " "2742 L_BRACK@4256..4257 "["
2746 EXPR_UNARY@4370..43912743 EXPR_APPLY@4257..4285
2747 NOT@4370..4371 "!"2744 EXPR_INDEX@4257..4264
2748 EXPR_APPLY@4371..43912745 EXPR_VAR@4257..4260
2749 EXPR_INDEX@4371..43852746 NAME@4257..4260
2750 EXPR_VAR@4371..43742747 IDENT@4257..4260 "std"
2751 NAME@4371..43742748 DOT@4260..4261 "."
2752 IDENT@4371..4374 "std"2749 NAME@4261..4264
2753 DOT@4374..4375 "."2750 IDENT@4261..4264 "get"
2754 NAME@4375..43852751 ARGS_DESC@4264..4285
2755 IDENT@4375..4385 "isFunction"2752 L_PAREN@4264..4265 "("
2756 ARGS_DESC@4385..43912753 ARG@4265..4276
2757 L_PAREN@4385..4386 "("2754 EXPR_VAR@4265..4276
2758 ARG@4386..43902755 NAME@4265..4276
2759 EXPR_VAR@4386..43902756 IDENT@4265..4276 "xml_escapes"
2760 NAME@4386..43902757 COMMA@4276..4277 ","
2761 IDENT@4386..4390 "func"2758 WHITESPACE@4277..4278 " "
2762 R_PAREN@4390..4391 ")"2759 ARG@4278..4280
2763 WHITESPACE@4391..4392 " "2760 EXPR_VAR@4278..4280
2764 THEN_KW@4392..4396 "then"2761 NAME@4278..4280
2765 WHITESPACE@4396..4403 "\n "2762 IDENT@4278..4280 "ch"
2766 TRUE_EXPR@4403..44812763 COMMA@4280..4281 ","
2767 EXPR_ERROR@4403..44812764 WHITESPACE@4281..4282 " "
2768 ERROR_KW@4403..4408 "error"2765 ARG@4282..4284
2769 WHITESPACE@4408..4409 " "2766 EXPR_VAR@4282..4284
2770 EXPR_PARENED@4409..44812767 NAME@4282..4284
2771 L_PAREN@4409..4410 "("2768 IDENT@4282..4284 "ch"
2772 EXPR_BINARY@4410..44802769 R_PAREN@4284..4285 ")"
2773 LHS_EXPR@4410..44632770 WHITESPACE@4285..4286 " "
2774 EXPR_STRING@4410..44632771 FOR_SPEC@4286..4316
2775 STRING_SINGLE@4410..4463 "'std.mapWithIndex fir ..."2772 FOR_KW@4286..4289 "for"
2776 WHITESPACE@4463..4464 " "2773 WHITESPACE@4289..4290 " "
2777 PLUS@4464..4465 "+"2774 NAME@4290..4292
2778 WHITESPACE@4465..4466 " "2775 IDENT@4290..4292 "ch"
2779 EXPR_APPLY@4466..44802776 WHITESPACE@4292..4293 " "
2780 EXPR_INDEX@4466..44742777 IN_KW@4293..4295 "in"
2781 EXPR_VAR@4466..44692778 WHITESPACE@4295..4296 " "
2782 NAME@4466..44692779 EXPR_APPLY@4296..4316
2783 IDENT@4466..4469 "std"2780 EXPR_INDEX@4296..4311
2784 DOT@4469..4470 "."2781 EXPR_VAR@4296..4299
2785 NAME@4470..44742782 NAME@4296..4299
2786 IDENT@4470..4474 "type"2783 IDENT@4296..4299 "std"
2787 ARGS_DESC@4474..44802784 DOT@4299..4300 "."
2788 L_PAREN@4474..4475 "("2785 NAME@4300..4311
2789 ARG@4475..44792786 IDENT@4300..4311 "stringChars"
2790 EXPR_VAR@4475..44792787 ARGS_DESC@4311..4316
2791 NAME@4475..44792788 L_PAREN@4311..4312 "("
2792 IDENT@4475..4479 "func"2789 ARG@4312..4315
2793 R_PAREN@4479..4480 ")"2790 EXPR_VAR@4312..4315
2794 R_PAREN@4480..4481 ")"2791 NAME@4312..4315
2795 WHITESPACE@4481..4486 "\n "2792 IDENT@4312..4315 "str"
2796 ELSE_KW@4486..4490 "else"2793 R_PAREN@4315..4316 ")"
2797 WHITESPACE@4490..4491 " "2794 R_BRACK@4316..4317 "]"
2798 FALSE_EXPR@4491..46952795 R_PAREN@4317..4318 ")"
2799 EXPR_IF_THEN_ELSE@4491..46952796 COMMA@4318..4319 ","
2800 IF_KW@4491..4493 "if"2797 WHITESPACE@4319..4323 "\n\n "
2801 WHITESPACE@4493..4494 " "2798 MEMBER_FIELD@4323..4389
2802 EXPR_BINARY@4494..45332799 FIELD_METHOD@4323..4389
2803 LHS_EXPR@4494..45112800 FIELD_NAME_FIXED@4323..4335
2804 EXPR_UNARY@4494..45112801 NAME@4323..4335
2805 NOT@4494..4495 "!"2802 IDENT@4323..4335 "manifestJson"
2806 EXPR_APPLY@4495..45112803 PARAMS_DESC@4335..4342
2807 EXPR_INDEX@4495..45062804 L_PAREN@4335..4336 "("
2808 EXPR_VAR@4495..44982805 PARAM@4336..4341
2809 NAME@4495..44982806 DESTRUCT_FULL@4336..4341
2810 IDENT@4495..4498 "std"2807 NAME@4336..4341
2811 DOT@4498..4499 "."2808 IDENT@4336..4341 "value"
2812 NAME@4499..45062809 R_PAREN@4341..4342 ")"
2813 IDENT@4499..4506 "isArray"2810 COLONCOLON@4342..4344 "::"
2814 ARGS_DESC@4506..45112811 WHITESPACE@4344..4345 " "
2815 L_PAREN@4506..4507 "("2812 EXPR_APPLY@4345..4389
2816 ARG@4507..45102813 EXPR_INDEX@4345..4363
2817 EXPR_VAR@4507..45102814 EXPR_VAR@4345..4348
2818 NAME@4507..45102815 NAME@4345..4348
2819 IDENT@4507..4510 "arr"2816 IDENT@4345..4348 "std"
2820 R_PAREN@4510..4511 ")"2817 DOT@4348..4349 "."
2821 WHITESPACE@4511..4512 " "2818 NAME@4349..4363
2822 AND@4512..4514 "&&"2819 IDENT@4349..4363 "manifestJsonEx"
2823 WHITESPACE@4514..4515 " "2820 ARGS_DESC@4363..4389
2824 EXPR_UNARY@4515..45332821 L_PAREN@4363..4364 "("
2825 NOT@4515..4516 "!"2822 ARG@4364..4369
2826 EXPR_APPLY@4516..45332823 EXPR_VAR@4364..4369
2827 EXPR_INDEX@4516..45282824 NAME@4364..4369
2828 EXPR_VAR@4516..45192825 IDENT@4364..4369 "value"
2829 NAME@4516..45192826 COMMA@4369..4370 ","
2830 IDENT@4516..4519 "std"2827 WHITESPACE@4370..4371 " "
2831 DOT@4519..4520 "."2828 ARG@4371..4377
2832 NAME@4520..45282829 EXPR_STRING@4371..4377
2833 IDENT@4520..4528 "isString"2830 STRING_SINGLE@4371..4377 "' '"
2834 ARGS_DESC@4528..45332831 R_PAREN@4377..4378 ")"
2835 L_PAREN@4528..4529 "("2832 WHITESPACE@4378..4379 " "
2836 ARG@4529..45322833 TAILSTRICT_KW@4379..4389 "tailstrict"
2837 EXPR_VAR@4529..45322834 COMMA@4389..4390 ","
2838 NAME@4529..45322835 WHITESPACE@4390..4394 "\n\n "
2839 IDENT@4529..4532 "arr"2836 MEMBER_FIELD@4394..4462
2840 R_PAREN@4532..4533 ")"2837 FIELD_METHOD@4394..4462
2841 WHITESPACE@4533..4534 " "2838 FIELD_NAME_FIXED@4394..4414
2842 THEN_KW@4534..4538 "then"2839 NAME@4394..4414
2843 WHITESPACE@4538..4545 "\n "2840 IDENT@4394..4414 "manifestJsonMinified"
2844 TRUE_EXPR@4545..46202841 PARAMS_DESC@4414..4421
2845 EXPR_ERROR@4545..46202842 L_PAREN@4414..4415 "("
2846 ERROR_KW@4545..4550 "error"2843 PARAM@4415..4420
2847 WHITESPACE@4550..4551 " "2844 DESTRUCT_FULL@4415..4420
2848 EXPR_PARENED@4551..46202845 NAME@4415..4420
2849 L_PAREN@4551..4552 "("2846 IDENT@4415..4420 "value"
2850 EXPR_BINARY@4552..46192847 R_PAREN@4420..4421 ")"
2851 LHS_EXPR@4552..46032848 COLONCOLON@4421..4423 "::"
2852 EXPR_STRING@4552..46032849 WHITESPACE@4423..4424 " "
2853 STRING_SINGLE@4552..4603 "'std.mapWithIndex sec ..."2850 EXPR_APPLY@4424..4462
2854 WHITESPACE@4603..4604 " "2851 EXPR_INDEX@4424..4442
2855 PLUS@4604..4605 "+"2852 EXPR_VAR@4424..4427
2856 WHITESPACE@4605..4606 " "2853 NAME@4424..4427
2857 EXPR_APPLY@4606..46192854 IDENT@4424..4427 "std"
2858 EXPR_INDEX@4606..46142855 DOT@4427..4428 "."
2859 EXPR_VAR@4606..46092856 NAME@4428..4442
2860 NAME@4606..46092857 IDENT@4428..4442 "manifestJsonEx"
2861 IDENT@4606..4609 "std"2858 ARGS_DESC@4442..4462
2862 DOT@4609..4610 "."2859 L_PAREN@4442..4443 "("
2863 NAME@4610..46142860 ARG@4443..4448
2864 IDENT@4610..4614 "type"2861 EXPR_VAR@4443..4448
2865 ARGS_DESC@4614..46192862 NAME@4443..4448
2866 L_PAREN@4614..4615 "("2863 IDENT@4443..4448 "value"
2867 ARG@4615..46182864 COMMA@4448..4449 ","
2868 EXPR_VAR@4615..46182865 WHITESPACE@4449..4450 " "
2869 NAME@4615..46182866 ARG@4450..4452
2870 IDENT@4615..4618 "arr"2867 EXPR_STRING@4450..4452
2871 R_PAREN@4618..4619 ")"2868 STRING_SINGLE@4450..4452 "''"
2872 R_PAREN@4619..4620 ")"2869 COMMA@4452..4453 ","
2873 WHITESPACE@4620..4625 "\n "2870 WHITESPACE@4453..4454 " "
2874 ELSE_KW@4625..4629 "else"2871 ARG@4454..4456
2875 WHITESPACE@4629..4636 "\n "2872 EXPR_STRING@4454..4456
2876 FALSE_EXPR@4636..46952873 STRING_SINGLE@4454..4456 "''"
2877 EXPR_APPLY@4636..46952874 COMMA@4456..4457 ","
2878 EXPR_INDEX@4636..46492875 WHITESPACE@4457..4458 " "
2879 EXPR_VAR@4636..46392876 ARG@4458..4461
2880 NAME@4636..46392877 EXPR_STRING@4458..4461
2881 IDENT@4636..4639 "std"2878 STRING_SINGLE@4458..4461 "':'"
2882 DOT@4639..4640 "."2879 R_PAREN@4461..4462 ")"
2883 NAME@4640..46492880 COMMA@4462..4463 ","
2884 IDENT@4640..4649 "makeArray"2881 WHITESPACE@4463..4467 "\n\n "
2885 ARGS_DESC@4649..46952882 MEMBER_FIELD@4467..4852
2886 L_PAREN@4649..4650 "("2883 FIELD_METHOD@4467..4852
2887 ARG@4650..46652884 FIELD_NAME_FIXED@4467..4485
2888 EXPR_APPLY@4650..46652885 NAME@4467..4485
2889 EXPR_INDEX@4650..46602886 IDENT@4467..4485 "manifestYamlStream"
2890 EXPR_VAR@4650..46532887 PARAMS_DESC@4485..4560
2891 NAME@4650..46532888 L_PAREN@4485..4486 "("
2892 IDENT@4650..4653 "std"2889 PARAM@4486..4491
2893 DOT@4653..4654 "."2890 DESTRUCT_FULL@4486..4491
2894 NAME@4654..46602891 NAME@4486..4491
2895 IDENT@4654..4660 "length"2892 IDENT@4486..4491 "value"
2896 ARGS_DESC@4660..46652893 COMMA@4491..4492 ","
2897 L_PAREN@4660..4661 "("2894 WHITESPACE@4492..4493 " "
2898 ARG@4661..46642895 PARAM@4493..4521
2899 EXPR_VAR@4661..46642896 DESTRUCT_FULL@4493..4515
2900 NAME@4661..46642897 NAME@4493..4515
2901 IDENT@4661..4664 "arr"2898 IDENT@4493..4515 "indent_array_in_object"
2902 R_PAREN@4664..4665 ")"2899 ASSIGN@4515..4516 "="
2903 COMMA@4665..4666 ","2900 EXPR_LITERAL@4516..4521
2904 WHITESPACE@4666..4667 " "2901 FALSE_KW@4516..4521 "false"
2905 ARG@4667..46942902 COMMA@4521..4522 ","
2906 EXPR_FUNCTION@4667..46942903 WHITESPACE@4522..4523 " "
2907 FUNCTION_KW@4667..4675 "function"2904 PARAM@4523..4542
2908 PARAMS_DESC@4675..46782905 DESTRUCT_FULL@4523..4537
2909 L_PAREN@4675..4676 "("2906 NAME@4523..4537
2910 PARAM@4676..46772907 IDENT@4523..4537 "c_document_end"
2911 DESTRUCT_FULL@4676..46772908 ASSIGN@4537..4538 "="
2912 NAME@4676..46772909 EXPR_LITERAL@4538..4542
2913 IDENT@4676..4677 "i"2910 TRUE_KW@4538..4542 "true"
2914 R_PAREN@4677..4678 ")"2911 COMMA@4542..4543 ","
2915 WHITESPACE@4678..4679 " "2912 WHITESPACE@4543..4544 " "
2916 EXPR_APPLY@4679..46942913 PARAM@4544..4559
2917 EXPR_VAR@4679..46832914 DESTRUCT_FULL@4544..4554
2918 NAME@4679..46832915 NAME@4544..4554
2919 IDENT@4679..4683 "func"2916 IDENT@4544..4554 "quote_keys"
2920 ARGS_DESC@4683..46942917 ASSIGN@4554..4555 "="
2921 L_PAREN@4683..4684 "("2918 EXPR_LITERAL@4555..4559
2922 ARG@4684..46852919 TRUE_KW@4555..4559 "true"
2923 EXPR_VAR@4684..46852920 R_PAREN@4559..4560 ")"
2924 NAME@4684..46852921 COLONCOLON@4560..4562 "::"
2925 IDENT@4684..4685 "i"2922 WHITESPACE@4562..4567 "\n "
2926 COMMA@4685..4686 ","2923 EXPR_IF_THEN_ELSE@4567..4852
2927 WHITESPACE@4686..4687 " "2924 IF_KW@4567..4569 "if"
2928 ARG@4687..46932925 WHITESPACE@4569..4570 " "
2929 EXPR_INDEX_EXPR@4687..46932926 EXPR_UNARY@4570..4589
2930 LHS_EXPR@4687..46902927 NOT@4570..4571 "!"
2931 EXPR_VAR@4687..46902928 EXPR_APPLY@4571..4589
2932 NAME@4687..46902929 EXPR_INDEX@4571..4582
2933 IDENT@4687..4690 "arr"2930 EXPR_VAR@4571..4574
2934 L_BRACK@4690..4691 "["2931 NAME@4571..4574
2935 EXPR_VAR@4691..46922932 IDENT@4571..4574 "std"
2936 NAME@4691..46922933 DOT@4574..4575 "."
2937 IDENT@4691..4692 "i"2934 NAME@4575..4582
2938 R_BRACK@4692..4693 "]"2935 IDENT@4575..4582 "isArray"
2939 R_PAREN@4693..4694 ")"2936 ARGS_DESC@4582..4589
2940 R_PAREN@4694..4695 ")"2937 L_PAREN@4582..4583 "("
2941 COMMA@4695..4696 ","2938 ARG@4583..4588
2942 WHITESPACE@4696..4700 "\n\n "2939 EXPR_VAR@4583..4588
2943 MEMBER_FIELD@4700..50282940 NAME@4583..4588
2944 FIELD_METHOD@4700..50282941 IDENT@4583..4588 "value"
2945 FIELD_NAME_FIXED@4700..47102942 R_PAREN@4588..4589 ")"
2946 NAME@4700..47102943 WHITESPACE@4589..4590 " "
2947 IDENT@4700..4710 "mapWithKey"2944 THEN_KW@4590..4594 "then"
2948 PARAMS_DESC@4710..47212945 WHITESPACE@4594..4601 "\n "
2949 L_PAREN@4710..4711 "("2946 TRUE_EXPR@4601..4669
2950 PARAM@4711..47152947 EXPR_ERROR@4601..4669
2951 DESTRUCT_FULL@4711..47152948 ERROR_KW@4601..4606 "error"
2952 NAME@4711..47152949 WHITESPACE@4606..4607 " "
2953 IDENT@4711..4715 "func"2950 EXPR_BINARY@4607..4669
2954 COMMA@4715..4716 ","2951 LHS_EXPR@4607..4651
2955 WHITESPACE@4716..4717 " "2952 EXPR_STRING@4607..4651
2956 PARAM@4717..47202953 STRING_SINGLE@4607..4651 "'manifestYamlStream o ..."
2957 DESTRUCT_FULL@4717..47202954 WHITESPACE@4651..4652 " "
2958 NAME@4717..47202955 PLUS@4652..4653 "+"
2959 IDENT@4717..4720 "obj"2956 WHITESPACE@4653..4654 " "
2960 R_PAREN@4720..4721 ")"2957 EXPR_APPLY@4654..4669
2961 COLONCOLON@4721..4723 "::"2958 EXPR_INDEX@4654..4662
2962 WHITESPACE@4723..4728 "\n "2959 EXPR_VAR@4654..4657
2963 EXPR_IF_THEN_ELSE@4728..50282960 NAME@4654..4657
2964 IF_KW@4728..4730 "if"2961 IDENT@4654..4657 "std"
2965 WHITESPACE@4730..4731 " "2962 DOT@4657..4658 "."
2966 EXPR_UNARY@4731..47522963 NAME@4658..4662
2967 NOT@4731..4732 "!"2964 IDENT@4658..4662 "type"
2968 EXPR_APPLY@4732..47522965 ARGS_DESC@4662..4669
2969 EXPR_INDEX@4732..47462966 L_PAREN@4662..4663 "("
2970 EXPR_VAR@4732..47352967 ARG@4663..4668
2971 NAME@4732..47352968 EXPR_VAR@4663..4668
2972 IDENT@4732..4735 "std"2969 NAME@4663..4668
2973 DOT@4735..4736 "."2970 IDENT@4663..4668 "value"
2974 NAME@4736..47462971 R_PAREN@4668..4669 ")"
2975 IDENT@4736..4746 "isFunction"2972 WHITESPACE@4669..4674 "\n "
2976 ARGS_DESC@4746..47522973 ELSE_KW@4674..4678 "else"
2977 L_PAREN@4746..4747 "("2974 WHITESPACE@4678..4685 "\n "
2978 ARG@4747..47512975 FALSE_EXPR@4685..4852
2979 EXPR_VAR@4747..47512976 EXPR_BINARY@4685..4852
2980 NAME@4747..47512977 LHS_EXPR@4685..4807
2981 IDENT@4747..4751 "func"2978 EXPR_BINARY@4685..4807
2982 R_PAREN@4751..4752 ")"2979 LHS_EXPR@4685..4692
2983 WHITESPACE@4752..4753 " "2980 EXPR_STRING@4685..4692
2984 THEN_KW@4753..4757 "then"2981 STRING_SINGLE@4685..4692 "'---\\n'"
2985 WHITESPACE@4757..4764 "\n "2982 WHITESPACE@4692..4693 " "
2986 TRUE_EXPR@4764..48402983 PLUS@4693..4694 "+"
2987 EXPR_ERROR@4764..48402984 WHITESPACE@4694..4695 " "
2988 ERROR_KW@4764..4769 "error"2985 EXPR_APPLY@4695..4807
2989 WHITESPACE@4769..4770 " "2986 EXPR_INDEX@4695..4703
2990 EXPR_PARENED@4770..48402987 EXPR_VAR@4695..4698
2991 L_PAREN@4770..4771 "("2988 NAME@4695..4698
2992 EXPR_BINARY@4771..48392989 IDENT@4695..4698 "std"
2993 LHS_EXPR@4771..48222990 DOT@4698..4699 "."
2994 EXPR_STRING@4771..48222991 NAME@4699..4703
2995 STRING_SINGLE@4771..4822 "'std.mapWithKey first ..."2992 IDENT@4699..4703 "join"
2996 WHITESPACE@4822..4823 " "2993 ARGS_DESC@4703..4807
2997 PLUS@4823..4824 "+"2994 L_PAREN@4703..4704 "("
2998 WHITESPACE@4824..4825 " "2995 WHITESPACE@4704..4713 "\n "
2999 EXPR_APPLY@4825..48392996 ARG@4713..4722
3000 EXPR_INDEX@4825..48332997 EXPR_STRING@4713..4722
3001 EXPR_VAR@4825..48282998 STRING_SINGLE@4713..4722 "'\\n---\\n'"
3002 NAME@4825..48282999 COMMA@4722..4723 ","
3003 IDENT@4825..4828 "std"3000 WHITESPACE@4723..4724 " "
3004 DOT@4828..4829 "."3001 ARG@4724..4799
3005 NAME@4829..48333002 EXPR_ARRAY_COMP@4724..4799
3006 IDENT@4829..4833 "type"3003 L_BRACK@4724..4725 "["
3007 ARGS_DESC@4833..48393004 EXPR_APPLY@4725..4783
3008 L_PAREN@4833..4834 "("3005 EXPR_INDEX@4725..4744
3009 ARG@4834..48383006 EXPR_VAR@4725..4728
3010 EXPR_VAR@4834..48383007 NAME@4725..4728
3011 NAME@4834..48383008 IDENT@4725..4728 "std"
3012 IDENT@4834..4838 "func"3009 DOT@4728..4729 "."
3013 R_PAREN@4838..4839 ")"3010 NAME@4729..4744
3014 R_PAREN@4839..4840 ")"3011 IDENT@4729..4744 "manifestYamlDoc"
3015 WHITESPACE@4840..4845 "\n "3012 ARGS_DESC@4744..4783
3016 ELSE_KW@4845..4849 "else"3013 L_PAREN@4744..4745 "("
3017 WHITESPACE@4849..4850 " "3014 ARG@4745..4746
3018 FALSE_EXPR@4850..50283015 EXPR_VAR@4745..4746
3019 EXPR_IF_THEN_ELSE@4850..50283016 NAME@4745..4746
3020 IF_KW@4850..4852 "if"3017 IDENT@4745..4746 "e"
3021 WHITESPACE@4852..4853 " "3018 COMMA@4746..4747 ","
3022 EXPR_UNARY@4853..48713019 WHITESPACE@4747..4748 " "
3023 NOT@4853..4854 "!"3020 ARG@4748..4770
3024 EXPR_APPLY@4854..48713021 EXPR_VAR@4748..4770
3025 EXPR_INDEX@4854..48663022 NAME@4748..4770
3026 EXPR_VAR@4854..48573023 IDENT@4748..4770 "indent_array_in_object"
3027 NAME@4854..48573024 COMMA@4770..4771 ","
3028 IDENT@4854..4857 "std"3025 WHITESPACE@4771..4772 " "
3029 DOT@4857..4858 "."3026 ARG@4772..4782
3030 NAME@4858..48663027 EXPR_VAR@4772..4782
3031 IDENT@4858..4866 "isObject"3028 NAME@4772..4782
3032 ARGS_DESC@4866..48713029 IDENT@4772..4782 "quote_keys"
3033 L_PAREN@4866..4867 "("3030 R_PAREN@4782..4783 ")"
3034 ARG@4867..48703031 WHITESPACE@4783..4784 " "
3035 EXPR_VAR@4867..48703032 FOR_SPEC@4784..4798
3036 NAME@4867..48703033 FOR_KW@4784..4787 "for"
3037 IDENT@4867..4870 "obj"3034 WHITESPACE@4787..4788 " "
3038 R_PAREN@4870..4871 ")"3035 NAME@4788..4789
3039 WHITESPACE@4871..4872 " "3036 IDENT@4788..4789 "e"
3040 THEN_KW@4872..4876 "then"3037 WHITESPACE@4789..4790 " "
3041 WHITESPACE@4876..4883 "\n "3038 IN_KW@4790..4792 "in"
3042 TRUE_EXPR@4883..49573039 WHITESPACE@4792..4793 " "
3043 EXPR_ERROR@4883..49573040 EXPR_VAR@4793..4798
3044 ERROR_KW@4883..4888 "error"3041 NAME@4793..4798
3045 WHITESPACE@4888..4889 " "3042 IDENT@4793..4798 "value"
3046 EXPR_PARENED@4889..49573043 R_BRACK@4798..4799 "]"
3047 L_PAREN@4889..4890 "("3044 WHITESPACE@4799..4806 "\n "
3048 EXPR_BINARY@4890..49563045 R_PAREN@4806..4807 ")"
3049 LHS_EXPR@4890..49403046 WHITESPACE@4807..4808 " "
3050 EXPR_STRING@4890..49403047 PLUS@4808..4809 "+"
3051 STRING_SINGLE@4890..4940 "'std.mapWithKey secon ..."3048 WHITESPACE@4809..4810 " "
3052 WHITESPACE@4940..4941 " "3049 EXPR_IF_THEN_ELSE@4810..4852
3053 PLUS@4941..4942 "+"3050 IF_KW@4810..4812 "if"
3054 WHITESPACE@4942..4943 " "3051 WHITESPACE@4812..4813 " "
3055 EXPR_APPLY@4943..49563052 EXPR_VAR@4813..4827
3056 EXPR_INDEX@4943..49513053 NAME@4813..4827
3057 EXPR_VAR@4943..49463054 IDENT@4813..4827 "c_document_end"
3058 NAME@4943..49463055 WHITESPACE@4827..4828 " "
3059 IDENT@4943..4946 "std"3056 THEN_KW@4828..4832 "then"
3060 DOT@4946..4947 "."3057 WHITESPACE@4832..4833 " "
3061 NAME@4947..49513058 TRUE_EXPR@4833..4842
3062 IDENT@4947..4951 "type"3059 EXPR_STRING@4833..4842
3063 ARGS_DESC@4951..49563060 STRING_SINGLE@4833..4842 "'\\n...\\n'"
3064 L_PAREN@4951..4952 "("3061 WHITESPACE@4842..4843 " "
3065 ARG@4952..49553062 ELSE_KW@4843..4847 "else"
3066 EXPR_VAR@4952..49553063 WHITESPACE@4847..4848 " "
3067 NAME@4952..49553064 FALSE_EXPR@4848..4852
3068 IDENT@4952..4955 "obj"3065 EXPR_STRING@4848..4852
3069 R_PAREN@4955..4956 ")"3066 STRING_SINGLE@4848..4852 "'\\n'"
3070 R_PAREN@4956..4957 ")"3067 COMMA@4852..4853 ","
3071 WHITESPACE@4957..4962 "\n "3068 WHITESPACE@4853..4857 "\n\n "
3072 ELSE_KW@4962..4966 "else"3069 MEMBER_FIELD@4857..5513
3073 WHITESPACE@4966..4973 "\n "3070 FIELD_METHOD@4857..5513
3074 FALSE_EXPR@4973..50283071 FIELD_NAME_FIXED@4857..4871
3075 EXPR_OBJECT@4973..50283072 NAME@4857..4871
3076 OBJ_BODY_MEMBER_LIST@4973..50283073 IDENT@4857..4871 "manifestPython"
3077 L_BRACE@4973..4974 "{"3074 PARAMS_DESC@4871..4874
3078 WHITESPACE@4974..4975 " "3075 L_PAREN@4871..4872 "("
3079 MEMBER_FIELD@4975..50263076 PARAM@4872..4873
3080 FIELD_NORMAL@4975..49953077 DESTRUCT_FULL@4872..4873
3081 FIELD_NAME_DYNAMIC@4975..49783078 NAME@4872..4873
3082 L_BRACK@4975..4976 "["3079 IDENT@4872..4873 "v"
3083 EXPR_VAR@4976..49773080 R_PAREN@4873..4874 ")"
3084 NAME@4976..49773081 COLONCOLON@4874..4876 "::"
3085 IDENT@4976..4977 "k"3082 WHITESPACE@4876..4881 "\n "
3086 R_BRACK@4977..4978 "]"3083 EXPR_IF_THEN_ELSE@4881..5513
3087 COLON@4978..4979 ":"3084 IF_KW@4881..4883 "if"
3088 WHITESPACE@4979..4980 " "3085 WHITESPACE@4883..4884 " "
3089 EXPR_APPLY@4980..49953086 EXPR_APPLY@4884..4899
3090 EXPR_VAR@4980..49843087 EXPR_INDEX@4884..4896
3091 NAME@4980..49843088 EXPR_VAR@4884..4887
3092 IDENT@4980..4984 "func"3089 NAME@4884..4887
3093 ARGS_DESC@4984..49953090 IDENT@4884..4887 "std"
3094 L_PAREN@4984..4985 "("3091 DOT@4887..4888 "."
3095 ARG@4985..49863092 NAME@4888..4896
3096 EXPR_VAR@4985..49863093 IDENT@4888..4896 "isObject"
3097 NAME@4985..49863094 ARGS_DESC@4896..4899
3098 IDENT@4985..4986 "k"3095 L_PAREN@4896..4897 "("
3099 COMMA@4986..4987 ","3096 ARG@4897..4898
3100 WHITESPACE@4987..4988 " "3097 EXPR_VAR@4897..4898
3101 ARG@4988..49943098 NAME@4897..4898
3102 EXPR_INDEX_EXPR@4988..49943099 IDENT@4897..4898 "v"
3103 LHS_EXPR@4988..49913100 R_PAREN@4898..4899 ")"
3104 EXPR_VAR@4988..49913101 WHITESPACE@4899..4900 " "
3105 NAME@4988..49913102 THEN_KW@4900..4904 "then"
3106 IDENT@4988..4991 "obj"3103 WHITESPACE@4904..4911 "\n "
3107 L_BRACK@4991..4992 "["3104 TRUE_EXPR@4911..5086
3108 EXPR_VAR@4992..49933105 EXPR_LOCAL@4911..5086
3109 NAME@4992..49933106 LOCAL_KW@4911..4916 "local"
3110 IDENT@4992..4993 "k"3107 WHITESPACE@4916..4917 " "
3111 R_BRACK@4993..4994 "]"3108 BIND_DESTRUCT@4917..5045
3112 R_PAREN@4994..4995 ")"3109 DESTRUCT_FULL@4917..4923
3113 WHITESPACE@4995..4996 " "3110 NAME@4917..4923
3114 FOR_SPEC@4996..50263111 IDENT@4917..4923 "fields"
3115 FOR_KW@4996..4999 "for"3112 WHITESPACE@4923..4924 " "
3116 WHITESPACE@4999..5000 " "3113 ASSIGN@4924..4925 "="
3117 NAME@5000..50013114 WHITESPACE@4925..4926 " "
3118 IDENT@5000..5001 "k"3115 EXPR_ARRAY_COMP@4926..5045
3119 WHITESPACE@5001..5002 " "3116 L_BRACK@4926..4927 "["
3120 IN_KW@5002..5004 "in"3117 WHITESPACE@4927..4936 "\n "
3121 WHITESPACE@5004..5005 " "3118 EXPR_BINARY@4936..5000
3122 EXPR_APPLY@5005..50263119 LHS_EXPR@4936..4944
3123 EXPR_INDEX@5005..50213120 EXPR_STRING@4936..4944
3124 EXPR_VAR@5005..50083121 STRING_SINGLE@4936..4944 "'%s: %s'"
3125 NAME@5005..50083122 WHITESPACE@4944..4945 " "
3126 IDENT@5005..5008 "std"3123 MODULO@4945..4946 "%"
3127 DOT@5008..5009 "."3124 WHITESPACE@4946..4947 " "
3128 NAME@5009..50213125 EXPR_ARRAY@4947..5000
3129 IDENT@5009..5021 "objectFields"3126 L_BRACK@4947..4948 "["
3130 ARGS_DESC@5021..50263127 EXPR_APPLY@4948..4973
3131 L_PAREN@5021..5022 "("3128 EXPR_INDEX@4948..4970
3132 ARG@5022..50253129 EXPR_VAR@4948..4951
3133 EXPR_VAR@5022..50253130 NAME@4948..4951
3134 NAME@5022..50253131 IDENT@4948..4951 "std"
3135 IDENT@5022..5025 "obj"3132 DOT@4951..4952 "."
3136 R_PAREN@5025..5026 ")"3133 NAME@4952..4970
3137 WHITESPACE@5026..5027 " "3134 IDENT@4952..4970 "escapeStringPython"
3138 R_BRACE@5027..5028 "}"3135 ARGS_DESC@4970..4973
3139 COMMA@5028..5029 ","3136 L_PAREN@4970..4971 "("
3140 WHITESPACE@5029..5033 "\n\n "3137 ARG@4971..4972
3141 MEMBER_FIELD@5033..50623138 EXPR_VAR@4971..4972
3142 FIELD_NORMAL@5033..50623139 NAME@4971..4972
3143 FIELD_NAME_FIXED@5033..50403140 IDENT@4971..4972 "k"
3144 NAME@5033..50403141 R_PAREN@4972..4973 ")"
3145 IDENT@5033..5040 "flatMap"3142 COMMA@4973..4974 ","
3146 COLONCOLON@5040..5042 "::"3143 WHITESPACE@4974..4975 " "
3147 WHITESPACE@5042..5043 " "3144 EXPR_APPLY@4975..4999
3148 EXPR_INTRINSIC@5043..50623145 EXPR_INDEX@4975..4993
3149 INTRINSIC@5043..5053 "$intrinsic"3146 EXPR_VAR@4975..4978
3150 L_PAREN@5053..5054 "("3147 NAME@4975..4978
3151 NAME@5054..50613148 IDENT@4975..4978 "std"
3152 IDENT@5054..5061 "flatMap"3149 DOT@4978..4979 "."
3153 R_PAREN@5061..5062 ")"3150 NAME@4979..4993
3154 COMMA@5062..5063 ","3151 IDENT@4979..4993 "manifestPython"
3155 WHITESPACE@5063..5067 "\n\n "3152 ARGS_DESC@4993..4999
3156 MEMBER_FIELD@5067..50903153 L_PAREN@4993..4994 "("
3157 FIELD_NORMAL@5067..50903154 ARG@4994..4998
3158 FIELD_NAME_FIXED@5067..50713155 EXPR_INDEX_EXPR@4994..4998
3159 NAME@5067..50713156 LHS_EXPR@4994..4995
3160 IDENT@5067..5071 "join"3157 EXPR_VAR@4994..4995
3161 COLONCOLON@5071..5073 "::"3158 NAME@4994..4995
3162 WHITESPACE@5073..5074 " "3159 IDENT@4994..4995 "v"
3163 EXPR_INTRINSIC@5074..50903160 L_BRACK@4995..4996 "["
3164 INTRINSIC@5074..5084 "$intrinsic"3161 EXPR_VAR@4996..4997
3165 L_PAREN@5084..5085 "("3162 NAME@4996..4997
3166 NAME@5085..50893163 IDENT@4996..4997 "k"
3167 IDENT@5085..5089 "join"3164 R_BRACK@4997..4998 "]"
3168 R_PAREN@5089..5090 ")"3165 R_PAREN@4998..4999 ")"
3169 COMMA@5090..5091 ","3166 R_BRACK@4999..5000 "]"
3170 WHITESPACE@5091..5095 "\n\n "3167 WHITESPACE@5000..5009 "\n "
3171 MEMBER_FIELD@5095..51383168 FOR_SPEC@5009..5037
3172 FIELD_METHOD@5095..51383169 FOR_KW@5009..5012 "for"
3173 FIELD_NAME_FIXED@5095..51003170 WHITESPACE@5012..5013 " "
3174 NAME@5095..51003171 NAME@5013..5014
3175 IDENT@5095..5100 "lines"3172 IDENT@5013..5014 "k"
3176 PARAMS_DESC@5100..51053173 WHITESPACE@5014..5015 " "
3177 L_PAREN@5100..5101 "("3174 IN_KW@5015..5017 "in"
3178 PARAM@5101..51043175 WHITESPACE@5017..5018 " "
3179 DESTRUCT_FULL@5101..51043176 EXPR_APPLY@5018..5037
3180 NAME@5101..51043177 EXPR_INDEX@5018..5034
3181 IDENT@5101..5104 "arr"3178 EXPR_VAR@5018..5021
3182 R_PAREN@5104..5105 ")"3179 NAME@5018..5021
3183 COLONCOLON@5105..5107 "::"3180 IDENT@5018..5021 "std"
3184 WHITESPACE@5107..5112 "\n "3181 DOT@5021..5022 "."
3185 EXPR_APPLY@5112..51383182 NAME@5022..5034
3186 EXPR_INDEX@5112..51203183 IDENT@5022..5034 "objectFields"
3187 EXPR_VAR@5112..51153184 ARGS_DESC@5034..5037
3188 NAME@5112..51153185 L_PAREN@5034..5035 "("
3189 IDENT@5112..5115 "std"3186 ARG@5035..5036
3190 DOT@5115..5116 "."3187 EXPR_VAR@5035..5036
3191 NAME@5116..51203188 NAME@5035..5036
3192 IDENT@5116..5120 "join"3189 IDENT@5035..5036 "v"
3193 ARGS_DESC@5120..51383190 R_PAREN@5036..5037 ")"
3194 L_PAREN@5120..5121 "("3191 WHITESPACE@5037..5044 "\n "
3195 ARG@5121..51253192 R_BRACK@5044..5045 "]"
3196 EXPR_STRING@5121..51253193 SEMI@5045..5046 ";"
3197 STRING_SINGLE@5121..5125 "'\\n'"3194 WHITESPACE@5046..5053 "\n "
3198 COMMA@5125..5126 ","3195 EXPR_BINARY@5053..5086
3199 WHITESPACE@5126..5127 " "3196 LHS_EXPR@5053..5059
3200 ARG@5127..51373197 EXPR_STRING@5053..5059
3201 EXPR_BINARY@5127..51373198 STRING_SINGLE@5053..5059 "'{%s}'"
3202 LHS_EXPR@5127..51303199 WHITESPACE@5059..5060 " "
3203 EXPR_VAR@5127..51303200 MODULO@5060..5061 "%"
3204 NAME@5127..51303201 WHITESPACE@5061..5062 " "
3205 IDENT@5127..5130 "arr"3202 EXPR_ARRAY@5062..5086
3206 WHITESPACE@5130..5131 " "3203 L_BRACK@5062..5063 "["
3207 PLUS@5131..5132 "+"3204 EXPR_APPLY@5063..5085
3208 WHITESPACE@5132..5133 " "3205 EXPR_INDEX@5063..5071
3209 EXPR_ARRAY@5133..51373206 EXPR_VAR@5063..5066
3210 L_BRACK@5133..5134 "["3207 NAME@5063..5066
3211 EXPR_STRING@5134..51363208 IDENT@5063..5066 "std"
3212 STRING_SINGLE@5134..5136 "''"3209 DOT@5066..5067 "."
3213 R_BRACK@5136..5137 "]"3210 NAME@5067..5071
3214 R_PAREN@5137..5138 ")"3211 IDENT@5067..5071 "join"
3215 COMMA@5138..5139 ","3212 ARGS_DESC@5071..5085
3216 WHITESPACE@5139..5143 "\n\n "3213 L_PAREN@5071..5072 "("
3217 MEMBER_FIELD@5143..53553214 ARG@5072..5076
3218 FIELD_METHOD@5143..53553215 EXPR_STRING@5072..5076
3219 FIELD_NAME_FIXED@5143..51513216 STRING_SINGLE@5072..5076 "', '"
3220 NAME@5143..51513217 COMMA@5076..5077 ","
3221 IDENT@5143..5151 "deepJoin"3218 WHITESPACE@5077..5078 " "
3222 PARAMS_DESC@5151..51563219 ARG@5078..5084
3223 L_PAREN@5151..5152 "("3220 EXPR_VAR@5078..5084
3224 PARAM@5152..51553221 NAME@5078..5084
3225 DESTRUCT_FULL@5152..51553222 IDENT@5078..5084 "fields"
3226 NAME@5152..51553223 R_PAREN@5084..5085 ")"
3227 IDENT@5152..5155 "arr"3224 R_BRACK@5085..5086 "]"
3228 R_PAREN@5155..5156 ")"3225 WHITESPACE@5086..5091 "\n "
3229 COLONCOLON@5156..5158 "::"3226 ELSE_KW@5091..5095 "else"
3230 WHITESPACE@5158..5163 "\n "3227 WHITESPACE@5095..5096 " "
3231 EXPR_IF_THEN_ELSE@5163..53553228 FALSE_EXPR@5096..5513
3232 IF_KW@5163..5165 "if"3229 EXPR_IF_THEN_ELSE@5096..5513
3233 WHITESPACE@5165..5166 " "3230 IF_KW@5096..5098 "if"
3234 EXPR_APPLY@5166..51833231 WHITESPACE@5098..5099 " "
3235 EXPR_INDEX@5166..51783232 EXPR_APPLY@5099..5113
3236 EXPR_VAR@5166..51693233 EXPR_INDEX@5099..5110
3237 NAME@5166..51693234 EXPR_VAR@5099..5102
3238 IDENT@5166..5169 "std"3235 NAME@5099..5102
3239 DOT@5169..5170 "."3236 IDENT@5099..5102 "std"
3240 NAME@5170..51783237 DOT@5102..5103 "."
3241 IDENT@5170..5178 "isString"3238 NAME@5103..5110
3242 ARGS_DESC@5178..51833239 IDENT@5103..5110 "isArray"
3243 L_PAREN@5178..5179 "("3240 ARGS_DESC@5110..5113
3244 ARG@5179..51823241 L_PAREN@5110..5111 "("
3245 EXPR_VAR@5179..51823242 ARG@5111..5112
3246 NAME@5179..51823243 EXPR_VAR@5111..5112
3247 IDENT@5179..5182 "arr"3244 NAME@5111..5112
3248 R_PAREN@5182..5183 ")"3245 IDENT@5111..5112 "v"
3249 WHITESPACE@5183..5184 " "3246 R_PAREN@5112..5113 ")"
3250 THEN_KW@5184..5188 "then"3247 WHITESPACE@5113..5114 " "
3251 WHITESPACE@5188..5195 "\n "3248 THEN_KW@5114..5118 "then"
3252 TRUE_EXPR@5195..51983249 WHITESPACE@5118..5125 "\n "
3253 EXPR_VAR@5195..51983250 TRUE_EXPR@5125..5188
3254 NAME@5195..51983251 EXPR_BINARY@5125..5188
3255 IDENT@5195..5198 "arr"3252 LHS_EXPR@5125..5131
3256 WHITESPACE@5198..5203 "\n "3253 EXPR_STRING@5125..5131
3257 ELSE_KW@5203..5207 "else"3254 STRING_SINGLE@5125..5131 "'[%s]'"
3258 WHITESPACE@5207..5208 " "3255 WHITESPACE@5131..5132 " "
3259 FALSE_EXPR@5208..53553256 MODULO@5132..5133 "%"
3260 EXPR_IF_THEN_ELSE@5208..53553257 WHITESPACE@5133..5134 " "
3261 IF_KW@5208..5210 "if"3258 EXPR_ARRAY@5134..5188
3262 WHITESPACE@5210..5211 " "3259 L_BRACK@5134..5135 "["
3263 EXPR_APPLY@5211..52273260 EXPR_APPLY@5135..5187
3264 EXPR_INDEX@5211..52223261 EXPR_INDEX@5135..5143
3265 EXPR_VAR@5211..52143262 EXPR_VAR@5135..5138
3266 NAME@5211..52143263 NAME@5135..5138
3267 IDENT@5211..5214 "std"3264 IDENT@5135..5138 "std"
3268 DOT@5214..5215 "."3265 DOT@5138..5139 "."
3269 NAME@5215..52223266 NAME@5139..5143
3270 IDENT@5215..5222 "isArray"3267 IDENT@5139..5143 "join"
3271 ARGS_DESC@5222..52273268 ARGS_DESC@5143..5187
3272 L_PAREN@5222..5223 "("3269 L_PAREN@5143..5144 "("
3273 ARG@5223..52263270 ARG@5144..5148
3274 EXPR_VAR@5223..52263271 EXPR_STRING@5144..5148
3275 NAME@5223..52263272 STRING_SINGLE@5144..5148 "', '"
3276 IDENT@5223..5226 "arr"3273 COMMA@5148..5149 ","
3277 R_PAREN@5226..5227 ")"3274 WHITESPACE@5149..5150 " "
3278 WHITESPACE@5227..5228 " "3275 ARG@5150..5186
3279 THEN_KW@5228..5232 "then"3276 EXPR_ARRAY_COMP@5150..5186
3280 WHITESPACE@5232..5239 "\n "3277 L_BRACK@5150..5151 "["
3281 TRUE_EXPR@5239..52833278 EXPR_APPLY@5151..5173
3282 EXPR_APPLY@5239..52833279 EXPR_INDEX@5151..5169
3283 EXPR_INDEX@5239..52473280 EXPR_VAR@5151..5154
3284 EXPR_VAR@5239..52423281 NAME@5151..5154
3285 NAME@5239..52423282 IDENT@5151..5154 "std"
3286 IDENT@5239..5242 "std"3283 DOT@5154..5155 "."
3287 DOT@5242..5243 "."3284 NAME@5155..5169
3288 NAME@5243..52473285 IDENT@5155..5169 "manifestPython"
3289 IDENT@5243..5247 "join"3286 ARGS_DESC@5169..5173
3290 ARGS_DESC@5247..52833287 L_PAREN@5169..5170 "("
3291 L_PAREN@5247..5248 "("3288 ARG@5170..5172
3292 ARG@5248..52503289 EXPR_VAR@5170..5172
3293 EXPR_STRING@5248..52503290 NAME@5170..5172
3294 STRING_SINGLE@5248..5250 "''"3291 IDENT@5170..5172 "v2"
3295 COMMA@5250..5251 ","3292 R_PAREN@5172..5173 ")"
3296 WHITESPACE@5251..5252 " "3293 WHITESPACE@5173..5174 " "
3297 ARG@5252..52823294 FOR_SPEC@5174..5185
3298 EXPR_ARRAY_COMP@5252..52823295 FOR_KW@5174..5177 "for"
3299 L_BRACK@5252..5253 "["3296 WHITESPACE@5177..5178 " "
3300 EXPR_APPLY@5253..52683297 NAME@5178..5180
3301 EXPR_INDEX@5253..52653298 IDENT@5178..5180 "v2"
3302 EXPR_VAR@5253..52563299 WHITESPACE@5180..5181 " "
3303 NAME@5253..52563300 IN_KW@5181..5183 "in"
3304 IDENT@5253..5256 "std"3301 WHITESPACE@5183..5184 " "
3305 DOT@5256..5257 "."3302 EXPR_VAR@5184..5185
3306 NAME@5257..52653303 NAME@5184..5185
3307 IDENT@5257..5265 "deepJoin"3304 IDENT@5184..5185 "v"
3308 ARGS_DESC@5265..52683305 R_BRACK@5185..5186 "]"
3309 L_PAREN@5265..5266 "("3306 R_PAREN@5186..5187 ")"
3310 ARG@5266..52673307 R_BRACK@5187..5188 "]"
3311 EXPR_VAR@5266..52673308 WHITESPACE@5188..5193 "\n "
3312 NAME@5266..52673309 ELSE_KW@5193..5197 "else"
3313 IDENT@5266..5267 "x"3310 WHITESPACE@5197..5198 " "
3314 R_PAREN@5267..5268 ")"3311 FALSE_EXPR@5198..5513
3315 WHITESPACE@5268..5269 " "3312 EXPR_IF_THEN_ELSE@5198..5513
3316 FOR_SPEC@5269..52813313 IF_KW@5198..5200 "if"
3317 FOR_KW@5269..5272 "for"3314 WHITESPACE@5200..5201 " "
3318 WHITESPACE@5272..5273 " "3315 EXPR_APPLY@5201..5216
3319 NAME@5273..52743316 EXPR_INDEX@5201..5213
3320 IDENT@5273..5274 "x"3317 EXPR_VAR@5201..5204
3321 WHITESPACE@5274..5275 " "3318 NAME@5201..5204
3322 IN_KW@5275..5277 "in"3319 IDENT@5201..5204 "std"
3323 WHITESPACE@5277..5278 " "3320 DOT@5204..5205 "."
3324 EXPR_VAR@5278..52813321 NAME@5205..5213
3325 NAME@5278..52813322 IDENT@5205..5213 "isString"
3326 IDENT@5278..5281 "arr"3323 ARGS_DESC@5213..5216
3327 R_BRACK@5281..5282 "]"3324 L_PAREN@5213..5214 "("
3328 R_PAREN@5282..5283 ")"3325 ARG@5214..5215
3329 WHITESPACE@5283..5288 "\n "3326 EXPR_VAR@5214..5215
3330 ELSE_KW@5288..5292 "else"3327 NAME@5214..5215
3331 WHITESPACE@5292..5299 "\n "3328 IDENT@5214..5215 "v"
3332 FALSE_EXPR@5299..53553329 R_PAREN@5215..5216 ")"
3333 EXPR_ERROR@5299..53553330 WHITESPACE@5216..5217 " "
3334 ERROR_KW@5299..5304 "error"3331 THEN_KW@5217..5221 "then"
3335 WHITESPACE@5304..5305 " "3332 WHITESPACE@5221..5228 "\n "
3336 EXPR_BINARY@5305..53553333 TRUE_EXPR@5228..5262
3337 LHS_EXPR@5305..53393334 EXPR_BINARY@5228..5262
3338 EXPR_STRING@5305..53393335 LHS_EXPR@5228..5232
3339 STRING_SINGLE@5305..5339 "'Expected string or a ..."3336 EXPR_STRING@5228..5232
3340 WHITESPACE@5339..5340 " "3337 STRING_SINGLE@5228..5232 "'%s'"
3341 MODULO@5340..5341 "%"3338 WHITESPACE@5232..5233 " "
3342 WHITESPACE@5341..5342 " "3339 MODULO@5233..5234 "%"
3343 EXPR_APPLY@5342..53553340 WHITESPACE@5234..5235 " "
3344 EXPR_INDEX@5342..53503341 EXPR_ARRAY@5235..5262
3345 EXPR_VAR@5342..53453342 L_BRACK@5235..5236 "["
3346 NAME@5342..53453343 EXPR_APPLY@5236..5261
3347 IDENT@5342..5345 "std"3344 EXPR_INDEX@5236..5258
3348 DOT@5345..5346 "."3345 EXPR_VAR@5236..5239
3349 NAME@5346..53503346 NAME@5236..5239
3350 IDENT@5346..5350 "type"3347 IDENT@5236..5239 "std"
3351 ARGS_DESC@5350..53553348 DOT@5239..5240 "."
3352 L_PAREN@5350..5351 "("3349 NAME@5240..5258
3353 ARG@5351..53543350 IDENT@5240..5258 "escapeStringPython"
3354 EXPR_VAR@5351..53543351 ARGS_DESC@5258..5261
3355 NAME@5351..53543352 L_PAREN@5258..5259 "("
3356 IDENT@5351..5354 "arr"3353 ARG@5259..5260
3357 R_PAREN@5354..5355 ")"3354 EXPR_VAR@5259..5260
3358 COMMA@5355..5356 ","3355 NAME@5259..5260
3359 WHITESPACE@5356..5361 "\n\n\n "3356 IDENT@5259..5260 "v"
3360 MEMBER_FIELD@5361..53883357 R_PAREN@5260..5261 ")"
3361 FIELD_NORMAL@5361..53883358 R_BRACK@5261..5262 "]"
3362 FIELD_NAME_FIXED@5361..53673359 WHITESPACE@5262..5267 "\n "
3363 NAME@5361..53673360 ELSE_KW@5267..5271 "else"
3364 IDENT@5361..5367 "format"3361 WHITESPACE@5271..5272 " "
3365 COLONCOLON@5367..5369 "::"3362 FALSE_EXPR@5272..5513
3366 WHITESPACE@5369..5370 " "3363 EXPR_IF_THEN_ELSE@5272..5513
3367 EXPR_INTRINSIC@5370..53883364 IF_KW@5272..5274 "if"
3368 INTRINSIC@5370..5380 "$intrinsic"3365 WHITESPACE@5274..5275 " "
3369 L_PAREN@5380..5381 "("3366 EXPR_APPLY@5275..5292
3370 NAME@5381..53873367 EXPR_INDEX@5275..5289
3371 IDENT@5381..5387 "format"3368 EXPR_VAR@5275..5278
3372 R_PAREN@5387..5388 ")"3369 NAME@5275..5278
3373 COMMA@5388..5389 ","3370 IDENT@5275..5278 "std"
3374 WHITESPACE@5389..5393 "\n\n "3371 DOT@5278..5279 "."
3375 MEMBER_FIELD@5393..54183372 NAME@5279..5289
3376 FIELD_NORMAL@5393..54183373 IDENT@5279..5289 "isFunction"
3377 FIELD_NAME_FIXED@5393..53983374 ARGS_DESC@5289..5292
3378 NAME@5393..53983375 L_PAREN@5289..5290 "("
3379 IDENT@5393..5398 "foldr"3376 ARG@5290..5291
3380 COLONCOLON@5398..5400 "::"3377 EXPR_VAR@5290..5291
3381 WHITESPACE@5400..5401 " "3378 NAME@5290..5291
3382 EXPR_INTRINSIC@5401..54183379 IDENT@5290..5291 "v"
3383 INTRINSIC@5401..5411 "$intrinsic"3380 R_PAREN@5291..5292 ")"
3384 L_PAREN@5411..5412 "("3381 WHITESPACE@5292..5293 " "
3385 NAME@5412..54173382 THEN_KW@5293..5297 "then"
3386 IDENT@5412..5417 "foldr"3383 WHITESPACE@5297..5304 "\n "
3387 R_PAREN@5417..5418 ")"3384 TRUE_EXPR@5304..5336
3388 COMMA@5418..5419 ","3385 EXPR_ERROR@5304..5336
3389 WHITESPACE@5419..5423 "\n\n "3386 ERROR_KW@5304..5309 "error"
3390 MEMBER_FIELD@5423..54483387 WHITESPACE@5309..5310 " "
3391 FIELD_NORMAL@5423..54483388 EXPR_STRING@5310..5336
3392 FIELD_NAME_FIXED@5423..54283389 STRING_SINGLE@5310..5336 "'cannot manifest func ..."
3393 NAME@5423..54283390 WHITESPACE@5336..5341 "\n "
3394 IDENT@5423..5428 "foldl"3391 ELSE_KW@5341..5345 "else"
3395 COLONCOLON@5428..5430 "::"3392 WHITESPACE@5345..5346 " "
3396 WHITESPACE@5430..5431 " "3393 FALSE_EXPR@5346..5513
3397 EXPR_INTRINSIC@5431..54483394 EXPR_IF_THEN_ELSE@5346..5513
3398 INTRINSIC@5431..5441 "$intrinsic"3395 IF_KW@5346..5348 "if"
3399 L_PAREN@5441..5442 "("3396 WHITESPACE@5348..5349 " "
3400 NAME@5442..54473397 EXPR_APPLY@5349..5364
3401 IDENT@5442..5447 "foldl"3398 EXPR_INDEX@5349..5361
3402 R_PAREN@5447..5448 ")"3399 EXPR_VAR@5349..5352
3403 COMMA@5448..5449 ","3400 NAME@5349..5352
3404 WHITESPACE@5449..5453 "\n\n "3401 IDENT@5349..5352 "std"
3405 MEMBER_FIELD@5453..59283402 DOT@5352..5353 "."
3406 FIELD_METHOD@5453..59283403 NAME@5353..5361
3407 FIELD_NAME_FIXED@5453..54623404 IDENT@5353..5361 "isNumber"
3408 NAME@5453..54623405 ARGS_DESC@5361..5364
3409 IDENT@5453..5462 "filterMap"3406 L_PAREN@5361..5362 "("
3410 PARAMS_DESC@5462..54903407 ARG@5362..5363
3411 L_PAREN@5462..5463 "("3408 EXPR_VAR@5362..5363
3412 PARAM@5463..54743409 NAME@5362..5363
3413 DESTRUCT_FULL@5463..54743410 IDENT@5362..5363 "v"
3414 NAME@5463..54743411 R_PAREN@5363..5364 ")"
3415 IDENT@5463..5474 "filter_func"3412 WHITESPACE@5364..5365 " "
3416 COMMA@5474..5475 ","3413 THEN_KW@5365..5369 "then"
3417 WHITESPACE@5475..5476 " "3414 WHITESPACE@5369..5376 "\n "
3418 PARAM@5476..54843415 TRUE_EXPR@5376..5391
3419 DESTRUCT_FULL@5476..54843416 EXPR_APPLY@5376..5391
3420 NAME@5476..54843417 EXPR_INDEX@5376..5388
3421 IDENT@5476..5484 "map_func"3418 EXPR_VAR@5376..5379
3422 COMMA@5484..5485 ","3419 NAME@5376..5379
3423 WHITESPACE@5485..5486 " "3420 IDENT@5376..5379 "std"
3424 PARAM@5486..54893421 DOT@5379..5380 "."
3425 DESTRUCT_FULL@5486..54893422 NAME@5380..5388
3426 NAME@5486..54893423 IDENT@5380..5388 "toString"
3427 IDENT@5486..5489 "arr"3424 ARGS_DESC@5388..5391
3428 R_PAREN@5489..5490 ")"3425 L_PAREN@5388..5389 "("
3429 COLONCOLON@5490..5492 "::"3426 ARG@5389..5390
3430 WHITESPACE@5492..5497 "\n "3427 EXPR_VAR@5389..5390
3431 EXPR_IF_THEN_ELSE@5497..59283428 NAME@5389..5390
3432 IF_KW@5497..5499 "if"3429 IDENT@5389..5390 "v"
3433 WHITESPACE@5499..5500 " "3430 R_PAREN@5390..5391 ")"
3434 EXPR_UNARY@5500..55283431 WHITESPACE@5391..5396 "\n "
3435 NOT@5500..5501 "!"3432 ELSE_KW@5396..5400 "else"
3436 EXPR_APPLY@5501..55283433 WHITESPACE@5400..5401 " "
3437 EXPR_INDEX@5501..55153434 FALSE_EXPR@5401..5513
3438 EXPR_VAR@5501..55043435 EXPR_IF_THEN_ELSE@5401..5513
3439 NAME@5501..55043436 IF_KW@5401..5403 "if"
3440 IDENT@5501..5504 "std"3437 WHITESPACE@5403..5404 " "
3441 DOT@5504..5505 "."3438 EXPR_BINARY@5404..5413
3442 NAME@5505..55153439 LHS_EXPR@5404..5405
3443 IDENT@5505..5515 "isFunction"3440 EXPR_VAR@5404..5405
3444 ARGS_DESC@5515..55283441 NAME@5404..5405
3445 L_PAREN@5515..5516 "("3442 IDENT@5404..5405 "v"
3446 ARG@5516..55273443 WHITESPACE@5405..5406 " "
3447 EXPR_VAR@5516..55273444 EQ@5406..5408 "=="
3448 NAME@5516..55273445 WHITESPACE@5408..5409 " "
3449 IDENT@5516..5527 "filter_func"3446 EXPR_LITERAL@5409..5413
3450 R_PAREN@5527..5528 ")"3447 TRUE_KW@5409..5413 "true"
3451 WHITESPACE@5528..5529 " "3448 WHITESPACE@5413..5414 " "
3452 THEN_KW@5529..5533 "then"3449 THEN_KW@5414..5418 "then"
3453 WHITESPACE@5533..5540 "\n "3450 WHITESPACE@5418..5425 "\n "
3454 TRUE_EXPR@5540..56223451 TRUE_EXPR@5425..5431
3455 EXPR_ERROR@5540..56223452 EXPR_STRING@5425..5431
3456 ERROR_KW@5540..5545 "error"3453 STRING_SINGLE@5425..5431 "'True'"
3457 WHITESPACE@5545..5546 " "3454 WHITESPACE@5431..5436 "\n "
3458 EXPR_PARENED@5546..56223455 ELSE_KW@5436..5440 "else"
3459 L_PAREN@5546..5547 "("3456 WHITESPACE@5440..5441 " "
3460 EXPR_BINARY@5547..56213457 FALSE_EXPR@5441..5513
3461 LHS_EXPR@5547..55973458 EXPR_IF_THEN_ELSE@5441..5513
3462 EXPR_STRING@5547..55973459 IF_KW@5441..5443 "if"
3463 STRING_SINGLE@5547..5597 "'std.filterMap first ..."3460 WHITESPACE@5443..5444 " "
3464 WHITESPACE@5597..5598 " "3461 EXPR_BINARY@5444..5454
3465 PLUS@5598..5599 "+"3462 LHS_EXPR@5444..5445
3466 WHITESPACE@5599..5600 " "3463 EXPR_VAR@5444..5445
3467 EXPR_APPLY@5600..56213464 NAME@5444..5445
3468 EXPR_INDEX@5600..56083465 IDENT@5444..5445 "v"
3469 EXPR_VAR@5600..56033466 WHITESPACE@5445..5446 " "
3470 NAME@5600..56033467 EQ@5446..5448 "=="
3471 IDENT@5600..5603 "std"3468 WHITESPACE@5448..5449 " "
3472 DOT@5603..5604 "."3469 EXPR_LITERAL@5449..5454
3473 NAME@5604..56083470 FALSE_KW@5449..5454 "false"
3474 IDENT@5604..5608 "type"3471 WHITESPACE@5454..5455 " "
3475 ARGS_DESC@5608..56213472 THEN_KW@5455..5459 "then"
3476 L_PAREN@5608..5609 "("3473 WHITESPACE@5459..5466 "\n "
3477 ARG@5609..56203474 TRUE_EXPR@5466..5473
3478 EXPR_VAR@5609..56203475 EXPR_STRING@5466..5473
3479 NAME@5609..56203476 STRING_SINGLE@5466..5473 "'False'"
3480 IDENT@5609..5620 "filter_func"3477 WHITESPACE@5473..5478 "\n "
3481 R_PAREN@5620..5621 ")"3478 ELSE_KW@5478..5482 "else"
3482 R_PAREN@5621..5622 ")"3479 WHITESPACE@5482..5483 " "
3483 WHITESPACE@5622..5627 "\n "3480 FALSE_EXPR@5483..5513
3484 ELSE_KW@5627..5631 "else"3481 EXPR_IF_THEN_ELSE@5483..5513
3485 WHITESPACE@5631..5632 " "3482 IF_KW@5483..5485 "if"
3486 FALSE_EXPR@5632..59283483 WHITESPACE@5485..5486 " "
3487 EXPR_IF_THEN_ELSE@5632..59283484 EXPR_BINARY@5486..5495
3488 IF_KW@5632..5634 "if"3485 LHS_EXPR@5486..5487
3489 WHITESPACE@5634..5635 " "3486 EXPR_VAR@5486..5487
3490 EXPR_UNARY@5635..56603487 NAME@5486..5487
3491 NOT@5635..5636 "!"3488 IDENT@5486..5487 "v"
3492 EXPR_APPLY@5636..56603489 WHITESPACE@5487..5488 " "
3493 EXPR_INDEX@5636..56503490 EQ@5488..5490 "=="
3494 EXPR_VAR@5636..56393491 WHITESPACE@5490..5491 " "
3495 NAME@5636..56393492 EXPR_LITERAL@5491..5495
3496 IDENT@5636..5639 "std"3493 NULL_KW@5491..5495 "null"
3497 DOT@5639..5640 "."3494 WHITESPACE@5495..5496 " "
3498 NAME@5640..56503495 THEN_KW@5496..5500 "then"
3499 IDENT@5640..5650 "isFunction"3496 WHITESPACE@5500..5507 "\n "
3500 ARGS_DESC@5650..56603497 TRUE_EXPR@5507..5513
3501 L_PAREN@5650..5651 "("3498 EXPR_STRING@5507..5513
3502 ARG@5651..56593499 STRING_SINGLE@5507..5513 "'None'"
3503 EXPR_VAR@5651..56593500 COMMA@5513..5514 ","
3504 NAME@5651..56593501 WHITESPACE@5514..5518 "\n\n "
3505 IDENT@5651..5659 "map_func"3502 MEMBER_FIELD@5518..5673
3506 R_PAREN@5659..5660 ")"3503 FIELD_METHOD@5518..5673
3504 FIELD_NAME_FIXED@5518..5536
3505 NAME@5518..5536
3506 IDENT@5518..5536 "manifestPythonVars"
3507 PARAMS_DESC@5536..5542
3508 L_PAREN@5536..5537 "("
3509 PARAM@5537..5541
3510 DESTRUCT_FULL@5537..5541
3511 NAME@5537..5541
3512 IDENT@5537..5541 "conf"
3513 R_PAREN@5541..5542 ")"
3514 COLONCOLON@5542..5544 "::"
3515 WHITESPACE@5544..5549 "\n "
3516 EXPR_LOCAL@5549..5673
3517 LOCAL_KW@5549..5554 "local"
3518 WHITESPACE@5554..5555 " "
3519 BIND_DESTRUCT@5555..5640
3520 DESTRUCT_FULL@5555..5559
3521 NAME@5555..5559
3522 IDENT@5555..5559 "vars"
3523 WHITESPACE@5559..5560 " "
3524 ASSIGN@5560..5561 "="
3525 WHITESPACE@5561..5562 " "
3526 EXPR_ARRAY_COMP@5562..5640
3527 L_BRACK@5562..5563 "["
3528 EXPR_BINARY@5563..5607
3529 LHS_EXPR@5563..5572
3530 EXPR_STRING@5563..5572
3531 STRING_SINGLE@5563..5572 "'%s = %s'"
3532 WHITESPACE@5572..5573 " "
3533 MODULO@5573..5574 "%"
3534 WHITESPACE@5574..5575 " "
3535 EXPR_ARRAY@5575..5607
3536 L_BRACK@5575..5576 "["
3537 EXPR_VAR@5576..5577
3538 NAME@5576..5577
3539 IDENT@5576..5577 "k"
3540 COMMA@5577..5578 ","
3541 WHITESPACE@5578..5579 " "
3542 EXPR_APPLY@5579..5606
3543 EXPR_INDEX@5579..5597
3544 EXPR_VAR@5579..5582
3545 NAME@5579..5582
3546 IDENT@5579..5582 "std"
3547 DOT@5582..5583 "."
3548 NAME@5583..5597
3549 IDENT@5583..5597 "manifestPython"
3550 ARGS_DESC@5597..5606
3551 L_PAREN@5597..5598 "("
3552 ARG@5598..5605
3553 EXPR_INDEX_EXPR@5598..5605
3554 LHS_EXPR@5598..5602
3555 EXPR_VAR@5598..5602
3556 NAME@5598..5602
3557 IDENT@5598..5602 "conf"
3558 L_BRACK@5602..5603 "["
3559 EXPR_VAR@5603..5604
3560 NAME@5603..5604
3561 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..5639
3567 FOR_KW@5608..5611 "for"
3568 WHITESPACE@5611..5612 " "
3569 NAME@5612..5613
3570 IDENT@5612..5613 "k"
3571 WHITESPACE@5613..5614 " "
3572 IN_KW@5614..5616 "in"
3573 WHITESPACE@5616..5617 " "
3574 EXPR_APPLY@5617..5639
3575 EXPR_INDEX@5617..5633
3576 EXPR_VAR@5617..5620
3577 NAME@5617..5620
3578 IDENT@5617..5620 "std"
3579 DOT@5620..5621 "."
3580 NAME@5621..5633
3581 IDENT@5621..5633 "objectFields"
3582 ARGS_DESC@5633..5639
3583 L_PAREN@5633..5634 "("
3584 ARG@5634..5638
3585 EXPR_VAR@5634..5638
3586 NAME@5634..5638
3587 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..5673
3593 EXPR_INDEX@5646..5654
3594 EXPR_VAR@5646..5649
3595 NAME@5646..5649
3596 IDENT@5646..5649 "std"
3597 DOT@5649..5650 "."
3598 NAME@5650..5654
3599 IDENT@5650..5654 "join"
3600 ARGS_DESC@5654..5673
3601 L_PAREN@5654..5655 "("
3602 ARG@5655..5659
3603 EXPR_STRING@5655..5659
3604 STRING_SINGLE@5655..5659 "'\\n'"
3605 COMMA@5659..5660 ","
3507 WHITESPACE@5660..5661 " "3606 WHITESPACE@5660..5661 " "
3508 THEN_KW@5661..5665 "then"3607 ARG@5661..5672
3509 WHITESPACE@5665..5672 "\n "3608 EXPR_BINARY@5661..5672
3510 TRUE_EXPR@5672..57523609 LHS_EXPR@5661..5665
3511 EXPR_ERROR@5672..57523610 EXPR_VAR@5661..5665
3512 ERROR_KW@5672..5677 "error"3611 NAME@5661..5665
3513 WHITESPACE@5677..5678 " "3612 IDENT@5661..5665 "vars"
3514 EXPR_PARENED@5678..57523613 WHITESPACE@5665..5666 " "
3515 L_PAREN@5678..5679 "("3614 PLUS@5666..5667 "+"
3516 EXPR_BINARY@5679..57513615 WHITESPACE@5667..5668 " "
3517 LHS_EXPR@5679..57303616 EXPR_ARRAY@5668..5672
3518 EXPR_STRING@5679..57303617 L_BRACK@5668..5669 "["
3519 STRING_SINGLE@5679..5730 "'std.filterMap second ..."3618 EXPR_STRING@5669..5671
3520 WHITESPACE@5730..5731 " "3619 STRING_SINGLE@5669..5671 "''"
3521 PLUS@5731..5732 "+"3620 R_BRACK@5671..5672 "]"
3522 WHITESPACE@5732..5733 " "3621 R_PAREN@5672..5673 ")"
3523 EXPR_APPLY@5733..57513622 COMMA@5673..5674 ","
3524 EXPR_INDEX@5733..57413623 WHITESPACE@5674..5678 "\n\n "
3525 EXPR_VAR@5733..57363624 MEMBER_FIELD@5678..6345
3526 NAME@5733..57363625 FIELD_METHOD@5678..6345
3527 IDENT@5733..5736 "std"3626 FIELD_NAME_FIXED@5678..5695
3528 DOT@5736..5737 "."3627 NAME@5678..5695
3529 NAME@5737..57413628 IDENT@5678..5695 "manifestXmlJsonml"
3530 IDENT@5737..5741 "type"3629 PARAMS_DESC@5695..5702
3531 ARGS_DESC@5741..57513630 L_PAREN@5695..5696 "("
3532 L_PAREN@5741..5742 "("3631 PARAM@5696..5701
3533 ARG@5742..57503632 DESTRUCT_FULL@5696..5701
3534 EXPR_VAR@5742..57503633 NAME@5696..5701
3535 NAME@5742..57503634 IDENT@5696..5701 "value"
3536 IDENT@5742..5750 "map_func"3635 R_PAREN@5701..5702 ")"
3537 R_PAREN@5750..5751 ")"3636 COLONCOLON@5702..5704 "::"
3538 R_PAREN@5751..5752 ")"3637 WHITESPACE@5704..5709 "\n "
3539 WHITESPACE@5752..5757 "\n "3638 EXPR_IF_THEN_ELSE@5709..6345
3540 ELSE_KW@5757..5761 "else"3639 IF_KW@5709..5711 "if"
3541 WHITESPACE@5761..5762 " "3640 WHITESPACE@5711..5712 " "
3542 FALSE_EXPR@5762..59283641 EXPR_UNARY@5712..5731
3543 EXPR_IF_THEN_ELSE@5762..59283642 NOT@5712..5713 "!"
3544 IF_KW@5762..5764 "if"3643 EXPR_APPLY@5713..5731
3545 WHITESPACE@5764..5765 " "3644 EXPR_INDEX@5713..5724
3546 EXPR_UNARY@5765..57823645 EXPR_VAR@5713..5716
3547 NOT@5765..5766 "!"3646 NAME@5713..5716
3548 EXPR_APPLY@5766..57823647 IDENT@5713..5716 "std"
3549 EXPR_INDEX@5766..57773648 DOT@5716..5717 "."
3550 EXPR_VAR@5766..57693649 NAME@5717..5724
3551 NAME@5766..57693650 IDENT@5717..5724 "isArray"
3552 IDENT@5766..5769 "std"3651 ARGS_DESC@5724..5731
3553 DOT@5769..5770 "."3652 L_PAREN@5724..5725 "("
3554 NAME@5770..57773653 ARG@5725..5730
3555 IDENT@5770..5777 "isArray"3654 EXPR_VAR@5725..5730
3556 ARGS_DESC@5777..57823655 NAME@5725..5730
3557 L_PAREN@5777..5778 "("3656 IDENT@5725..5730 "value"
3558 ARG@5778..57813657 R_PAREN@5730..5731 ")"
3559 EXPR_VAR@5778..57813658 WHITESPACE@5731..5732 " "
3560 NAME@5778..57813659 THEN_KW@5732..5736 "then"
3561 IDENT@5778..5781 "arr"3660 WHITESPACE@5736..5743 "\n "
3562 R_PAREN@5781..5782 ")"3661 TRUE_EXPR@5743..5811
3563 WHITESPACE@5782..5783 " "3662 EXPR_ERROR@5743..5811
3564 THEN_KW@5783..5787 "then"3663 ERROR_KW@5743..5748 "error"
3565 WHITESPACE@5787..5794 "\n "3664 WHITESPACE@5748..5749 " "
3566 TRUE_EXPR@5794..58653665 EXPR_BINARY@5749..5811
3567 EXPR_ERROR@5794..58653666 LHS_EXPR@5749..5793
3568 ERROR_KW@5794..5799 "error"3667 EXPR_STRING@5749..5793
3569 WHITESPACE@5799..5800 " "3668 STRING_SINGLE@5749..5793 "'Expected a JSONML va ..."
3570 EXPR_PARENED@5800..58653669 WHITESPACE@5793..5794 " "
3571 L_PAREN@5800..5801 "("3670 MODULO@5794..5795 "%"
3572 EXPR_BINARY@5801..58643671 WHITESPACE@5795..5796 " "
3573 LHS_EXPR@5801..58483672 EXPR_APPLY@5796..5811
3574 EXPR_STRING@5801..58483673 EXPR_INDEX@5796..5804
3575 STRING_SINGLE@5801..5848 "'std.filterMap third ..."3674 EXPR_VAR@5796..5799
3576 WHITESPACE@5848..5849 " "3675 NAME@5796..5799
3577 PLUS@5849..5850 "+"3676 IDENT@5796..5799 "std"
3578 WHITESPACE@5850..5851 " "3677 DOT@5799..5800 "."
3579 EXPR_APPLY@5851..58643678 NAME@5800..5804
3580 EXPR_INDEX@5851..58593679 IDENT@5800..5804 "type"
3581 EXPR_VAR@5851..58543680 ARGS_DESC@5804..5811
3582 NAME@5851..58543681 L_PAREN@5804..5805 "("
3583 IDENT@5851..5854 "std"3682 ARG@5805..5810
3584 DOT@5854..5855 "."3683 EXPR_VAR@5805..5810
3585 NAME@5855..58593684 NAME@5805..5810
3586 IDENT@5855..5859 "type"3685 IDENT@5805..5810 "value"
3587 ARGS_DESC@5859..58643686 R_PAREN@5810..5811 ")"
3588 L_PAREN@5859..5860 "("3687 WHITESPACE@5811..5816 "\n "
3589 ARG@5860..58633688 ELSE_KW@5816..5820 "else"
3590 EXPR_VAR@5860..58633689 WHITESPACE@5820..5827 "\n "
3591 NAME@5860..58633690 FALSE_EXPR@5827..6345
3592 IDENT@5860..5863 "arr"3691 EXPR_LOCAL@5827..6345
3593 R_PAREN@5863..5864 ")"3692 LOCAL_KW@5827..5832 "local"
3594 R_PAREN@5864..5865 ")"3693 WHITESPACE@5832..5833 " "
3595 WHITESPACE@5865..5870 "\n "3694 BIND_FUNCTION@5833..6326
3596 ELSE_KW@5870..5874 "else"3695 NAME@5833..5836
3597 WHITESPACE@5874..5881 "\n "3696 IDENT@5833..5836 "aux"
3598 FALSE_EXPR@5881..59283697 PARAMS_DESC@5836..5839
3599 EXPR_APPLY@5881..59283698 L_PAREN@5836..5837 "("
3600 EXPR_INDEX@5881..58883699 PARAM@5837..5838
3601 EXPR_VAR@5881..58843700 DESTRUCT_FULL@5837..5838
3602 NAME@5881..58843701 NAME@5837..5838
3603 IDENT@5881..5884 "std"3702 IDENT@5837..5838 "v"
3604 DOT@5884..5885 "."3703 R_PAREN@5838..5839 ")"
3605 NAME@5885..58883704 WHITESPACE@5839..5840 " "
3606 IDENT@5885..5888 "map"3705 ASSIGN@5840..5841 "="
3607 ARGS_DESC@5888..59283706 WHITESPACE@5841..5850 "\n "
3608 L_PAREN@5888..5889 "("3707 EXPR_IF_THEN_ELSE@5850..6326
3609 ARG@5889..58973708 IF_KW@5850..5852 "if"
3610 EXPR_VAR@5889..58973709 WHITESPACE@5852..5853 " "
3611 NAME@5889..58973710 EXPR_APPLY@5853..5868
3612 IDENT@5889..5897 "map_func"3711 EXPR_INDEX@5853..5865
3613 COMMA@5897..5898 ","3712 EXPR_VAR@5853..5856
3614 WHITESPACE@5898..5899 " "3713 NAME@5853..5856
3615 ARG@5899..59273714 IDENT@5853..5856 "std"
3616 EXPR_APPLY@5899..59273715 DOT@5856..5857 "."
3617 EXPR_INDEX@5899..59093716 NAME@5857..5865
3618 EXPR_VAR@5899..59023717 IDENT@5857..5865 "isString"
3619 NAME@5899..59023718 ARGS_DESC@5865..5868
3620 IDENT@5899..5902 "std"3719 L_PAREN@5865..5866 "("
3621 DOT@5902..5903 "."3720 ARG@5866..5867
3622 NAME@5903..59093721 EXPR_VAR@5866..5867
3623 IDENT@5903..5909 "filter"3722 NAME@5866..5867
3624 ARGS_DESC@5909..59273723 IDENT@5866..5867 "v"
3625 L_PAREN@5909..5910 "("3724 R_PAREN@5867..5868 ")"
3626 ARG@5910..59213725 WHITESPACE@5868..5869 " "
3627 EXPR_VAR@5910..59213726 THEN_KW@5869..5873 "then"
3628 NAME@5910..59213727 WHITESPACE@5873..5884 "\n "
3629 IDENT@5910..5921 "filter_func"3728 TRUE_EXPR@5884..5885
3630 COMMA@5921..5922 ","3729 EXPR_VAR@5884..5885
3631 WHITESPACE@5922..5923 " "3730 NAME@5884..5885
3632 ARG@5923..59263731 IDENT@5884..5885 "v"
3633 EXPR_VAR@5923..59263732 WHITESPACE@5885..5894 "\n "
3634 NAME@5923..59263733 ELSE_KW@5894..5898 "else"
3635 IDENT@5923..5926 "arr"3734 WHITESPACE@5898..5909 "\n "
3636 R_PAREN@5926..5927 ")"3735 FALSE_EXPR@5909..6326
3637 R_PAREN@5927..5928 ")"3736 EXPR_LOCAL@5909..6326
3638 COMMA@5928..5929 ","3737 LOCAL_KW@5909..5914 "local"
3639 WHITESPACE@5929..5933 "\n\n "3738 WHITESPACE@5914..5915 " "
3640 MEMBER_FIELD@5933..60413739 BIND_DESTRUCT@5915..5925
3641 FIELD_METHOD@5933..60413740 DESTRUCT_FULL@5915..5918
3642 FIELD_NAME_FIXED@5933..59443741 NAME@5915..5918
3643 NAME@5933..59443742 IDENT@5915..5918 "tag"
3644 IDENT@5933..5944 "assertEqual"3743 WHITESPACE@5918..5919 " "
3645 PARAMS_DESC@5944..59503744 ASSIGN@5919..5920 "="
3646 L_PAREN@5944..5945 "("3745 WHITESPACE@5920..5921 " "
3647 PARAM@5945..59463746 EXPR_INDEX_EXPR@5921..5925
3648 DESTRUCT_FULL@5945..59463747 LHS_EXPR@5921..5922
3649 NAME@5945..59463748 EXPR_VAR@5921..5922
3650 IDENT@5945..5946 "a"3749 NAME@5921..5922
3651 COMMA@5946..5947 ","3750 IDENT@5921..5922 "v"
3652 WHITESPACE@5947..5948 " "3751 L_BRACK@5922..5923 "["
3653 PARAM@5948..59493752 EXPR_NUMBER@5923..5924
3654 DESTRUCT_FULL@5948..59493753 FLOAT@5923..5924 "0"
3655 NAME@5948..59493754 R_BRACK@5924..5925 "]"
3656 IDENT@5948..5949 "b"3755 SEMI@5925..5926 ";"
3657 R_PAREN@5949..5950 ")"3756 WHITESPACE@5926..5937 "\n "
3658 COLONCOLON@5950..5952 "::"3757 EXPR_LOCAL@5937..6326
3659 WHITESPACE@5952..5957 "\n "3758 LOCAL_KW@5937..5942 "local"
3660 EXPR_IF_THEN_ELSE@5957..60413759 WHITESPACE@5942..5943 " "
3661 IF_KW@5957..5959 "if"3760 BIND_DESTRUCT@5943..5994
3662 WHITESPACE@5959..5960 " "3761 DESTRUCT_FULL@5943..5952
3663 EXPR_BINARY@5960..59663762 NAME@5943..5952
3664 LHS_EXPR@5960..59613763 IDENT@5943..5952 "has_attrs"
3665 EXPR_VAR@5960..59613764 WHITESPACE@5952..5953 " "
3666 NAME@5960..59613765 ASSIGN@5953..5954 "="
3667 IDENT@5960..5961 "a"3766 WHITESPACE@5954..5955 " "
3668 WHITESPACE@5961..5962 " "3767 EXPR_BINARY@5955..5994
3669 EQ@5962..5964 "=="3768 LHS_EXPR@5955..5972
3670 WHITESPACE@5964..5965 " "3769 EXPR_BINARY@5955..5972
3671 EXPR_VAR@5965..59663770 LHS_EXPR@5955..5968
3672 NAME@5965..59663771 EXPR_APPLY@5955..5968
3673 IDENT@5965..5966 "b"3772 EXPR_INDEX@5955..5965
3674 WHITESPACE@5966..5967 " "3773 EXPR_VAR@5955..5958
3675 THEN_KW@5967..5971 "then"3774 NAME@5955..5958
3676 WHITESPACE@5971..5978 "\n "3775 IDENT@5955..5958 "std"
3677 TRUE_EXPR@5978..59823776 DOT@5958..5959 "."
3678 EXPR_LITERAL@5978..59823777 NAME@5959..5965
3679 TRUE_KW@5978..5982 "true"3778 IDENT@5959..5965 "length"
3680 WHITESPACE@5982..5987 "\n "3779 ARGS_DESC@5965..5968
3681 ELSE_KW@5987..5991 "else"3780 L_PAREN@5965..5966 "("
3682 WHITESPACE@5991..5998 "\n "3781 ARG@5966..5967
3683 FALSE_EXPR@5998..60413782 EXPR_VAR@5966..5967
3684 EXPR_ERROR@5998..60413783 NAME@5966..5967
3685 ERROR_KW@5998..6003 "error"3784 IDENT@5966..5967 "v"
3686 WHITESPACE@6003..6004 " "3785 R_PAREN@5967..5968 ")"
3687 EXPR_BINARY@6004..60413786 WHITESPACE@5968..5969 " "
3688 LHS_EXPR@6004..60373787 GT@5969..5970 ">"
3689 EXPR_BINARY@6004..60373788 WHITESPACE@5970..5971 " "
3690 LHS_EXPR@6004..60283789 EXPR_NUMBER@5971..5972
3691 EXPR_BINARY@6004..60283790 FLOAT@5971..5972 "1"
3692 LHS_EXPR@6004..60243791 WHITESPACE@5972..5973 " "
3693 EXPR_STRING@6004..60243792 AND@5973..5975 "&&"
3694 STRING_SINGLE@6004..6024 "'Assertion failed. '"3793 WHITESPACE@5975..5976 " "
3695 WHITESPACE@6024..6025 " "3794 EXPR_APPLY@5976..5994
3696 PLUS@6025..6026 "+"3795 EXPR_INDEX@5976..5988
3697 WHITESPACE@6026..6027 " "3796 EXPR_VAR@5976..5979
3698 EXPR_VAR@6027..60283797 NAME@5976..5979
3699 NAME@6027..60283798 IDENT@5976..5979 "std"
3700 IDENT@6027..6028 "a"3799 DOT@5979..5980 "."
3701 WHITESPACE@6028..6029 " "3800 NAME@5980..5988
3702 PLUS@6029..6030 "+"3801 IDENT@5980..5988 "isObject"
3703 WHITESPACE@6030..6031 " "3802 ARGS_DESC@5988..5994
3704 EXPR_STRING@6031..60373803 L_PAREN@5988..5989 "("
3705 STRING_SINGLE@6031..6037 "' != '"3804 ARG@5989..5993
3706 WHITESPACE@6037..6038 " "3805 EXPR_INDEX_EXPR@5989..5993
3707 PLUS@6038..6039 "+"3806 LHS_EXPR@5989..5990
3708 WHITESPACE@6039..6040 " "3807 EXPR_VAR@5989..5990
3709 EXPR_VAR@6040..60413808 NAME@5989..5990
3710 NAME@6040..60413809 IDENT@5989..5990 "v"
3711 IDENT@6040..6041 "b"3810 L_BRACK@5990..5991 "["
3712 COMMA@6041..6042 ","3811 EXPR_NUMBER@5991..5992
3713 WHITESPACE@6042..6046 "\n\n "3812 FLOAT@5991..5992 "1"
3714 MEMBER_FIELD@6046..61803813 R_BRACK@5992..5993 "]"
3715 FIELD_METHOD@6046..61803814 R_PAREN@5993..5994 ")"
3716 FIELD_NAME_FIXED@6046..60493815 SEMI@5994..5995 ";"
3717 NAME@6046..60493816 WHITESPACE@5995..6006 "\n "
3718 IDENT@6046..6049 "abs"3817 EXPR_LOCAL@6006..6326
3719 PARAMS_DESC@6049..60523818 LOCAL_KW@6006..6011 "local"
3720 L_PAREN@6049..6050 "("3819 WHITESPACE@6011..6012 " "
3721 PARAM@6050..60513820 BIND_DESTRUCT@6012..6050
3722 DESTRUCT_FULL@6050..60513821 DESTRUCT_FULL@6012..6017
3723 NAME@6050..60513822 NAME@6012..6017
3724 IDENT@6050..6051 "n"3823 IDENT@6012..6017 "attrs"
3725 R_PAREN@6051..6052 ")"3824 WHITESPACE@6017..6018 " "
3726 COLONCOLON@6052..6054 "::"3825 ASSIGN@6018..6019 "="
3727 WHITESPACE@6054..6059 "\n "3826 WHITESPACE@6019..6020 " "
3728 EXPR_IF_THEN_ELSE@6059..61803827 EXPR_IF_THEN_ELSE@6020..6050
3729 IF_KW@6059..6061 "if"3828 IF_KW@6020..6022 "if"
3730 WHITESPACE@6061..6062 " "3829 WHITESPACE@6022..6023 " "
3731 EXPR_UNARY@6062..60783830 EXPR_VAR@6023..6032
3732 NOT@6062..6063 "!"3831 NAME@6023..6032
3733 EXPR_APPLY@6063..60783832 IDENT@6023..6032 "has_attrs"
3734 EXPR_INDEX@6063..60753833 WHITESPACE@6032..6033 " "
3735 EXPR_VAR@6063..60663834 THEN_KW@6033..6037 "then"
3736 NAME@6063..60663835 WHITESPACE@6037..6038 " "
3737 IDENT@6063..6066 "std"3836 TRUE_EXPR@6038..6042
3738 DOT@6066..6067 "."3837 EXPR_INDEX_EXPR@6038..6042
3739 NAME@6067..60753838 LHS_EXPR@6038..6039
3740 IDENT@6067..6075 "isNumber"3839 EXPR_VAR@6038..6039
3741 ARGS_DESC@6075..60783840 NAME@6038..6039
3742 L_PAREN@6075..6076 "("3841 IDENT@6038..6039 "v"
3743 ARG@6076..60773842 L_BRACK@6039..6040 "["
3744 EXPR_VAR@6076..60773843 EXPR_NUMBER@6040..6041
3745 NAME@6076..60773844 FLOAT@6040..6041 "1"
3746 IDENT@6076..6077 "n"3845 R_BRACK@6041..6042 "]"
3747 R_PAREN@6077..6078 ")"3846 WHITESPACE@6042..6043 " "
3748 WHITESPACE@6078..6079 " "3847 ELSE_KW@6043..6047 "else"
3749 THEN_KW@6079..6083 "then"3848 WHITESPACE@6047..6048 " "
3750 WHITESPACE@6083..6090 "\n "3849 FALSE_EXPR@6048..6050
3751 TRUE_EXPR@6090..61413850 EXPR_OBJECT@6048..6050
3752 EXPR_ERROR@6090..61413851 OBJ_BODY_MEMBER_LIST@6048..6050
3753 ERROR_KW@6090..6095 "error"3852 L_BRACE@6048..6049 "{"
3754 WHITESPACE@6095..6096 " "3853 R_BRACE@6049..6050 "}"
3755 EXPR_BINARY@6096..61413854 SEMI@6050..6051 ";"
3756 LHS_EXPR@6096..61273855 WHITESPACE@6051..6062 "\n "
3757 EXPR_STRING@6096..61273856 EXPR_LOCAL@6062..6326
3758 STRING_SINGLE@6096..6127 "'std.abs expected num ..."3857 LOCAL_KW@6062..6067 "local"
3759 WHITESPACE@6127..6128 " "3858 WHITESPACE@6067..6068 " "
3760 PLUS@6128..6129 "+"3859 BIND_DESTRUCT@6068..6113
3761 WHITESPACE@6129..6130 " "3860 DESTRUCT_FULL@6068..6076
3762 EXPR_APPLY@6130..61413861 NAME@6068..6076
3763 EXPR_INDEX@6130..61383862 IDENT@6068..6076 "children"
3764 EXPR_VAR@6130..61333863 WHITESPACE@6076..6077 " "
3765 NAME@6130..61333864 ASSIGN@6077..6078 "="
3766 IDENT@6130..6133 "std"3865 WHITESPACE@6078..6079 " "
3767 DOT@6133..6134 "."3866 EXPR_IF_THEN_ELSE@6079..6113
3768 NAME@6134..61383867 IF_KW@6079..6081 "if"
3769 IDENT@6134..6138 "type"3868 WHITESPACE@6081..6082 " "
3770 ARGS_DESC@6138..61413869 EXPR_VAR@6082..6091
3771 L_PAREN@6138..6139 "("3870 NAME@6082..6091
3772 ARG@6139..61403871 IDENT@6082..6091 "has_attrs"
3773 EXPR_VAR@6139..61403872 WHITESPACE@6091..6092 " "
3774 NAME@6139..61403873 THEN_KW@6092..6096 "then"
3775 IDENT@6139..6140 "n"3874 WHITESPACE@6096..6097 " "
3776 R_PAREN@6140..6141 ")"3875 TRUE_EXPR@6097..6102
3777 WHITESPACE@6141..6146 "\n "3876 EXPR_SLICE@6097..6102
3778 ELSE_KW@6146..6150 "else"3877 EXPR_VAR@6097..6098
3779 WHITESPACE@6150..6157 "\n "3878 NAME@6097..6098
3780 FALSE_EXPR@6157..61803879 IDENT@6097..6098 "v"
3781 EXPR_IF_THEN_ELSE@6157..61803880 SLICE_DESC@6098..6102
3782 IF_KW@6157..6159 "if"3881 L_BRACK@6098..6099 "["
3783 WHITESPACE@6159..6160 " "3882 EXPR_NUMBER@6099..6100
3784 EXPR_BINARY@6160..61653883 FLOAT@6099..6100 "2"
3785 LHS_EXPR@6160..61613884 COLON@6100..6101 ":"
3786 EXPR_VAR@6160..61613885 R_BRACK@6101..6102 "]"
3787 NAME@6160..61613886 WHITESPACE@6102..6103 " "
3788 IDENT@6160..6161 "n"3887 ELSE_KW@6103..6107 "else"
3789 WHITESPACE@6161..6162 " "3888 WHITESPACE@6107..6108 " "
3790 GT@6162..6163 ">"3889 FALSE_EXPR@6108..6113
3791 WHITESPACE@6163..6164 " "3890 EXPR_SLICE@6108..6113
3792 EXPR_NUMBER@6164..61653891 EXPR_VAR@6108..6109
3793 FLOAT@6164..6165 "0"3892 NAME@6108..6109
3794 WHITESPACE@6165..6166 " "3893 IDENT@6108..6109 "v"
3795 THEN_KW@6166..6170 "then"3894 SLICE_DESC@6109..6113
3796 WHITESPACE@6170..6171 " "3895 L_BRACK@6109..6110 "["
3797 TRUE_EXPR@6171..61723896 EXPR_NUMBER@6110..6111
3798 EXPR_VAR@6171..61723897 FLOAT@6110..6111 "1"
3799 NAME@6171..61723898 COLON@6111..6112 ":"
3800 IDENT@6171..6172 "n"3899 R_BRACK@6112..6113 "]"
3801 WHITESPACE@6172..6173 " "3900 SEMI@6113..6114 ";"
3802 ELSE_KW@6173..6177 "else"3901 WHITESPACE@6114..6125 "\n "
3803 WHITESPACE@6177..6178 " "3902 EXPR_LOCAL@6125..6326
3804 FALSE_EXPR@6178..61803903 LOCAL_KW@6125..6130 "local"
3805 EXPR_UNARY@6178..61803904 WHITESPACE@6130..6131 " "
3806 MINUS@6178..6179 "-"3905 BIND_DESTRUCT@6131..6230
3807 EXPR_VAR@6179..61803906 DESTRUCT_FULL@6131..6140
3808 NAME@6179..61803907 NAME@6131..6140
3809 IDENT@6179..6180 "n"3908 IDENT@6131..6140 "attrs_str"
3810 COMMA@6180..6181 ","3909 WHITESPACE@6140..6141 " "
3811 WHITESPACE@6181..6185 "\n\n "3910 ASSIGN@6141..6142 "="
3812 MEMBER_FIELD@6185..63703911 WHITESPACE@6142..6155 "\n "
3813 FIELD_METHOD@6185..63703912 EXPR_APPLY@6155..6230
3814 FIELD_NAME_FIXED@6185..61893913 EXPR_INDEX@6155..6163
3815 NAME@6185..61893914 EXPR_VAR@6155..6158
3816 IDENT@6185..6189 "sign"3915 NAME@6155..6158
3817 PARAMS_DESC@6189..61923916 IDENT@6155..6158 "std"
3818 L_PAREN@6189..6190 "("3917 DOT@6158..6159 "."
3819 PARAM@6190..61913918 NAME@6159..6163
3820 DESTRUCT_FULL@6190..61913919 IDENT@6159..6163 "join"
3821 NAME@6190..61913920 ARGS_DESC@6163..6230
3822 IDENT@6190..6191 "n"3921 L_PAREN@6163..6164 "("
3823 R_PAREN@6191..6192 ")"3922 ARG@6164..6166
3824 COLONCOLON@6192..6194 "::"3923 EXPR_STRING@6164..6166
3825 WHITESPACE@6194..6199 "\n "3924 STRING_SINGLE@6164..6166 "''"
3826 EXPR_IF_THEN_ELSE@6199..63703925 COMMA@6166..6167 ","
3827 IF_KW@6199..6201 "if"3926 WHITESPACE@6167..6168 " "
3828 WHITESPACE@6201..6202 " "3927 ARG@6168..6229
3829 EXPR_UNARY@6202..62183928 EXPR_ARRAY_COMP@6168..6229
3830 NOT@6202..6203 "!"3929 L_BRACK@6168..6169 "["
3831 EXPR_APPLY@6203..62183930 EXPR_BINARY@6169..6195
3832 EXPR_INDEX@6203..62153931 LHS_EXPR@6169..6179
3833 EXPR_VAR@6203..62063932 EXPR_STRING@6169..6179
3834 NAME@6203..62063933 STRING_SINGLE@6169..6179 "' %s=\"%s\"'"
3835 IDENT@6203..6206 "std"3934 WHITESPACE@6179..6180 " "
3836 DOT@6206..6207 "."3935 MODULO@6180..6181 "%"
3837 NAME@6207..62153936 WHITESPACE@6181..6182 " "
3838 IDENT@6207..6215 "isNumber"3937 EXPR_ARRAY@6182..6195
3839 ARGS_DESC@6215..62183938 L_BRACK@6182..6183 "["
3840 L_PAREN@6215..6216 "("3939 EXPR_VAR@6183..6184
3841 ARG@6216..62173940 NAME@6183..6184
3842 EXPR_VAR@6216..62173941 IDENT@6183..6184 "k"
3843 NAME@6216..62173942 COMMA@6184..6185 ","
3844 IDENT@6216..6217 "n"3943 WHITESPACE@6185..6186 " "
3845 R_PAREN@6217..6218 ")"3944 EXPR_INDEX_EXPR@6186..6194
3846 WHITESPACE@6218..6219 " "3945 LHS_EXPR@6186..6191
3847 THEN_KW@6219..6223 "then"3946 EXPR_VAR@6186..6191
3848 WHITESPACE@6223..6230 "\n "3947 NAME@6186..6191
3849 TRUE_EXPR@6230..62823948 IDENT@6186..6191 "attrs"
3850 EXPR_ERROR@6230..62823949 L_BRACK@6191..6192 "["
3851 ERROR_KW@6230..6235 "error"3950 EXPR_VAR@6192..6193
3852 WHITESPACE@6235..6236 " "3951 NAME@6192..6193
3853 EXPR_BINARY@6236..62823952 IDENT@6192..6193 "k"
3854 LHS_EXPR@6236..62683953 R_BRACK@6193..6194 "]"
3855 EXPR_STRING@6236..62683954 R_BRACK@6194..6195 "]"
3856 STRING_SINGLE@6236..6268 "'std.sign expected nu ..."3955 WHITESPACE@6195..6196 " "
3857 WHITESPACE@6268..6269 " "3956 FOR_SPEC@6196..6228
3858 PLUS@6269..6270 "+"3957 FOR_KW@6196..6199 "for"
3859 WHITESPACE@6270..6271 " "3958 WHITESPACE@6199..6200 " "
3860 EXPR_APPLY@6271..62823959 NAME@6200..6201
3861 EXPR_INDEX@6271..62793960 IDENT@6200..6201 "k"
3862 EXPR_VAR@6271..62743961 WHITESPACE@6201..6202 " "
3863 NAME@6271..62743962 IN_KW@6202..6204 "in"
3864 IDENT@6271..6274 "std"3963 WHITESPACE@6204..6205 " "
3865 DOT@6274..6275 "."3964 EXPR_APPLY@6205..6228
3866 NAME@6275..62793965 EXPR_INDEX@6205..6221
3867 IDENT@6275..6279 "type"3966 EXPR_VAR@6205..6208
3868 ARGS_DESC@6279..62823967 NAME@6205..6208
3869 L_PAREN@6279..6280 "("3968 IDENT@6205..6208 "std"
3870 ARG@6280..62813969 DOT@6208..6209 "."
3871 EXPR_VAR@6280..62813970 NAME@6209..6221
3872 NAME@6280..62813971 IDENT@6209..6221 "objectFields"
3873 IDENT@6280..6281 "n"3972 ARGS_DESC@6221..6228
3874 R_PAREN@6281..6282 ")"3973 L_PAREN@6221..6222 "("
3875 WHITESPACE@6282..6287 "\n "3974 ARG@6222..6227
3876 ELSE_KW@6287..6291 "else"3975 EXPR_VAR@6222..6227
3877 WHITESPACE@6291..6298 "\n "3976 NAME@6222..6227
3878 FALSE_EXPR@6298..63703977 IDENT@6222..6227 "attrs"
3879 EXPR_IF_THEN_ELSE@6298..63703978 R_PAREN@6227..6228 ")"
3880 IF_KW@6298..6300 "if"3979 R_BRACK@6228..6229 "]"
3881 WHITESPACE@6300..6301 " "3980 R_PAREN@6229..6230 ")"
3882 EXPR_BINARY@6301..63063981 SEMI@6230..6231 ";"
3883 LHS_EXPR@6301..63023982 WHITESPACE@6231..6242 "\n "
3884 EXPR_VAR@6301..63023983 EXPR_APPLY@6242..6326
3885 NAME@6301..63023984 EXPR_INDEX@6242..6254
3886 IDENT@6301..6302 "n"3985 EXPR_VAR@6242..6245
3887 WHITESPACE@6302..6303 " "3986 NAME@6242..6245
3888 GT@6303..6304 ">"3987 IDENT@6242..6245 "std"
3889 WHITESPACE@6304..6305 " "3988 DOT@6245..6246 "."
3890 EXPR_NUMBER@6305..63063989 NAME@6246..6254
3891 FLOAT@6305..6306 "0"3990 IDENT@6246..6254 "deepJoin"
3892 WHITESPACE@6306..6307 " "3991 ARGS_DESC@6254..6326
3893 THEN_KW@6307..6311 "then"3992 L_PAREN@6254..6255 "("
3894 WHITESPACE@6311..6320 "\n "3993 ARG@6255..6325
3895 TRUE_EXPR@6320..63213994 EXPR_ARRAY@6255..6325
3896 EXPR_NUMBER@6320..63213995 L_BRACK@6255..6256 "["
3897 FLOAT@6320..6321 "1"3996 EXPR_STRING@6256..6259
3898 WHITESPACE@6321..6328 "\n "3997 STRING_SINGLE@6256..6259 "'<'"
3899 ELSE_KW@6328..6332 "else"3998 COMMA@6259..6260 ","
3900 WHITESPACE@6332..6333 " "3999 WHITESPACE@6260..6261 " "
3901 FALSE_EXPR@6333..63704000 EXPR_VAR@6261..6264
3902 EXPR_IF_THEN_ELSE@6333..63704001 NAME@6261..6264
3903 IF_KW@6333..6335 "if"4002 IDENT@6261..6264 "tag"
3904 WHITESPACE@6335..6336 " "4003 COMMA@6264..6265 ","
3905 EXPR_BINARY@6336..63414004 WHITESPACE@6265..6266 " "
3906 LHS_EXPR@6336..63374005 EXPR_VAR@6266..6275
3907 EXPR_VAR@6336..63374006 NAME@6266..6275
3908 NAME@6336..63374007 IDENT@6266..6275 "attrs_str"
3909 IDENT@6336..6337 "n"4008 COMMA@6275..6276 ","
3910 WHITESPACE@6337..6338 " "4009 WHITESPACE@6276..6277 " "
3911 LT@6338..6339 "<"4010 EXPR_STRING@6277..6280
3912 WHITESPACE@6339..6340 " "4011 STRING_SINGLE@6277..6280 "'>'"
3913 EXPR_NUMBER@6340..63414012 COMMA@6280..6281 ","
3914 FLOAT@6340..6341 "0"4013 WHITESPACE@6281..6282 " "
3915 WHITESPACE@6341..6342 " "4014 EXPR_ARRAY_COMP@6282..6308
3916 THEN_KW@6342..6346 "then"4015 L_BRACK@6282..6283 "["
3917 WHITESPACE@6346..6355 "\n "4016 EXPR_APPLY@6283..6289
3918 TRUE_EXPR@6355..63574017 EXPR_VAR@6283..6286
3919 EXPR_UNARY@6355..63574018 NAME@6283..6286
3920 MINUS@6355..6356 "-"4019 IDENT@6283..6286 "aux"
3921 EXPR_NUMBER@6356..63574020 ARGS_DESC@6286..6289
3922 FLOAT@6356..6357 "1"4021 L_PAREN@6286..6287 "("
3923 WHITESPACE@6357..6364 "\n "4022 ARG@6287..6288
3924 ELSE_KW@6364..6368 "else"4023 EXPR_VAR@6287..6288
3925 WHITESPACE@6368..6369 " "4024 NAME@6287..6288
3926 FALSE_EXPR@6369..63704025 IDENT@6287..6288 "x"
3927 EXPR_NUMBER@6369..63704026 R_PAREN@6288..6289 ")"
3928 FLOAT@6369..6370 "0"4027 WHITESPACE@6289..6290 " "
3929 COMMA@6370..6371 ","4028 FOR_SPEC@6290..6307
3930 WHITESPACE@6371..6375 "\n\n "4029 FOR_KW@6290..6293 "for"
3931 MEMBER_FIELD@6375..66284030 WHITESPACE@6293..6294 " "
3932 FIELD_METHOD@6375..66284031 NAME@6294..6295
3933 FIELD_NAME_FIXED@6375..63784032 IDENT@6294..6295 "x"
3934 NAME@6375..63784033 WHITESPACE@6295..6296 " "
3935 IDENT@6375..6378 "max"4034 IN_KW@6296..6298 "in"
3936 PARAMS_DESC@6378..63844035 WHITESPACE@6298..6299 " "
3937 L_PAREN@6378..6379 "("4036 EXPR_VAR@6299..6307
3938 PARAM@6379..63804037 NAME@6299..6307
3939 DESTRUCT_FULL@6379..63804038 IDENT@6299..6307 "children"
3940 NAME@6379..63804039 R_BRACK@6307..6308 "]"
3941 IDENT@6379..6380 "a"4040 COMMA@6308..6309 ","
3942 COMMA@6380..6381 ","4041 WHITESPACE@6309..6310 " "
3943 WHITESPACE@6381..6382 " "4042 EXPR_STRING@6310..6314
3944 PARAM@6382..63834043 STRING_SINGLE@6310..6314 "'</'"
3945 DESTRUCT_FULL@6382..63834044 COMMA@6314..6315 ","
3946 NAME@6382..63834045 WHITESPACE@6315..6316 " "
3947 IDENT@6382..6383 "b"4046 EXPR_VAR@6316..6319
3948 R_PAREN@6383..6384 ")"4047 NAME@6316..6319
3949 COLONCOLON@6384..6386 "::"4048 IDENT@6316..6319 "tag"
3950 WHITESPACE@6386..6391 "\n "4049 COMMA@6319..6320 ","
3951 EXPR_IF_THEN_ELSE@6391..66284050 WHITESPACE@6320..6321 " "
3952 IF_KW@6391..6393 "if"4051 EXPR_STRING@6321..6324
3953 WHITESPACE@6393..6394 " "4052 STRING_SINGLE@6321..6324 "'>'"
3954 EXPR_UNARY@6394..64104053 R_BRACK@6324..6325 "]"
3955 NOT@6394..6395 "!"4054 R_PAREN@6325..6326 ")"
3956 EXPR_APPLY@6395..64104055 SEMI@6326..6327 ";"
3957 EXPR_INDEX@6395..64074056 WHITESPACE@6327..6335 "\n\n "
3958 EXPR_VAR@6395..63984057 EXPR_APPLY@6335..6345
3959 NAME@6395..63984058 EXPR_VAR@6335..6338
3960 IDENT@6395..6398 "std"4059 NAME@6335..6338
3961 DOT@6398..6399 "."4060 IDENT@6335..6338 "aux"
3962 NAME@6399..64074061 ARGS_DESC@6338..6345
3963 IDENT@6399..6407 "isNumber"4062 L_PAREN@6338..6339 "("
3964 ARGS_DESC@6407..64104063 ARG@6339..6344
3965 L_PAREN@6407..6408 "("4064 EXPR_VAR@6339..6344
3966 ARG@6408..64094065 NAME@6339..6344
3967 EXPR_VAR@6408..64094066 IDENT@6339..6344 "value"
3968 NAME@6408..64094067 R_PAREN@6344..6345 ")"
3969 IDENT@6408..6409 "a"4068 COMMA@6345..6346 ","
3970 R_PAREN@6409..6410 ")"4069 WHITESPACE@6346..6350 "\n\n "
3971 WHITESPACE@6410..6411 " "4070 MEMBER_FIELD@6350..6556
3972 THEN_KW@6411..6415 "then"4071 FIELD_METHOD@6350..6556
3973 WHITESPACE@6415..6422 "\n "4072 FIELD_NAME_FIXED@6350..6354
3974 TRUE_EXPR@6422..64854073 NAME@6350..6354
3975 EXPR_ERROR@6422..64854074 IDENT@6350..6354 "uniq"
3976 ERROR_KW@6422..6427 "error"4075 PARAMS_DESC@6354..6368
3977 WHITESPACE@6427..6428 " "4076 L_PAREN@6354..6355 "("
3978 EXPR_BINARY@6428..64854077 PARAM@6355..6358
3979 LHS_EXPR@6428..64714078 DESTRUCT_FULL@6355..6358
3980 EXPR_STRING@6428..64714079 NAME@6355..6358
3981 STRING_SINGLE@6428..6471 "'std.max first param ..."4080 IDENT@6355..6358 "arr"
3982 WHITESPACE@6471..6472 " "4081 COMMA@6358..6359 ","
3983 PLUS@6472..6473 "+"4082 WHITESPACE@6359..6360 " "
3984 WHITESPACE@6473..6474 " "4083 PARAM@6360..6367
3985 EXPR_APPLY@6474..64854084 DESTRUCT_FULL@6360..6364
3986 EXPR_INDEX@6474..64824085 NAME@6360..6364
3987 EXPR_VAR@6474..64774086 IDENT@6360..6364 "keyF"
3988 NAME@6474..64774087 ASSIGN@6364..6365 "="
3989 IDENT@6474..6477 "std"4088 EXPR_VAR@6365..6367
3990 DOT@6477..6478 "."4089 NAME@6365..6367
3991 NAME@6478..64824090 IDENT@6365..6367 "id"
3992 IDENT@6478..6482 "type"4091 R_PAREN@6367..6368 ")"
3993 ARGS_DESC@6482..64854092 COLONCOLON@6368..6370 "::"
3994 L_PAREN@6482..6483 "("4093 WHITESPACE@6370..6375 "\n "
3995 ARG@6483..64844094 EXPR_LOCAL@6375..6556
3996 EXPR_VAR@6483..64844095 LOCAL_KW@6375..6380 "local"
3997 NAME@6483..64844096 WHITESPACE@6380..6381 " "
3998 IDENT@6483..6484 "a"4097 BIND_FUNCTION@6381..6529
3999 R_PAREN@6484..6485 ")"4098 NAME@6381..6382
4000 WHITESPACE@6485..6490 "\n "4099 IDENT@6381..6382 "f"
4001 ELSE_KW@6490..6494 "else"4100 PARAMS_DESC@6382..6388
4002 WHITESPACE@6494..6495 " "4101 L_PAREN@6382..6383 "("
4003 FALSE_EXPR@6495..66284102 PARAM@6383..6384
4004 EXPR_IF_THEN_ELSE@6495..66284103 DESTRUCT_FULL@6383..6384
4005 IF_KW@6495..6497 "if"4104 NAME@6383..6384
4006 WHITESPACE@6497..6498 " "4105 IDENT@6383..6384 "a"
4007 EXPR_UNARY@6498..65144106 COMMA@6384..6385 ","
4008 NOT@6498..6499 "!"4107 WHITESPACE@6385..6386 " "
4009 EXPR_APPLY@6499..65144108 PARAM@6386..6387
4010 EXPR_INDEX@6499..65114109 DESTRUCT_FULL@6386..6387
4011 EXPR_VAR@6499..65024110 NAME@6386..6387
4012 NAME@6499..65024111 IDENT@6386..6387 "b"
4013 IDENT@6499..6502 "std"4112 R_PAREN@6387..6388 ")"
4014 DOT@6502..6503 "."4113 WHITESPACE@6388..6389 " "
4015 NAME@6503..65114114 ASSIGN@6389..6390 "="
4016 IDENT@6503..6511 "isNumber"4115 WHITESPACE@6390..6397 "\n "
4017 ARGS_DESC@6511..65144116 EXPR_IF_THEN_ELSE@6397..6529
4018 L_PAREN@6511..6512 "("4117 IF_KW@6397..6399 "if"
4019 ARG@6512..65134118 WHITESPACE@6399..6400 " "
4020 EXPR_VAR@6512..65134119 EXPR_BINARY@6400..6418
4021 NAME@6512..65134120 LHS_EXPR@6400..6413
4022 IDENT@6512..6513 "b"4121 EXPR_APPLY@6400..6413
4023 R_PAREN@6513..6514 ")"4122 EXPR_INDEX@6400..6410
4024 WHITESPACE@6514..6515 " "4123 EXPR_VAR@6400..6403
4025 THEN_KW@6515..6519 "then"4124 NAME@6400..6403
4026 WHITESPACE@6519..6526 "\n "4125 IDENT@6400..6403 "std"
4027 TRUE_EXPR@6526..65904126 DOT@6403..6404 "."
4028 EXPR_ERROR@6526..65904127 NAME@6404..6410
4029 ERROR_KW@6526..6531 "error"4128 IDENT@6404..6410 "length"
4030 WHITESPACE@6531..6532 " "4129 ARGS_DESC@6410..6413
4031 EXPR_BINARY@6532..65904130 L_PAREN@6410..6411 "("
4032 LHS_EXPR@6532..65764131 ARG@6411..6412
4033 EXPR_STRING@6532..65764132 EXPR_VAR@6411..6412
4034 STRING_SINGLE@6532..6576 "'std.max second param ..."4133 NAME@6411..6412
4035 WHITESPACE@6576..6577 " "4134 IDENT@6411..6412 "a"
4036 PLUS@6577..6578 "+"4135 R_PAREN@6412..6413 ")"
4037 WHITESPACE@6578..6579 " "4136 WHITESPACE@6413..6414 " "
4038 EXPR_APPLY@6579..65904137 EQ@6414..6416 "=="
4039 EXPR_INDEX@6579..65874138 WHITESPACE@6416..6417 " "
4040 EXPR_VAR@6579..65824139 EXPR_NUMBER@6417..6418
4041 NAME@6579..65824140 FLOAT@6417..6418 "0"
4042 IDENT@6579..6582 "std"4141 WHITESPACE@6418..6419 " "
4043 DOT@6582..6583 "."4142 THEN_KW@6419..6423 "then"
4044 NAME@6583..65874143 WHITESPACE@6423..6432 "\n "
4045 IDENT@6583..6587 "type"4144 TRUE_EXPR@6432..6435
4046 ARGS_DESC@6587..65904145 EXPR_ARRAY@6432..6435
4047 L_PAREN@6587..6588 "("4146 L_BRACK@6432..6433 "["
4048 ARG@6588..65894147 EXPR_VAR@6433..6434
4049 EXPR_VAR@6588..65894148 NAME@6433..6434
4050 NAME@6588..65894149 IDENT@6433..6434 "b"
4051 IDENT@6588..6589 "b"4150 R_BRACK@6434..6435 "]"
4052 R_PAREN@6589..6590 ")"4151 WHITESPACE@6435..6442 "\n "
4053 WHITESPACE@6590..6595 "\n "4152 ELSE_KW@6442..6446 "else"
4054 ELSE_KW@6595..6599 "else"4153 WHITESPACE@6446..6447 " "
4055 WHITESPACE@6599..6606 "\n "4154 FALSE_EXPR@6447..6529
4056 FALSE_EXPR@6606..66284155 EXPR_IF_THEN_ELSE@6447..6529
4057 EXPR_IF_THEN_ELSE@6606..66284156 IF_KW@6447..6449 "if"
4058 IF_KW@6606..6608 "if"4157 WHITESPACE@6449..6450 " "
4059 WHITESPACE@6608..6609 " "4158 EXPR_BINARY@6450..6487
4060 EXPR_BINARY@6609..66144159 LHS_EXPR@6450..6476
4061 LHS_EXPR@6609..66104160 EXPR_APPLY@6450..6476
4062 EXPR_VAR@6609..66104161 EXPR_VAR@6450..6454
4063 NAME@6609..66104162 NAME@6450..6454
4064 IDENT@6609..6610 "a"4163 IDENT@6450..6454 "keyF"
4065 WHITESPACE@6610..6611 " "4164 ARGS_DESC@6454..6476
4066 GT@6611..6612 ">"4165 L_PAREN@6454..6455 "("
4067 WHITESPACE@6612..6613 " "4166 ARG@6455..6475
4068 EXPR_VAR@6613..66144167 EXPR_INDEX_EXPR@6455..6475
4069 NAME@6613..66144168 LHS_EXPR@6455..6456
4070 IDENT@6613..6614 "b"4169 EXPR_VAR@6455..6456
4071 WHITESPACE@6614..6615 " "4170 NAME@6455..6456
4072 THEN_KW@6615..6619 "then"4171 IDENT@6455..6456 "a"
4073 WHITESPACE@6619..6620 " "4172 L_BRACK@6456..6457 "["
4074 TRUE_EXPR@6620..66214173 EXPR_BINARY@6457..6474
4075 EXPR_VAR@6620..66214174 LHS_EXPR@6457..6470
4076 NAME@6620..66214175 EXPR_APPLY@6457..6470
4077 IDENT@6620..6621 "a"4176 EXPR_INDEX@6457..6467
4078 WHITESPACE@6621..6622 " "4177 EXPR_VAR@6457..6460
4079 ELSE_KW@6622..6626 "else"4178 NAME@6457..6460
4080 WHITESPACE@6626..6627 " "4179 IDENT@6457..6460 "std"
4081 FALSE_EXPR@6627..66284180 DOT@6460..6461 "."
4082 EXPR_VAR@6627..66284181 NAME@6461..6467
4083 NAME@6627..66284182 IDENT@6461..6467 "length"
4084 IDENT@6627..6628 "b"4183 ARGS_DESC@6467..6470
4085 COMMA@6628..6629 ","4184 L_PAREN@6467..6468 "("
4086 WHITESPACE@6629..6633 "\n\n "4185 ARG@6468..6469
4087 MEMBER_FIELD@6633..68864186 EXPR_VAR@6468..6469
4088 FIELD_METHOD@6633..68864187 NAME@6468..6469
4089 FIELD_NAME_FIXED@6633..66364188 IDENT@6468..6469 "a"
4090 NAME@6633..66364189 R_PAREN@6469..6470 ")"
4091 IDENT@6633..6636 "min"4190 WHITESPACE@6470..6471 " "
4092 PARAMS_DESC@6636..66424191 MINUS@6471..6472 "-"
4093 L_PAREN@6636..6637 "("4192 WHITESPACE@6472..6473 " "
4094 PARAM@6637..66384193 EXPR_NUMBER@6473..6474
4095 DESTRUCT_FULL@6637..66384194 FLOAT@6473..6474 "1"
4096 NAME@6637..66384195 R_BRACK@6474..6475 "]"
4097 IDENT@6637..6638 "a"4196 R_PAREN@6475..6476 ")"
4098 COMMA@6638..6639 ","4197 WHITESPACE@6476..6477 " "
4099 WHITESPACE@6639..6640 " "4198 EQ@6477..6479 "=="
4100 PARAM@6640..66414199 WHITESPACE@6479..6480 " "
4101 DESTRUCT_FULL@6640..66414200 EXPR_APPLY@6480..6487
4102 NAME@6640..66414201 EXPR_VAR@6480..6484
4103 IDENT@6640..6641 "b"4202 NAME@6480..6484
4104 R_PAREN@6641..6642 ")"4203 IDENT@6480..6484 "keyF"
4105 COLONCOLON@6642..6644 "::"4204 ARGS_DESC@6484..6487
4106 WHITESPACE@6644..6649 "\n "4205 L_PAREN@6484..6485 "("
4107 EXPR_IF_THEN_ELSE@6649..68864206 ARG@6485..6486
4108 IF_KW@6649..6651 "if"4207 EXPR_VAR@6485..6486
4109 WHITESPACE@6651..6652 " "4208 NAME@6485..6486
4110 EXPR_UNARY@6652..66684209 IDENT@6485..6486 "b"
4111 NOT@6652..6653 "!"4210 R_PAREN@6486..6487 ")"
4112 EXPR_APPLY@6653..66684211 WHITESPACE@6487..6488 " "
4113 EXPR_INDEX@6653..66654212 THEN_KW@6488..6492 "then"
4114 EXPR_VAR@6653..66564213 WHITESPACE@6492..6501 "\n "
4115 NAME@6653..66564214 TRUE_EXPR@6501..6502
4116 IDENT@6653..6656 "std"4215 EXPR_VAR@6501..6502
4117 DOT@6656..6657 "."4216 NAME@6501..6502
4118 NAME@6657..66654217 IDENT@6501..6502 "a"
4119 IDENT@6657..6665 "isNumber"4218 WHITESPACE@6502..6509 "\n "
4120 ARGS_DESC@6665..66684219 ELSE_KW@6509..6513 "else"
4121 L_PAREN@6665..6666 "("4220 WHITESPACE@6513..6522 "\n "
4122 ARG@6666..66674221 FALSE_EXPR@6522..6529
4123 EXPR_VAR@6666..66674222 EXPR_BINARY@6522..6529
4124 NAME@6666..66674223 LHS_EXPR@6522..6523
4125 IDENT@6666..6667 "a"4224 EXPR_VAR@6522..6523
4126 R_PAREN@6667..6668 ")"4225 NAME@6522..6523
4127 WHITESPACE@6668..6669 " "4226 IDENT@6522..6523 "a"
4128 THEN_KW@6669..6673 "then"4227 WHITESPACE@6523..6524 " "
4129 WHITESPACE@6673..6680 "\n "4228 PLUS@6524..6525 "+"
4130 TRUE_EXPR@6680..67434229 WHITESPACE@6525..6526 " "
4131 EXPR_ERROR@6680..67434230 EXPR_ARRAY@6526..6529
4132 ERROR_KW@6680..6685 "error"4231 L_BRACK@6526..6527 "["
4133 WHITESPACE@6685..6686 " "4232 EXPR_VAR@6527..6528
4134 EXPR_BINARY@6686..67434233 NAME@6527..6528
4135 LHS_EXPR@6686..67294234 IDENT@6527..6528 "b"
4136 EXPR_STRING@6686..67294235 R_BRACK@6528..6529 "]"
4137 STRING_SINGLE@6686..6729 "'std.min first param ..."4236 SEMI@6529..6530 ";"
4138 WHITESPACE@6729..6730 " "4237 WHITESPACE@6530..6535 "\n "
4139 PLUS@6730..6731 "+"4238 EXPR_APPLY@6535..6556
4140 WHITESPACE@6731..6732 " "4239 EXPR_INDEX@6535..6544
4141 EXPR_APPLY@6732..67434240 EXPR_VAR@6535..6538
4142 EXPR_INDEX@6732..67404241 NAME@6535..6538
4143 EXPR_VAR@6732..67354242 IDENT@6535..6538 "std"
4144 NAME@6732..67354243 DOT@6538..6539 "."
4145 IDENT@6732..6735 "std"4244 NAME@6539..6544
4146 DOT@6735..6736 "."4245 IDENT@6539..6544 "foldl"
4147 NAME@6736..67404246 ARGS_DESC@6544..6556
4148 IDENT@6736..6740 "type"4247 L_PAREN@6544..6545 "("
4149 ARGS_DESC@6740..67434248 ARG@6545..6546
4150 L_PAREN@6740..6741 "("4249 EXPR_VAR@6545..6546
4151 ARG@6741..67424250 NAME@6545..6546
4152 EXPR_VAR@6741..67424251 IDENT@6545..6546 "f"
4153 NAME@6741..67424252 COMMA@6546..6547 ","
4154 IDENT@6741..6742 "a"4253 WHITESPACE@6547..6548 " "
4155 R_PAREN@6742..6743 ")"4254 ARG@6548..6551
4156 WHITESPACE@6743..6748 "\n "4255 EXPR_VAR@6548..6551
4157 ELSE_KW@6748..6752 "else"4256 NAME@6548..6551
4158 WHITESPACE@6752..6753 " "4257 IDENT@6548..6551 "arr"
4159 FALSE_EXPR@6753..68864258 COMMA@6551..6552 ","
4160 EXPR_IF_THEN_ELSE@6753..68864259 WHITESPACE@6552..6553 " "
4161 IF_KW@6753..6755 "if"4260 ARG@6553..6555
4162 WHITESPACE@6755..6756 " "4261 EXPR_ARRAY@6553..6555
4163 EXPR_UNARY@6756..67724262 L_BRACK@6553..6554 "["
4164 NOT@6756..6757 "!"4263 R_BRACK@6554..6555 "]"
4165 EXPR_APPLY@6757..67724264 R_PAREN@6555..6556 ")"
4166 EXPR_INDEX@6757..67694265 COMMA@6556..6557 ","
4167 EXPR_VAR@6757..67604266 WHITESPACE@6557..6561 "\n\n "
4168 NAME@6757..67604267 MEMBER_FIELD@6561..6620
4169 IDENT@6757..6760 "std"4268 FIELD_METHOD@6561..6620
4170 DOT@6760..6761 "."4269 FIELD_NAME_FIXED@6561..6564
4171 NAME@6761..67694270 NAME@6561..6564
4172 IDENT@6761..6769 "isNumber"4271 IDENT@6561..6564 "set"
4173 ARGS_DESC@6769..67724272 PARAMS_DESC@6564..6578
4174 L_PAREN@6769..6770 "("4273 L_PAREN@6564..6565 "("
4175 ARG@6770..67714274 PARAM@6565..6568
4176 EXPR_VAR@6770..67714275 DESTRUCT_FULL@6565..6568
4177 NAME@6770..67714276 NAME@6565..6568
4178 IDENT@6770..6771 "b"4277 IDENT@6565..6568 "arr"
4179 R_PAREN@6771..6772 ")"4278 COMMA@6568..6569 ","
4180 WHITESPACE@6772..6773 " "4279 WHITESPACE@6569..6570 " "
4181 THEN_KW@6773..6777 "then"4280 PARAM@6570..6577
4182 WHITESPACE@6777..6784 "\n "4281 DESTRUCT_FULL@6570..6574
4183 TRUE_EXPR@6784..68484282 NAME@6570..6574
4184 EXPR_ERROR@6784..68484283 IDENT@6570..6574 "keyF"
4185 ERROR_KW@6784..6789 "error"4284 ASSIGN@6574..6575 "="
4186 WHITESPACE@6789..6790 " "4285 EXPR_VAR@6575..6577
4187 EXPR_BINARY@6790..68484286 NAME@6575..6577
4188 LHS_EXPR@6790..68344287 IDENT@6575..6577 "id"
4189 EXPR_STRING@6790..68344288 R_PAREN@6577..6578 ")"
4190 STRING_SINGLE@6790..6834 "'std.min second param ..."4289 COLONCOLON@6578..6580 "::"
4191 WHITESPACE@6834..6835 " "4290 WHITESPACE@6580..6585 "\n "
4192 PLUS@6835..6836 "+"4291 EXPR_APPLY@6585..6620
4193 WHITESPACE@6836..6837 " "4292 EXPR_INDEX@6585..6593
4194 EXPR_APPLY@6837..68484293 EXPR_VAR@6585..6588
4195 EXPR_INDEX@6837..68454294 NAME@6585..6588
4196 EXPR_VAR@6837..68404295 IDENT@6585..6588 "std"
4197 NAME@6837..68404296 DOT@6588..6589 "."
4198 IDENT@6837..6840 "std"4297 NAME@6589..6593
4199 DOT@6840..6841 "."4298 IDENT@6589..6593 "uniq"
4200 NAME@6841..68454299 ARGS_DESC@6593..6620
4201 IDENT@6841..6845 "type"4300 L_PAREN@6593..6594 "("
4202 ARGS_DESC@6845..68484301 ARG@6594..6613
4203 L_PAREN@6845..6846 "("4302 EXPR_APPLY@6594..6613
4204 ARG@6846..68474303 EXPR_INDEX@6594..6602
4205 EXPR_VAR@6846..68474304 EXPR_VAR@6594..6597
4206 NAME@6846..68474305 NAME@6594..6597
4207 IDENT@6846..6847 "b"4306 IDENT@6594..6597 "std"
4208 R_PAREN@6847..6848 ")"4307 DOT@6597..6598 "."
4209 WHITESPACE@6848..6853 "\n "4308 NAME@6598..6602
4210 ELSE_KW@6853..6857 "else"4309 IDENT@6598..6602 "sort"
4211 WHITESPACE@6857..6864 "\n "4310 ARGS_DESC@6602..6613
4212 FALSE_EXPR@6864..68864311 L_PAREN@6602..6603 "("
4213 EXPR_IF_THEN_ELSE@6864..68864312 ARG@6603..6606
4214 IF_KW@6864..6866 "if"4313 EXPR_VAR@6603..6606
4215 WHITESPACE@6866..6867 " "4314 NAME@6603..6606
4216 EXPR_BINARY@6867..68724315 IDENT@6603..6606 "arr"
4217 LHS_EXPR@6867..68684316 COMMA@6606..6607 ","
4218 EXPR_VAR@6867..68684317 WHITESPACE@6607..6608 " "
4219 NAME@6867..68684318 ARG@6608..6612
4220 IDENT@6867..6868 "a"4319 EXPR_VAR@6608..6612
4221 WHITESPACE@6868..6869 " "4320 NAME@6608..6612
4222 LT@6869..6870 "<"4321 IDENT@6608..6612 "keyF"
4223 WHITESPACE@6870..6871 " "4322 R_PAREN@6612..6613 ")"
4224 EXPR_VAR@6871..68724323 COMMA@6613..6614 ","
4225 NAME@6871..68724324 WHITESPACE@6614..6615 " "
4226 IDENT@6871..6872 "b"4325 ARG@6615..6619
4227 WHITESPACE@6872..6873 " "4326 EXPR_VAR@6615..6619
4228 THEN_KW@6873..6877 "then"4327 NAME@6615..6619
4229 WHITESPACE@6877..6878 " "4328 IDENT@6615..6619 "keyF"
4230 TRUE_EXPR@6878..68794329 R_PAREN@6619..6620 ")"
4231 EXPR_VAR@6878..68794330 COMMA@6620..6621 ","
4232 NAME@6878..68794331 WHITESPACE@6621..6625 "\n\n "
4233 IDENT@6878..6879 "a"4332 MEMBER_FIELD@6625..6760
4234 WHITESPACE@6879..6880 " "4333 FIELD_METHOD@6625..6760
4235 ELSE_KW@6880..6884 "else"4334 FIELD_NAME_FIXED@6625..6634
4236 WHITESPACE@6884..6885 " "4335 NAME@6625..6634
4237 FALSE_EXPR@6885..68864336 IDENT@6625..6634 "setMember"
4238 EXPR_VAR@6885..68864337 PARAMS_DESC@6634..6651
4239 NAME@6885..68864338 L_PAREN@6634..6635 "("
4240 IDENT@6885..6886 "b"4339 PARAM@6635..6636
4241 COMMA@6886..6887 ","4340 DESTRUCT_FULL@6635..6636
4242 WHITESPACE@6887..6891 "\n\n "4341 NAME@6635..6636
4243 MEMBER_FIELD@6891..69934342 IDENT@6635..6636 "x"
4244 FIELD_METHOD@6891..69934343 COMMA@6636..6637 ","
4245 FIELD_NAME_FIXED@6891..68964344 WHITESPACE@6637..6638 " "
4246 NAME@6891..68964345 PARAM@6638..6641
4247 IDENT@6891..6896 "clamp"4346 DESTRUCT_FULL@6638..6641
4248 PARAMS_DESC@6896..69154347 NAME@6638..6641
4249 L_PAREN@6896..6897 "("4348 IDENT@6638..6641 "arr"
4250 PARAM@6897..68984349 COMMA@6641..6642 ","
4251 DESTRUCT_FULL@6897..68984350 WHITESPACE@6642..6643 " "
4252 NAME@6897..68984351 PARAM@6643..6650
4253 IDENT@6897..6898 "x"4352 DESTRUCT_FULL@6643..6647
4254 COMMA@6898..6899 ","4353 NAME@6643..6647
4255 WHITESPACE@6899..6900 " "4354 IDENT@6643..6647 "keyF"
4256 PARAM@6900..69064355 ASSIGN@6647..6648 "="
4257 DESTRUCT_FULL@6900..69064356 EXPR_VAR@6648..6650
4258 NAME@6900..69064357 NAME@6648..6650
4259 IDENT@6900..6906 "minVal"4358 IDENT@6648..6650 "id"
4260 COMMA@6906..6907 ","4359 R_PAREN@6650..6651 ")"
4261 WHITESPACE@6907..6908 " "4360 COLONCOLON@6651..6653 "::"
4262 PARAM@6908..69144361 WHITESPACE@6653..6658 "\n "
4263 DESTRUCT_FULL@6908..69144362 SINGLE_LINE_SLASH_COMMENT@6658..6712 "// TODO(dcunnin): Bin ..."
4264 NAME@6908..69144363 WHITESPACE@6712..6716 " "
4265 IDENT@6908..6914 "maxVal"4364 EXPR_BINARY@6716..6760
4266 R_PAREN@6914..6915 ")"4365 LHS_EXPR@6716..6756
4267 COLONCOLON@6915..6917 "::"4366 EXPR_APPLY@6716..6756
4268 WHITESPACE@6917..6922 "\n "4367 EXPR_INDEX@6716..6726
4269 EXPR_IF_THEN_ELSE@6922..69934368 EXPR_VAR@6716..6719
4270 IF_KW@6922..6924 "if"4369 NAME@6716..6719
4271 WHITESPACE@6924..6925 " "4370 IDENT@6716..6719 "std"
4272 EXPR_BINARY@6925..69354371 DOT@6719..6720 "."
4273 LHS_EXPR@6925..69264372 NAME@6720..6726
4274 EXPR_VAR@6925..69264373 IDENT@6720..6726 "length"
4275 NAME@6925..69264374 ARGS_DESC@6726..6756
4276 IDENT@6925..6926 "x"4375 L_PAREN@6726..6727 "("
4277 WHITESPACE@6926..6927 " "4376 ARG@6727..6755
4278 LT@6927..6928 "<"4377 EXPR_APPLY@6727..6755
4279 WHITESPACE@6928..6929 " "4378 EXPR_INDEX@6727..6739
4280 EXPR_VAR@6929..69354379 EXPR_VAR@6727..6730
4281 NAME@6929..69354380 NAME@6727..6730
4282 IDENT@6929..6935 "minVal"4381 IDENT@6727..6730 "std"
4283 WHITESPACE@6935..6936 " "4382 DOT@6730..6731 "."
4284 THEN_KW@6936..6940 "then"4383 NAME@6731..6739
4285 WHITESPACE@6940..6941 " "4384 IDENT@6731..6739 "setInter"
4286 TRUE_EXPR@6941..69474385 ARGS_DESC@6739..6755
4287 EXPR_VAR@6941..69474386 L_PAREN@6739..6740 "("
4288 NAME@6941..69474387 ARG@6740..6743
4289 IDENT@6941..6947 "minVal"4388 EXPR_ARRAY@6740..6743
4290 WHITESPACE@6947..6952 "\n "4389 L_BRACK@6740..6741 "["
4291 ELSE_KW@6952..6956 "else"4390 EXPR_VAR@6741..6742
4292 WHITESPACE@6956..6957 " "4391 NAME@6741..6742
4293 FALSE_EXPR@6957..69934392 IDENT@6741..6742 "x"
4294 EXPR_IF_THEN_ELSE@6957..69934393 R_BRACK@6742..6743 "]"
4295 IF_KW@6957..6959 "if"4394 COMMA@6743..6744 ","
4296 WHITESPACE@6959..6960 " "4395 WHITESPACE@6744..6745 " "
4297 EXPR_BINARY@6960..69704396 ARG@6745..6748
4298 LHS_EXPR@6960..69614397 EXPR_VAR@6745..6748
4299 EXPR_VAR@6960..69614398 NAME@6745..6748
4300 NAME@6960..69614399 IDENT@6745..6748 "arr"
4301 IDENT@6960..6961 "x"4400 COMMA@6748..6749 ","
4302 WHITESPACE@6961..6962 " "4401 WHITESPACE@6749..6750 " "
4303 GT@6962..6963 ">"4402 ARG@6750..6754
4304 WHITESPACE@6963..6964 " "4403 EXPR_VAR@6750..6754
4305 EXPR_VAR@6964..69704404 NAME@6750..6754
4306 NAME@6964..69704405 IDENT@6750..6754 "keyF"
4307 IDENT@6964..6970 "maxVal"4406 R_PAREN@6754..6755 ")"
4308 WHITESPACE@6970..6971 " "4407 R_PAREN@6755..6756 ")"
4309 THEN_KW@6971..6975 "then"4408 WHITESPACE@6756..6757 " "
4310 WHITESPACE@6975..6976 " "4409 GT@6757..6758 ">"
4311 TRUE_EXPR@6976..69824410 WHITESPACE@6758..6759 " "
4312 EXPR_VAR@6976..69824411 EXPR_NUMBER@6759..6760
4313 NAME@6976..69824412 FLOAT@6759..6760 "0"
4314 IDENT@6976..6982 "maxVal"4413 COMMA@6760..6761 ","
4315 WHITESPACE@6982..6987 "\n "4414 WHITESPACE@6761..6765 "\n\n "
4316 ELSE_KW@6987..6991 "else"4415 MEMBER_FIELD@6765..7314
4317 WHITESPACE@6991..6992 " "4416 FIELD_METHOD@6765..7314
4318 FALSE_EXPR@6992..69934417 FIELD_NAME_FIXED@6765..6773
4319 EXPR_VAR@6992..69934418 NAME@6765..6773
4320 NAME@6992..69934419 IDENT@6765..6773 "setUnion"
4321 IDENT@6992..6993 "x"4420 PARAMS_DESC@6773..6788
4322 COMMA@6993..6994 ","4421 L_PAREN@6773..6774 "("
4323 WHITESPACE@6994..6998 "\n\n "4422 PARAM@6774..6775
4324 MEMBER_FIELD@6998..70654423 DESTRUCT_FULL@6774..6775
4325 FIELD_METHOD@6998..70654424 NAME@6774..6775
4326 FIELD_NAME_FIXED@6998..70114425 IDENT@6774..6775 "a"
4327 NAME@6998..70114426 COMMA@6775..6776 ","
4328 IDENT@6998..7011 "flattenArrays"4427 WHITESPACE@6776..6777 " "
4329 PARAMS_DESC@7011..70174428 PARAM@6777..6778
4330 L_PAREN@7011..7012 "("4429 DESTRUCT_FULL@6777..6778
4331 PARAM@7012..70164430 NAME@6777..6778
4332 DESTRUCT_FULL@7012..70164431 IDENT@6777..6778 "b"
4333 NAME@7012..70164432 COMMA@6778..6779 ","
4334 IDENT@7012..7016 "arrs"4433 WHITESPACE@6779..6780 " "
4335 R_PAREN@7016..7017 ")"4434 PARAM@6780..6787
4336 COLONCOLON@7017..7019 "::"4435 DESTRUCT_FULL@6780..6784
4337 WHITESPACE@7019..7024 "\n "4436 NAME@6780..6784
4338 EXPR_APPLY@7024..70654437 IDENT@6780..6784 "keyF"
4339 EXPR_INDEX@7024..70334438 ASSIGN@6784..6785 "="
4340 EXPR_VAR@7024..70274439 EXPR_VAR@6785..6787
4341 NAME@7024..70274440 NAME@6785..6787
4342 IDENT@7024..7027 "std"4441 IDENT@6785..6787 "id"
4343 DOT@7027..7028 "."4442 R_PAREN@6787..6788 ")"
4344 NAME@7028..70334443 COLONCOLON@6788..6790 "::"
4345 IDENT@7028..7033 "foldl"4444 WHITESPACE@6790..6795 "\n "
4346 ARGS_DESC@7033..70654445 SINGLE_LINE_SLASH_COMMENT@6795..6837 "// NOTE: order matter ..."
4347 L_PAREN@7033..7034 "("4446 WHITESPACE@6837..6841 " "
4348 ARG@7034..70544447 EXPR_LOCAL@6841..7314
4349 EXPR_FUNCTION@7034..70544448 LOCAL_KW@6841..6846 "local"
4350 FUNCTION_KW@7034..7042 "function"4449 WHITESPACE@6846..6847 " "
4351 PARAMS_DESC@7042..70484450 BIND_FUNCTION@6847..7289
4352 L_PAREN@7042..7043 "("4451 NAME@6847..6850
4353 PARAM@7043..70444452 IDENT@6847..6850 "aux"
4354 DESTRUCT_FULL@7043..70444453 PARAMS_DESC@6850..6867
4355 NAME@7043..70444454 L_PAREN@6850..6851 "("
4356 IDENT@7043..7044 "a"4455 PARAM@6851..6852
4357 COMMA@7044..7045 ","4456 DESTRUCT_FULL@6851..6852
4358 WHITESPACE@7045..7046 " "4457 NAME@6851..6852
4359 PARAM@7046..70474458 IDENT@6851..6852 "a"
4360 DESTRUCT_FULL@7046..70474459 COMMA@6852..6853 ","
4361 NAME@7046..70474460 WHITESPACE@6853..6854 " "
4362 IDENT@7046..7047 "b"4461 PARAM@6854..6855
4363 R_PAREN@7047..7048 ")"4462 DESTRUCT_FULL@6854..6855
4364 WHITESPACE@7048..7049 " "4463 NAME@6854..6855
4365 EXPR_BINARY@7049..70544464 IDENT@6854..6855 "b"
4366 LHS_EXPR@7049..70504465 COMMA@6855..6856 ","
4367 EXPR_VAR@7049..70504466 WHITESPACE@6856..6857 " "
4368 NAME@7049..70504467 PARAM@6857..6858
4369 IDENT@7049..7050 "a"4468 DESTRUCT_FULL@6857..6858
4370 WHITESPACE@7050..7051 " "4469 NAME@6857..6858
4371 PLUS@7051..7052 "+"4470 IDENT@6857..6858 "i"
4372 WHITESPACE@7052..7053 " "4471 COMMA@6858..6859 ","
4373 EXPR_VAR@7053..70544472 WHITESPACE@6859..6860 " "
4374 NAME@7053..70544473 PARAM@6860..6861
4375 IDENT@7053..7054 "b"4474 DESTRUCT_FULL@6860..6861
4376 COMMA@7054..7055 ","4475 NAME@6860..6861
4377 WHITESPACE@7055..7056 " "4476 IDENT@6860..6861 "j"
4378 ARG@7056..70604477 COMMA@6861..6862 ","
4379 EXPR_VAR@7056..70604478 WHITESPACE@6862..6863 " "
4380 NAME@7056..70604479 PARAM@6863..6866
4381 IDENT@7056..7060 "arrs"4480 DESTRUCT_FULL@6863..6866
4382 COMMA@7060..7061 ","4481 NAME@6863..6866
4383 WHITESPACE@7061..7062 " "4482 IDENT@6863..6866 "acc"
4384 ARG@7062..70644483 R_PAREN@6866..6867 ")"
4385 EXPR_ARRAY@7062..70644484 WHITESPACE@6867..6868 " "
4386 L_BRACK@7062..7063 "["4485 ASSIGN@6868..6869 "="
4387 R_BRACK@7063..7064 "]"4486 WHITESPACE@6869..6876 "\n "
4388 R_PAREN@7064..7065 ")"4487 EXPR_IF_THEN_ELSE@6876..7289
4389 COMMA@7065..7066 ","4488 IF_KW@6876..6878 "if"
4390 WHITESPACE@7066..7070 "\n\n "4489 WHITESPACE@6878..6879 " "
4391 MEMBER_FIELD@7070..77564490 EXPR_BINARY@6879..6897
4392 FIELD_METHOD@7070..77564491 LHS_EXPR@6879..6880
4393 FIELD_NAME_FIXED@7070..70814492 EXPR_VAR@6879..6880
4394 NAME@7070..70814493 NAME@6879..6880
4395 IDENT@7070..7081 "manifestIni"4494 IDENT@6879..6880 "i"
4396 PARAMS_DESC@7081..70864495 WHITESPACE@6880..6881 " "
4397 L_PAREN@7081..7082 "("4496 GE@6881..6883 ">="
4398 PARAM@7082..70854497 WHITESPACE@6883..6884 " "
4399 DESTRUCT_FULL@7082..70854498 EXPR_APPLY@6884..6897
4400 NAME@7082..70854499 EXPR_INDEX@6884..6894
4401 IDENT@7082..7085 "ini"4500 EXPR_VAR@6884..6887
4402 R_PAREN@7085..7086 ")"4501 NAME@6884..6887
4403 COLONCOLON@7086..7088 "::"4502 IDENT@6884..6887 "std"
4404 WHITESPACE@7088..7093 "\n "4503 DOT@6887..6888 "."
4405 EXPR_LOCAL@7093..77564504 NAME@6888..6894
4406 LOCAL_KW@7093..7098 "local"4505 IDENT@6888..6894 "length"
4407 WHITESPACE@7098..7099 " "4506 ARGS_DESC@6894..6897
4408 BIND_FUNCTION@7099..73964507 L_PAREN@6894..6895 "("
4409 NAME@7099..71094508 ARG@6895..6896
4410 IDENT@7099..7109 "body_lines"4509 EXPR_VAR@6895..6896
4411 PARAMS_DESC@7109..71154510 NAME@6895..6896
4412 L_PAREN@7109..7110 "("4511 IDENT@6895..6896 "a"
4413 PARAM@7110..71144512 R_PAREN@6896..6897 ")"
4414 DESTRUCT_FULL@7110..71144513 WHITESPACE@6897..6898 " "
4415 NAME@7110..71144514 THEN_KW@6898..6902 "then"
4416 IDENT@7110..7114 "body"4515 WHITESPACE@6902..6911 "\n "
4417 R_PAREN@7114..7115 ")"4516 TRUE_EXPR@6911..6922
4418 WHITESPACE@7115..7116 " "4517 EXPR_BINARY@6911..6922
4419 ASSIGN@7116..7117 "="4518 LHS_EXPR@6911..6914
4420 WHITESPACE@7117..7124 "\n "4519 EXPR_VAR@6911..6914
4421 EXPR_APPLY@7124..73964520 NAME@6911..6914
4422 EXPR_INDEX@7124..71324521 IDENT@6911..6914 "acc"
4423 EXPR_VAR@7124..71274522 WHITESPACE@6914..6915 " "
4424 NAME@7124..71274523 PLUS@6915..6916 "+"
4425 IDENT@7124..7127 "std"4524 WHITESPACE@6916..6917 " "
4426 DOT@7127..7128 "."4525 EXPR_SLICE@6917..6922
4427 NAME@7128..71324526 EXPR_VAR@6917..6918
4428 IDENT@7128..7132 "join"4527 NAME@6917..6918
4429 ARGS_DESC@7132..73964528 IDENT@6917..6918 "b"
4430 L_PAREN@7132..7133 "("4529 SLICE_DESC@6918..6922
4431 ARG@7133..71354530 L_BRACK@6918..6919 "["
4432 EXPR_ARRAY@7133..71354531 EXPR_VAR@6919..6920
4433 L_BRACK@7133..7134 "["4532 NAME@6919..6920
4434 R_BRACK@7134..7135 "]"4533 IDENT@6919..6920 "j"
4435 COMMA@7135..7136 ","4534 COLON@6920..6921 ":"
4436 WHITESPACE@7136..7137 " "4535 R_BRACK@6921..6922 "]"
4437 ARG@7137..73954536 WHITESPACE@6922..6929 "\n "
4438 EXPR_ARRAY_COMP@7137..73954537 ELSE_KW@6929..6933 "else"
4439 L_BRACK@7137..7138 "["4538 WHITESPACE@6933..6934 " "
4440 WHITESPACE@7138..7147 "\n "4539 FALSE_EXPR@6934..7289
4441 EXPR_LOCAL@7147..73464540 EXPR_IF_THEN_ELSE@6934..7289
4442 LOCAL_KW@7147..7152 "local"4541 IF_KW@6934..6936 "if"
4443 WHITESPACE@7152..7153 " "4542 WHITESPACE@6936..6937 " "
4444 BIND_DESTRUCT@7153..71784543 EXPR_BINARY@6937..6955
4445 DESTRUCT_FULL@7153..71684544 LHS_EXPR@6937..6938
4446 NAME@7153..71684545 EXPR_VAR@6937..6938
4447 IDENT@7153..7168 "value_or_values"4546 NAME@6937..6938
4448 WHITESPACE@7168..7169 " "4547 IDENT@6937..6938 "j"
4449 ASSIGN@7169..7170 "="4548 WHITESPACE@6938..6939 " "
4450 WHITESPACE@7170..7171 " "4549 GE@6939..6941 ">="
4451 EXPR_INDEX_EXPR@7171..71784550 WHITESPACE@6941..6942 " "
4452 LHS_EXPR@7171..71754551 EXPR_APPLY@6942..6955
4453 EXPR_VAR@7171..71754552 EXPR_INDEX@6942..6952
4454 NAME@7171..71754553 EXPR_VAR@6942..6945
4455 IDENT@7171..7175 "body"4554 NAME@6942..6945
4456 L_BRACK@7175..7176 "["4555 IDENT@6942..6945 "std"
4457 EXPR_VAR@7176..71774556 DOT@6945..6946 "."
4458 NAME@7176..71774557 NAME@6946..6952
4459 IDENT@7176..7177 "k"4558 IDENT@6946..6952 "length"
4460 R_BRACK@7177..7178 "]"4559 ARGS_DESC@6952..6955
4461 SEMI@7178..7179 ";"4560 L_PAREN@6952..6953 "("
4462 WHITESPACE@7179..7188 "\n "4561 ARG@6953..6954
4463 EXPR_IF_THEN_ELSE@7188..73464562 EXPR_VAR@6953..6954
4464 IF_KW@7188..7190 "if"4563 NAME@6953..6954
4465 WHITESPACE@7190..7191 " "4564 IDENT@6953..6954 "b"
4466 EXPR_APPLY@7191..72194565 R_PAREN@6954..6955 ")"
4467 EXPR_INDEX@7191..72024566 WHITESPACE@6955..6956 " "
4468 EXPR_VAR@7191..71944567 THEN_KW@6956..6960 "then"
4469 NAME@7191..71944568 WHITESPACE@6960..6969 "\n "
4470 IDENT@7191..7194 "std"4569 TRUE_EXPR@6969..6980
4471 DOT@7194..7195 "."4570 EXPR_BINARY@6969..6980
4472 NAME@7195..72024571 LHS_EXPR@6969..6972
4473 IDENT@7195..7202 "isArray"4572 EXPR_VAR@6969..6972
4474 ARGS_DESC@7202..72194573 NAME@6969..6972
4475 L_PAREN@7202..7203 "("4574 IDENT@6969..6972 "acc"
4476 ARG@7203..72184575 WHITESPACE@6972..6973 " "
4477 EXPR_VAR@7203..72184576 PLUS@6973..6974 "+"
4478 NAME@7203..72184577 WHITESPACE@6974..6975 " "
4479 IDENT@7203..7218 "value_or_values"4578 EXPR_SLICE@6975..6980
4480 R_PAREN@7218..7219 ")"4579 EXPR_VAR@6975..6976
4481 WHITESPACE@7219..7220 " "4580 NAME@6975..6976
4482 THEN_KW@7220..7224 "then"4581 IDENT@6975..6976 "a"
4483 WHITESPACE@7224..7235 "\n "4582 SLICE_DESC@6976..6980
4484 TRUE_EXPR@7235..72884583 L_BRACK@6976..6977 "["
4485 EXPR_ARRAY_COMP@7235..72884584 EXPR_VAR@6977..6978
4486 L_BRACK@7235..7236 "["4585 NAME@6977..6978
4487 EXPR_BINARY@7236..72584586 IDENT@6977..6978 "i"
4488 LHS_EXPR@7236..72454587 COLON@6978..6979 ":"
4489 EXPR_STRING@7236..72454588 R_BRACK@6979..6980 "]"
4490 STRING_SINGLE@7236..7245 "'%s = %s'"4589 WHITESPACE@6980..6987 "\n "
4491 WHITESPACE@7245..7246 " "4590 ELSE_KW@6987..6991 "else"
4492 MODULO@7246..7247 "%"4591 WHITESPACE@6991..7000 "\n "
4493 WHITESPACE@7247..7248 " "4592 FALSE_EXPR@7000..7289
4494 EXPR_ARRAY@7248..72584593 EXPR_LOCAL@7000..7289
4495 L_BRACK@7248..7249 "["4594 LOCAL_KW@7000..7005 "local"
4496 EXPR_VAR@7249..72504595 WHITESPACE@7005..7006 " "
4497 NAME@7249..72504596 BIND_DESTRUCT@7006..7021
4498 IDENT@7249..7250 "k"4597 DESTRUCT_FULL@7006..7008
4499 COMMA@7250..7251 ","4598 NAME@7006..7008
4500 WHITESPACE@7251..7252 " "4599 IDENT@7006..7008 "ak"
4501 EXPR_VAR@7252..72574600 WHITESPACE@7008..7009 " "
4502 NAME@7252..72574601 ASSIGN@7009..7010 "="
4503 IDENT@7252..7257 "value"4602 WHITESPACE@7010..7011 " "
4504 R_BRACK@7257..7258 "]"4603 EXPR_APPLY@7011..7021
4505 WHITESPACE@7258..7259 " "4604 EXPR_VAR@7011..7015
4506 FOR_SPEC@7259..72874605 NAME@7011..7015
4507 FOR_KW@7259..7262 "for"4606 IDENT@7011..7015 "keyF"
4508 WHITESPACE@7262..7263 " "4607 ARGS_DESC@7015..7021
4509 NAME@7263..72684608 L_PAREN@7015..7016 "("
4510 IDENT@7263..7268 "value"4609 ARG@7016..7020
4511 WHITESPACE@7268..7269 " "4610 EXPR_INDEX_EXPR@7016..7020
4512 IN_KW@7269..7271 "in"4611 LHS_EXPR@7016..7017
4513 WHITESPACE@7271..7272 " "4612 EXPR_VAR@7016..7017
4514 EXPR_VAR@7272..72874613 NAME@7016..7017
4515 NAME@7272..72874614 IDENT@7016..7017 "a"
4516 IDENT@7272..7287 "value_or_values"4615 L_BRACK@7017..7018 "["
4517 R_BRACK@7287..7288 "]"4616 EXPR_VAR@7018..7019
4518 WHITESPACE@7288..7297 "\n "4617 NAME@7018..7019
4519 ELSE_KW@7297..7301 "else"4618 IDENT@7018..7019 "i"
4520 WHITESPACE@7301..7312 "\n "4619 R_BRACK@7019..7020 "]"
4521 FALSE_EXPR@7312..73464620 R_PAREN@7020..7021 ")"
4522 EXPR_ARRAY@7312..73464621 SEMI@7021..7022 ";"
4523 L_BRACK@7312..7313 "["4622 WHITESPACE@7022..7031 "\n "
4524 EXPR_BINARY@7313..73454623 EXPR_LOCAL@7031..7289
4525 LHS_EXPR@7313..73224624 LOCAL_KW@7031..7036 "local"
4526 EXPR_STRING@7313..73224625 WHITESPACE@7036..7037 " "
4527 STRING_SINGLE@7313..7322 "'%s = %s'"4626 BIND_DESTRUCT@7037..7052
4528 WHITESPACE@7322..7323 " "4627 DESTRUCT_FULL@7037..7039
4529 MODULO@7323..7324 "%"4628 NAME@7037..7039
4530 WHITESPACE@7324..7325 " "4629 IDENT@7037..7039 "bk"
4531 EXPR_ARRAY@7325..73454630 WHITESPACE@7039..7040 " "
4532 L_BRACK@7325..7326 "["4631 ASSIGN@7040..7041 "="
4533 EXPR_VAR@7326..73274632 WHITESPACE@7041..7042 " "
4534 NAME@7326..73274633 EXPR_APPLY@7042..7052
4535 IDENT@7326..7327 "k"4634 EXPR_VAR@7042..7046
4536 COMMA@7327..7328 ","4635 NAME@7042..7046
4537 WHITESPACE@7328..7329 " "4636 IDENT@7042..7046 "keyF"
4538 EXPR_VAR@7329..73444637 ARGS_DESC@7046..7052
4539 NAME@7329..73444638 L_PAREN@7046..7047 "("
4540 IDENT@7329..7344 "value_or_values"4639 ARG@7047..7051
4541 R_BRACK@7344..7345 "]"4640 EXPR_INDEX_EXPR@7047..7051
4542 R_BRACK@7345..7346 "]"4641 LHS_EXPR@7047..7048
4543 WHITESPACE@7346..7356 "\n\n "4642 EXPR_VAR@7047..7048
4544 FOR_SPEC@7356..73874643 NAME@7047..7048
4545 FOR_KW@7356..7359 "for"4644 IDENT@7047..7048 "b"
4546 WHITESPACE@7359..7360 " "4645 L_BRACK@7048..7049 "["
4547 NAME@7360..73614646 EXPR_VAR@7049..7050
4548 IDENT@7360..7361 "k"4647 NAME@7049..7050
4549 WHITESPACE@7361..7362 " "4648 IDENT@7049..7050 "j"
4550 IN_KW@7362..7364 "in"4649 R_BRACK@7050..7051 "]"
4551 WHITESPACE@7364..7365 " "4650 R_PAREN@7051..7052 ")"
4552 EXPR_APPLY@7365..73874651 SEMI@7052..7053 ";"
4553 EXPR_INDEX@7365..73814652 WHITESPACE@7053..7062 "\n "
4554 EXPR_VAR@7365..73684653 EXPR_IF_THEN_ELSE@7062..7289
4555 NAME@7365..73684654 IF_KW@7062..7064 "if"
4556 IDENT@7365..7368 "std"4655 WHITESPACE@7064..7065 " "
4557 DOT@7368..7369 "."4656 EXPR_BINARY@7065..7073
4558 NAME@7369..73814657 LHS_EXPR@7065..7067
4559 IDENT@7369..7381 "objectFields"4658 EXPR_VAR@7065..7067
4560 ARGS_DESC@7381..73874659 NAME@7065..7067
4561 L_PAREN@7381..7382 "("4660 IDENT@7065..7067 "ak"
4562 ARG@7382..73864661 WHITESPACE@7067..7068 " "
4563 EXPR_VAR@7382..73864662 EQ@7068..7070 "=="
4564 NAME@7382..73864663 WHITESPACE@7070..7071 " "
4565 IDENT@7382..7386 "body"4664 EXPR_VAR@7071..7073
4566 R_PAREN@7386..7387 ")"4665 NAME@7071..7073
4567 WHITESPACE@7387..7394 "\n "4666 IDENT@7071..7073 "bk"
4568 R_BRACK@7394..7395 "]"4667 WHITESPACE@7073..7074 " "
4569 R_PAREN@7395..7396 ")"4668 THEN_KW@7074..7078 "then"
4570 SEMI@7396..7397 ";"4669 WHITESPACE@7078..7089 "\n "
4571 WHITESPACE@7397..7403 "\n\n "4670 TRUE_EXPR@7089..7137
4572 EXPR_LOCAL@7403..77564671 EXPR_APPLY@7089..7137
4573 LOCAL_KW@7403..7408 "local"4672 EXPR_VAR@7089..7092
4574 WHITESPACE@7408..7409 " "4673 NAME@7089..7092
4575 BIND_FUNCTION@7409..74774674 IDENT@7089..7092 "aux"
4576 NAME@7409..74224675 ARGS_DESC@7092..7137
4577 IDENT@7409..7422 "section_lines"4676 L_PAREN@7092..7093 "("
4578 PARAMS_DESC@7422..74364677 ARG@7093..7094
4579 L_PAREN@7422..7423 "("4678 EXPR_VAR@7093..7094
4580 PARAM@7423..74284679 NAME@7093..7094
4581 DESTRUCT_FULL@7423..74284680 IDENT@7093..7094 "a"
4582 NAME@7423..74284681 COMMA@7094..7095 ","
4583 IDENT@7423..7428 "sname"4682 WHITESPACE@7095..7096 " "
4584 COMMA@7428..7429 ","4683 ARG@7096..7097
4585 WHITESPACE@7429..7430 " "4684 EXPR_VAR@7096..7097
4586 PARAM@7430..74354685 NAME@7096..7097
4587 DESTRUCT_FULL@7430..74354686 IDENT@7096..7097 "b"
4588 NAME@7430..74354687 COMMA@7097..7098 ","
4589 IDENT@7430..7435 "sbody"4688 WHITESPACE@7098..7099 " "
4590 R_PAREN@7435..7436 ")"4689 ARG@7099..7104
4591 WHITESPACE@7436..7437 " "4690 EXPR_BINARY@7099..7104
4592 ASSIGN@7437..7438 "="4691 LHS_EXPR@7099..7100
4593 WHITESPACE@7438..7439 " "4692 EXPR_VAR@7099..7100
4594 EXPR_BINARY@7439..74774693 NAME@7099..7100
4595 LHS_EXPR@7439..74574694 IDENT@7099..7100 "i"
4596 EXPR_ARRAY@7439..74574695 WHITESPACE@7100..7101 " "
4597 L_BRACK@7439..7440 "["4696 PLUS@7101..7102 "+"
4598 EXPR_BINARY@7440..74564697 WHITESPACE@7102..7103 " "
4599 LHS_EXPR@7440..74464698 EXPR_NUMBER@7103..7104
4600 EXPR_STRING@7440..74464699 FLOAT@7103..7104 "1"
4601 STRING_SINGLE@7440..7446 "'[%s]'"4700 COMMA@7104..7105 ","
4602 WHITESPACE@7446..7447 " "4701 WHITESPACE@7105..7106 " "
4603 MODULO@7447..7448 "%"4702 ARG@7106..7111
4604 WHITESPACE@7448..7449 " "4703 EXPR_BINARY@7106..7111
4605 EXPR_ARRAY@7449..74564704 LHS_EXPR@7106..7107
4606 L_BRACK@7449..7450 "["4705 EXPR_VAR@7106..7107
4607 EXPR_VAR@7450..74554706 NAME@7106..7107
4608 NAME@7450..74554707 IDENT@7106..7107 "j"
4609 IDENT@7450..7455 "sname"4708 WHITESPACE@7107..7108 " "
4610 R_BRACK@7455..7456 "]"4709 PLUS@7108..7109 "+"
4611 R_BRACK@7456..7457 "]"4710 WHITESPACE@7109..7110 " "
4612 WHITESPACE@7457..7458 " "4711 EXPR_NUMBER@7110..7111
4613 PLUS@7458..7459 "+"4712 FLOAT@7110..7111 "1"
4614 WHITESPACE@7459..7460 " "4713 COMMA@7111..7112 ","
4615 EXPR_APPLY@7460..74774714 WHITESPACE@7112..7113 " "
4616 EXPR_VAR@7460..74704715 ARG@7113..7125
4617 NAME@7460..74704716 EXPR_BINARY@7113..7125
4618 IDENT@7460..7470 "body_lines"4717 LHS_EXPR@7113..7116
4619 ARGS_DESC@7470..74774718 EXPR_VAR@7113..7116
4620 L_PAREN@7470..7471 "("4719 NAME@7113..7116
4621 ARG@7471..74764720 IDENT@7113..7116 "acc"
4622 EXPR_VAR@7471..74764721 WHITESPACE@7116..7117 " "
4623 NAME@7471..74764722 PLUS@7117..7118 "+"
4624 IDENT@7471..7476 "sbody"4723 WHITESPACE@7118..7119 " "
4625 R_PAREN@7476..7477 ")"4724 EXPR_ARRAY@7119..7125
4626 COMMA@7477..7478 ","4725 L_BRACK@7119..7120 "["
4627 WHITESPACE@7478..7489 "\n "4726 EXPR_INDEX_EXPR@7120..7124
4628 BIND_DESTRUCT@7489..75644727 LHS_EXPR@7120..7121
4629 DESTRUCT_FULL@7489..74984728 EXPR_VAR@7120..7121
4630 NAME@7489..74984729 NAME@7120..7121
4631 IDENT@7489..7498 "main_body"4730 IDENT@7120..7121 "a"
4632 WHITESPACE@7498..7499 " "4731 L_BRACK@7121..7122 "["
4633 ASSIGN@7499..7500 "="4732 EXPR_VAR@7122..7123
4634 WHITESPACE@7500..7501 " "4733 NAME@7122..7123
4635 EXPR_IF_THEN_ELSE@7501..75644734 IDENT@7122..7123 "i"
4636 IF_KW@7501..7503 "if"4735 R_BRACK@7123..7124 "]"
4637 WHITESPACE@7503..7504 " "4736 R_BRACK@7124..7125 "]"
4638 EXPR_APPLY@7504..75304737 R_PAREN@7125..7126 ")"
4639 EXPR_INDEX@7504..75174738 WHITESPACE@7126..7127 " "
4640 EXPR_VAR@7504..75074739 TAILSTRICT_KW@7127..7137 "tailstrict"
4641 NAME@7504..75074740 WHITESPACE@7137..7146 "\n "
4642 IDENT@7504..7507 "std"4741 ELSE_KW@7146..7150 "else"
4643 DOT@7507..7508 "."4742 WHITESPACE@7150..7151 " "
4644 NAME@7508..75174743 FALSE_EXPR@7151..7289
4645 IDENT@7508..7517 "objectHas"4744 EXPR_IF_THEN_ELSE@7151..7289
4646 ARGS_DESC@7517..75304745 IF_KW@7151..7153 "if"
4647 L_PAREN@7517..7518 "("4746 WHITESPACE@7153..7154 " "
4648 ARG@7518..75214747 EXPR_BINARY@7154..7161
4649 EXPR_VAR@7518..75214748 LHS_EXPR@7154..7156
4650 NAME@7518..75214749 EXPR_VAR@7154..7156
4651 IDENT@7518..7521 "ini"4750 NAME@7154..7156
4652 COMMA@7521..7522 ","4751 IDENT@7154..7156 "ak"
4653 WHITESPACE@7522..7523 " "4752 WHITESPACE@7156..7157 " "
4654 ARG@7523..75294753 LT@7157..7158 "<"
4655 EXPR_STRING@7523..75294754 WHITESPACE@7158..7159 " "
4656 STRING_SINGLE@7523..7529 "'main'"4755 EXPR_VAR@7159..7161
4657 R_PAREN@7529..7530 ")"4756 NAME@7159..7161
4658 WHITESPACE@7530..7531 " "4757 IDENT@7159..7161 "bk"
4659 THEN_KW@7531..7535 "then"4758 WHITESPACE@7161..7162 " "
4660 WHITESPACE@7535..7536 " "4759 THEN_KW@7162..7166 "then"
4661 TRUE_EXPR@7536..75564760 WHITESPACE@7166..7177 "\n "
4662 EXPR_APPLY@7536..75564761 TRUE_EXPR@7177..7221
4663 EXPR_VAR@7536..75464762 EXPR_APPLY@7177..7221
4664 NAME@7536..75464763 EXPR_VAR@7177..7180
4665 IDENT@7536..7546 "body_lines"4764 NAME@7177..7180
4666 ARGS_DESC@7546..75564765 IDENT@7177..7180 "aux"
4667 L_PAREN@7546..7547 "("4766 ARGS_DESC@7180..7221
4668 ARG@7547..75554767 L_PAREN@7180..7181 "("
4669 EXPR_INDEX@7547..75554768 ARG@7181..7182
4670 EXPR_VAR@7547..75504769 EXPR_VAR@7181..7182
4671 NAME@7547..75504770 NAME@7181..7182
4672 IDENT@7547..7550 "ini"4771 IDENT@7181..7182 "a"
4673 DOT@7550..7551 "."4772 COMMA@7182..7183 ","
4674 NAME@7551..75554773 WHITESPACE@7183..7184 " "
4675 IDENT@7551..7555 "main"4774 ARG@7184..7185
4676 R_PAREN@7555..7556 ")"4775 EXPR_VAR@7184..7185
4677 WHITESPACE@7556..7557 " "4776 NAME@7184..7185
4678 ELSE_KW@7557..7561 "else"4777 IDENT@7184..7185 "b"
4679 WHITESPACE@7561..7562 " "4778 COMMA@7185..7186 ","
4680 FALSE_EXPR@7562..75644779 WHITESPACE@7186..7187 " "
4681 EXPR_ARRAY@7562..75644780 ARG@7187..7192
4682 L_BRACK@7562..7563 "["4781 EXPR_BINARY@7187..7192
4683 R_BRACK@7563..7564 "]"4782 LHS_EXPR@7187..7188
4684 COMMA@7564..7565 ","4783 EXPR_VAR@7187..7188
4685 WHITESPACE@7565..7576 "\n "4784 NAME@7187..7188
4686 BIND_DESTRUCT@7576..76844785 IDENT@7187..7188 "i"
4687 DESTRUCT_FULL@7576..75884786 WHITESPACE@7188..7189 " "
4688 NAME@7576..75884787 PLUS@7189..7190 "+"
4689 IDENT@7576..7588 "all_sections"4788 WHITESPACE@7190..7191 " "
4690 WHITESPACE@7588..7589 " "4789 EXPR_NUMBER@7191..7192
4691 ASSIGN@7589..7590 "="4790 FLOAT@7191..7192 "1"
4692 WHITESPACE@7590..7591 " "4791 COMMA@7192..7193 ","
4693 EXPR_ARRAY_COMP@7591..76844792 WHITESPACE@7193..7194 " "
4694 L_BRACK@7591..7592 "["4793 ARG@7194..7195
4695 WHITESPACE@7592..7599 "\n "4794 EXPR_VAR@7194..7195
4696 EXPR_APPLY@7599..76324795 NAME@7194..7195
4697 EXPR_VAR@7599..76124796 IDENT@7194..7195 "j"
4698 NAME@7599..76124797 COMMA@7195..7196 ","
4699 IDENT@7599..7612 "section_lines"4798 WHITESPACE@7196..7197 " "
4700 ARGS_DESC@7612..76324799 ARG@7197..7209
4701 L_PAREN@7612..7613 "("4800 EXPR_BINARY@7197..7209
4702 ARG@7613..76144801 LHS_EXPR@7197..7200
4703 EXPR_VAR@7613..76144802 EXPR_VAR@7197..7200
4704 NAME@7613..76144803 NAME@7197..7200
4705 IDENT@7613..7614 "k"4804 IDENT@7197..7200 "acc"
4706 COMMA@7614..7615 ","4805 WHITESPACE@7200..7201 " "
4707 WHITESPACE@7615..7616 " "4806 PLUS@7201..7202 "+"
4708 ARG@7616..76314807 WHITESPACE@7202..7203 " "
4709 EXPR_INDEX_EXPR@7616..76314808 EXPR_ARRAY@7203..7209
4710 LHS_EXPR@7616..76284809 L_BRACK@7203..7204 "["
4711 EXPR_INDEX@7616..76284810 EXPR_INDEX_EXPR@7204..7208
4712 EXPR_VAR@7616..76194811 LHS_EXPR@7204..7205
4713 NAME@7616..76194812 EXPR_VAR@7204..7205
4714 IDENT@7616..7619 "ini"4813 NAME@7204..7205
4715 DOT@7619..7620 "."4814 IDENT@7204..7205 "a"
4716 NAME@7620..76284815 L_BRACK@7205..7206 "["
4717 IDENT@7620..7628 "sections"4816 EXPR_VAR@7206..7207
4718 L_BRACK@7628..7629 "["4817 NAME@7206..7207
4719 EXPR_VAR@7629..76304818 IDENT@7206..7207 "i"
4720 NAME@7629..76304819 R_BRACK@7207..7208 "]"
4721 IDENT@7629..7630 "k"4820 R_BRACK@7208..7209 "]"
4722 R_BRACK@7630..7631 "]"4821 R_PAREN@7209..7210 ")"
4723 R_PAREN@7631..7632 ")"4822 WHITESPACE@7210..7211 " "
4724 WHITESPACE@7632..7639 "\n "4823 TAILSTRICT_KW@7211..7221 "tailstrict"
4725 FOR_SPEC@7639..76784824 WHITESPACE@7221..7230 "\n "
4726 FOR_KW@7639..7642 "for"4825 ELSE_KW@7230..7234 "else"
4727 WHITESPACE@7642..7643 " "4826 WHITESPACE@7234..7245 "\n "
4728 NAME@7643..76444827 FALSE_EXPR@7245..7289
4729 IDENT@7643..7644 "k"4828 EXPR_APPLY@7245..7289
4730 WHITESPACE@7644..7645 " "4829 EXPR_VAR@7245..7248
4731 IN_KW@7645..7647 "in"4830 NAME@7245..7248
4732 WHITESPACE@7647..7648 " "4831 IDENT@7245..7248 "aux"
4733 EXPR_APPLY@7648..76784832 ARGS_DESC@7248..7289
4734 EXPR_INDEX@7648..76644833 L_PAREN@7248..7249 "("
4735 EXPR_VAR@7648..76514834 ARG@7249..7250
4736 NAME@7648..76514835 EXPR_VAR@7249..7250
4737 IDENT@7648..7651 "std"4836 NAME@7249..7250
4738 DOT@7651..7652 "."4837 IDENT@7249..7250 "a"
4739 NAME@7652..76644838 COMMA@7250..7251 ","
4740 IDENT@7652..7664 "objectFields"4839 WHITESPACE@7251..7252 " "
4741 ARGS_DESC@7664..76784840 ARG@7252..7253
4742 L_PAREN@7664..7665 "("4841 EXPR_VAR@7252..7253
4743 ARG@7665..76774842 NAME@7252..7253
4744 EXPR_INDEX@7665..76774843 IDENT@7252..7253 "b"
4745 EXPR_VAR@7665..76684844 COMMA@7253..7254 ","
4746 NAME@7665..76684845 WHITESPACE@7254..7255 " "
4747 IDENT@7665..7668 "ini"4846 ARG@7255..7256
4748 DOT@7668..7669 "."4847 EXPR_VAR@7255..7256
4749 NAME@7669..76774848 NAME@7255..7256
4750 IDENT@7669..7677 "sections"4849 IDENT@7255..7256 "i"
4751 R_PAREN@7677..7678 ")"4850 COMMA@7256..7257 ","
4752 WHITESPACE@7678..7683 "\n "4851 WHITESPACE@7257..7258 " "
4753 R_BRACK@7683..7684 "]"4852 ARG@7258..7263
4754 SEMI@7684..7685 ";"4853 EXPR_BINARY@7258..7263
4755 WHITESPACE@7685..7690 "\n "4854 LHS_EXPR@7258..7259
4756 EXPR_APPLY@7690..77564855 EXPR_VAR@7258..7259
4757 EXPR_INDEX@7690..76984856 NAME@7258..7259
4758 EXPR_VAR@7690..76934857 IDENT@7258..7259 "j"
4759 NAME@7690..76934858 WHITESPACE@7259..7260 " "
4760 IDENT@7690..7693 "std"4859 PLUS@7260..7261 "+"
4761 DOT@7693..7694 "."4860 WHITESPACE@7261..7262 " "
4762 NAME@7694..76984861 EXPR_NUMBER@7262..7263
4763 IDENT@7694..7698 "join"4862 FLOAT@7262..7263 "1"
4764 ARGS_DESC@7698..77564863 COMMA@7263..7264 ","
4765 L_PAREN@7698..7699 "("4864 WHITESPACE@7264..7265 " "
4766 ARG@7699..77034865 ARG@7265..7277
4767 EXPR_STRING@7699..77034866 EXPR_BINARY@7265..7277
4768 STRING_SINGLE@7699..7703 "'\\n'"4867 LHS_EXPR@7265..7268
4769 COMMA@7703..7704 ","4868 EXPR_VAR@7265..7268
4770 WHITESPACE@7704..7705 " "4869 NAME@7265..7268
4771 ARG@7705..77554870 IDENT@7265..7268 "acc"
4772 EXPR_BINARY@7705..77554871 WHITESPACE@7268..7269 " "
4773 LHS_EXPR@7705..77484872 PLUS@7269..7270 "+"
4774 EXPR_BINARY@7705..77484873 WHITESPACE@7270..7271 " "
4775 LHS_EXPR@7705..77144874 EXPR_ARRAY@7271..7277
4776 EXPR_VAR@7705..77144875 L_BRACK@7271..7272 "["
4777 NAME@7705..77144876 EXPR_INDEX_EXPR@7272..7276
4778 IDENT@7705..7714 "main_body"4877 LHS_EXPR@7272..7273
4779 WHITESPACE@7714..7715 " "4878 EXPR_VAR@7272..7273
4780 PLUS@7715..7716 "+"4879 NAME@7272..7273
4781 WHITESPACE@7716..7717 " "4880 IDENT@7272..7273 "b"
4782 EXPR_APPLY@7717..77484881 L_BRACK@7273..7274 "["
4783 EXPR_INDEX@7717..77344882 EXPR_VAR@7274..7275
4784 EXPR_VAR@7717..77204883 NAME@7274..7275
4785 NAME@7717..77204884 IDENT@7274..7275 "j"
4786 IDENT@7717..7720 "std"4885 R_BRACK@7275..7276 "]"
4787 DOT@7720..7721 "."4886 R_BRACK@7276..7277 "]"
4788 NAME@7721..77344887 R_PAREN@7277..7278 ")"
4789 IDENT@7721..7734 "flattenArrays"4888 WHITESPACE@7278..7279 " "
4790 ARGS_DESC@7734..77484889 TAILSTRICT_KW@7279..7289 "tailstrict"
4791 L_PAREN@7734..7735 "("4890 SEMI@7289..7290 ";"
4792 ARG@7735..77474891 WHITESPACE@7290..7295 "\n "
4793 EXPR_VAR@7735..77474892 EXPR_APPLY@7295..7314
4794 NAME@7735..77474893 EXPR_VAR@7295..7298
4795 IDENT@7735..7747 "all_sections"4894 NAME@7295..7298
4796 R_PAREN@7747..7748 ")"4895 IDENT@7295..7298 "aux"
4797 WHITESPACE@7748..7749 " "4896 ARGS_DESC@7298..7314
4798 PLUS@7749..7750 "+"4897 L_PAREN@7298..7299 "("
4799 WHITESPACE@7750..7751 " "4898 ARG@7299..7300
4800 EXPR_ARRAY@7751..77554899 EXPR_VAR@7299..7300
4801 L_BRACK@7751..7752 "["4900 NAME@7299..7300
4802 EXPR_STRING@7752..77544901 IDENT@7299..7300 "a"
4803 STRING_SINGLE@7752..7754 "''"4902 COMMA@7300..7301 ","
4804 R_BRACK@7754..7755 "]"4903 WHITESPACE@7301..7302 " "
4805 R_PAREN@7755..7756 ")"4904 ARG@7302..7303
4806 COMMA@7756..7757 ","4905 EXPR_VAR@7302..7303
4807 WHITESPACE@7757..7761 "\n\n "4906 NAME@7302..7303
4808 MEMBER_FIELD@7761..78144907 IDENT@7302..7303 "b"
4809 FIELD_METHOD@7761..78144908 COMMA@7303..7304 ","
4810 FIELD_NAME_FIXED@7761..77734909 WHITESPACE@7304..7305 " "
4811 NAME@7761..77734910 ARG@7305..7306
4812 IDENT@7761..7773 "manifestToml"4911 EXPR_NUMBER@7305..7306
4813 PARAMS_DESC@7773..77804912 FLOAT@7305..7306 "0"
4814 L_PAREN@7773..7774 "("4913 COMMA@7306..7307 ","
4815 PARAM@7774..77794914 WHITESPACE@7307..7308 " "
4816 DESTRUCT_FULL@7774..77794915 ARG@7308..7309
4817 NAME@7774..77794916 EXPR_NUMBER@7308..7309
4818 IDENT@7774..7779 "value"4917 FLOAT@7308..7309 "0"
4819 R_PAREN@7779..7780 ")"4918 COMMA@7309..7310 ","
4820 COLONCOLON@7780..7782 "::"4919 WHITESPACE@7310..7311 " "
4821 WHITESPACE@7782..7783 " "4920 ARG@7311..7313
4822 EXPR_APPLY@7783..78144921 EXPR_ARRAY@7311..7313
4823 EXPR_INDEX@7783..78014922 L_BRACK@7311..7312 "["
4824 EXPR_VAR@7783..77864923 R_BRACK@7312..7313 "]"
4825 NAME@7783..77864924 R_PAREN@7313..7314 ")"
4826 IDENT@7783..7786 "std"4925 COMMA@7314..7315 ","
4827 DOT@7786..7787 "."4926 WHITESPACE@7315..7319 "\n\n "
4828 NAME@7787..78014927 MEMBER_FIELD@7319..7741
4829 IDENT@7787..7801 "manifestTomlEx"4928 FIELD_METHOD@7319..7741
4830 ARGS_DESC@7801..78144929 FIELD_NAME_FIXED@7319..7327
4831 L_PAREN@7801..7802 "("4930 NAME@7319..7327
4832 ARG@7802..78074931 IDENT@7319..7327 "setInter"
4833 EXPR_VAR@7802..78074932 PARAMS_DESC@7327..7342
4834 NAME@7802..78074933 L_PAREN@7327..7328 "("
4835 IDENT@7802..7807 "value"4934 PARAM@7328..7329
4836 COMMA@7807..7808 ","4935 DESTRUCT_FULL@7328..7329
4837 WHITESPACE@7808..7809 " "4936 NAME@7328..7329
4838 ARG@7809..78134937 IDENT@7328..7329 "a"
4839 EXPR_STRING@7809..78134938 COMMA@7329..7330 ","
4840 STRING_SINGLE@7809..7813 "' '"4939 WHITESPACE@7330..7331 " "
4841 R_PAREN@7813..7814 ")"4940 PARAM@7331..7332
4842 COMMA@7814..7815 ","4941 DESTRUCT_FULL@7331..7332
4843 WHITESPACE@7815..7819 "\n\n "4942 NAME@7331..7332
4844 MEMBER_FIELD@7819..114764943 IDENT@7331..7332 "b"
4845 FIELD_METHOD@7819..114764944 COMMA@7332..7333 ","
4846 FIELD_NAME_FIXED@7819..78334945 WHITESPACE@7333..7334 " "
4847 NAME@7819..78334946 PARAM@7334..7341
4848 IDENT@7819..7833 "manifestTomlEx"4947 DESTRUCT_FULL@7334..7338
4849 PARAMS_DESC@7833..78484948 NAME@7334..7338
4850 L_PAREN@7833..7834 "("4949 IDENT@7334..7338 "keyF"
4851 PARAM@7834..78394950 ASSIGN@7338..7339 "="
4852 DESTRUCT_FULL@7834..78394951 EXPR_VAR@7339..7341
4853 NAME@7834..78394952 NAME@7339..7341
4854 IDENT@7834..7839 "value"4953 IDENT@7339..7341 "id"
4855 COMMA@7839..7840 ","4954 R_PAREN@7341..7342 ")"
4856 WHITESPACE@7840..7841 " "4955 COLONCOLON@7342..7344 "::"
4857 PARAM@7841..78474956 WHITESPACE@7344..7349 "\n "
4858 DESTRUCT_FULL@7841..78474957 EXPR_LOCAL@7349..7741
4859 NAME@7841..78474958 LOCAL_KW@7349..7354 "local"
4860 IDENT@7841..7847 "indent"4959 WHITESPACE@7354..7355 " "
4861 R_PAREN@7847..7848 ")"4960 BIND_FUNCTION@7355..7705
4862 COLONCOLON@7848..7850 "::"4961 NAME@7355..7358
4863 WHITESPACE@7850..7855 "\n "4962 IDENT@7355..7358 "aux"
4864 EXPR_LOCAL@7855..114764963 PARAMS_DESC@7358..7375
4865 LOCAL_KW@7855..7860 "local"4964 L_PAREN@7358..7359 "("
4866 WHITESPACE@7860..7867 "\n "4965 PARAM@7359..7360
4867 BIND_DESTRUCT@7867..79064966 DESTRUCT_FULL@7359..7360
4868 DESTRUCT_FULL@7867..78834967 NAME@7359..7360
4869 NAME@7867..78834968 IDENT@7359..7360 "a"
4870 IDENT@7867..7883 "escapeStringToml"4969 COMMA@7360..7361 ","
4871 WHITESPACE@7883..7884 " "4970 WHITESPACE@7361..7362 " "
4872 ASSIGN@7884..7885 "="4971 PARAM@7362..7363
4873 WHITESPACE@7885..7886 " "4972 DESTRUCT_FULL@7362..7363
4874 EXPR_INDEX@7886..79064973 NAME@7362..7363
4875 EXPR_VAR@7886..78894974 IDENT@7362..7363 "b"
4876 NAME@7886..78894975 COMMA@7363..7364 ","
4877 IDENT@7886..7889 "std"4976 WHITESPACE@7364..7365 " "
4878 DOT@7889..7890 "."4977 PARAM@7365..7366
4879 NAME@7890..79064978 DESTRUCT_FULL@7365..7366
4880 IDENT@7890..7906 "escapeStringJson"4979 NAME@7365..7366
4881 COMMA@7906..7907 ","4980 IDENT@7365..7366 "i"
4882 WHITESPACE@7907..7914 "\n "4981 COMMA@7366..7367 ","
4883 BIND_FUNCTION@7914..81784982 WHITESPACE@7367..7368 " "
4884 NAME@7914..79274983 PARAM@7368..7369
4885 IDENT@7914..7927 "escapeKeyToml"4984 DESTRUCT_FULL@7368..7369
4886 PARAMS_DESC@7927..79324985 NAME@7368..7369
4887 L_PAREN@7927..7928 "("4986 IDENT@7368..7369 "j"
4888 PARAM@7928..79314987 COMMA@7369..7370 ","
4889 DESTRUCT_FULL@7928..79314988 WHITESPACE@7370..7371 " "
4890 NAME@7928..79314989 PARAM@7371..7374
4891 IDENT@7928..7931 "key"4990 DESTRUCT_FULL@7371..7374
4892 R_PAREN@7931..7932 ")"4991 NAME@7371..7374
4893 WHITESPACE@7932..7933 " "4992 IDENT@7371..7374 "acc"
4894 ASSIGN@7933..7934 "="4993 R_PAREN@7374..7375 ")"
4895 WHITESPACE@7934..7943 "\n "4994 WHITESPACE@7375..7376 " "
4896 EXPR_LOCAL@7943..81784995 ASSIGN@7376..7377 "="
4897 LOCAL_KW@7943..7948 "local"4996 WHITESPACE@7377..7384 "\n "
4898 WHITESPACE@7948..7949 " "4997 EXPR_IF_THEN_ELSE@7384..7705
4899 BIND_DESTRUCT@7949..80564998 IF_KW@7384..7386 "if"
4900 DESTRUCT_FULL@7949..79614999 WHITESPACE@7386..7387 " "
4901 NAME@7949..79615000 EXPR_BINARY@7387..7427
4902 IDENT@7949..7961 "bare_allowed"5001 LHS_EXPR@7387..7405
4903 WHITESPACE@7961..7962 " "5002 EXPR_BINARY@7387..7405
4904 ASSIGN@7962..7963 "="5003 LHS_EXPR@7387..7388
4905 WHITESPACE@7963..7964 " "5004 EXPR_VAR@7387..7388
4906 EXPR_APPLY@7964..80565005 NAME@7387..7388
4907 EXPR_INDEX@7964..79715006 IDENT@7387..7388 "i"
4908 EXPR_VAR@7964..79675007 WHITESPACE@7388..7389 " "
4909 NAME@7964..79675008 GE@7389..7391 ">="
4910 IDENT@7964..7967 "std"5009 WHITESPACE@7391..7392 " "
4911 DOT@7967..7968 "."5010 EXPR_APPLY@7392..7405
4912 NAME@7968..79715011 EXPR_INDEX@7392..7402
4913 IDENT@7968..7971 "set"5012 EXPR_VAR@7392..7395
4914 ARGS_DESC@7971..80565013 NAME@7392..7395
4915 L_PAREN@7971..7972 "("5014 IDENT@7392..7395 "std"
4916 ARG@7972..80555015 DOT@7395..7396 "."
4917 EXPR_APPLY@7972..80555016 NAME@7396..7402
4918 EXPR_INDEX@7972..79875017 IDENT@7396..7402 "length"
4919 EXPR_VAR@7972..79755018 ARGS_DESC@7402..7405
4920 NAME@7972..79755019 L_PAREN@7402..7403 "("
4921 IDENT@7972..7975 "std"5020 ARG@7403..7404
4922 DOT@7975..7976 "."5021 EXPR_VAR@7403..7404
4923 NAME@7976..79875022 NAME@7403..7404
4924 IDENT@7976..7987 "stringChars"5023 IDENT@7403..7404 "a"
4925 ARGS_DESC@7987..80555024 R_PAREN@7404..7405 ")"
4926 L_PAREN@7987..7988 "("5025 WHITESPACE@7405..7406 " "
4927 ARG@7988..80545026 OR@7406..7408 "||"
4928 EXPR_STRING@7988..80545027 WHITESPACE@7408..7409 " "
4929 STRING_SINGLE@7988..8054 "'ABCDEFGHIJKLMNOPQRST ..."5028 EXPR_BINARY@7409..7427
4930 R_PAREN@8054..8055 ")"5029 LHS_EXPR@7409..7410
4931 R_PAREN@8055..8056 ")"5030 EXPR_VAR@7409..7410
4932 SEMI@8056..8057 ";"5031 NAME@7409..7410
4933 WHITESPACE@8057..8066 "\n "5032 IDENT@7409..7410 "j"
4934 EXPR_IF_THEN_ELSE@8066..81785033 WHITESPACE@7410..7411 " "
4935 IF_KW@8066..8068 "if"5034 GE@7411..7413 ">="
4936 WHITESPACE@8068..8069 " "5035 WHITESPACE@7413..7414 " "
4937 EXPR_BINARY@8069..81425036 EXPR_APPLY@7414..7427
4938 LHS_EXPR@8069..81265037 EXPR_INDEX@7414..7424
4939 EXPR_APPLY@8069..81265038 EXPR_VAR@7414..7417
4940 EXPR_INDEX@8069..80815039 NAME@7414..7417
4941 EXPR_VAR@8069..80725040 IDENT@7414..7417 "std"
4942 NAME@8069..80725041 DOT@7417..7418 "."
4943 IDENT@8069..8072 "std"5042 NAME@7418..7424
4944 DOT@8072..8073 "."5043 IDENT@7418..7424 "length"
4945 NAME@8073..80815044 ARGS_DESC@7424..7427
4946 IDENT@8073..8081 "setUnion"5045 L_PAREN@7424..7425 "("
4947 ARGS_DESC@8081..81265046 ARG@7425..7426
4948 L_PAREN@8081..8082 "("5047 EXPR_VAR@7425..7426
4949 ARG@8082..81115048 NAME@7425..7426
4950 EXPR_APPLY@8082..81115049 IDENT@7425..7426 "b"
4951 EXPR_INDEX@8082..80895050 R_PAREN@7426..7427 ")"
4952 EXPR_VAR@8082..80855051 WHITESPACE@7427..7428 " "
4953 NAME@8082..80855052 THEN_KW@7428..7432 "then"
4954 IDENT@8082..8085 "std"5053 WHITESPACE@7432..7441 "\n "
4955 DOT@8085..8086 "."5054 TRUE_EXPR@7441..7444
4956 NAME@8086..80895055 EXPR_VAR@7441..7444
4957 IDENT@8086..8089 "set"5056 NAME@7441..7444
4958 ARGS_DESC@8089..81115057 IDENT@7441..7444 "acc"
4959 L_PAREN@8089..8090 "("5058 WHITESPACE@7444..7451 "\n "
4960 ARG@8090..81105059 ELSE_KW@7451..7455 "else"
4961 EXPR_APPLY@8090..81105060 WHITESPACE@7455..7464 "\n "
4962 EXPR_INDEX@8090..81055061 FALSE_EXPR@7464..7705
4963 EXPR_VAR@8090..80935062 EXPR_IF_THEN_ELSE@7464..7705
4964 NAME@8090..80935063 IF_KW@7464..7466 "if"
4965 IDENT@8090..8093 "std"5064 WHITESPACE@7466..7467 " "
4966 DOT@8093..8094 "."5065 EXPR_BINARY@7467..7491
4967 NAME@8094..81055066 LHS_EXPR@7467..7477
4968 IDENT@8094..8105 "stringChars"5067 EXPR_APPLY@7467..7477
4969 ARGS_DESC@8105..81105068 EXPR_VAR@7467..7471
4970 L_PAREN@8105..8106 "("5069 NAME@7467..7471
4971 ARG@8106..81095070 IDENT@7467..7471 "keyF"
4972 EXPR_VAR@8106..81095071 ARGS_DESC@7471..7477
4973 NAME@8106..81095072 L_PAREN@7471..7472 "("
4974 IDENT@8106..8109 "key"5073 ARG@7472..7476
4975 R_PAREN@8109..8110 ")"5074 EXPR_INDEX_EXPR@7472..7476
4976 R_PAREN@8110..8111 ")"5075 LHS_EXPR@7472..7473
4977 COMMA@8111..8112 ","5076 EXPR_VAR@7472..7473
4978 WHITESPACE@8112..8113 " "5077 NAME@7472..7473
4979 ARG@8113..81255078 IDENT@7472..7473 "a"
4980 EXPR_VAR@8113..81255079 L_BRACK@7473..7474 "["
4981 NAME@8113..81255080 EXPR_VAR@7474..7475
4982 IDENT@8113..8125 "bare_allowed"5081 NAME@7474..7475
4983 R_PAREN@8125..8126 ")"5082 IDENT@7474..7475 "i"
4984 WHITESPACE@8126..8127 " "5083 R_BRACK@7475..7476 "]"
4985 EQ@8127..8129 "=="5084 R_PAREN@7476..7477 ")"
4986 WHITESPACE@8129..8130 " "5085 WHITESPACE@7477..7478 " "
4987 EXPR_VAR@8130..81425086 EQ@7478..7480 "=="
4988 NAME@8130..81425087 WHITESPACE@7480..7481 " "
4989 IDENT@8130..8142 "bare_allowed"5088 EXPR_APPLY@7481..7491
4990 WHITESPACE@8142..8143 " "5089 EXPR_VAR@7481..7485
4991 THEN_KW@8143..8147 "then"5090 NAME@7481..7485
4992 WHITESPACE@8147..8148 " "5091 IDENT@7481..7485 "keyF"
4993 TRUE_EXPR@8148..81515092 ARGS_DESC@7485..7491
4994 EXPR_VAR@8148..81515093 L_PAREN@7485..7486 "("
4995 NAME@8148..81515094 ARG@7486..7490
4996 IDENT@8148..8151 "key"5095 EXPR_INDEX_EXPR@7486..7490
4997 WHITESPACE@8151..8152 " "5096 LHS_EXPR@7486..7487
4998 ELSE_KW@8152..8156 "else"5097 EXPR_VAR@7486..7487
4999 WHITESPACE@8156..8157 " "5098 NAME@7486..7487
5000 FALSE_EXPR@8157..81785099 IDENT@7486..7487 "b"
5001 EXPR_APPLY@8157..81785100 L_BRACK@7487..7488 "["
5002 EXPR_VAR@8157..81735101 EXPR_VAR@7488..7489
5003 NAME@8157..81735102 NAME@7488..7489
5004 IDENT@8157..8173 "escapeStringToml"5103 IDENT@7488..7489 "j"
5005 ARGS_DESC@8173..81785104 R_BRACK@7489..7490 "]"
5006 L_PAREN@8173..8174 "("5105 R_PAREN@7490..7491 ")"
5007 ARG@8174..81775106 WHITESPACE@7491..7492 " "
5008 EXPR_VAR@8174..81775107 THEN_KW@7492..7496 "then"
5009 NAME@8174..81775108 WHITESPACE@7496..7507 "\n "
5010 IDENT@8174..8177 "key"5109 TRUE_EXPR@7507..7555
5011 R_PAREN@8177..8178 ")"5110 EXPR_APPLY@7507..7555
5012 COMMA@8178..8179 ","5111 EXPR_VAR@7507..7510
5013 WHITESPACE@8179..8186 "\n "5112 NAME@7507..7510
5014 BIND_FUNCTION@8186..82985113 IDENT@7507..7510 "aux"
5015 NAME@8186..81985114 ARGS_DESC@7510..7555
5016 IDENT@8186..8198 "isTableArray"5115 L_PAREN@7510..7511 "("
5017 PARAMS_DESC@8198..82015116 ARG@7511..7512
5018 L_PAREN@8198..8199 "("5117 EXPR_VAR@7511..7512
5019 PARAM@8199..82005118 NAME@7511..7512
5020 DESTRUCT_FULL@8199..82005119 IDENT@7511..7512 "a"
5021 NAME@8199..82005120 COMMA@7512..7513 ","
5022 IDENT@8199..8200 "v"5121 WHITESPACE@7513..7514 " "
5023 R_PAREN@8200..8201 ")"5122 ARG@7514..7515
5024 WHITESPACE@8201..8202 " "5123 EXPR_VAR@7514..7515
5025 ASSIGN@8202..8203 "="5124 NAME@7514..7515
5026 WHITESPACE@8203..8204 " "5125 IDENT@7514..7515 "b"
5027 EXPR_BINARY@8204..82985126 COMMA@7515..7516 ","
5028 LHS_EXPR@8204..82395127 WHITESPACE@7516..7517 " "
5029 EXPR_BINARY@8204..82395128 ARG@7517..7522
5030 LHS_EXPR@8204..82185129 EXPR_BINARY@7517..7522
5031 EXPR_APPLY@8204..82185130 LHS_EXPR@7517..7518
5032 EXPR_INDEX@8204..82155131 EXPR_VAR@7517..7518
5033 EXPR_VAR@8204..82075132 NAME@7517..7518
5034 NAME@8204..82075133 IDENT@7517..7518 "i"
5035 IDENT@8204..8207 "std"5134 WHITESPACE@7518..7519 " "
5036 DOT@8207..8208 "."5135 PLUS@7519..7520 "+"
5037 NAME@8208..82155136 WHITESPACE@7520..7521 " "
5038 IDENT@8208..8215 "isArray"5137 EXPR_NUMBER@7521..7522
5039 ARGS_DESC@8215..82185138 FLOAT@7521..7522 "1"
5040 L_PAREN@8215..8216 "("5139 COMMA@7522..7523 ","
5041 ARG@8216..82175140 WHITESPACE@7523..7524 " "
5042 EXPR_VAR@8216..82175141 ARG@7524..7529
5043 NAME@8216..82175142 EXPR_BINARY@7524..7529
5044 IDENT@8216..8217 "v"5143 LHS_EXPR@7524..7525
5045 R_PAREN@8217..8218 ")"5144 EXPR_VAR@7524..7525
5046 WHITESPACE@8218..8219 " "5145 NAME@7524..7525
5047 AND@8219..8221 "&&"5146 IDENT@7524..7525 "j"
5048 WHITESPACE@8221..8222 " "5147 WHITESPACE@7525..7526 " "
5049 EXPR_BINARY@8222..82395148 PLUS@7526..7527 "+"
5050 LHS_EXPR@8222..82355149 WHITESPACE@7527..7528 " "
5051 EXPR_APPLY@8222..82355150 EXPR_NUMBER@7528..7529
5052 EXPR_INDEX@8222..82325151 FLOAT@7528..7529 "1"
5053 EXPR_VAR@8222..82255152 COMMA@7529..7530 ","
5054 NAME@8222..82255153 WHITESPACE@7530..7531 " "
5055 IDENT@8222..8225 "std"5154 ARG@7531..7543
5056 DOT@8225..8226 "."5155 EXPR_BINARY@7531..7543
5057 NAME@8226..82325156 LHS_EXPR@7531..7534
5058 IDENT@8226..8232 "length"5157 EXPR_VAR@7531..7534
5059 ARGS_DESC@8232..82355158 NAME@7531..7534
5060 L_PAREN@8232..8233 "("5159 IDENT@7531..7534 "acc"
5061 ARG@8233..82345160 WHITESPACE@7534..7535 " "
5062 EXPR_VAR@8233..82345161 PLUS@7535..7536 "+"
5063 NAME@8233..82345162 WHITESPACE@7536..7537 " "
5064 IDENT@8233..8234 "v"5163 EXPR_ARRAY@7537..7543
5065 R_PAREN@8234..8235 ")"5164 L_BRACK@7537..7538 "["
5066 WHITESPACE@8235..8236 " "5165 EXPR_INDEX_EXPR@7538..7542
5067 GT@8236..8237 ">"5166 LHS_EXPR@7538..7539
5068 WHITESPACE@8237..8238 " "5167 EXPR_VAR@7538..7539
5069 EXPR_NUMBER@8238..82395168 NAME@7538..7539
5070 FLOAT@8238..8239 "0"5169 IDENT@7538..7539 "a"
5071 WHITESPACE@8239..8240 " "5170 L_BRACK@7539..7540 "["
5072 AND@8240..8242 "&&"5171 EXPR_VAR@7540..7541
5073 WHITESPACE@8242..8243 " "5172 NAME@7540..7541
5074 EXPR_APPLY@8243..82985173 IDENT@7540..7541 "i"
5075 EXPR_INDEX@8243..82525174 R_BRACK@7541..7542 "]"
5076 EXPR_VAR@8243..82465175 R_BRACK@7542..7543 "]"
5077 NAME@8243..82465176 R_PAREN@7543..7544 ")"
5078 IDENT@8243..8246 "std"5177 WHITESPACE@7544..7545 " "
5079 DOT@8246..8247 "."5178 TAILSTRICT_KW@7545..7555 "tailstrict"
5080 NAME@8247..82525179 WHITESPACE@7555..7564 "\n "
5081 IDENT@8247..8252 "foldl"5180 ELSE_KW@7564..7568 "else"
5082 ARGS_DESC@8252..82985181 WHITESPACE@7568..7569 " "
5083 L_PAREN@8252..8253 "("5182 FALSE_EXPR@7569..7705
5084 ARG@8253..82885183 EXPR_IF_THEN_ELSE@7569..7705
5085 EXPR_FUNCTION@8253..82885184 IF_KW@7569..7571 "if"
5086 FUNCTION_KW@8253..8261 "function"5185 WHITESPACE@7571..7572 " "
5087 PARAMS_DESC@8261..82675186 EXPR_BINARY@7572..7595
5088 L_PAREN@8261..8262 "("5187 LHS_EXPR@7572..7582
5089 PARAM@8262..82635188 EXPR_APPLY@7572..7582
5090 DESTRUCT_FULL@8262..82635189 EXPR_VAR@7572..7576
5091 NAME@8262..82635190 NAME@7572..7576
5092 IDENT@8262..8263 "a"5191 IDENT@7572..7576 "keyF"
5093 COMMA@8263..8264 ","5192 ARGS_DESC@7576..7582
5094 WHITESPACE@8264..8265 " "5193 L_PAREN@7576..7577 "("
5095 PARAM@8265..82665194 ARG@7577..7581
5096 DESTRUCT_FULL@8265..82665195 EXPR_INDEX_EXPR@7577..7581
5097 NAME@8265..82665196 LHS_EXPR@7577..7578
5098 IDENT@8265..8266 "b"5197 EXPR_VAR@7577..7578
5099 R_PAREN@8266..8267 ")"5198 NAME@7577..7578
5100 WHITESPACE@8267..8268 " "5199 IDENT@7577..7578 "a"
5101 EXPR_BINARY@8268..82885200 L_BRACK@7578..7579 "["
5102 LHS_EXPR@8268..82695201 EXPR_VAR@7579..7580
5103 EXPR_VAR@8268..82695202 NAME@7579..7580
5104 NAME@8268..82695203 IDENT@7579..7580 "i"
5105 IDENT@8268..8269 "a"5204 R_BRACK@7580..7581 "]"
5106 WHITESPACE@8269..8270 " "5205 R_PAREN@7581..7582 ")"
5107 AND@8270..8272 "&&"5206 WHITESPACE@7582..7583 " "
5108 WHITESPACE@8272..8273 " "5207 LT@7583..7584 "<"
5109 EXPR_APPLY@8273..82885208 WHITESPACE@7584..7585 " "
5110 EXPR_INDEX@8273..82855209 EXPR_APPLY@7585..7595
5111 EXPR_VAR@8273..82765210 EXPR_VAR@7585..7589
5112 NAME@8273..82765211 NAME@7585..7589
5113 IDENT@8273..8276 "std"5212 IDENT@7585..7589 "keyF"
5114 DOT@8276..8277 "."5213 ARGS_DESC@7589..7595
5115 NAME@8277..82855214 L_PAREN@7589..7590 "("
5116 IDENT@8277..8285 "isObject"5215 ARG@7590..7594
5117 ARGS_DESC@8285..82885216 EXPR_INDEX_EXPR@7590..7594
5118 L_PAREN@8285..8286 "("5217 LHS_EXPR@7590..7591
5119 ARG@8286..82875218 EXPR_VAR@7590..7591
5120 EXPR_VAR@8286..82875219 NAME@7590..7591
5121 NAME@8286..82875220 IDENT@7590..7591 "b"
5122 IDENT@8286..8287 "b"5221 L_BRACK@7591..7592 "["
5123 R_PAREN@8287..8288 ")"5222 EXPR_VAR@7592..7593
5124 COMMA@8288..8289 ","5223 NAME@7592..7593
5125 WHITESPACE@8289..8290 " "5224 IDENT@7592..7593 "j"
5126 ARG@8290..82915225 R_BRACK@7593..7594 "]"
5127 EXPR_VAR@8290..82915226 R_PAREN@7594..7595 ")"
5128 NAME@8290..82915227 WHITESPACE@7595..7596 " "
5129 IDENT@8290..8291 "v"5228 THEN_KW@7596..7600 "then"
5130 COMMA@8291..8292 ","5229 WHITESPACE@7600..7611 "\n "
5131 WHITESPACE@8292..8293 " "5230 TRUE_EXPR@7611..7646
5132 ARG@8293..82975231 EXPR_APPLY@7611..7646
5133 EXPR_LITERAL@8293..82975232 EXPR_VAR@7611..7614
5134 TRUE_KW@8293..8297 "true"5233 NAME@7611..7614
5135 R_PAREN@8297..8298 ")"5234 IDENT@7611..7614 "aux"
5136 COMMA@8298..8299 ","5235 ARGS_DESC@7614..7646
5137 WHITESPACE@8299..8306 "\n "5236 L_PAREN@7614..7615 "("
5138 BIND_FUNCTION@8306..83555237 ARG@7615..7616
5139 NAME@8306..83155238 EXPR_VAR@7615..7616
5140 IDENT@8306..8315 "isSection"5239 NAME@7615..7616
5141 PARAMS_DESC@8315..83185240 IDENT@7615..7616 "a"
5142 L_PAREN@8315..8316 "("5241 COMMA@7616..7617 ","
5143 PARAM@8316..83175242 WHITESPACE@7617..7618 " "
5144 DESTRUCT_FULL@8316..83175243 ARG@7618..7619
5145 NAME@8316..83175244 EXPR_VAR@7618..7619
5146 IDENT@8316..8317 "v"5245 NAME@7618..7619
5147 R_PAREN@8317..8318 ")"5246 IDENT@7618..7619 "b"
5148 WHITESPACE@8318..8319 " "5247 COMMA@7619..7620 ","
5149 ASSIGN@8319..8320 "="5248 WHITESPACE@7620..7621 " "
5150 WHITESPACE@8320..8321 " "5249 ARG@7621..7626
5151 EXPR_BINARY@8321..83555250 EXPR_BINARY@7621..7626
5152 LHS_EXPR@8321..83365251 LHS_EXPR@7621..7622
5153 EXPR_APPLY@8321..83365252 EXPR_VAR@7621..7622
5154 EXPR_INDEX@8321..83335253 NAME@7621..7622
5155 EXPR_VAR@8321..83245254 IDENT@7621..7622 "i"
5156 NAME@8321..83245255 WHITESPACE@7622..7623 " "
5157 IDENT@8321..8324 "std"5256 PLUS@7623..7624 "+"
5158 DOT@8324..8325 "."5257 WHITESPACE@7624..7625 " "
5159 NAME@8325..83335258 EXPR_NUMBER@7625..7626
5160 IDENT@8325..8333 "isObject"5259 FLOAT@7625..7626 "1"
5161 ARGS_DESC@8333..83365260 COMMA@7626..7627 ","
5162 L_PAREN@8333..8334 "("5261 WHITESPACE@7627..7628 " "
5163 ARG@8334..83355262 ARG@7628..7629
5164 EXPR_VAR@8334..83355263 EXPR_VAR@7628..7629
5165 NAME@8334..83355264 NAME@7628..7629
5166 IDENT@8334..8335 "v"5265 IDENT@7628..7629 "j"
5167 R_PAREN@8335..8336 ")"5266 COMMA@7629..7630 ","
5168 WHITESPACE@8336..8337 " "5267 WHITESPACE@7630..7631 " "
5169 OR@8337..8339 "||"5268 ARG@7631..7634
5170 WHITESPACE@8339..8340 " "5269 EXPR_VAR@7631..7634
5171 EXPR_APPLY@8340..83555270 NAME@7631..7634
5172 EXPR_VAR@8340..83525271 IDENT@7631..7634 "acc"
5173 NAME@8340..83525272 R_PAREN@7634..7635 ")"
5174 IDENT@8340..8352 "isTableArray"5273 WHITESPACE@7635..7636 " "
5175 ARGS_DESC@8352..83555274 TAILSTRICT_KW@7636..7646 "tailstrict"
5176 L_PAREN@8352..8353 "("5275 WHITESPACE@7646..7655 "\n "
5177 ARG@8353..83545276 ELSE_KW@7655..7659 "else"
5178 EXPR_VAR@8353..83545277 WHITESPACE@7659..7670 "\n "
5179 NAME@8353..83545278 FALSE_EXPR@7670..7705
5180 IDENT@8353..8354 "v"5279 EXPR_APPLY@7670..7705
5181 R_PAREN@8354..8355 ")"5280 EXPR_VAR@7670..7673
5182 COMMA@8355..8356 ","5281 NAME@7670..7673
5183 WHITESPACE@8356..8363 "\n "5282 IDENT@7670..7673 "aux"
5184 BIND_FUNCTION@8363..99905283 ARGS_DESC@7673..7705
5185 NAME@8363..83745284 L_PAREN@7673..7674 "("
5186 IDENT@8363..8374 "renderValue"5285 ARG@7674..7675
5187 PARAMS_DESC@8374..84075286 EXPR_VAR@7674..7675
5188 L_PAREN@8374..8375 "("5287 NAME@7674..7675
5189 PARAM@8375..83765288 IDENT@7674..7675 "a"
5190 DESTRUCT_FULL@8375..83765289 COMMA@7675..7676 ","
5191 NAME@8375..83765290 WHITESPACE@7676..7677 " "
5192 IDENT@8375..8376 "v"5291 ARG@7677..7678
5193 COMMA@8376..8377 ","5292 EXPR_VAR@7677..7678
5194 WHITESPACE@8377..8378 " "5293 NAME@7677..7678
5195 PARAM@8378..83895294 IDENT@7677..7678 "b"
5196 DESTRUCT_FULL@8378..83895295 COMMA@7678..7679 ","
5197 NAME@8378..83895296 WHITESPACE@7679..7680 " "
5198 IDENT@8378..8389 "indexedPath"5297 ARG@7680..7681
5199 COMMA@8389..8390 ","5298 EXPR_VAR@7680..7681
5200 WHITESPACE@8390..8391 " "5299 NAME@7680..7681
5201 PARAM@8391..83975300 IDENT@7680..7681 "i"
5202 DESTRUCT_FULL@8391..83975301 COMMA@7681..7682 ","
5203 NAME@8391..83975302 WHITESPACE@7682..7683 " "
5204 IDENT@8391..8397 "inline"5303 ARG@7683..7688
5205 COMMA@8397..8398 ","5304 EXPR_BINARY@7683..7688
5206 WHITESPACE@8398..8399 " "5305 LHS_EXPR@7683..7684
5207 PARAM@8399..84065306 EXPR_VAR@7683..7684
5208 DESTRUCT_FULL@8399..84065307 NAME@7683..7684
5209 NAME@8399..84065308 IDENT@7683..7684 "j"
5210 IDENT@8399..8406 "cindent"5309 WHITESPACE@7684..7685 " "
5211 R_PAREN@8406..8407 ")"5310 PLUS@7685..7686 "+"
5212 WHITESPACE@8407..8408 " "5311 WHITESPACE@7686..7687 " "
5213 ASSIGN@8408..8409 "="5312 EXPR_NUMBER@7687..7688
5214 WHITESPACE@8409..8418 "\n "5313 FLOAT@7687..7688 "1"
5215 EXPR_IF_THEN_ELSE@8418..99905314 COMMA@7688..7689 ","
5216 IF_KW@8418..8420 "if"5315 WHITESPACE@7689..7690 " "
5217 WHITESPACE@8420..8421 " "5316 ARG@7690..7693
5218 EXPR_BINARY@8421..84305317 EXPR_VAR@7690..7693
5219 LHS_EXPR@8421..84225318 NAME@7690..7693
5220 EXPR_VAR@8421..84225319 IDENT@7690..7693 "acc"
5221 NAME@8421..84225320 R_PAREN@7693..7694 ")"
5222 IDENT@8421..8422 "v"5321 WHITESPACE@7694..7695 " "
5223 WHITESPACE@8422..8423 " "5322 TAILSTRICT_KW@7695..7705 "tailstrict"
5224 EQ@8423..8425 "=="5323 SEMI@7705..7706 ";"
5225 WHITESPACE@8425..8426 " "5324 WHITESPACE@7706..7711 "\n "
5226 EXPR_LITERAL@8426..84305325 EXPR_APPLY@7711..7741
5227 TRUE_KW@8426..8430 "true"5326 EXPR_VAR@7711..7714
5228 WHITESPACE@8430..8431 " "5327 NAME@7711..7714
5229 THEN_KW@8431..8435 "then"5328 IDENT@7711..7714 "aux"
5230 WHITESPACE@8435..8446 "\n "5329 ARGS_DESC@7714..7741
5231 TRUE_EXPR@8446..84525330 L_PAREN@7714..7715 "("
5232 EXPR_STRING@8446..84525331 ARG@7715..7716
5233 STRING_SINGLE@8446..8452 "'true'"5332 EXPR_VAR@7715..7716
5234 WHITESPACE@8452..8461 "\n "5333 NAME@7715..7716
5235 ELSE_KW@8461..8465 "else"5334 IDENT@7715..7716 "a"
5236 WHITESPACE@8465..8466 " "5335 COMMA@7716..7717 ","
5237 FALSE_EXPR@8466..99905336 WHITESPACE@7717..7718 " "
5238 EXPR_IF_THEN_ELSE@8466..99905337 ARG@7718..7719
5239 IF_KW@8466..8468 "if"5338 EXPR_VAR@7718..7719
5240 WHITESPACE@8468..8469 " "5339 NAME@7718..7719
5241 EXPR_BINARY@8469..84795340 IDENT@7718..7719 "b"
5242 LHS_EXPR@8469..84705341 COMMA@7719..7720 ","
5243 EXPR_VAR@8469..84705342 WHITESPACE@7720..7721 " "
5244 NAME@8469..84705343 ARG@7721..7722
5245 IDENT@8469..8470 "v"5344 EXPR_NUMBER@7721..7722
5246 WHITESPACE@8470..8471 " "5345 FLOAT@7721..7722 "0"
5247 EQ@8471..8473 "=="5346 COMMA@7722..7723 ","
5248 WHITESPACE@8473..8474 " "5347 WHITESPACE@7723..7724 " "
5249 EXPR_LITERAL@8474..84795348 ARG@7724..7725
5250 FALSE_KW@8474..8479 "false"5349 EXPR_NUMBER@7724..7725
5251 WHITESPACE@8479..8480 " "5350 FLOAT@7724..7725 "0"
5252 THEN_KW@8480..8484 "then"5351 COMMA@7725..7726 ","
5253 WHITESPACE@8484..8495 "\n "5352 WHITESPACE@7726..7727 " "
5254 TRUE_EXPR@8495..85025353 ARG@7727..7729
5255 EXPR_STRING@8495..85025354 EXPR_ARRAY@7727..7729
5256 STRING_SINGLE@8495..8502 "'false'"5355 L_BRACK@7727..7728 "["
5257 WHITESPACE@8502..8511 "\n "5356 R_BRACK@7728..7729 "]"
5258 ELSE_KW@8511..8515 "else"5357 R_PAREN@7729..7730 ")"
5259 WHITESPACE@8515..8516 " "5358 WHITESPACE@7730..7731 " "
5260 FALSE_EXPR@8516..99905359 TAILSTRICT_KW@7731..7741 "tailstrict"
5261 EXPR_IF_THEN_ELSE@8516..99905360 COMMA@7741..7742 ","
5262 IF_KW@8516..8518 "if"5361 WHITESPACE@7742..7746 "\n\n "
5263 WHITESPACE@8518..8519 " "5362 MEMBER_FIELD@7746..8203
5264 EXPR_BINARY@8519..85285363 FIELD_METHOD@7746..8203
5265 LHS_EXPR@8519..85205364 FIELD_NAME_FIXED@7746..7753
5266 EXPR_VAR@8519..85205365 NAME@7746..7753
5267 NAME@8519..85205366 IDENT@7746..7753 "setDiff"
5268 IDENT@8519..8520 "v"5367 PARAMS_DESC@7753..7768
5269 WHITESPACE@8520..8521 " "5368 L_PAREN@7753..7754 "("
5270 EQ@8521..8523 "=="5369 PARAM@7754..7755
5271 WHITESPACE@8523..8524 " "5370 DESTRUCT_FULL@7754..7755
5272 EXPR_LITERAL@8524..85285371 NAME@7754..7755
5273 NULL_KW@8524..8528 "null"5372 IDENT@7754..7755 "a"
5274 WHITESPACE@8528..8529 " "5373 COMMA@7755..7756 ","
5275 THEN_KW@8529..8533 "then"5374 WHITESPACE@7756..7757 " "
5276 WHITESPACE@8533..8544 "\n "5375 PARAM@7757..7758
5277 TRUE_EXPR@8544..85945376 DESTRUCT_FULL@7757..7758
5278 EXPR_ERROR@8544..85945377 NAME@7757..7758
5279 ERROR_KW@8544..8549 "error"5378 IDENT@7757..7758 "b"
5280 WHITESPACE@8549..8550 " "5379 COMMA@7758..7759 ","
5281 EXPR_BINARY@8550..85945380 WHITESPACE@7759..7760 " "
5282 LHS_EXPR@8550..85805381 PARAM@7760..7767
5283 EXPR_STRING@8550..85805382 DESTRUCT_FULL@7760..7764
5284 STRING_SINGLE@8550..8580 "'Tried to manifest \"n ..."5383 NAME@7760..7764
5285 WHITESPACE@8580..8581 " "5384 IDENT@7760..7764 "keyF"
5286 PLUS@8581..8582 "+"5385 ASSIGN@7764..7765 "="
5287 WHITESPACE@8582..8583 " "5386 EXPR_VAR@7765..7767
5288 EXPR_VAR@8583..85945387 NAME@7765..7767
5289 NAME@8583..85945388 IDENT@7765..7767 "id"
5290 IDENT@8583..8594 "indexedPath"5389 R_PAREN@7767..7768 ")"
5291 WHITESPACE@8594..8603 "\n "5390 COLONCOLON@7768..7770 "::"
5292 ELSE_KW@8603..8607 "else"5391 WHITESPACE@7770..7775 "\n "
5293 WHITESPACE@8607..8608 " "5392 EXPR_LOCAL@7775..8203
5294 FALSE_EXPR@8608..99905393 LOCAL_KW@7775..7780 "local"
5295 EXPR_IF_THEN_ELSE@8608..99905394 WHITESPACE@7780..7781 " "
5296 IF_KW@8608..8610 "if"5395 BIND_FUNCTION@7781..8167
5297 WHITESPACE@8610..8611 " "5396 NAME@7781..7784
5298 EXPR_APPLY@8611..86265397 IDENT@7781..7784 "aux"
5299 EXPR_INDEX@8611..86235398 PARAMS_DESC@7784..7801
5300 EXPR_VAR@8611..86145399 L_PAREN@7784..7785 "("
5301 NAME@8611..86145400 PARAM@7785..7786
5302 IDENT@8611..8614 "std"5401 DESTRUCT_FULL@7785..7786
5303 DOT@8614..8615 "."5402 NAME@7785..7786
5304 NAME@8615..86235403 IDENT@7785..7786 "a"
5305 IDENT@8615..8623 "isNumber"5404 COMMA@7786..7787 ","
5306 ARGS_DESC@8623..86265405 WHITESPACE@7787..7788 " "
5307 L_PAREN@8623..8624 "("5406 PARAM@7788..7789
5308 ARG@8624..86255407 DESTRUCT_FULL@7788..7789
5309 EXPR_VAR@8624..86255408 NAME@7788..7789
5310 NAME@8624..86255409 IDENT@7788..7789 "b"
5311 IDENT@8624..8625 "v"5410 COMMA@7789..7790 ","
5312 R_PAREN@8625..8626 ")"5411 WHITESPACE@7790..7791 " "
5313 WHITESPACE@8626..8627 " "5412 PARAM@7791..7792
5314 THEN_KW@8627..8631 "then"5413 DESTRUCT_FULL@7791..7792
5315 WHITESPACE@8631..8642 "\n "5414 NAME@7791..7792
5316 TRUE_EXPR@8642..86485415 IDENT@7791..7792 "i"
5317 EXPR_BINARY@8642..86485416 COMMA@7792..7793 ","
5318 LHS_EXPR@8642..86445417 WHITESPACE@7793..7794 " "
5319 EXPR_STRING@8642..86445418 PARAM@7794..7795
5320 STRING_SINGLE@8642..8644 "''"5419 DESTRUCT_FULL@7794..7795
5321 WHITESPACE@8644..8645 " "5420 NAME@7794..7795
5322 PLUS@8645..8646 "+"5421 IDENT@7794..7795 "j"
5323 WHITESPACE@8646..8647 " "5422 COMMA@7795..7796 ","
5324 EXPR_VAR@8647..86485423 WHITESPACE@7796..7797 " "
5325 NAME@8647..86485424 PARAM@7797..7800
5326 IDENT@8647..8648 "v"5425 DESTRUCT_FULL@7797..7800
5327 WHITESPACE@8648..8657 "\n "5426 NAME@7797..7800
5328 ELSE_KW@8657..8661 "else"5427 IDENT@7797..7800 "acc"
5329 WHITESPACE@8661..8662 " "5428 R_PAREN@7800..7801 ")"
5330 FALSE_EXPR@8662..99905429 WHITESPACE@7801..7802 " "
5331 EXPR_IF_THEN_ELSE@8662..99905430 ASSIGN@7802..7803 "="
5332 IF_KW@8662..8664 "if"5431 WHITESPACE@7803..7810 "\n "
5333 WHITESPACE@8664..8665 " "5432 EXPR_IF_THEN_ELSE@7810..8167
5334 EXPR_APPLY@8665..86805433 IF_KW@7810..7812 "if"
5335 EXPR_INDEX@8665..86775434 WHITESPACE@7812..7813 " "
5336 EXPR_VAR@8665..86685435 EXPR_BINARY@7813..7831
5337 NAME@8665..86685436 LHS_EXPR@7813..7814
5338 IDENT@8665..8668 "std"5437 EXPR_VAR@7813..7814
5339 DOT@8668..8669 "."5438 NAME@7813..7814
5340 NAME@8669..86775439 IDENT@7813..7814 "i"
5341 IDENT@8669..8677 "isString"5440 WHITESPACE@7814..7815 " "
5342 ARGS_DESC@8677..86805441 GE@7815..7817 ">="
5343 L_PAREN@8677..8678 "("5442 WHITESPACE@7817..7818 " "
5344 ARG@8678..86795443 EXPR_APPLY@7818..7831
5345 EXPR_VAR@8678..86795444 EXPR_INDEX@7818..7828
5346 NAME@8678..86795445 EXPR_VAR@7818..7821
5347 IDENT@8678..8679 "v"5446 NAME@7818..7821
5348 R_PAREN@8679..8680 ")"5447 IDENT@7818..7821 "std"
5349 WHITESPACE@8680..8681 " "5448 DOT@7821..7822 "."
5350 THEN_KW@8681..8685 "then"5449 NAME@7822..7828
5351 WHITESPACE@8685..8696 "\n "5450 IDENT@7822..7828 "length"
5352 TRUE_EXPR@8696..87155451 ARGS_DESC@7828..7831
5353 EXPR_APPLY@8696..87155452 L_PAREN@7828..7829 "("
5354 EXPR_VAR@8696..87125453 ARG@7829..7830
5355 NAME@8696..87125454 EXPR_VAR@7829..7830
5356 IDENT@8696..8712 "escapeStringToml"5455 NAME@7829..7830
5357 ARGS_DESC@8712..87155456 IDENT@7829..7830 "a"
5358 L_PAREN@8712..8713 "("5457 R_PAREN@7830..7831 ")"
5359 ARG@8713..87145458 WHITESPACE@7831..7832 " "
5360 EXPR_VAR@8713..87145459 THEN_KW@7832..7836 "then"
5361 NAME@8713..87145460 WHITESPACE@7836..7845 "\n "
5362 IDENT@8713..8714 "v"5461 TRUE_EXPR@7845..7848
5363 R_PAREN@8714..8715 ")"5462 EXPR_VAR@7845..7848
5364 WHITESPACE@8715..8724 "\n "5463 NAME@7845..7848
5365 ELSE_KW@8724..8728 "else"5464 IDENT@7845..7848 "acc"
5366 WHITESPACE@8728..8729 " "5465 WHITESPACE@7848..7855 "\n "
5367 FALSE_EXPR@8729..99905466 ELSE_KW@7855..7859 "else"
5368 EXPR_IF_THEN_ELSE@8729..99905467 WHITESPACE@7859..7860 " "
5369 IF_KW@8729..8731 "if"5468 FALSE_EXPR@7860..8167
5370 WHITESPACE@8731..8732 " "5469 EXPR_IF_THEN_ELSE@7860..8167
5371 EXPR_APPLY@8732..87495470 IF_KW@7860..7862 "if"
5372 EXPR_INDEX@8732..87465471 WHITESPACE@7862..7863 " "
5373 EXPR_VAR@8732..87355472 EXPR_BINARY@7863..7881
5374 NAME@8732..87355473 LHS_EXPR@7863..7864
5375 IDENT@8732..8735 "std"5474 EXPR_VAR@7863..7864
5376 DOT@8735..8736 "."5475 NAME@7863..7864
5377 NAME@8736..87465476 IDENT@7863..7864 "j"
5378 IDENT@8736..8746 "isFunction"5477 WHITESPACE@7864..7865 " "
5379 ARGS_DESC@8746..87495478 GE@7865..7867 ">="
5380 L_PAREN@8746..8747 "("5479 WHITESPACE@7867..7868 " "
5381 ARG@8747..87485480 EXPR_APPLY@7868..7881
5382 EXPR_VAR@8747..87485481 EXPR_INDEX@7868..7878
5383 NAME@8747..87485482 EXPR_VAR@7868..7871
5384 IDENT@8747..8748 "v"5483 NAME@7868..7871
5385 R_PAREN@8748..8749 ")"5484 IDENT@7868..7871 "std"
5386 WHITESPACE@8749..8750 " "5485 DOT@7871..7872 "."
5387 THEN_KW@8750..8754 "then"5486 NAME@7872..7878
5388 WHITESPACE@8754..8765 "\n "5487 IDENT@7872..7878 "length"
5389 TRUE_EXPR@8765..88175488 ARGS_DESC@7878..7881
5390 EXPR_ERROR@8765..88175489 L_PAREN@7878..7879 "("
5391 ERROR_KW@8765..8770 "error"5490 ARG@7879..7880
5392 WHITESPACE@8770..8771 " "5491 EXPR_VAR@7879..7880
5393 EXPR_BINARY@8771..88175492 NAME@7879..7880
5394 LHS_EXPR@8771..88035493 IDENT@7879..7880 "b"
5395 EXPR_STRING@8771..88035494 R_PAREN@7880..7881 ")"
5396 STRING_SINGLE@8771..8803 "'Tried to manifest fu ..."5495 WHITESPACE@7881..7882 " "
5397 WHITESPACE@8803..8804 " "5496 THEN_KW@7882..7886 "then"
5398 PLUS@8804..8805 "+"5497 WHITESPACE@7886..7895 "\n "
5399 WHITESPACE@8805..8806 " "5498 TRUE_EXPR@7895..7906
5400 EXPR_VAR@8806..88175499 EXPR_BINARY@7895..7906
5401 NAME@8806..88175500 LHS_EXPR@7895..7898
5402 IDENT@8806..8817 "indexedPath"5501 EXPR_VAR@7895..7898
5403 WHITESPACE@8817..8826 "\n "5502 NAME@7895..7898
5404 ELSE_KW@8826..8830 "else"5503 IDENT@7895..7898 "acc"
5405 WHITESPACE@8830..8831 " "5504 WHITESPACE@7898..7899 " "
5406 FALSE_EXPR@8831..99905505 PLUS@7899..7900 "+"
5407 EXPR_IF_THEN_ELSE@8831..99905506 WHITESPACE@7900..7901 " "
5408 IF_KW@8831..8833 "if"5507 EXPR_SLICE@7901..7906
5409 WHITESPACE@8833..8834 " "5508 EXPR_VAR@7901..7902
5410 EXPR_APPLY@8834..88485509 NAME@7901..7902
5411 EXPR_INDEX@8834..88455510 IDENT@7901..7902 "a"
5412 EXPR_VAR@8834..88375511 SLICE_DESC@7902..7906
5413 NAME@8834..88375512 L_BRACK@7902..7903 "["
5414 IDENT@8834..8837 "std"5513 EXPR_VAR@7903..7904
5415 DOT@8837..8838 "."5514 NAME@7903..7904
5416 NAME@8838..88455515 IDENT@7903..7904 "i"
5417 IDENT@8838..8845 "isArray"5516 COLON@7904..7905 ":"
5418 ARGS_DESC@8845..88485517 R_BRACK@7905..7906 "]"
5419 L_PAREN@8845..8846 "("5518 WHITESPACE@7906..7913 "\n "
5420 ARG@8846..88475519 ELSE_KW@7913..7917 "else"
5421 EXPR_VAR@8846..88475520 WHITESPACE@7917..7926 "\n "
5422 NAME@8846..88475521 FALSE_EXPR@7926..8167
5423 IDENT@8846..8847 "v"5522 EXPR_IF_THEN_ELSE@7926..8167
5424 R_PAREN@8847..8848 ")"5523 IF_KW@7926..7928 "if"
5425 WHITESPACE@8848..8849 " "5524 WHITESPACE@7928..7929 " "
5426 THEN_KW@8849..8853 "then"5525 EXPR_BINARY@7929..7953
5427 WHITESPACE@8853..8864 "\n "5526 LHS_EXPR@7929..7939
5428 TRUE_EXPR@8864..95615527 EXPR_APPLY@7929..7939
5429 EXPR_IF_THEN_ELSE@8864..95615528 EXPR_VAR@7929..7933
5430 IF_KW@8864..8866 "if"5529 NAME@7929..7933
5431 WHITESPACE@8866..8867 " "5530 IDENT@7929..7933 "keyF"
5432 EXPR_BINARY@8867..88855531 ARGS_DESC@7933..7939
5433 LHS_EXPR@8867..88805532 L_PAREN@7933..7934 "("
5434 EXPR_APPLY@8867..88805533 ARG@7934..7938
5435 EXPR_INDEX@8867..88775534 EXPR_INDEX_EXPR@7934..7938
5436 EXPR_VAR@8867..88705535 LHS_EXPR@7934..7935
5437 NAME@8867..88705536 EXPR_VAR@7934..7935
5438 IDENT@8867..8870 "std"5537 NAME@7934..7935
5439 DOT@8870..8871 "."5538 IDENT@7934..7935 "a"
5440 NAME@8871..88775539 L_BRACK@7935..7936 "["
5441 IDENT@8871..8877 "length"5540 EXPR_VAR@7936..7937
5442 ARGS_DESC@8877..88805541 NAME@7936..7937
5443 L_PAREN@8877..8878 "("5542 IDENT@7936..7937 "i"
5444 ARG@8878..88795543 R_BRACK@7937..7938 "]"
5445 EXPR_VAR@8878..88795544 R_PAREN@7938..7939 ")"
5446 NAME@8878..88795545 WHITESPACE@7939..7940 " "
5447 IDENT@8878..8879 "v"5546 EQ@7940..7942 "=="
5448 R_PAREN@8879..8880 ")"5547 WHITESPACE@7942..7943 " "
5449 WHITESPACE@8880..8881 " "5548 EXPR_APPLY@7943..7953
5450 EQ@8881..8883 "=="5549 EXPR_VAR@7943..7947
5451 WHITESPACE@8883..8884 " "5550 NAME@7943..7947
5452 EXPR_NUMBER@8884..88855551 IDENT@7943..7947 "keyF"
5453 FLOAT@8884..8885 "0"5552 ARGS_DESC@7947..7953
5454 WHITESPACE@8885..8886 " "5553 L_PAREN@7947..7948 "("
5455 THEN_KW@8886..8890 "then"5554 ARG@7948..7952
5456 WHITESPACE@8890..8903 "\n "5555 EXPR_INDEX_EXPR@7948..7952
5457 TRUE_EXPR@8903..89075556 LHS_EXPR@7948..7949
5458 EXPR_STRING@8903..89075557 EXPR_VAR@7948..7949
5459 STRING_SINGLE@8903..8907 "'[]'"5558 NAME@7948..7949
5460 WHITESPACE@8907..8918 "\n "5559 IDENT@7948..7949 "b"
5461 ELSE_KW@8918..8922 "else"5560 L_BRACK@7949..7950 "["
5462 WHITESPACE@8922..8935 "\n "5561 EXPR_VAR@7950..7951
5463 FALSE_EXPR@8935..95615562 NAME@7950..7951
5464 EXPR_LOCAL@8935..95615563 IDENT@7950..7951 "j"
5465 LOCAL_KW@8935..8940 "local"5564 R_BRACK@7951..7952 "]"
5466 WHITESPACE@8940..8941 " "5565 R_PAREN@7952..7953 ")"
5467 BIND_DESTRUCT@8941..89805566 WHITESPACE@7953..7954 " "
5468 DESTRUCT_FULL@8941..89465567 THEN_KW@7954..7958 "then"
5469 NAME@8941..89465568 WHITESPACE@7958..7969 "\n "
5470 IDENT@8941..8946 "range"5569 TRUE_EXPR@7969..8008
5471 WHITESPACE@8946..8947 " "5570 EXPR_APPLY@7969..8008
5472 ASSIGN@8947..8948 "="5571 EXPR_VAR@7969..7972
5473 WHITESPACE@8948..8949 " "5572 NAME@7969..7972
5474 EXPR_APPLY@8949..89805573 IDENT@7969..7972 "aux"
5475 EXPR_INDEX@8949..89585574 ARGS_DESC@7972..8008
5476 EXPR_VAR@8949..89525575 L_PAREN@7972..7973 "("
5477 NAME@8949..89525576 ARG@7973..7974
5478 IDENT@8949..8952 "std"5577 EXPR_VAR@7973..7974
5479 DOT@8952..8953 "."5578 NAME@7973..7974
5480 NAME@8953..89585579 IDENT@7973..7974 "a"
5481 IDENT@8953..8958 "range"5580 COMMA@7974..7975 ","
5482 ARGS_DESC@8958..89805581 WHITESPACE@7975..7976 " "
5483 L_PAREN@8958..8959 "("5582 ARG@7976..7977
5484 ARG@8959..89605583 EXPR_VAR@7976..7977
5485 EXPR_NUMBER@8959..89605584 NAME@7976..7977
5486 FLOAT@8959..8960 "0"5585 IDENT@7976..7977 "b"
5487 COMMA@8960..8961 ","5586 COMMA@7977..7978 ","
5488 WHITESPACE@8961..8962 " "5587 WHITESPACE@7978..7979 " "
5489 ARG@8962..89795588 ARG@7979..7984
5490 EXPR_BINARY@8962..89795589 EXPR_BINARY@7979..7984
5491 LHS_EXPR@8962..89755590 LHS_EXPR@7979..7980
5492 EXPR_APPLY@8962..89755591 EXPR_VAR@7979..7980
5493 EXPR_INDEX@8962..89725592 NAME@7979..7980
5494 EXPR_VAR@8962..89655593 IDENT@7979..7980 "i"
5495 NAME@8962..89655594 WHITESPACE@7980..7981 " "
5496 IDENT@8962..8965 "std"5595 PLUS@7981..7982 "+"
5497 DOT@8965..8966 "."5596 WHITESPACE@7982..7983 " "
5498 NAME@8966..89725597 EXPR_NUMBER@7983..7984
5499 IDENT@8966..8972 "length"5598 FLOAT@7983..7984 "1"
5500 ARGS_DESC@8972..89755599 COMMA@7984..7985 ","
5501 L_PAREN@8972..8973 "("5600 WHITESPACE@7985..7986 " "
5502 ARG@8973..89745601 ARG@7986..7991
5503 EXPR_VAR@8973..89745602 EXPR_BINARY@7986..7991
5504 NAME@8973..89745603 LHS_EXPR@7986..7987
5505 IDENT@8973..8974 "v"5604 EXPR_VAR@7986..7987
5506 R_PAREN@8974..8975 ")"5605 NAME@7986..7987
5507 WHITESPACE@8975..8976 " "5606 IDENT@7986..7987 "j"
5508 MINUS@8976..8977 "-"5607 WHITESPACE@7987..7988 " "
5509 WHITESPACE@8977..8978 " "5608 PLUS@7988..7989 "+"
5510 EXPR_NUMBER@8978..89795609 WHITESPACE@7989..7990 " "
5511 FLOAT@8978..8979 "1"5610 EXPR_NUMBER@7990..7991
5512 R_PAREN@8979..8980 ")"5611 FLOAT@7990..7991 "1"
5513 SEMI@8980..8981 ";"5612 COMMA@7991..7992 ","
5514 WHITESPACE@8981..8994 "\n "5613 WHITESPACE@7992..7993 " "
5515 EXPR_LOCAL@8994..95615614 ARG@7993..7996
5516 LOCAL_KW@8994..8999 "local"5615 EXPR_VAR@7993..7996
5517 WHITESPACE@8999..9000 " "5616 NAME@7993..7996
5518 BIND_DESTRUCT@9000..90525617 IDENT@7993..7996 "acc"
5519 DESTRUCT_FULL@9000..90105618 R_PAREN@7996..7997 ")"
5520 NAME@9000..90105619 WHITESPACE@7997..7998 " "
5521 IDENT@9000..9010 "new_indent"5620 TAILSTRICT_KW@7998..8008 "tailstrict"
5522 WHITESPACE@9010..9011 " "5621 WHITESPACE@8008..8017 "\n "
5523 ASSIGN@9011..9012 "="5622 ELSE_KW@8017..8021 "else"
5524 WHITESPACE@9012..9013 " "5623 WHITESPACE@8021..8022 " "
5525 EXPR_IF_THEN_ELSE@9013..90525624 FALSE_EXPR@8022..8167
5526 IF_KW@9013..9015 "if"5625 EXPR_IF_THEN_ELSE@8022..8167
5527 WHITESPACE@9015..9016 " "5626 IF_KW@8022..8024 "if"
5528 EXPR_VAR@9016..90225627 WHITESPACE@8024..8025 " "
5529 NAME@9016..90225628 EXPR_BINARY@8025..8048
5530 IDENT@9016..9022 "inline"5629 LHS_EXPR@8025..8035
5531 WHITESPACE@9022..9023 " "5630 EXPR_APPLY@8025..8035
5532 THEN_KW@9023..9027 "then"5631 EXPR_VAR@8025..8029
5533 WHITESPACE@9027..9028 " "5632 NAME@8025..8029
5534 TRUE_EXPR@9028..90305633 IDENT@8025..8029 "keyF"
5535 EXPR_STRING@9028..90305634 ARGS_DESC@8029..8035
5536 STRING_SINGLE@9028..9030 "''"5635 L_PAREN@8029..8030 "("
5537 WHITESPACE@9030..9031 " "5636 ARG@8030..8034
5538 ELSE_KW@9031..9035 "else"5637 EXPR_INDEX_EXPR@8030..8034
5539 WHITESPACE@9035..9036 " "5638 LHS_EXPR@8030..8031
5540 FALSE_EXPR@9036..90525639 EXPR_VAR@8030..8031
5541 EXPR_BINARY@9036..90525640 NAME@8030..8031
5542 LHS_EXPR@9036..90435641 IDENT@8030..8031 "a"
5543 EXPR_VAR@9036..90435642 L_BRACK@8031..8032 "["
5544 NAME@9036..90435643 EXPR_VAR@8032..8033
5545 IDENT@9036..9043 "cindent"5644 NAME@8032..8033
5546 WHITESPACE@9043..9044 " "5645 IDENT@8032..8033 "i"
5547 PLUS@9044..9045 "+"5646 R_BRACK@8033..8034 "]"
5548 WHITESPACE@9045..9046 " "5647 R_PAREN@8034..8035 ")"
5549 EXPR_VAR@9046..90525648 WHITESPACE@8035..8036 " "
5550 NAME@9046..90525649 LT@8036..8037 "<"
5551 IDENT@9046..9052 "indent"5650 WHITESPACE@8037..8038 " "
5552 SEMI@9052..9053 ";"5651 EXPR_APPLY@8038..8048
5553 WHITESPACE@9053..9066 "\n "5652 EXPR_VAR@8038..8042
5554 EXPR_LOCAL@9066..95615653 NAME@8038..8042
5555 LOCAL_KW@9066..9071 "local"5654 IDENT@8038..8042 "keyF"
5556 WHITESPACE@9071..9072 " "5655 ARGS_DESC@8042..8048
5557 BIND_DESTRUCT@9072..91125656 L_PAREN@8042..8043 "("
5558 DESTRUCT_FULL@9072..90815657 ARG@8043..8047
5559 NAME@9072..90815658 EXPR_INDEX_EXPR@8043..8047
5560 IDENT@9072..9081 "separator"5659 LHS_EXPR@8043..8044
5561 WHITESPACE@9081..9082 " "5660 EXPR_VAR@8043..8044
5562 ASSIGN@9082..9083 "="5661 NAME@8043..8044
5563 WHITESPACE@9083..9084 " "5662 IDENT@8043..8044 "b"
5564 EXPR_IF_THEN_ELSE@9084..91125663 L_BRACK@8044..8045 "["
5565 IF_KW@9084..9086 "if"5664 EXPR_VAR@8045..8046
5566 WHITESPACE@9086..9087 " "5665 NAME@8045..8046
5567 EXPR_VAR@9087..90935666 IDENT@8045..8046 "j"
5568 NAME@9087..90935667 R_BRACK@8046..8047 "]"
5569 IDENT@9087..9093 "inline"5668 R_PAREN@8047..8048 ")"
5570 WHITESPACE@9093..9094 " "5669 WHITESPACE@8048..8049 " "
5571 THEN_KW@9094..9098 "then"5670 THEN_KW@8049..8053 "then"
5572 WHITESPACE@9098..9099 " "5671 WHITESPACE@8053..8064 "\n "
5573 TRUE_EXPR@9099..91025672 TRUE_EXPR@8064..8108
5574 EXPR_STRING@9099..91025673 EXPR_APPLY@8064..8108
5575 STRING_SINGLE@9099..9102 "' '"5674 EXPR_VAR@8064..8067
5576 WHITESPACE@9102..9103 " "5675 NAME@8064..8067
5577 ELSE_KW@9103..9107 "else"5676 IDENT@8064..8067 "aux"
5578 WHITESPACE@9107..9108 " "5677 ARGS_DESC@8067..8108
5579 FALSE_EXPR@9108..91125678 L_PAREN@8067..8068 "("
5580 EXPR_STRING@9108..91125679 ARG@8068..8069
5581 STRING_SINGLE@9108..9112 "'\\n'"5680 EXPR_VAR@8068..8069
5582 SEMI@9112..9113 ";"5681 NAME@8068..8069
5583 WHITESPACE@9113..9126 "\n "5682 IDENT@8068..8069 "a"
5584 EXPR_LOCAL@9126..95615683 COMMA@8069..8070 ","
5585 LOCAL_KW@9126..9131 "local"5684 WHITESPACE@8070..8071 " "
5586 WHITESPACE@9131..9132 " "5685 ARG@8071..8072
5587 BIND_DESTRUCT@9132..95285686 EXPR_VAR@8071..8072
5588 DESTRUCT_FULL@9132..91375687 NAME@8071..8072
5589 NAME@9132..91375688 IDENT@8071..8072 "b"
5590 IDENT@9132..9137 "lines"5689 COMMA@8072..8073 ","
5591 WHITESPACE@9137..9138 " "5690 WHITESPACE@8073..8074 " "
5592 ASSIGN@9138..9139 "="5691 ARG@8074..8079
5593 WHITESPACE@9139..9140 " "5692 EXPR_BINARY@8074..8079
5594 EXPR_BINARY@9140..95285693 LHS_EXPR@8074..8075
5595 LHS_EXPR@9140..94475694 EXPR_VAR@8074..8075
5596 EXPR_BINARY@9140..94475695 NAME@8074..8075
5597 LHS_EXPR@9140..91575696 IDENT@8074..8075 "i"
5598 EXPR_ARRAY@9140..91575697 WHITESPACE@8075..8076 " "
5599 L_BRACK@9140..9141 "["5698 PLUS@8076..8077 "+"
5600 EXPR_BINARY@9141..91565699 WHITESPACE@8077..8078 " "
5601 LHS_EXPR@9141..91445700 EXPR_NUMBER@8078..8079
5602 EXPR_STRING@9141..91445701 FLOAT@8078..8079 "1"
5603 STRING_SINGLE@9141..9144 "'['"5702 COMMA@8079..8080 ","
5604 WHITESPACE@9144..9145 " "5703 WHITESPACE@8080..8081 " "
5605 PLUS@9145..9146 "+"5704 ARG@8081..8082
5606 WHITESPACE@9146..9147 " "5705 EXPR_VAR@8081..8082
5607 EXPR_VAR@9147..91565706 NAME@8081..8082
5608 NAME@9147..91565707 IDENT@8081..8082 "j"
5609 IDENT@9147..9156 "separator"5708 COMMA@8082..8083 ","
5610 R_BRACK@9156..9157 "]"5709 WHITESPACE@8083..8084 " "
5611 WHITESPACE@9157..9184 "\n ..."5710 ARG@8084..8096
5612 PLUS@9184..9185 "+"5711 EXPR_BINARY@8084..8096
5613 WHITESPACE@9185..9186 " "5712 LHS_EXPR@8084..8087
5614 EXPR_APPLY@9186..94475713 EXPR_VAR@8084..8087
5615 EXPR_INDEX@9186..91945714 NAME@8084..8087
5616 EXPR_VAR@9186..91895715 IDENT@8084..8087 "acc"
5617 NAME@9186..91895716 WHITESPACE@8087..8088 " "
5618 IDENT@9186..9189 "std"5717 PLUS@8088..8089 "+"
5619 DOT@9189..9190 "."5718 WHITESPACE@8089..8090 " "
5620 NAME@9190..91945719 EXPR_ARRAY@8090..8096
5621 IDENT@9190..9194 "join"5720 L_BRACK@8090..8091 "["
5622 ARGS_DESC@9194..94475721 EXPR_INDEX_EXPR@8091..8095
5623 L_PAREN@9194..9195 "("5722 LHS_EXPR@8091..8092
5624 ARG@9195..92125723 EXPR_VAR@8091..8092
5625 EXPR_ARRAY@9195..92125724 NAME@8091..8092
5626 L_BRACK@9195..9196 "["5725 IDENT@8091..8092 "a"
5627 EXPR_BINARY@9196..92115726 L_BRACK@8092..8093 "["
5628 LHS_EXPR@9196..91995727 EXPR_VAR@8093..8094
5629 EXPR_STRING@9196..91995728 NAME@8093..8094
5630 STRING_SINGLE@9196..9199 "','"5729 IDENT@8093..8094 "i"
5631 WHITESPACE@9199..9200 " "5730 R_BRACK@8094..8095 "]"
5632 PLUS@9200..9201 "+"5731 R_BRACK@8095..8096 "]"
5633 WHITESPACE@9201..9202 " "5732 R_PAREN@8096..8097 ")"
5634 EXPR_VAR@9202..92115733 WHITESPACE@8097..8098 " "
5635 NAME@9202..92115734 TAILSTRICT_KW@8098..8108 "tailstrict"
5636 IDENT@9202..9211 "separator"5735 WHITESPACE@8108..8117 "\n "
5637 R_BRACK@9211..9212 "]"5736 ELSE_KW@8117..8121 "else"
5638 COMMA@9212..9213 ","5737 WHITESPACE@8121..8132 "\n "
5639 WHITESPACE@9213..9251 "\n ..."5738 FALSE_EXPR@8132..8167
5640 ARG@9251..94465739 EXPR_APPLY@8132..8167
5641 EXPR_ARRAY_COMP@9251..94465740 EXPR_VAR@8132..8135
5642 L_BRACK@9251..9252 "["5741 NAME@8132..8135
5643 WHITESPACE@9252..9292 "\n ..."5742 IDENT@8132..8135 "aux"
5644 EXPR_ARRAY@9292..93535743 ARGS_DESC@8135..8167
5645 L_BRACK@9292..9293 "["5744 L_PAREN@8135..8136 "("
5646 EXPR_BINARY@9293..93525745 ARG@8136..8137
5647 LHS_EXPR@9293..93035746 EXPR_VAR@8136..8137
5648 EXPR_VAR@9293..93035747 NAME@8136..8137
5649 NAME@9293..93035748 IDENT@8136..8137 "a"
5650 IDENT@9293..9303 "new_indent"5749 COMMA@8137..8138 ","
5651 WHITESPACE@9303..9304 " "5750 WHITESPACE@8138..8139 " "
5652 PLUS@9304..9305 "+"5751 ARG@8139..8140
5653 WHITESPACE@9305..9306 " "5752 EXPR_VAR@8139..8140
5654 EXPR_APPLY@9306..93525753 NAME@8139..8140
5655 EXPR_VAR@9306..93175754 IDENT@8139..8140 "b"
5656 NAME@9306..93175755 COMMA@8140..8141 ","
5657 IDENT@9306..9317 "renderValue"5756 WHITESPACE@8141..8142 " "
5658 ARGS_DESC@9317..93525757 ARG@8142..8143
5659 L_PAREN@9317..9318 "("5758 EXPR_VAR@8142..8143
5660 ARG@9318..93225759 NAME@8142..8143
5661 EXPR_INDEX_EXPR@9318..93225760 IDENT@8142..8143 "i"
5662 LHS_EXPR@9318..93195761 COMMA@8143..8144 ","
5663 EXPR_VAR@9318..93195762 WHITESPACE@8144..8145 " "
5664 NAME@9318..93195763 ARG@8145..8150
5665 IDENT@9318..9319 "v"5764 EXPR_BINARY@8145..8150
5666 L_BRACK@9319..9320 "["5765 LHS_EXPR@8145..8146
5667 EXPR_VAR@9320..93215766 EXPR_VAR@8145..8146
5668 NAME@9320..93215767 NAME@8145..8146
5669 IDENT@9320..9321 "i"5768 IDENT@8145..8146 "j"
5670 R_BRACK@9321..9322 "]"5769 WHITESPACE@8146..8147 " "
5671 COMMA@9322..9323 ","5770 PLUS@8147..8148 "+"
5672 WHITESPACE@9323..9324 " "5771 WHITESPACE@8148..8149 " "
5673 ARG@9324..93415772 EXPR_NUMBER@8149..8150
5674 EXPR_BINARY@9324..93415773 FLOAT@8149..8150 "1"
5675 LHS_EXPR@9324..93355774 COMMA@8150..8151 ","
5676 EXPR_VAR@9324..93355775 WHITESPACE@8151..8152 " "
5677 NAME@9324..93355776 ARG@8152..8155
5678 IDENT@9324..9335 "indexedPath"5777 EXPR_VAR@8152..8155
5679 WHITESPACE@9335..9336 " "5778 NAME@8152..8155
5680 PLUS@9336..9337 "+"5779 IDENT@8152..8155 "acc"
5681 WHITESPACE@9337..9338 " "5780 R_PAREN@8155..8156 ")"
5682 EXPR_ARRAY@9338..93415781 WHITESPACE@8156..8157 " "
5683 L_BRACK@9338..9339 "["5782 TAILSTRICT_KW@8157..8167 "tailstrict"
5684 EXPR_VAR@9339..93405783 SEMI@8167..8168 ";"
5685 NAME@9339..93405784 WHITESPACE@8168..8173 "\n "
5686 IDENT@9339..9340 "i"5785 EXPR_APPLY@8173..8203
5687 R_BRACK@9340..9341 "]"5786 EXPR_VAR@8173..8176
5688 COMMA@9341..9342 ","5787 NAME@8173..8176
5689 WHITESPACE@9342..9343 " "5788 IDENT@8173..8176 "aux"
5690 ARG@9343..93475789 ARGS_DESC@8176..8203
5691 EXPR_LITERAL@9343..93475790 L_PAREN@8176..8177 "("
5692 TRUE_KW@9343..9347 "true"5791 ARG@8177..8178
5693 COMMA@9347..9348 ","5792 EXPR_VAR@8177..8178
5694 WHITESPACE@9348..9349 " "5793 NAME@8177..8178
5695 ARG@9349..93515794 IDENT@8177..8178 "a"
5696 EXPR_STRING@9349..93515795 COMMA@8178..8179 ","
5697 STRING_SINGLE@9349..9351 "''"5796 WHITESPACE@8179..8180 " "
5698 R_PAREN@9351..9352 ")"5797 ARG@8180..8181
5699 R_BRACK@9352..9353 "]"5798 EXPR_VAR@8180..8181
5700 WHITESPACE@9353..9393 "\n ..."5799 NAME@8180..8181
5701 FOR_SPEC@9393..94075800 IDENT@8180..8181 "b"
5702 FOR_KW@9393..9396 "for"5801 COMMA@8181..8182 ","
5703 WHITESPACE@9396..9397 " "5802 WHITESPACE@8182..8183 " "
5704 NAME@9397..93985803 ARG@8183..8184
5705 IDENT@9397..9398 "i"5804 EXPR_NUMBER@8183..8184
5706 WHITESPACE@9398..9399 " "5805 FLOAT@8183..8184 "0"
5707 IN_KW@9399..9401 "in"5806 COMMA@8184..8185 ","
5708 WHITESPACE@9401..9402 " "5807 WHITESPACE@8185..8186 " "
5709 EXPR_VAR@9402..94075808 ARG@8186..8187
5710 NAME@9402..94075809 EXPR_NUMBER@8186..8187
5711 IDENT@9402..9407 "range"5810 FLOAT@8186..8187 "0"
5712 WHITESPACE@9407..9445 "\n ..."5811 COMMA@8187..8188 ","
5713 R_BRACK@9445..9446 "]"5812 WHITESPACE@8188..8189 " "
5714 R_PAREN@9446..9447 ")"5813 ARG@8189..8191
5715 WHITESPACE@9447..9474 "\n ..."5814 EXPR_ARRAY@8189..8191
5716 PLUS@9474..9475 "+"5815 L_BRACK@8189..8190 "["
5717 WHITESPACE@9475..9476 " "5816 R_BRACK@8190..8191 "]"
5718 EXPR_ARRAY@9476..95285817 R_PAREN@8191..8192 ")"
5719 L_BRACK@9476..9477 "["5818 WHITESPACE@8192..8193 " "
5720 EXPR_BINARY@9477..95275819 TAILSTRICT_KW@8193..8203 "tailstrict"
5721 LHS_EXPR@9477..95215820 COMMA@8203..8204 ","
5722 EXPR_BINARY@9477..95215821 WHITESPACE@8204..8208 "\n\n "
5723 LHS_EXPR@9477..94865822 MEMBER_FIELD@8208..8996
5724 EXPR_VAR@9477..94865823 FIELD_METHOD@8208..8996
5725 NAME@9477..94865824 FIELD_NAME_FIXED@8208..8218
5726 IDENT@9477..9486 "separator"5825 NAME@8208..8218
5727 WHITESPACE@9486..9487 " "5826 IDENT@8208..8218 "mergePatch"
5728 PLUS@9487..9488 "+"5827 PARAMS_DESC@8218..8233
5729 WHITESPACE@9488..9489 " "5828 L_PAREN@8218..8219 "("
5730 EXPR_PARENED@9489..95215829 PARAM@8219..8225
5731 L_PAREN@9489..9490 "("5830 DESTRUCT_FULL@8219..8225
5732 EXPR_IF_THEN_ELSE@9490..95205831 NAME@8219..8225
5733 IF_KW@9490..9492 "if"5832 IDENT@8219..8225 "target"
5734 WHITESPACE@9492..9493 " "5833 COMMA@8225..8226 ","
5735 EXPR_VAR@9493..94995834 WHITESPACE@8226..8227 " "
5736 NAME@9493..94995835 PARAM@8227..8232
5737 IDENT@9493..9499 "inline"5836 DESTRUCT_FULL@8227..8232
5738 WHITESPACE@9499..9500 " "5837 NAME@8227..8232
5739 THEN_KW@9500..9504 "then"5838 IDENT@8227..8232 "patch"
5740 WHITESPACE@9504..9505 " "5839 R_PAREN@8232..8233 ")"
5741 TRUE_EXPR@9505..95075840 COLONCOLON@8233..8235 "::"
5742 EXPR_STRING@9505..95075841 WHITESPACE@8235..8240 "\n "
5743 STRING_SINGLE@9505..9507 "''"5842 EXPR_IF_THEN_ELSE@8240..8996
5744 WHITESPACE@9507..9508 " "5843 IF_KW@8240..8242 "if"
5745 ELSE_KW@9508..9512 "else"5844 WHITESPACE@8242..8243 " "
5746 WHITESPACE@9512..9513 " "5845 EXPR_APPLY@8243..8262
5747 FALSE_EXPR@9513..95205846 EXPR_INDEX@8243..8255
5748 EXPR_VAR@9513..95205847 EXPR_VAR@8243..8246
5749 NAME@9513..95205848 NAME@8243..8246
5750 IDENT@9513..9520 "cindent"5849 IDENT@8243..8246 "std"
5751 R_PAREN@9520..9521 ")"5850 DOT@8246..8247 "."
5752 WHITESPACE@9521..9522 " "5851 NAME@8247..8255
5753 PLUS@9522..9523 "+"5852 IDENT@8247..8255 "isObject"
5754 WHITESPACE@9523..9524 " "5853 ARGS_DESC@8255..8262
5755 EXPR_STRING@9524..95275854 L_PAREN@8255..8256 "("
5756 STRING_SINGLE@9524..9527 "']'"5855 ARG@8256..8261
5757 R_BRACK@9527..9528 "]"5856 EXPR_VAR@8256..8261
5758 SEMI@9528..9529 ";"5857 NAME@8256..8261
5759 WHITESPACE@9529..9542 "\n "5858 IDENT@8256..8261 "patch"
5760 EXPR_APPLY@9542..95615859 R_PAREN@8261..8262 ")"
5761 EXPR_INDEX@9542..95505860 WHITESPACE@8262..8263 " "
5762 EXPR_VAR@9542..95455861 THEN_KW@8263..8267 "then"
5763 NAME@9542..95455862 WHITESPACE@8267..8274 "\n "
5764 IDENT@9542..9545 "std"5863 TRUE_EXPR@8274..8975
5765 DOT@9545..9546 "."5864 EXPR_LOCAL@8274..8975
5766 NAME@9546..95505865 LOCAL_KW@8274..8279 "local"
5767 IDENT@9546..9550 "join"5866 WHITESPACE@8279..8280 " "
5768 ARGS_DESC@9550..95615867 BIND_DESTRUCT@8280..8347
5769 L_PAREN@9550..9551 "("5868 DESTRUCT_FULL@8280..8293
5770 ARG@9551..95535869 NAME@8280..8293
5771 EXPR_STRING@9551..95535870 IDENT@8280..8293 "target_object"
5772 STRING_SINGLE@9551..9553 "''"5871 WHITESPACE@8293..8294 " "
5773 COMMA@9553..9554 ","5872 ASSIGN@8294..8295 "="
5774 WHITESPACE@9554..9555 " "5873 WHITESPACE@8295..8304 "\n "
5775 ARG@9555..95605874 EXPR_IF_THEN_ELSE@8304..8347
5776 EXPR_VAR@9555..95605875 IF_KW@8304..8306 "if"
5777 NAME@9555..95605876 WHITESPACE@8306..8307 " "
5778 IDENT@9555..9560 "lines"5877 EXPR_APPLY@8307..8327
5779 R_PAREN@9560..9561 ")"5878 EXPR_INDEX@8307..8319
5780 WHITESPACE@9561..9570 "\n "5879 EXPR_VAR@8307..8310
5781 ELSE_KW@9570..9574 "else"5880 NAME@8307..8310
5782 WHITESPACE@9574..9575 " "5881 IDENT@8307..8310 "std"
5783 FALSE_EXPR@9575..99905882 DOT@8310..8311 "."
5784 EXPR_IF_THEN_ELSE@9575..99905883 NAME@8311..8319
5785 IF_KW@9575..9577 "if"5884 IDENT@8311..8319 "isObject"
5786 WHITESPACE@9577..9578 " "5885 ARGS_DESC@8319..8327
5787 EXPR_APPLY@9578..95935886 L_PAREN@8319..8320 "("
5788 EXPR_INDEX@9578..95905887 ARG@8320..8326
5789 EXPR_VAR@9578..95815888 EXPR_VAR@8320..8326
5790 NAME@9578..95815889 NAME@8320..8326
5791 IDENT@9578..9581 "std"5890 IDENT@8320..8326 "target"
5792 DOT@9581..9582 "."5891 R_PAREN@8326..8327 ")"
5793 NAME@9582..95905892 WHITESPACE@8327..8328 " "
5794 IDENT@9582..9590 "isObject"5893 THEN_KW@8328..8332 "then"
5795 ARGS_DESC@9590..95935894 WHITESPACE@8332..8333 " "
5796 L_PAREN@9590..9591 "("5895 TRUE_EXPR@8333..8339
5797 ARG@9591..95925896 EXPR_VAR@8333..8339
5798 EXPR_VAR@9591..95925897 NAME@8333..8339
5799 NAME@9591..95925898 IDENT@8333..8339 "target"
5800 IDENT@9591..9592 "v"5899 WHITESPACE@8339..8340 " "
5801 R_PAREN@9592..9593 ")"5900 ELSE_KW@8340..8344 "else"
5802 WHITESPACE@9593..9594 " "5901 WHITESPACE@8344..8345 " "
5803 THEN_KW@9594..9598 "then"5902 FALSE_EXPR@8345..8347
5804 WHITESPACE@9598..9609 "\n "5903 EXPR_OBJECT@8345..8347
5805 TRUE_EXPR@9609..99905904 OBJ_BODY_MEMBER_LIST@8345..8347
5806 EXPR_LOCAL@9609..99905905 L_BRACE@8345..8346 "{"
5807 LOCAL_KW@9609..9614 "local"5906 R_BRACE@8346..8347 "}"
5808 WHITESPACE@9614..9615 " "5907 SEMI@8347..8348 ";"
5809 BIND_DESTRUCT@9615..99595908 WHITESPACE@8348..8356 "\n\n "
5810 DESTRUCT_FULL@9615..96205909 EXPR_LOCAL@8356..8975
5811 NAME@9615..96205910 LOCAL_KW@8356..8361 "local"
5812 IDENT@9615..9620 "lines"5911 WHITESPACE@8361..8362 " "
5813 WHITESPACE@9620..9621 " "5912 BIND_DESTRUCT@8362..8461
5814 ASSIGN@9621..9622 "="5913 DESTRUCT_FULL@8362..8375
5815 WHITESPACE@9622..9623 " "5914 NAME@8362..8375
5816 EXPR_BINARY@9623..99595915 IDENT@8362..8375 "target_fields"
5817 LHS_EXPR@9623..99265916 WHITESPACE@8375..8376 " "
5818 EXPR_BINARY@9623..99265917 ASSIGN@8376..8377 "="
5819 LHS_EXPR@9623..96295918 WHITESPACE@8377..8386 "\n "
5820 EXPR_ARRAY@9623..96295919 EXPR_IF_THEN_ELSE@8386..8461
5821 L_BRACK@9623..9624 "["5920 IF_KW@8386..8388 "if"
5822 EXPR_STRING@9624..96285921 WHITESPACE@8388..8389 " "
5823 STRING_SINGLE@9624..9628 "'{ '"5922 EXPR_APPLY@8389..8416
5824 R_BRACK@9628..9629 "]"5923 EXPR_INDEX@8389..8401
5825 WHITESPACE@9629..9654 "\n ..."5924 EXPR_VAR@8389..8392
5826 PLUS@9654..9655 "+"5925 NAME@8389..8392
5827 WHITESPACE@9655..9656 " "5926 IDENT@8389..8392 "std"
5828 EXPR_APPLY@9656..99265927 DOT@8392..8393 "."
5829 EXPR_INDEX@9656..96645928 NAME@8393..8401
5830 EXPR_VAR@9656..96595929 IDENT@8393..8401 "isObject"
5831 NAME@9656..96595930 ARGS_DESC@8401..8416
5832 IDENT@9656..9659 "std"5931 L_PAREN@8401..8402 "("
5833 DOT@9659..9660 "."5932 ARG@8402..8415
5834 NAME@9660..96645933 EXPR_VAR@8402..8415
5835 IDENT@9660..9664 "join"5934 NAME@8402..8415
5836 ARGS_DESC@9664..99265935 IDENT@8402..8415 "target_object"
5837 L_PAREN@9664..9665 "("5936 R_PAREN@8415..8416 ")"
5838 ARG@9665..96715937 WHITESPACE@8416..8417 " "
5839 EXPR_ARRAY@9665..96715938 THEN_KW@8417..8421 "then"
5840 L_BRACK@9665..9666 "["5939 WHITESPACE@8421..8422 " "
5841 EXPR_STRING@9666..96705940 TRUE_EXPR@8422..8453
5842 STRING_SINGLE@9666..9670 "', '"5941 EXPR_APPLY@8422..8453
5843 R_BRACK@9670..9671 "]"5942 EXPR_INDEX@8422..8438
5844 COMMA@9671..9672 ","5943 EXPR_VAR@8422..8425
5845 WHITESPACE@9672..9708 "\n ..."5944 NAME@8422..8425
5846 ARG@9708..99255945 IDENT@8422..8425 "std"
5847 EXPR_ARRAY_COMP@9708..99255946 DOT@8425..8426 "."
5848 L_BRACK@9708..9709 "["5947 NAME@8426..8438
5849 WHITESPACE@9709..9747 "\n ..."5948 IDENT@8426..8438 "objectFields"
5850 EXPR_ARRAY@9747..98225949 ARGS_DESC@8438..8453
5851 L_BRACK@9747..9748 "["5950 L_PAREN@8438..8439 "("
5852 EXPR_BINARY@9748..98215951 ARG@8439..8452
5853 LHS_EXPR@9748..97725952 EXPR_VAR@8439..8452
5854 EXPR_BINARY@9748..97725953 NAME@8439..8452
5855 LHS_EXPR@9748..97645954 IDENT@8439..8452 "target_object"
5856 EXPR_APPLY@9748..97645955 R_PAREN@8452..8453 ")"
5857 EXPR_VAR@9748..97615956 WHITESPACE@8453..8454 " "
5858 NAME@9748..97615957 ELSE_KW@8454..8458 "else"
5859 IDENT@9748..9761 "escapeKeyToml"5958 WHITESPACE@8458..8459 " "
5860 ARGS_DESC@9761..97645959 FALSE_EXPR@8459..8461
5861 L_PAREN@9761..9762 "("5960 EXPR_ARRAY@8459..8461
5862 ARG@9762..97635961 L_BRACK@8459..8460 "["
5863 EXPR_VAR@9762..97635962 R_BRACK@8460..8461 "]"
5864 NAME@9762..97635963 SEMI@8461..8462 ";"
5865 IDENT@9762..9763 "k"5964 WHITESPACE@8462..8470 "\n\n "
5866 R_PAREN@9763..9764 ")"5965 EXPR_LOCAL@8470..8975
5867 WHITESPACE@9764..9765 " "5966 LOCAL_KW@8470..8475 "local"
5868 PLUS@9765..9766 "+"5967 WHITESPACE@8475..8476 " "
5869 WHITESPACE@9766..9767 " "5968 BIND_DESTRUCT@8476..8546
5870 EXPR_STRING@9767..97725969 DESTRUCT_FULL@8476..8487
5871 STRING_SINGLE@9767..9772 "' = '"5970 NAME@8476..8487
5872 WHITESPACE@9772..9773 " "5971 IDENT@8476..8487 "null_fields"
5873 PLUS@9773..9774 "+"5972 WHITESPACE@8487..8488 " "
5874 WHITESPACE@9774..9775 " "5973 ASSIGN@8488..8489 "="
5875 EXPR_APPLY@9775..98215974 WHITESPACE@8489..8490 " "
5876 EXPR_VAR@9775..97865975 EXPR_ARRAY_COMP@8490..8546
5877 NAME@9775..97865976 L_BRACK@8490..8491 "["
5878 IDENT@9775..9786 "renderValue"5977 EXPR_VAR@8491..8492
5879 ARGS_DESC@9786..98215978 NAME@8491..8492
5880 L_PAREN@9786..9787 "("5979 IDENT@8491..8492 "k"
5881 ARG@9787..97915980 WHITESPACE@8492..8493 " "
5882 EXPR_INDEX_EXPR@9787..97915981 FOR_SPEC@8493..8525
5883 LHS_EXPR@9787..97885982 FOR_KW@8493..8496 "for"
5884 EXPR_VAR@9787..97885983 WHITESPACE@8496..8497 " "
5885 NAME@9787..97885984 NAME@8497..8498
5886 IDENT@9787..9788 "v"5985 IDENT@8497..8498 "k"
5887 L_BRACK@9788..9789 "["5986 WHITESPACE@8498..8499 " "
5888 EXPR_VAR@9789..97905987 IN_KW@8499..8501 "in"
5889 NAME@9789..97905988 WHITESPACE@8501..8502 " "
5890 IDENT@9789..9790 "k"5989 EXPR_APPLY@8502..8525
5891 R_BRACK@9790..9791 "]"5990 EXPR_INDEX@8502..8518
5892 COMMA@9791..9792 ","5991 EXPR_VAR@8502..8505
5893 WHITESPACE@9792..9793 " "5992 NAME@8502..8505
5894 ARG@9793..98105993 IDENT@8502..8505 "std"
5895 EXPR_BINARY@9793..98105994 DOT@8505..8506 "."
5896 LHS_EXPR@9793..98045995 NAME@8506..8518
5897 EXPR_VAR@9793..98045996 IDENT@8506..8518 "objectFields"
5898 NAME@9793..98045997 ARGS_DESC@8518..8525
5899 IDENT@9793..9804 "indexedPath"5998 L_PAREN@8518..8519 "("
5900 WHITESPACE@9804..9805 " "5999 ARG@8519..8524
5901 PLUS@9805..9806 "+"6000 EXPR_VAR@8519..8524
5902 WHITESPACE@9806..9807 " "6001 NAME@8519..8524
5903 EXPR_ARRAY@9807..98106002 IDENT@8519..8524 "patch"
5904 L_BRACK@9807..9808 "["6003 R_PAREN@8524..8525 ")"
5905 EXPR_VAR@9808..98096004 WHITESPACE@8525..8526 " "
5906 NAME@9808..98096005 IF_SPEC@8526..8545
5907 IDENT@9808..9809 "k"6006 IF_KW@8526..8528 "if"
5908 R_BRACK@9809..9810 "]"6007 WHITESPACE@8528..8529 " "
5909 COMMA@9810..9811 ","6008 EXPR_BINARY@8529..8545
5910 WHITESPACE@9811..9812 " "6009 LHS_EXPR@8529..8537
5911 ARG@9812..98166010 EXPR_INDEX_EXPR@8529..8537
5912 EXPR_LITERAL@9812..98166011 LHS_EXPR@8529..8534
5913 TRUE_KW@9812..9816 "true"6012 EXPR_VAR@8529..8534
5914 COMMA@9816..9817 ","6013 NAME@8529..8534
5915 WHITESPACE@9817..9818 " "6014 IDENT@8529..8534 "patch"
5916 ARG@9818..98206015 L_BRACK@8534..8535 "["
5917 EXPR_STRING@9818..98206016 EXPR_VAR@8535..8536
5918 STRING_SINGLE@9818..9820 "''"6017 NAME@8535..8536
5919 R_PAREN@9820..9821 ")"6018 IDENT@8535..8536 "k"
5920 R_BRACK@9821..9822 "]"6019 R_BRACK@8536..8537 "]"
5921 WHITESPACE@9822..9860 "\n ..."6020 WHITESPACE@8537..8538 " "
5922 FOR_SPEC@9860..98886021 EQ@8538..8540 "=="
5923 FOR_KW@9860..9863 "for"6022 WHITESPACE@8540..8541 " "
5924 WHITESPACE@9863..9864 " "6023 EXPR_LITERAL@8541..8545
5925 NAME@9864..98656024 NULL_KW@8541..8545 "null"
5926 IDENT@9864..9865 "k"6025 R_BRACK@8545..8546 "]"
5927 WHITESPACE@9865..9866 " "6026 SEMI@8546..8547 ";"
5928 IN_KW@9866..9868 "in"6027 WHITESPACE@8547..8554 "\n "
5929 WHITESPACE@9868..9869 " "6028 EXPR_LOCAL@8554..8975
5930 EXPR_APPLY@9869..98886029 LOCAL_KW@8554..8559 "local"
5931 EXPR_INDEX@9869..98856030 WHITESPACE@8559..8560 " "
5932 EXPR_VAR@9869..98726031 BIND_DESTRUCT@8560..8626
5933 NAME@9869..98726032 DESTRUCT_FULL@8560..8571
5934 IDENT@9869..9872 "std"6033 NAME@8560..8571
5935 DOT@9872..9873 "."6034 IDENT@8560..8571 "both_fields"
5936 NAME@9873..98856035 WHITESPACE@8571..8572 " "
5937 IDENT@9873..9885 "objectFields"6036 ASSIGN@8572..8573 "="
5938 ARGS_DESC@9885..98886037 WHITESPACE@8573..8574 " "
5939 L_PAREN@9885..9886 "("6038 EXPR_APPLY@8574..8626
5940 ARG@9886..98876039 EXPR_INDEX@8574..8586
5941 EXPR_VAR@9886..98876040 EXPR_VAR@8574..8577
5942 NAME@9886..98876041 NAME@8574..8577
5943 IDENT@9886..9887 "v"6042 IDENT@8574..8577 "std"
5944 R_PAREN@9887..9888 ")"6043 DOT@8577..8578 "."
5945 WHITESPACE@9888..9924 "\n ..."6044 NAME@8578..8586
5946 R_BRACK@9924..9925 "]"6045 IDENT@8578..8586 "setUnion"
5947 R_PAREN@9925..9926 ")"6046 ARGS_DESC@8586..8626
5948 WHITESPACE@9926..9951 "\n ..."6047 L_PAREN@8586..8587 "("
5949 PLUS@9951..9952 "+"6048 ARG@8587..8600
5950 WHITESPACE@9952..9953 " "6049 EXPR_VAR@8587..8600
5951 EXPR_ARRAY@9953..99596050 NAME@8587..8600
5952 L_BRACK@9953..9954 "["6051 IDENT@8587..8600 "target_fields"
5953 EXPR_STRING@9954..99586052 COMMA@8600..8601 ","
5954 STRING_SINGLE@9954..9958 "' }'"6053 WHITESPACE@8601..8602 " "
5955 R_BRACK@9958..9959 "]"6054 ARG@8602..8625
5956 SEMI@9959..9960 ";"6055 EXPR_APPLY@8602..8625
5957 WHITESPACE@9960..9971 "\n "6056 EXPR_INDEX@8602..8618
5958 EXPR_APPLY@9971..99906057 EXPR_VAR@8602..8605
5959 EXPR_INDEX@9971..99796058 NAME@8602..8605
5960 EXPR_VAR@9971..99746059 IDENT@8602..8605 "std"
5961 NAME@9971..99746060 DOT@8605..8606 "."
5962 IDENT@9971..9974 "std"6061 NAME@8606..8618
5963 DOT@9974..9975 "."6062 IDENT@8606..8618 "objectFields"
5964 NAME@9975..99796063 ARGS_DESC@8618..8625
5965 IDENT@9975..9979 "join"6064 L_PAREN@8618..8619 "("
5966 ARGS_DESC@9979..99906065 ARG@8619..8624
5967 L_PAREN@9979..9980 "("6066 EXPR_VAR@8619..8624
5968 ARG@9980..99826067 NAME@8619..8624
5969 EXPR_STRING@9980..99826068 IDENT@8619..8624 "patch"
5970 STRING_SINGLE@9980..9982 "''"6069 R_PAREN@8624..8625 ")"
5971 COMMA@9982..9983 ","6070 R_PAREN@8625..8626 ")"
5972 WHITESPACE@9983..9984 " "6071 SEMI@8626..8627 ";"
5973 ARG@9984..99896072 WHITESPACE@8627..8635 "\n\n "
5974 EXPR_VAR@9984..99896073 EXPR_OBJECT@8635..8975
5975 NAME@9984..99896074 OBJ_BODY_MEMBER_LIST@8635..8975
5976 IDENT@9984..9989 "lines"6075 L_BRACE@8635..8636 "{"
5977 R_PAREN@9989..9990 ")"6076 WHITESPACE@8636..8645 "\n "
5978 COMMA@9990..9991 ","6077 MEMBER_FIELD@8645..8967
5979 WHITESPACE@9991..9998 "\n "6078 FIELD_NORMAL@8645..8912
5980 BIND_FUNCTION@9998..106676079 FIELD_NAME_DYNAMIC@8645..8648
5981 NAME@9998..100176080 L_BRACK@8645..8646 "["
5982 IDENT@9998..10017 "renderTableInternal"6081 EXPR_VAR@8646..8647
5983 PARAMS_DESC@10017..100486082 NAME@8646..8647
5984 L_PAREN@10017..10018 "("6083 IDENT@8646..8647 "k"
5985 PARAM@10018..100196084 R_BRACK@8647..8648 "]"
5986 DESTRUCT_FULL@10018..100196085 COLON@8648..8649 ":"
5987 NAME@10018..100196086 WHITESPACE@8649..8660 "\n "
5988 IDENT@10018..10019 "v"6087 EXPR_IF_THEN_ELSE@8660..8912
5989 COMMA@10019..10020 ","6088 IF_KW@8660..8662 "if"
5990 WHITESPACE@10020..10021 " "6089 WHITESPACE@8662..8663 " "
5991 PARAM@10021..100256090 EXPR_UNARY@8663..8687
5992 DESTRUCT_FULL@10021..100256091 NOT@8663..8664 "!"
5993 NAME@10021..100256092 EXPR_APPLY@8664..8687
5994 IDENT@10021..10025 "path"6093 EXPR_INDEX@8664..8677
5995 COMMA@10025..10026 ","6094 EXPR_VAR@8664..8667
5996 WHITESPACE@10026..10027 " "6095 NAME@8664..8667
5997 PARAM@10027..100386096 IDENT@8664..8667 "std"
5998 DESTRUCT_FULL@10027..100386097 DOT@8667..8668 "."
5999 NAME@10027..100386098 NAME@8668..8677
6000 IDENT@10027..10038 "indexedPath"6099 IDENT@8668..8677 "objectHas"
6001 COMMA@10038..10039 ","6100 ARGS_DESC@8677..8687
6002 WHITESPACE@10039..10040 " "6101 L_PAREN@8677..8678 "("
6003 PARAM@10040..100476102 ARG@8678..8683
6004 DESTRUCT_FULL@10040..100476103 EXPR_VAR@8678..8683
6005 NAME@10040..100476104 NAME@8678..8683
6006 IDENT@10040..10047 "cindent"6105 IDENT@8678..8683 "patch"
6007 R_PAREN@10047..10048 ")"6106 COMMA@8683..8684 ","
6008 WHITESPACE@10048..10049 " "6107 WHITESPACE@8684..8685 " "
6009 ASSIGN@10049..10050 "="6108 ARG@8685..8686
6010 WHITESPACE@10050..10059 "\n "6109 EXPR_VAR@8685..8686
6011 EXPR_LOCAL@10059..106676110 NAME@8685..8686
6012 LOCAL_KW@10059..10064 "local"6111 IDENT@8685..8686 "k"
6013 WHITESPACE@10064..10065 " "6112 R_PAREN@8686..8687 ")"
6014 BIND_DESTRUCT@10065..102726113 WHITESPACE@8687..8688 " "
6015 DESTRUCT_FULL@10065..100686114 THEN_KW@8688..8692 "then"
6016 NAME@10065..100686115 WHITESPACE@8692..8705 "\n "
6017 IDENT@10065..10068 "kvp"6116 TRUE_EXPR@8705..8721
6018 WHITESPACE@10068..10069 " "6117 EXPR_INDEX_EXPR@8705..8721
6019 ASSIGN@10069..10070 "="6118 LHS_EXPR@8705..8718
6020 WHITESPACE@10070..10071 " "6119 EXPR_VAR@8705..8718
6021 EXPR_APPLY@10071..102726120 NAME@8705..8718
6022 EXPR_INDEX@10071..100886121 IDENT@8705..8718 "target_object"
6023 EXPR_VAR@10071..100746122 L_BRACK@8718..8719 "["
6024 NAME@10071..100746123 EXPR_VAR@8719..8720
6025 IDENT@10071..10074 "std"6124 NAME@8719..8720
6026 DOT@10074..10075 "."6125 IDENT@8719..8720 "k"
6027 NAME@10075..100886126 R_BRACK@8720..8721 "]"
6028 IDENT@10075..10088 "flattenArrays"6127 WHITESPACE@8721..8732 "\n "
6029 ARGS_DESC@10088..102726128 ELSE_KW@8732..8736 "else"
6030 L_PAREN@10088..10089 "("6129 WHITESPACE@8736..8737 " "
6031 ARG@10089..102716130 FALSE_EXPR@8737..8912
6032 EXPR_ARRAY_COMP@10089..102716131 EXPR_IF_THEN_ELSE@8737..8912
6033 L_BRACK@10089..10090 "["6132 IF_KW@8737..8739 "if"
6034 WHITESPACE@10090..10101 "\n "6133 WHITESPACE@8739..8740 " "
6035 EXPR_ARRAY@10101..101926134 EXPR_UNARY@8740..8772
6036 L_BRACK@10101..10102 "["6135 NOT@8740..8741 "!"
6037 EXPR_BINARY@10102..101916136 EXPR_APPLY@8741..8772
6038 LHS_EXPR@10102..101366137 EXPR_INDEX@8741..8754
6039 EXPR_BINARY@10102..101366138 EXPR_VAR@8741..8744
6040 LHS_EXPR@10102..101286139 NAME@8741..8744
6041 EXPR_BINARY@10102..101286140 IDENT@8741..8744 "std"
6042 LHS_EXPR@10102..101096141 DOT@8744..8745 "."
6043 EXPR_VAR@10102..101096142 NAME@8745..8754
6044 NAME@10102..101096143 IDENT@8745..8754 "objectHas"
6045 IDENT@10102..10109 "cindent"6144 ARGS_DESC@8754..8772
6046 WHITESPACE@10109..10110 " "6145 L_PAREN@8754..8755 "("
6047 PLUS@10110..10111 "+"6146 ARG@8755..8768
6048 WHITESPACE@10111..10112 " "6147 EXPR_VAR@8755..8768
6049 EXPR_APPLY@10112..101286148 NAME@8755..8768
6050 EXPR_VAR@10112..101256149 IDENT@8755..8768 "target_object"
6051 NAME@10112..101256150 COMMA@8768..8769 ","
6052 IDENT@10112..10125 "escapeKeyToml"6151 WHITESPACE@8769..8770 " "
6053 ARGS_DESC@10125..101286152 ARG@8770..8771
6054 L_PAREN@10125..10126 "("6153 EXPR_VAR@8770..8771
6055 ARG@10126..101276154 NAME@8770..8771
6056 EXPR_VAR@10126..101276155 IDENT@8770..8771 "k"
6057 NAME@10126..101276156 R_PAREN@8771..8772 ")"
6058 IDENT@10126..10127 "k"6157 WHITESPACE@8772..8773 " "
6059 R_PAREN@10127..10128 ")"6158 THEN_KW@8773..8777 "then"
6060 WHITESPACE@10128..10129 " "6159 WHITESPACE@8777..8790 "\n "
6061 PLUS@10129..10130 "+"6160 TRUE_EXPR@8790..8831
6062 WHITESPACE@10130..10131 " "6161 EXPR_APPLY@8790..8831
6063 EXPR_STRING@10131..101366162 EXPR_INDEX@8790..8804
6064 STRING_SINGLE@10131..10136 "' = '"6163 EXPR_VAR@8790..8793
6065 WHITESPACE@10136..10137 " "6164 NAME@8790..8793
6066 PLUS@10137..10138 "+"6165 IDENT@8790..8793 "std"
6067 WHITESPACE@10138..10139 " "6166 DOT@8793..8794 "."
6068 EXPR_APPLY@10139..101916167 NAME@8794..8804
6069 EXPR_VAR@10139..101506168 IDENT@8794..8804 "mergePatch"
6070 NAME@10139..101506169 ARGS_DESC@8804..8831
6071 IDENT@10139..10150 "renderValue"6170 L_PAREN@8804..8805 "("
6072 ARGS_DESC@10150..101916171 ARG@8805..8809
6073 L_PAREN@10150..10151 "("6172 EXPR_LITERAL@8805..8809
6074 ARG@10151..101556173 NULL_KW@8805..8809 "null"
6075 EXPR_INDEX_EXPR@10151..101556174 COMMA@8809..8810 ","
6076 LHS_EXPR@10151..101526175 WHITESPACE@8810..8811 " "
6077 EXPR_VAR@10151..101526176 ARG@8811..8819
6078 NAME@10151..101526177 EXPR_INDEX_EXPR@8811..8819
6079 IDENT@10151..10152 "v"6178 LHS_EXPR@8811..8816
6080 L_BRACK@10152..10153 "["6179 EXPR_VAR@8811..8816
6081 EXPR_VAR@10153..101546180 NAME@8811..8816
6082 NAME@10153..101546181 IDENT@8811..8816 "patch"
6083 IDENT@10153..10154 "k"6182 L_BRACK@8816..8817 "["
6084 R_BRACK@10154..10155 "]"6183 EXPR_VAR@8817..8818
6085 COMMA@10155..10156 ","6184 NAME@8817..8818
6086 WHITESPACE@10156..10157 " "6185 IDENT@8817..8818 "k"
6087 ARG@10157..101746186 R_BRACK@8818..8819 "]"
6088 EXPR_BINARY@10157..101746187 R_PAREN@8819..8820 ")"
6089 LHS_EXPR@10157..101686188 WHITESPACE@8820..8821 " "
6090 EXPR_VAR@10157..101686189 TAILSTRICT_KW@8821..8831 "tailstrict"
6091 NAME@10157..101686190 WHITESPACE@8831..8842 "\n "
6092 IDENT@10157..10168 "indexedPath"6191 ELSE_KW@8842..8846 "else"
6093 WHITESPACE@10168..10169 " "6192 WHITESPACE@8846..8859 "\n "
6094 PLUS@10169..10170 "+"6193 FALSE_EXPR@8859..8912
6095 WHITESPACE@10170..10171 " "6194 EXPR_APPLY@8859..8912
6096 EXPR_ARRAY@10171..101746195 EXPR_INDEX@8859..8873
6097 L_BRACK@10171..10172 "["6196 EXPR_VAR@8859..8862
6098 EXPR_VAR@10172..101736197 NAME@8859..8862
6099 NAME@10172..101736198 IDENT@8859..8862 "std"
6100 IDENT@10172..10173 "k"6199 DOT@8862..8863 "."
6101 R_BRACK@10173..10174 "]"6200 NAME@8863..8873
6102 COMMA@10174..10175 ","6201 IDENT@8863..8873 "mergePatch"
6103 WHITESPACE@10175..10176 " "6202 ARGS_DESC@8873..8912
6104 ARG@10176..101816203 L_PAREN@8873..8874 "("
6105 EXPR_LITERAL@10176..101816204 ARG@8874..8890
6106 FALSE_KW@10176..10181 "false"6205 EXPR_INDEX_EXPR@8874..8890
6107 COMMA@10181..10182 ","6206 LHS_EXPR@8874..8887
6108 WHITESPACE@10182..10183 " "6207 EXPR_VAR@8874..8887
6109 ARG@10183..101906208 NAME@8874..8887
6110 EXPR_VAR@10183..101906209 IDENT@8874..8887 "target_object"
6111 NAME@10183..101906210 L_BRACK@8887..8888 "["
6112 IDENT@10183..10190 "cindent"6211 EXPR_VAR@8888..8889
6113 R_PAREN@10190..10191 ")"6212 NAME@8888..8889
6114 R_BRACK@10191..10192 "]"6213 IDENT@8888..8889 "k"
6115 WHITESPACE@10192..10203 "\n "6214 R_BRACK@8889..8890 "]"
6116 FOR_SPEC@10203..102316215 COMMA@8890..8891 ","
6117 FOR_KW@10203..10206 "for"6216 WHITESPACE@8891..8892 " "
6118 WHITESPACE@10206..10207 " "6217 ARG@8892..8900
6119 NAME@10207..102086218 EXPR_INDEX_EXPR@8892..8900
6120 IDENT@10207..10208 "k"6219 LHS_EXPR@8892..8897
6121 WHITESPACE@10208..10209 " "6220 EXPR_VAR@8892..8897
6122 IN_KW@10209..10211 "in"6221 NAME@8892..8897
6123 WHITESPACE@10211..10212 " "6222 IDENT@8892..8897 "patch"
6124 EXPR_APPLY@10212..102316223 L_BRACK@8897..8898 "["
6125 EXPR_INDEX@10212..102286224 EXPR_VAR@8898..8899
6126 EXPR_VAR@10212..102156225 NAME@8898..8899
6127 NAME@10212..102156226 IDENT@8898..8899 "k"
6128 IDENT@10212..10215 "std"6227 R_BRACK@8899..8900 "]"
6129 DOT@10215..10216 "."6228 R_PAREN@8900..8901 ")"
6130 NAME@10216..102286229 WHITESPACE@8901..8902 " "
6131 IDENT@10216..10228 "objectFields"6230 TAILSTRICT_KW@8902..8912 "tailstrict"
6132 ARGS_DESC@10228..102316231 WHITESPACE@8912..8921 "\n "
6133 L_PAREN@10228..10229 "("6232 FOR_SPEC@8921..8967
6134 ARG@10229..102306233 FOR_KW@8921..8924 "for"
6135 EXPR_VAR@10229..102306234 WHITESPACE@8924..8925 " "
6136 NAME@10229..102306235 NAME@8925..8926
6137 IDENT@10229..10230 "v"6236 IDENT@8925..8926 "k"
6138 R_PAREN@10230..10231 ")"6237 WHITESPACE@8926..8927 " "
6139 WHITESPACE@10231..10242 "\n "6238 IN_KW@8927..8929 "in"
6140 IF_SPEC@10242..102616239 WHITESPACE@8929..8930 " "
6141 IF_KW@10242..10244 "if"6240 EXPR_APPLY@8930..8967
6142 WHITESPACE@10244..10245 " "6241 EXPR_INDEX@8930..8941
6143 EXPR_UNARY@10245..102616242 EXPR_VAR@8930..8933
6144 NOT@10245..10246 "!"6243 NAME@8930..8933
6145 EXPR_APPLY@10246..102616244 IDENT@8930..8933 "std"
6146 EXPR_VAR@10246..102556245 DOT@8933..8934 "."
6147 NAME@10246..102556246 NAME@8934..8941
6148 IDENT@10246..10255 "isSection"6247 IDENT@8934..8941 "setDiff"
6149 ARGS_DESC@10255..102616248 ARGS_DESC@8941..8967
6150 L_PAREN@10255..10256 "("6249 L_PAREN@8941..8942 "("
6151 ARG@10256..102606250 ARG@8942..8953
6152 EXPR_INDEX_EXPR@10256..102606251 EXPR_VAR@8942..8953
6153 LHS_EXPR@10256..102576252 NAME@8942..8953
6154 EXPR_VAR@10256..102576253 IDENT@8942..8953 "both_fields"
6155 NAME@10256..102576254 COMMA@8953..8954 ","
6156 IDENT@10256..10257 "v"6255 WHITESPACE@8954..8955 " "
6157 L_BRACK@10257..10258 "["6256 ARG@8955..8966
6158 EXPR_VAR@10258..102596257 EXPR_VAR@8955..8966
6159 NAME@10258..102596258 NAME@8955..8966
6160 IDENT@10258..10259 "k"6259 IDENT@8955..8966 "null_fields"
6161 R_BRACK@10259..10260 "]"6260 R_PAREN@8966..8967 ")"
6162 R_PAREN@10260..10261 ")"6261 WHITESPACE@8967..8974 "\n "
6163 WHITESPACE@10261..10270 "\n "6262 R_BRACE@8974..8975 "}"
6164 R_BRACK@10270..10271 "]"6263 WHITESPACE@8975..8980 "\n "
6165 R_PAREN@10271..10272 ")"6264 ELSE_KW@8980..8984 "else"
6166 SEMI@10272..10273 ";"6265 WHITESPACE@8984..8991 "\n "
6167 WHITESPACE@10273..10282 "\n "6266 FALSE_EXPR@8991..8996
6168 EXPR_LOCAL@10282..106676267 EXPR_VAR@8991..8996
6169 LOCAL_KW@10282..10287 "local"6268 NAME@8991..8996
6170 WHITESPACE@10287..10288 " "6269 IDENT@8991..8996 "patch"
6171 BIND_DESTRUCT@10288..106316270 COMMA@8996..8997 ","
6172 DESTRUCT_FULL@10288..102966271 WHITESPACE@8997..9001 "\n\n "
6173 NAME@10288..102966272 MEMBER_FIELD@9001..9107
6174 IDENT@10288..10296 "sections"6273 FIELD_METHOD@9001..9107
6175 WHITESPACE@10296..10297 " "6274 FIELD_NAME_FIXED@9001..9004
6176 ASSIGN@10297..10298 "="6275 NAME@9001..9004
6177 WHITESPACE@10298..10299 " "6276 IDENT@9001..9004 "get"
6178 EXPR_BINARY@10299..106316277 PARAMS_DESC@9004..9041
6179 LHS_EXPR@10299..103206278 L_PAREN@9004..9005 "("
6180 EXPR_ARRAY@10299..103206279 PARAM@9005..9006
6181 L_BRACK@10299..10300 "["6280 DESTRUCT_FULL@9005..9006
6182 EXPR_APPLY@10300..103196281 NAME@9005..9006
6183 EXPR_INDEX@10300..103086282 IDENT@9005..9006 "o"
6184 EXPR_VAR@10300..103036283 COMMA@9006..9007 ","
6185 NAME@10300..103036284 WHITESPACE@9007..9008 " "
6186 IDENT@10300..10303 "std"6285 PARAM@9008..9009
6187 DOT@10303..10304 "."6286 DESTRUCT_FULL@9008..9009
6188 NAME@10304..103086287 NAME@9008..9009
6189 IDENT@10304..10308 "join"6288 IDENT@9008..9009 "f"
6190 ARGS_DESC@10308..103196289 COMMA@9009..9010 ","
6191 L_PAREN@10308..10309 "("6290 WHITESPACE@9010..9011 " "
6192 ARG@10309..103136291 PARAM@9011..9023
6193 EXPR_STRING@10309..103136292 DESTRUCT_FULL@9011..9018
6194 STRING_SINGLE@10309..10313 "'\\n'"6293 NAME@9011..9018
6195 COMMA@10313..10314 ","6294 IDENT@9011..9018 "default"
6196 WHITESPACE@10314..10315 " "6295 ASSIGN@9018..9019 "="
6197 ARG@10315..103186296 EXPR_LITERAL@9019..9023
6198 EXPR_VAR@10315..103186297 NULL_KW@9019..9023 "null"
6199 NAME@10315..103186298 COMMA@9023..9024 ","
6200 IDENT@10315..10318 "kvp"6299 WHITESPACE@9024..9025 " "
6201 R_PAREN@10318..10319 ")"6300 PARAM@9025..9040
6202 R_BRACK@10319..10320 "]"6301 DESTRUCT_FULL@9025..9035
6203 WHITESPACE@10320..10321 " "6302 NAME@9025..9035
6204 PLUS@10321..10322 "+"6303 IDENT@9025..9035 "inc_hidden"
6205 WHITESPACE@10322..10323 " "6304 ASSIGN@9035..9036 "="
6206 EXPR_ARRAY_COMP@10323..106316305 EXPR_LITERAL@9036..9040
6207 L_BRACK@10323..10324 "["6306 TRUE_KW@9036..9040 "true"
6208 WHITESPACE@10324..10335 "\n "6307 R_PAREN@9040..9041 ")"
6209 EXPR_PARENED@10335..105536308 COLONCOLON@9041..9043 "::"
6210 L_PAREN@10335..10336 "("6309 WHITESPACE@9043..9048 "\n "
6211 WHITESPACE@10336..10349 "\n "6310 EXPR_IF_THEN_ELSE@9048..9107
6212 EXPR_IF_THEN_ELSE@10349..105416311 IF_KW@9048..9050 "if"
6213 IF_KW@10349..10351 "if"6312 WHITESPACE@9050..9051 " "
6214 WHITESPACE@10351..10352 " "6313 EXPR_APPLY@9051..9084
6215 EXPR_APPLY@10352..103706314 EXPR_INDEX@9051..9066
6216 EXPR_INDEX@10352..103646315 EXPR_VAR@9051..9054
6217 EXPR_VAR@10352..103556316 NAME@9051..9054
6218 NAME@10352..103556317 IDENT@9051..9054 "std"
6219 IDENT@10352..10355 "std"6318 DOT@9054..9055 "."
6220 DOT@10355..10356 "."6319 NAME@9055..9066
6221 NAME@10356..103646320 IDENT@9055..9066 "objectHasEx"
6222 IDENT@10356..10364 "isObject"6321 ARGS_DESC@9066..9084
6223 ARGS_DESC@10364..103706322 L_PAREN@9066..9067 "("
6224 L_PAREN@10364..10365 "("6323 ARG@9067..9068
6225 ARG@10365..103696324 EXPR_VAR@9067..9068
6226 EXPR_INDEX_EXPR@10365..103696325 NAME@9067..9068
6227 LHS_EXPR@10365..103666326 IDENT@9067..9068 "o"
6228 EXPR_VAR@10365..103666327 COMMA@9068..9069 ","
6229 NAME@10365..103666328 WHITESPACE@9069..9070 " "
6230 IDENT@10365..10366 "v"6329 ARG@9070..9071
6231 L_BRACK@10366..10367 "["6330 EXPR_VAR@9070..9071
6232 EXPR_VAR@10367..103686331 NAME@9070..9071
6233 NAME@10367..103686332 IDENT@9070..9071 "f"
6234 IDENT@10367..10368 "k"6333 COMMA@9071..9072 ","
6235 R_BRACK@10368..10369 "]"6334 WHITESPACE@9072..9073 " "
6236 R_PAREN@10369..10370 ")"6335 ARG@9073..9083
6237 WHITESPACE@10370..10371 " "6336 EXPR_VAR@9073..9083
6238 THEN_KW@10371..10375 "then"6337 NAME@9073..9083
6239 WHITESPACE@10375..10390 "\n "6338 IDENT@9073..9083 "inc_hidden"
6240 TRUE_EXPR@10390..104476339 R_PAREN@9083..9084 ")"
6241 EXPR_APPLY@10390..104476340 WHITESPACE@9084..9085 " "
6242 EXPR_VAR@10390..104016341 THEN_KW@9085..9089 "then"
6243 NAME@10390..104016342 WHITESPACE@9089..9090 " "
6244 IDENT@10390..10401 "renderTable"6343 TRUE_EXPR@9090..9094
6245 ARGS_DESC@10401..104476344 EXPR_INDEX_EXPR@9090..9094
6246 L_PAREN@10401..10402 "("6345 LHS_EXPR@9090..9091
6247 ARG@10402..104066346 EXPR_VAR@9090..9091
6248 EXPR_INDEX_EXPR@10402..104066347 NAME@9090..9091
6249 LHS_EXPR@10402..104036348 IDENT@9090..9091 "o"
6250 EXPR_VAR@10402..104036349 L_BRACK@9091..9092 "["
6251 NAME@10402..104036350 EXPR_VAR@9092..9093
6252 IDENT@10402..10403 "v"6351 NAME@9092..9093
6253 L_BRACK@10403..10404 "["6352 IDENT@9092..9093 "f"
6254 EXPR_VAR@10404..104056353 R_BRACK@9093..9094 "]"
6255 NAME@10404..104056354 WHITESPACE@9094..9095 " "
6256 IDENT@10404..10405 "k"6355 ELSE_KW@9095..9099 "else"
6257 R_BRACK@10405..10406 "]"6356 WHITESPACE@9099..9100 " "
6258 COMMA@10406..10407 ","6357 FALSE_EXPR@9100..9107
6259 WHITESPACE@10407..10408 " "6358 EXPR_VAR@9100..9107
6260 ARG@10408..104186359 NAME@9100..9107
6261 EXPR_BINARY@10408..104186360 IDENT@9100..9107 "default"
6262 LHS_EXPR@10408..104126361 COMMA@9107..9108 ","
6263 EXPR_VAR@10408..104126362 WHITESPACE@9108..9112 "\n\n "
6264 NAME@10408..104126363 MEMBER_FIELD@9112..9162
6265 IDENT@10408..10412 "path"6364 FIELD_METHOD@9112..9162
6266 WHITESPACE@10412..10413 " "6365 FIELD_NAME_FIXED@9112..9124
6267 PLUS@10413..10414 "+"6366 NAME@9112..9124
6268 WHITESPACE@10414..10415 " "6367 IDENT@9112..9124 "objectFields"
6269 EXPR_ARRAY@10415..104186368 PARAMS_DESC@9124..9127
6270 L_BRACK@10415..10416 "["6369 L_PAREN@9124..9125 "("
6271 EXPR_VAR@10416..104176370 PARAM@9125..9126
6272 NAME@10416..104176371 DESTRUCT_FULL@9125..9126
6273 IDENT@10416..10417 "k"6372 NAME@9125..9126
6274 R_BRACK@10417..10418 "]"6373 IDENT@9125..9126 "o"
6275 COMMA@10418..10419 ","6374 R_PAREN@9126..9127 ")"
6276 WHITESPACE@10419..10420 " "6375 COLONCOLON@9127..9129 "::"
6277 ARG@10420..104376376 WHITESPACE@9129..9134 "\n "
6278 EXPR_BINARY@10420..104376377 EXPR_APPLY@9134..9162
6279 LHS_EXPR@10420..104316378 EXPR_INDEX@9134..9152
6280 EXPR_VAR@10420..104316379 EXPR_VAR@9134..9137
6281 NAME@10420..104316380 NAME@9134..9137
6282 IDENT@10420..10431 "indexedPath"6381 IDENT@9134..9137 "std"
6283 WHITESPACE@10431..10432 " "6382 DOT@9137..9138 "."
6284 PLUS@10432..10433 "+"6383 NAME@9138..9152
6285 WHITESPACE@10433..10434 " "6384 IDENT@9138..9152 "objectFieldsEx"
6286 EXPR_ARRAY@10434..104376385 ARGS_DESC@9152..9162
6287 L_BRACK@10434..10435 "["6386 L_PAREN@9152..9153 "("
6288 EXPR_VAR@10435..104366387 ARG@9153..9154
6289 NAME@10435..104366388 EXPR_VAR@9153..9154
6290 IDENT@10435..10436 "k"6389 NAME@9153..9154
6291 R_BRACK@10436..10437 "]"6390 IDENT@9153..9154 "o"
6292 COMMA@10437..10438 ","6391 COMMA@9154..9155 ","
6293 WHITESPACE@10438..10439 " "6392 WHITESPACE@9155..9156 " "
6294 ARG@10439..104466393 ARG@9156..9161
6295 EXPR_VAR@10439..104466394 EXPR_LITERAL@9156..9161
6296 NAME@10439..104466395 FALSE_KW@9156..9161 "false"
6297 IDENT@10439..10446 "cindent"6396 R_PAREN@9161..9162 ")"
6298 R_PAREN@10446..10447 ")"6397 COMMA@9162..9163 ","
6299 WHITESPACE@10447..10460 "\n "6398 WHITESPACE@9163..9167 "\n\n "
6300 ELSE_KW@10460..10464 "else"6399 MEMBER_FIELD@9167..9219
6301 WHITESPACE@10464..10479 "\n "6400 FIELD_METHOD@9167..9219
6302 FALSE_EXPR@10479..105416401 FIELD_NAME_FIXED@9167..9182
6303 EXPR_APPLY@10479..105416402 NAME@9167..9182
6304 EXPR_VAR@10479..104956403 IDENT@9167..9182 "objectFieldsAll"
6305 NAME@10479..104956404 PARAMS_DESC@9182..9185
6306 IDENT@10479..10495 "renderTableArray"6405 L_PAREN@9182..9183 "("
6307 ARGS_DESC@10495..105416406 PARAM@9183..9184
6308 L_PAREN@10495..10496 "("6407 DESTRUCT_FULL@9183..9184
6309 ARG@10496..105006408 NAME@9183..9184
6310 EXPR_INDEX_EXPR@10496..105006409 IDENT@9183..9184 "o"
6311 LHS_EXPR@10496..104976410 R_PAREN@9184..9185 ")"
6312 EXPR_VAR@10496..104976411 COLONCOLON@9185..9187 "::"
6313 NAME@10496..104976412 WHITESPACE@9187..9192 "\n "
6314 IDENT@10496..10497 "v"6413 EXPR_APPLY@9192..9219
6315 L_BRACK@10497..10498 "["6414 EXPR_INDEX@9192..9210
6316 EXPR_VAR@10498..104996415 EXPR_VAR@9192..9195
6317 NAME@10498..104996416 NAME@9192..9195
6318 IDENT@10498..10499 "k"6417 IDENT@9192..9195 "std"
6319 R_BRACK@10499..10500 "]"6418 DOT@9195..9196 "."
6320 COMMA@10500..10501 ","6419 NAME@9196..9210
6321 WHITESPACE@10501..10502 " "6420 IDENT@9196..9210 "objectFieldsEx"
6322 ARG@10502..105126421 ARGS_DESC@9210..9219
6323 EXPR_BINARY@10502..105126422 L_PAREN@9210..9211 "("
6324 LHS_EXPR@10502..105066423 ARG@9211..9212
6325 EXPR_VAR@10502..105066424 EXPR_VAR@9211..9212
6326 NAME@10502..105066425 NAME@9211..9212
6327 IDENT@10502..10506 "path"6426 IDENT@9211..9212 "o"
6328 WHITESPACE@10506..10507 " "6427 COMMA@9212..9213 ","
6329 PLUS@10507..10508 "+"6428 WHITESPACE@9213..9214 " "
6330 WHITESPACE@10508..10509 " "6429 ARG@9214..9218
6331 EXPR_ARRAY@10509..105126430 EXPR_LITERAL@9214..9218
6332 L_BRACK@10509..10510 "["6431 TRUE_KW@9214..9218 "true"
6333 EXPR_VAR@10510..105116432 R_PAREN@9218..9219 ")"
6334 NAME@10510..105116433 COMMA@9219..9220 ","
6335 IDENT@10510..10511 "k"6434 WHITESPACE@9220..9224 "\n\n "
6336 R_BRACK@10511..10512 "]"6435 MEMBER_FIELD@9224..9274
6337 COMMA@10512..10513 ","6436 FIELD_METHOD@9224..9274
6338 WHITESPACE@10513..10514 " "6437 FIELD_NAME_FIXED@9224..9233
6339 ARG@10514..105316438 NAME@9224..9233
6340 EXPR_BINARY@10514..105316439 IDENT@9224..9233 "objectHas"
6341 LHS_EXPR@10514..105256440 PARAMS_DESC@9233..9239
6342 EXPR_VAR@10514..105256441 L_PAREN@9233..9234 "("
6343 NAME@10514..105256442 PARAM@9234..9235
6344 IDENT@10514..10525 "indexedPath"6443 DESTRUCT_FULL@9234..9235
6345 WHITESPACE@10525..10526 " "6444 NAME@9234..9235
6346 PLUS@10526..10527 "+"6445 IDENT@9234..9235 "o"
6347 WHITESPACE@10527..10528 " "6446 COMMA@9235..9236 ","
6348 EXPR_ARRAY@10528..105316447 WHITESPACE@9236..9237 " "
6349 L_BRACK@10528..10529 "["6448 PARAM@9237..9238
6350 EXPR_VAR@10529..105306449 DESTRUCT_FULL@9237..9238
6351 NAME@10529..105306450 NAME@9237..9238
6352 IDENT@10529..10530 "k"6451 IDENT@9237..9238 "f"
6353 R_BRACK@10530..10531 "]"6452 R_PAREN@9238..9239 ")"
6354 COMMA@10531..10532 ","6453 COLONCOLON@9239..9241 "::"
6355 WHITESPACE@10532..10533 " "6454 WHITESPACE@9241..9246 "\n "
6356 ARG@10533..105406455 EXPR_APPLY@9246..9274
6357 EXPR_VAR@10533..105406456 EXPR_INDEX@9246..9261
6358 NAME@10533..105406457 EXPR_VAR@9246..9249
6359 IDENT@10533..10540 "cindent"6458 NAME@9246..9249
6360 R_PAREN@10540..10541 ")"6459 IDENT@9246..9249 "std"
6361 WHITESPACE@10541..10552 "\n "6460 DOT@9249..9250 "."
6362 R_PAREN@10552..10553 ")"6461 NAME@9250..9261
6363 WHITESPACE@10553..10564 "\n "6462 IDENT@9250..9261 "objectHasEx"
6364 FOR_SPEC@10564..105926463 ARGS_DESC@9261..9274
6365 FOR_KW@10564..10567 "for"6464 L_PAREN@9261..9262 "("
6366 WHITESPACE@10567..10568 " "6465 ARG@9262..9263
6367 NAME@10568..105696466 EXPR_VAR@9262..9263
6368 IDENT@10568..10569 "k"6467 NAME@9262..9263
6369 WHITESPACE@10569..10570 " "6468 IDENT@9262..9263 "o"
6370 IN_KW@10570..10572 "in"6469 COMMA@9263..9264 ","
6371 WHITESPACE@10572..10573 " "6470 WHITESPACE@9264..9265 " "
6372 EXPR_APPLY@10573..105926471 ARG@9265..9266
6373 EXPR_INDEX@10573..105896472 EXPR_VAR@9265..9266
6374 EXPR_VAR@10573..105766473 NAME@9265..9266
6375 NAME@10573..105766474 IDENT@9265..9266 "f"
6376 IDENT@10573..10576 "std"6475 COMMA@9266..9267 ","
6377 DOT@10576..10577 "."6476 WHITESPACE@9267..9268 " "
6378 NAME@10577..105896477 ARG@9268..9273
6379 IDENT@10577..10589 "objectFields"6478 EXPR_LITERAL@9268..9273
6380 ARGS_DESC@10589..105926479 FALSE_KW@9268..9273 "false"
6381 L_PAREN@10589..10590 "("6480 R_PAREN@9273..9274 ")"
6382 ARG@10590..105916481 COMMA@9274..9275 ","
6383 EXPR_VAR@10590..105916482 WHITESPACE@9275..9279 "\n\n "
6384 NAME@10590..105916483 MEMBER_FIELD@9279..9331
6385 IDENT@10590..10591 "v"6484 FIELD_METHOD@9279..9331
6386 R_PAREN@10591..10592 ")"6485 FIELD_NAME_FIXED@9279..9291
6387 WHITESPACE@10592..10603 "\n "6486 NAME@9279..9291
6388 IF_SPEC@10603..106216487 IDENT@9279..9291 "objectHasAll"
6389 IF_KW@10603..10605 "if"6488 PARAMS_DESC@9291..9297
6390 WHITESPACE@10605..10606 " "6489 L_PAREN@9291..9292 "("
6391 EXPR_APPLY@10606..106216490 PARAM@9292..9293
6392 EXPR_VAR@10606..106156491 DESTRUCT_FULL@9292..9293
6393 NAME@10606..106156492 NAME@9292..9293
6394 IDENT@10606..10615 "isSection"6493 IDENT@9292..9293 "o"
6395 ARGS_DESC@10615..106216494 COMMA@9293..9294 ","
6396 L_PAREN@10615..10616 "("6495 WHITESPACE@9294..9295 " "
6397 ARG@10616..106206496 PARAM@9295..9296
6398 EXPR_INDEX_EXPR@10616..106206497 DESTRUCT_FULL@9295..9296
6399 LHS_EXPR@10616..106176498 NAME@9295..9296
6400 EXPR_VAR@10616..106176499 IDENT@9295..9296 "f"
6401 NAME@10616..106176500 R_PAREN@9296..9297 ")"
6402 IDENT@10616..10617 "v"6501 COLONCOLON@9297..9299 "::"
6403 L_BRACK@10617..10618 "["6502 WHITESPACE@9299..9304 "\n "
6404 EXPR_VAR@10618..106196503 EXPR_APPLY@9304..9331
6405 NAME@10618..106196504 EXPR_INDEX@9304..9319
6406 IDENT@10618..10619 "k"6505 EXPR_VAR@9304..9307
6407 R_BRACK@10619..10620 "]"6506 NAME@9304..9307
6408 R_PAREN@10620..10621 ")"6507 IDENT@9304..9307 "std"
6409 WHITESPACE@10621..10630 "\n "6508 DOT@9307..9308 "."
6410 R_BRACK@10630..10631 "]"6509 NAME@9308..9319
6411 SEMI@10631..10632 ";"6510 IDENT@9308..9319 "objectHasEx"
6412 WHITESPACE@10632..10641 "\n "6511 ARGS_DESC@9319..9331
6413 EXPR_APPLY@10641..106676512 L_PAREN@9319..9320 "("
6414 EXPR_INDEX@10641..106496513 ARG@9320..9321
6415 EXPR_VAR@10641..106446514 EXPR_VAR@9320..9321
6416 NAME@10641..106446515 NAME@9320..9321
6417 IDENT@10641..10644 "std"6516 IDENT@9320..9321 "o"
6418 DOT@10644..10645 "."6517 COMMA@9321..9322 ","
6419 NAME@10645..106496518 WHITESPACE@9322..9323 " "
6420 IDENT@10645..10649 "join"6519 ARG@9323..9324
6421 ARGS_DESC@10649..106676520 EXPR_VAR@9323..9324
6422 L_PAREN@10649..10650 "("6521 NAME@9323..9324
6423 ARG@10650..106566522 IDENT@9323..9324 "f"
6424 EXPR_STRING@10650..106566523 COMMA@9324..9325 ","
6425 STRING_SINGLE@10650..10656 "'\\n\\n'"6524 WHITESPACE@9325..9326 " "
6426 COMMA@10656..10657 ","6525 ARG@9326..9330
6427 WHITESPACE@10657..10658 " "6526 EXPR_LITERAL@9326..9330
6428 ARG@10658..106666527 TRUE_KW@9326..9330 "true"
6429 EXPR_VAR@10658..106666528 R_PAREN@9330..9331 ")"
6430 NAME@10658..106666529 COMMA@9331..9332 ","
6431 IDENT@10658..10666 "sections"6530 WHITESPACE@9332..9336 "\n\n "
6432 R_PAREN@10666..10667 ")"6531 MEMBER_FIELD@9336..9393
6433 COMMA@10667..10668 ","6532 FIELD_METHOD@9336..9393
6434 WHITESPACE@10668..10675 "\n "6533 FIELD_NAME_FIXED@9336..9348
6435 BIND_FUNCTION@10675..109046534 NAME@9336..9348
6436 NAME@10675..106866535 IDENT@9336..9348 "objectValues"
6437 IDENT@10675..10686 "renderTable"6536 PARAMS_DESC@9348..9351
6438 PARAMS_DESC@10686..107176537 L_PAREN@9348..9349 "("
6439 L_PAREN@10686..10687 "("6538 PARAM@9349..9350
6440 PARAM@10687..106886539 DESTRUCT_FULL@9349..9350
6441 DESTRUCT_FULL@10687..106886540 NAME@9349..9350
6442 NAME@10687..106886541 IDENT@9349..9350 "o"
6443 IDENT@10687..10688 "v"6542 R_PAREN@9350..9351 ")"
6444 COMMA@10688..10689 ","6543 COLONCOLON@9351..9353 "::"
6445 WHITESPACE@10689..10690 " "6544 WHITESPACE@9353..9358 "\n "
6446 PARAM@10690..106946545 EXPR_ARRAY_COMP@9358..9393
6447 DESTRUCT_FULL@10690..106946546 L_BRACK@9358..9359 "["
6448 NAME@10690..106946547 EXPR_INDEX_EXPR@9359..9363
6449 IDENT@10690..10694 "path"6548 LHS_EXPR@9359..9360
6450 COMMA@10694..10695 ","6549 EXPR_VAR@9359..9360
6451 WHITESPACE@10695..10696 " "6550 NAME@9359..9360
6452 PARAM@10696..107076551 IDENT@9359..9360 "o"
6453 DESTRUCT_FULL@10696..107076552 L_BRACK@9360..9361 "["
6454 NAME@10696..107076553 EXPR_VAR@9361..9362
6455 IDENT@10696..10707 "indexedPath"6554 NAME@9361..9362
6456 COMMA@10707..10708 ","6555 IDENT@9361..9362 "k"
6457 WHITESPACE@10708..10709 " "6556 R_BRACK@9362..9363 "]"
6458 PARAM@10709..107166557 WHITESPACE@9363..9364 " "
6459 DESTRUCT_FULL@10709..107166558 FOR_SPEC@9364..9392
6460 NAME@10709..107166559 FOR_KW@9364..9367 "for"
6461 IDENT@10709..10716 "cindent"6560 WHITESPACE@9367..9368 " "
6462 R_PAREN@10716..10717 ")"6561 NAME@9368..9369
6463 WHITESPACE@10717..10718 " "6562 IDENT@9368..9369 "k"
6464 ASSIGN@10718..10719 "="6563 WHITESPACE@9369..9370 " "
6465 WHITESPACE@10719..10728 "\n "6564 IN_KW@9370..9372 "in"
6466 EXPR_BINARY@10728..109046565 WHITESPACE@9372..9373 " "
6467 LHS_EXPR@10728..108346566 EXPR_APPLY@9373..9392
6468 EXPR_BINARY@10728..108346567 EXPR_INDEX@9373..9389
6469 LHS_EXPR@10728..107936568 EXPR_VAR@9373..9376
6470 EXPR_BINARY@10728..107936569 NAME@9373..9376
6471 LHS_EXPR@10728..107876570 IDENT@9373..9376 "std"
6472 EXPR_BINARY@10728..107876571 DOT@9376..9377 "."
6473 LHS_EXPR@10728..107416572 NAME@9377..9389
6474 EXPR_BINARY@10728..107416573 IDENT@9377..9389 "objectFields"
6475 LHS_EXPR@10728..107356574 ARGS_DESC@9389..9392
6476 EXPR_VAR@10728..107356575 L_PAREN@9389..9390 "("
6477 NAME@10728..107356576 ARG@9390..9391
6478 IDENT@10728..10735 "cindent"6577 EXPR_VAR@9390..9391
6479 WHITESPACE@10735..10736 " "6578 NAME@9390..9391
6480 PLUS@10736..10737 "+"6579 IDENT@9390..9391 "o"
6481 WHITESPACE@10737..10738 " "6580 R_PAREN@9391..9392 ")"
6482 EXPR_STRING@10738..107416581 R_BRACK@9392..9393 "]"
6483 STRING_SINGLE@10738..10741 "'['"6582 COMMA@9393..9394 ","
6484 WHITESPACE@10741..10742 " "6583 WHITESPACE@9394..9398 "\n\n "
6485 PLUS@10742..10743 "+"6584 MEMBER_FIELD@9398..9461
6486 WHITESPACE@10743..10744 " "6585 FIELD_METHOD@9398..9461
6487 EXPR_APPLY@10744..107876586 FIELD_NAME_FIXED@9398..9413
6488 EXPR_INDEX@10744..107526587 NAME@9398..9413
6489 EXPR_VAR@10744..107476588 IDENT@9398..9413 "objectValuesAll"
6490 NAME@10744..107476589 PARAMS_DESC@9413..9416
6491 IDENT@10744..10747 "std"6590 L_PAREN@9413..9414 "("
6492 DOT@10747..10748 "."6591 PARAM@9414..9415
6493 NAME@10748..107526592 DESTRUCT_FULL@9414..9415
6494 IDENT@10748..10752 "join"6593 NAME@9414..9415
6495 ARGS_DESC@10752..107876594 IDENT@9414..9415 "o"
6496 L_PAREN@10752..10753 "("6595 R_PAREN@9415..9416 ")"
6497 ARG@10753..107566596 COLONCOLON@9416..9418 "::"
6498 EXPR_STRING@10753..107566597 WHITESPACE@9418..9423 "\n "
6499 STRING_SINGLE@10753..10756 "'.'"6598 EXPR_ARRAY_COMP@9423..9461
6500 COMMA@10756..10757 ","6599 L_BRACK@9423..9424 "["
6501 WHITESPACE@10757..10758 " "6600 EXPR_INDEX_EXPR@9424..9428
6502 ARG@10758..107866601 LHS_EXPR@9424..9425
6503 EXPR_APPLY@10758..107866602 EXPR_VAR@9424..9425
6504 EXPR_INDEX@10758..107656603 NAME@9424..9425
6505 EXPR_VAR@10758..107616604 IDENT@9424..9425 "o"
6506 NAME@10758..107616605 L_BRACK@9425..9426 "["
6507 IDENT@10758..10761 "std"6606 EXPR_VAR@9426..9427
6508 DOT@10761..10762 "."6607 NAME@9426..9427
6509 NAME@10762..107656608 IDENT@9426..9427 "k"
6510 IDENT@10762..10765 "map"6609 R_BRACK@9427..9428 "]"
6511 ARGS_DESC@10765..107866610 WHITESPACE@9428..9429 " "
6512 L_PAREN@10765..10766 "("6611 FOR_SPEC@9429..9460
6513 ARG@10766..107796612 FOR_KW@9429..9432 "for"
6514 EXPR_VAR@10766..107796613 WHITESPACE@9432..9433 " "
6515 NAME@10766..107796614 NAME@9433..9434
6516 IDENT@10766..10779 "escapeKeyToml"6615 IDENT@9433..9434 "k"
6517 COMMA@10779..10780 ","6616 WHITESPACE@9434..9435 " "
6518 WHITESPACE@10780..10781 " "6617 IN_KW@9435..9437 "in"
6519 ARG@10781..107856618 WHITESPACE@9437..9438 " "
6520 EXPR_VAR@10781..107856619 EXPR_APPLY@9438..9460
6521 NAME@10781..107856620 EXPR_INDEX@9438..9457
6522 IDENT@10781..10785 "path"6621 EXPR_VAR@9438..9441
6523 R_PAREN@10785..10786 ")"6622 NAME@9438..9441
6524 R_PAREN@10786..10787 ")"6623 IDENT@9438..9441 "std"
6525 WHITESPACE@10787..10788 " "6624 DOT@9441..9442 "."
6526 PLUS@10788..10789 "+"6625 NAME@9442..9457
6527 WHITESPACE@10789..10790 " "6626 IDENT@9442..9457 "objectFieldsAll"
6528 EXPR_STRING@10790..107936627 ARGS_DESC@9457..9460
6529 STRING_SINGLE@10790..10793 "']'"6628 L_PAREN@9457..9458 "("
6530 WHITESPACE@10793..10802 "\n "6629 ARG@9458..9459
6531 PLUS@10802..10803 "+"6630 EXPR_VAR@9458..9459
6532 WHITESPACE@10803..10804 " "6631 NAME@9458..9459
6533 EXPR_PARENED@10804..108346632 IDENT@9458..9459 "o"
6534 L_PAREN@10804..10805 "("6633 R_PAREN@9459..9460 ")"
6535 EXPR_IF_THEN_ELSE@10805..108336634 R_BRACK@9460..9461 "]"
6536 IF_KW@10805..10807 "if"6635 COMMA@9461..9462 ","
6537 WHITESPACE@10807..10808 " "6636 WHITESPACE@9462..9466 "\n\n "
6538 EXPR_BINARY@10808..108156637 MEMBER_FIELD@9466..9600
6539 LHS_EXPR@10808..108096638 FIELD_METHOD@9466..9600
6540 EXPR_VAR@10808..108096639 FIELD_NAME_FIXED@9466..9477
6541 NAME@10808..108096640 NAME@9466..9477
6542 IDENT@10808..10809 "v"6641 IDENT@9466..9477 "resolvePath"
6543 WHITESPACE@10809..10810 " "6642 PARAMS_DESC@9477..9483
6544 EQ@10810..10812 "=="6643 L_PAREN@9477..9478 "("
6545 WHITESPACE@10812..10813 " "6644 PARAM@9478..9479
6546 EXPR_OBJECT@10813..108156645 DESTRUCT_FULL@9478..9479
6547 OBJ_BODY_MEMBER_LIST@10813..108156646 NAME@9478..9479
6548 L_BRACE@10813..10814 "{"6647 IDENT@9478..9479 "f"
6549 R_BRACE@10814..10815 "}"6648 COMMA@9479..9480 ","
6550 WHITESPACE@10815..10816 " "6649 WHITESPACE@9480..9481 " "
6551 THEN_KW@10816..10820 "then"6650 PARAM@9481..9482
6552 WHITESPACE@10820..10821 " "6651 DESTRUCT_FULL@9481..9482
6553 TRUE_EXPR@10821..108236652 NAME@9481..9482
6554 EXPR_STRING@10821..108236653 IDENT@9481..9482 "r"
6555 STRING_SINGLE@10821..10823 "''"6654 R_PAREN@9482..9483 ")"
6556 WHITESPACE@10823..10824 " "6655 COLONCOLON@9483..9485 "::"
6557 ELSE_KW@10824..10828 "else"6656 WHITESPACE@9485..9490 "\n "
6558 WHITESPACE@10828..10829 " "6657 EXPR_LOCAL@9490..9600
6559 FALSE_EXPR@10829..108336658 LOCAL_KW@9490..9495 "local"
6560 EXPR_STRING@10829..108336659 WHITESPACE@9495..9496 " "
6561 STRING_SINGLE@10829..10833 "'\\n'"6660 BIND_DESTRUCT@9496..9519
6562 R_PAREN@10833..10834 ")"6661 DESTRUCT_FULL@9496..9499
6563 WHITESPACE@10834..10843 "\n "6662 NAME@9496..9499
6564 PLUS@10843..10844 "+"6663 IDENT@9496..9499 "arr"
6565 WHITESPACE@10844..10845 " "6664 WHITESPACE@9499..9500 " "
6566 EXPR_APPLY@10845..109046665 ASSIGN@9500..9501 "="
6567 EXPR_VAR@10845..108646666 WHITESPACE@9501..9502 " "
6568 NAME@10845..108646667 EXPR_APPLY@9502..9519
6569 IDENT@10845..10864 "renderTableInternal"6668 EXPR_INDEX@9502..9511
6570 ARGS_DESC@10864..109046669 EXPR_VAR@9502..9505
6571 L_PAREN@10864..10865 "("6670 NAME@9502..9505
6572 ARG@10865..108666671 IDENT@9502..9505 "std"
6573 EXPR_VAR@10865..108666672 DOT@9505..9506 "."
6574 NAME@10865..108666673 NAME@9506..9511
6575 IDENT@10865..10866 "v"6674 IDENT@9506..9511 "split"
6576 COMMA@10866..10867 ","6675 ARGS_DESC@9511..9519
6577 WHITESPACE@10867..10868 " "6676 L_PAREN@9511..9512 "("
6578 ARG@10868..108726677 ARG@9512..9513
6579 EXPR_VAR@10868..108726678 EXPR_VAR@9512..9513
6580 NAME@10868..108726679 NAME@9512..9513
6581 IDENT@10868..10872 "path"6680 IDENT@9512..9513 "f"
6582 COMMA@10872..10873 ","6681 COMMA@9513..9514 ","
6583 WHITESPACE@10873..10874 " "6682 WHITESPACE@9514..9515 " "
6584 ARG@10874..108856683 ARG@9515..9518
6585 EXPR_VAR@10874..108856684 EXPR_STRING@9515..9518
6586 NAME@10874..108856685 STRING_SINGLE@9515..9518 "'/'"
6587 IDENT@10874..10885 "indexedPath"6686 R_PAREN@9518..9519 ")"
6588 COMMA@10885..10886 ","6687 SEMI@9519..9520 ";"
6589 WHITESPACE@10886..10887 " "6688 WHITESPACE@9520..9525 "\n "
6590 ARG@10887..109036689 EXPR_APPLY@9525..9600
6591 EXPR_BINARY@10887..109036690 EXPR_INDEX@9525..9533
6592 LHS_EXPR@10887..108946691 EXPR_VAR@9525..9528
6593 EXPR_VAR@10887..108946692 NAME@9525..9528
6594 NAME@10887..108946693 IDENT@9525..9528 "std"
6595 IDENT@10887..10894 "cindent"6694 DOT@9528..9529 "."
6596 WHITESPACE@10894..10895 " "6695 NAME@9529..9533
6597 PLUS@10895..10896 "+"6696 IDENT@9529..9533 "join"
6598 WHITESPACE@10896..10897 " "6697 ARGS_DESC@9533..9600
6599 EXPR_VAR@10897..109036698 L_PAREN@9533..9534 "("
6600 NAME@10897..109036699 ARG@9534..9537
6601 IDENT@10897..10903 "indent"6700 EXPR_STRING@9534..9537
6602 R_PAREN@10903..10904 ")"6701 STRING_SINGLE@9534..9537 "'/'"
6603 COMMA@10904..10905 ","6702 COMMA@9537..9538 ","
6604 WHITESPACE@10905..10912 "\n "6703 WHITESPACE@9538..9539 " "
6605 BIND_FUNCTION@10912..113236704 ARG@9539..9599
6606 NAME@10912..109286705 EXPR_BINARY@9539..9599
6607 IDENT@10912..10928 "renderTableArray"6706 LHS_EXPR@9539..9593
6608 PARAMS_DESC@10928..109596707 EXPR_APPLY@9539..9593
6609 L_PAREN@10928..10929 "("6708 EXPR_INDEX@9539..9552
6610 PARAM@10929..109306709 EXPR_VAR@9539..9542
6611 DESTRUCT_FULL@10929..109306710 NAME@9539..9542
6612 NAME@10929..109306711 IDENT@9539..9542 "std"
6613 IDENT@10929..10930 "v"6712 DOT@9542..9543 "."
6614 COMMA@10930..10931 ","6713 NAME@9543..9552
6615 WHITESPACE@10931..10932 " "6714 IDENT@9543..9552 "makeArray"
6616 PARAM@10932..109366715 ARGS_DESC@9552..9593
6617 DESTRUCT_FULL@10932..109366716 L_PAREN@9552..9553 "("
6618 NAME@10932..109366717 ARG@9553..9572
6619 IDENT@10932..10936 "path"6718 EXPR_BINARY@9553..9572
6620 COMMA@10936..10937 ","6719 LHS_EXPR@9553..9568
6621 WHITESPACE@10937..10938 " "6720 EXPR_APPLY@9553..9568
6622 PARAM@10938..109496721 EXPR_INDEX@9553..9563
6623 DESTRUCT_FULL@10938..109496722 EXPR_VAR@9553..9556
6624 NAME@10938..109496723 NAME@9553..9556
6625 IDENT@10938..10949 "indexedPath"6724 IDENT@9553..9556 "std"
6626 COMMA@10949..10950 ","6725 DOT@9556..9557 "."
6627 WHITESPACE@10950..10951 " "6726 NAME@9557..9563
6628 PARAM@10951..109586727 IDENT@9557..9563 "length"
6629 DESTRUCT_FULL@10951..109586728 ARGS_DESC@9563..9568
6630 NAME@10951..109586729 L_PAREN@9563..9564 "("
6631 IDENT@10951..10958 "cindent"6730 ARG@9564..9567
6632 R_PAREN@10958..10959 ")"6731 EXPR_VAR@9564..9567
6633 WHITESPACE@10959..10960 " "6732 NAME@9564..9567
6634 ASSIGN@10960..10961 "="6733 IDENT@9564..9567 "arr"
6635 WHITESPACE@10961..10970 "\n "6734 R_PAREN@9567..9568 ")"
6636 EXPR_LOCAL@10970..113236735 WHITESPACE@9568..9569 " "
6637 LOCAL_KW@10970..10975 "local"6736 MINUS@9569..9570 "-"
6638 WHITESPACE@10975..10976 " "6737 WHITESPACE@9570..9571 " "
6639 BIND_DESTRUCT@10976..110156738 EXPR_NUMBER@9571..9572
6640 DESTRUCT_FULL@10976..109816739 FLOAT@9571..9572 "1"
6641 NAME@10976..109816740 COMMA@9572..9573 ","
6642 IDENT@10976..10981 "range"6741 WHITESPACE@9573..9574 " "
6643 WHITESPACE@10981..10982 " "6742 ARG@9574..9592
6644 ASSIGN@10982..10983 "="6743 EXPR_FUNCTION@9574..9592
6645 WHITESPACE@10983..10984 " "6744 FUNCTION_KW@9574..9582 "function"
6646 EXPR_APPLY@10984..110156745 PARAMS_DESC@9582..9585
6647 EXPR_INDEX@10984..109936746 L_PAREN@9582..9583 "("
6648 EXPR_VAR@10984..109876747 PARAM@9583..9584
6649 NAME@10984..109876748 DESTRUCT_FULL@9583..9584
6650 IDENT@10984..10987 "std"6749 NAME@9583..9584
6651 DOT@10987..10988 "."6750 IDENT@9583..9584 "i"
6652 NAME@10988..109936751 R_PAREN@9584..9585 ")"
6653 IDENT@10988..10993 "range"6752 WHITESPACE@9585..9586 " "
6654 ARGS_DESC@10993..110156753 EXPR_INDEX_EXPR@9586..9592
6655 L_PAREN@10993..10994 "("6754 LHS_EXPR@9586..9589
6656 ARG@10994..109956755 EXPR_VAR@9586..9589
6657 EXPR_NUMBER@10994..109956756 NAME@9586..9589
6658 FLOAT@10994..10995 "0"6757 IDENT@9586..9589 "arr"
6659 COMMA@10995..10996 ","6758 L_BRACK@9589..9590 "["
6660 WHITESPACE@10996..10997 " "6759 EXPR_VAR@9590..9591
6661 ARG@10997..110146760 NAME@9590..9591
6662 EXPR_BINARY@10997..110146761 IDENT@9590..9591 "i"
6663 LHS_EXPR@10997..110106762 R_BRACK@9591..9592 "]"
6664 EXPR_APPLY@10997..110106763 R_PAREN@9592..9593 ")"
6665 EXPR_INDEX@10997..110076764 WHITESPACE@9593..9594 " "
6666 EXPR_VAR@10997..110006765 PLUS@9594..9595 "+"
6667 NAME@10997..110006766 WHITESPACE@9595..9596 " "
6668 IDENT@10997..11000 "std"6767 EXPR_ARRAY@9596..9599
6669 DOT@11000..11001 "."6768 L_BRACK@9596..9597 "["
6670 NAME@11001..110076769 EXPR_VAR@9597..9598
6671 IDENT@11001..11007 "length"6770 NAME@9597..9598
6672 ARGS_DESC@11007..110106771 IDENT@9597..9598 "r"
6673 L_PAREN@11007..11008 "("6772 R_BRACK@9598..9599 "]"
6674 ARG@11008..110096773 R_PAREN@9599..9600 ")"
6675 EXPR_VAR@11008..110096774 COMMA@9600..9601 ","
6676 NAME@11008..110096775 WHITESPACE@9601..9605 "\n\n "
6677 IDENT@11008..11009 "v"6776 MEMBER_FIELD@9605..10058
6678 R_PAREN@11009..11010 ")"6777 FIELD_METHOD@9605..10058
6679 WHITESPACE@11010..11011 " "6778 FIELD_NAME_FIXED@9605..9610
6680 MINUS@11011..11012 "-"6779 NAME@9605..9610
6681 WHITESPACE@11012..11013 " "6780 IDENT@9605..9610 "prune"
6682 EXPR_NUMBER@11013..110146781 PARAMS_DESC@9610..9613
6683 FLOAT@11013..11014 "1"6782 L_PAREN@9610..9611 "("
6684 R_PAREN@11014..11015 ")"6783 PARAM@9611..9612
6685 SEMI@11015..11016 ";"6784 DESTRUCT_FULL@9611..9612
6686 WHITESPACE@11016..11025 "\n "6785 NAME@9611..9612
6687 EXPR_LOCAL@11025..113236786 IDENT@9611..9612 "a"
6688 LOCAL_KW@11025..11030 "local"6787 R_PAREN@9612..9613 ")"
6689 WHITESPACE@11030..11031 " "6788 COLONCOLON@9613..9615 "::"
6690 BIND_DESTRUCT@11031..112876789 WHITESPACE@9615..9620 "\n "
6691 DESTRUCT_FULL@11031..110396790 EXPR_LOCAL@9620..10058
6692 NAME@11031..110396791 LOCAL_KW@9620..9625 "local"
6693 IDENT@11031..11039 "sections"6792 WHITESPACE@9625..9626 " "
6694 WHITESPACE@11039..11040 " "6793 BIND_FUNCTION@9626..9823
6695 ASSIGN@11040..11041 "="6794 NAME@9626..9635
6696 WHITESPACE@11041..11042 " "6795 IDENT@9626..9635 "isContent"
6697 EXPR_ARRAY_COMP@11042..112876796 PARAMS_DESC@9635..9638
6698 L_BRACK@11042..11043 "["6797 L_PAREN@9635..9636 "("
6699 WHITESPACE@11043..11054 "\n "6798 PARAM@9636..9637
6700 EXPR_PARENED@11054..112526799 DESTRUCT_FULL@9636..9637
6701 L_PAREN@11054..11055 "("6800 NAME@9636..9637
6702 EXPR_BINARY@11055..112516801 IDENT@9636..9637 "b"
6703 LHS_EXPR@11055..111696802 R_PAREN@9637..9638 ")"
6704 EXPR_BINARY@11055..111696803 WHITESPACE@9638..9639 " "
6705 LHS_EXPR@11055..111226804 ASSIGN@9639..9640 "="
6706 EXPR_BINARY@11055..111226805 WHITESPACE@9640..9647 "\n "
6707 LHS_EXPR@11055..111156806 EXPR_IF_THEN_ELSE@9647..9823
6708 EXPR_BINARY@11055..111156807 IF_KW@9647..9649 "if"
6709 LHS_EXPR@11055..110696808 WHITESPACE@9649..9650 " "
6710 EXPR_BINARY@11055..110696809 EXPR_BINARY@9650..9659
6711 LHS_EXPR@11055..110626810 LHS_EXPR@9650..9651
6712 EXPR_VAR@11055..110626811 EXPR_VAR@9650..9651
6713 NAME@11055..110626812 NAME@9650..9651
6714 IDENT@11055..11062 "cindent"6813 IDENT@9650..9651 "b"
6715 WHITESPACE@11062..11063 " "6814 WHITESPACE@9651..9652 " "
6716 PLUS@11063..11064 "+"6815 EQ@9652..9654 "=="
6717 WHITESPACE@11064..11065 " "6816 WHITESPACE@9654..9655 " "
6718 EXPR_STRING@11065..110696817 EXPR_LITERAL@9655..9659
6719 STRING_SINGLE@11065..11069 "'[['"6818 NULL_KW@9655..9659 "null"
6720 WHITESPACE@11069..11070 " "6819 WHITESPACE@9659..9660 " "
6721 PLUS@11070..11071 "+"6820 THEN_KW@9660..9664 "then"
6722 WHITESPACE@11071..11072 " "6821 WHITESPACE@9664..9673 "\n "
6723 EXPR_APPLY@11072..111156822 TRUE_EXPR@9673..9678
6724 EXPR_INDEX@11072..110806823 EXPR_LITERAL@9673..9678
6725 EXPR_VAR@11072..110756824 FALSE_KW@9673..9678 "false"
6726 NAME@11072..110756825 WHITESPACE@9678..9685 "\n "
6727 IDENT@11072..11075 "std"6826 ELSE_KW@9685..9689 "else"
6728 DOT@11075..11076 "."6827 WHITESPACE@9689..9690 " "
6729 NAME@11076..110806828 FALSE_EXPR@9690..9823
6730 IDENT@11076..11080 "join"6829 EXPR_IF_THEN_ELSE@9690..9823
6731 ARGS_DESC@11080..111156830 IF_KW@9690..9692 "if"
6732 L_PAREN@11080..11081 "("6831 WHITESPACE@9692..9693 " "
6733 ARG@11081..110846832 EXPR_APPLY@9693..9707
6734 EXPR_STRING@11081..110846833 EXPR_INDEX@9693..9704
6735 STRING_SINGLE@11081..11084 "'.'"6834 EXPR_VAR@9693..9696
6736 COMMA@11084..11085 ","6835 NAME@9693..9696
6737 WHITESPACE@11085..11086 " "6836 IDENT@9693..9696 "std"
6738 ARG@11086..111146837 DOT@9696..9697 "."
6739 EXPR_APPLY@11086..111146838 NAME@9697..9704
6740 EXPR_INDEX@11086..110936839 IDENT@9697..9704 "isArray"
6741 EXPR_VAR@11086..110896840 ARGS_DESC@9704..9707
6742 NAME@11086..110896841 L_PAREN@9704..9705 "("
6743 IDENT@11086..11089 "std"6842 ARG@9705..9706
6744 DOT@11089..11090 "."6843 EXPR_VAR@9705..9706
6745 NAME@11090..110936844 NAME@9705..9706
6746 IDENT@11090..11093 "map"6845 IDENT@9705..9706 "b"
6747 ARGS_DESC@11093..111146846 R_PAREN@9706..9707 ")"
6748 L_PAREN@11093..11094 "("6847 WHITESPACE@9707..9708 " "
6749 ARG@11094..111076848 THEN_KW@9708..9712 "then"
6750 EXPR_VAR@11094..111076849 WHITESPACE@9712..9721 "\n "
6751 NAME@11094..111076850 TRUE_EXPR@9721..9738
6752 IDENT@11094..11107 "escapeKeyToml"6851 EXPR_BINARY@9721..9738
6753 COMMA@11107..11108 ","6852 LHS_EXPR@9721..9734
6754 WHITESPACE@11108..11109 " "6853 EXPR_APPLY@9721..9734
6755 ARG@11109..111136854 EXPR_INDEX@9721..9731
6756 EXPR_VAR@11109..111136855 EXPR_VAR@9721..9724
6757 NAME@11109..111136856 NAME@9721..9724
6758 IDENT@11109..11113 "path"6857 IDENT@9721..9724 "std"
6759 R_PAREN@11113..11114 ")"6858 DOT@9724..9725 "."
6760 R_PAREN@11114..11115 ")"6859 NAME@9725..9731
6761 WHITESPACE@11115..11116 " "6860 IDENT@9725..9731 "length"
6762 PLUS@11116..11117 "+"6861 ARGS_DESC@9731..9734
6763 WHITESPACE@11117..11118 " "6862 L_PAREN@9731..9732 "("
6764 EXPR_STRING@11118..111226863 ARG@9732..9733
6765 STRING_SINGLE@11118..11122 "']]'"6864 EXPR_VAR@9732..9733
6766 WHITESPACE@11122..11134 "\n "6865 NAME@9732..9733
6767 PLUS@11134..11135 "+"6866 IDENT@9732..9733 "b"
6768 WHITESPACE@11135..11136 " "6867 R_PAREN@9733..9734 ")"
6769 EXPR_PARENED@11136..111696868 WHITESPACE@9734..9735 " "
6770 L_PAREN@11136..11137 "("6869 GT@9735..9736 ">"
6771 EXPR_IF_THEN_ELSE@11137..111686870 WHITESPACE@9736..9737 " "
6772 IF_KW@11137..11139 "if"6871 EXPR_NUMBER@9737..9738
6773 WHITESPACE@11139..11140 " "6872 FLOAT@9737..9738 "0"
6774 EXPR_BINARY@11140..111506873 WHITESPACE@9738..9745 "\n "
6775 LHS_EXPR@11140..111446874 ELSE_KW@9745..9749 "else"
6776 EXPR_INDEX_EXPR@11140..111446875 WHITESPACE@9749..9750 " "
6777 LHS_EXPR@11140..111416876 FALSE_EXPR@9750..9823
6778 EXPR_VAR@11140..111416877 EXPR_IF_THEN_ELSE@9750..9823
6779 NAME@11140..111416878 IF_KW@9750..9752 "if"
6780 IDENT@11140..11141 "v"6879 WHITESPACE@9752..9753 " "
6781 L_BRACK@11141..11142 "["6880 EXPR_APPLY@9753..9768
6782 EXPR_VAR@11142..111436881 EXPR_INDEX@9753..9765
6783 NAME@11142..111436882 EXPR_VAR@9753..9756
6784 IDENT@11142..11143 "i"6883 NAME@9753..9756
6785 R_BRACK@11143..11144 "]"6884 IDENT@9753..9756 "std"
6786 WHITESPACE@11144..11145 " "6885 DOT@9756..9757 "."
6787 EQ@11145..11147 "=="6886 NAME@9757..9765
6788 WHITESPACE@11147..11148 " "6887 IDENT@9757..9765 "isObject"
6789 EXPR_OBJECT@11148..111506888 ARGS_DESC@9765..9768
6790 OBJ_BODY_MEMBER_LIST@11148..111506889 L_PAREN@9765..9766 "("
6791 L_BRACE@11148..11149 "{"6890 ARG@9766..9767
6792 R_BRACE@11149..11150 "}"6891 EXPR_VAR@9766..9767
6793 WHITESPACE@11150..11151 " "6892 NAME@9766..9767
6794 THEN_KW@11151..11155 "then"6893 IDENT@9766..9767 "b"
6795 WHITESPACE@11155..11156 " "6894 R_PAREN@9767..9768 ")"
6796 TRUE_EXPR@11156..111586895 WHITESPACE@9768..9769 " "
6797 EXPR_STRING@11156..111586896 THEN_KW@9769..9773 "then"
6798 STRING_SINGLE@11156..11158 "''"6897 WHITESPACE@9773..9782 "\n "
6799 WHITESPACE@11158..11159 " "6898 TRUE_EXPR@9782..9799
6800 ELSE_KW@11159..11163 "else"6899 EXPR_BINARY@9782..9799
6801 WHITESPACE@11163..11164 " "6900 LHS_EXPR@9782..9795
6802 FALSE_EXPR@11164..111686901 EXPR_APPLY@9782..9795
6803 EXPR_STRING@11164..111686902 EXPR_INDEX@9782..9792
6804 STRING_SINGLE@11164..11168 "'\\n'"6903 EXPR_VAR@9782..9785
6805 R_PAREN@11168..11169 ")"6904 NAME@9782..9785
6806 WHITESPACE@11169..11181 "\n "6905 IDENT@9782..9785 "std"
6807 PLUS@11181..11182 "+"6906 DOT@9785..9786 "."
6808 WHITESPACE@11182..11183 " "6907 NAME@9786..9792
6809 EXPR_APPLY@11183..112516908 IDENT@9786..9792 "length"
6810 EXPR_VAR@11183..112026909 ARGS_DESC@9792..9795
6811 NAME@11183..112026910 L_PAREN@9792..9793 "("
6812 IDENT@11183..11202 "renderTableInternal"6911 ARG@9793..9794
6813 ARGS_DESC@11202..112516912 EXPR_VAR@9793..9794
6814 L_PAREN@11202..11203 "("6913 NAME@9793..9794
6815 ARG@11203..112076914 IDENT@9793..9794 "b"
6816 EXPR_INDEX_EXPR@11203..112076915 R_PAREN@9794..9795 ")"
6817 LHS_EXPR@11203..112046916 WHITESPACE@9795..9796 " "
6818 EXPR_VAR@11203..112046917 GT@9796..9797 ">"
6819 NAME@11203..112046918 WHITESPACE@9797..9798 " "
6820 IDENT@11203..11204 "v"6919 EXPR_NUMBER@9798..9799
6821 L_BRACK@11204..11205 "["6920 FLOAT@9798..9799 "0"
6822 EXPR_VAR@11205..112066921 WHITESPACE@9799..9806 "\n "
6823 NAME@11205..112066922 ELSE_KW@9806..9810 "else"
6824 IDENT@11205..11206 "i"6923 WHITESPACE@9810..9819 "\n "
6825 R_BRACK@11206..11207 "]"6924 FALSE_EXPR@9819..9823
6826 COMMA@11207..11208 ","6925 EXPR_LITERAL@9819..9823
6827 WHITESPACE@11208..11209 " "6926 TRUE_KW@9819..9823 "true"
6828 ARG@11209..112136927 SEMI@9823..9824 ";"
6829 EXPR_VAR@11209..112136928 WHITESPACE@9824..9829 "\n "
6830 NAME@11209..112136929 EXPR_IF_THEN_ELSE@9829..10058
6831 IDENT@11209..11213 "path"6930 IF_KW@9829..9831 "if"
6832 COMMA@11213..11214 ","6931 WHITESPACE@9831..9832 " "
6833 WHITESPACE@11214..11215 " "6932 EXPR_APPLY@9832..9846
6834 ARG@11215..112326933 EXPR_INDEX@9832..9843
6835 EXPR_BINARY@11215..112326934 EXPR_VAR@9832..9835
6836 LHS_EXPR@11215..112266935 NAME@9832..9835
6837 EXPR_VAR@11215..112266936 IDENT@9832..9835 "std"
6838 NAME@11215..112266937 DOT@9835..9836 "."
6839 IDENT@11215..11226 "indexedPath"6938 NAME@9836..9843
6840 WHITESPACE@11226..11227 " "6939 IDENT@9836..9843 "isArray"
6841 PLUS@11227..11228 "+"6940 ARGS_DESC@9843..9846
6842 WHITESPACE@11228..11229 " "6941 L_PAREN@9843..9844 "("
6843 EXPR_ARRAY@11229..112326942 ARG@9844..9845
6844 L_BRACK@11229..11230 "["6943 EXPR_VAR@9844..9845
6845 EXPR_VAR@11230..112316944 NAME@9844..9845
6846 NAME@11230..112316945 IDENT@9844..9845 "a"
6847 IDENT@11230..11231 "i"6946 R_PAREN@9845..9846 ")"
6848 R_BRACK@11231..11232 "]"6947 WHITESPACE@9846..9847 " "
6849 COMMA@11232..11233 ","6948 THEN_KW@9847..9851 "then"
6850 WHITESPACE@11233..11234 " "6949 WHITESPACE@9851..9858 "\n "
6851 ARG@11234..112506950 TRUE_EXPR@9858..9908
6852 EXPR_BINARY@11234..112506951 EXPR_ARRAY_COMP@9858..9908
6853 LHS_EXPR@11234..112416952 L_BRACK@9858..9859 "["
6854 EXPR_VAR@11234..112416953 EXPR_APPLY@9859..9871
6855 NAME@11234..112416954 EXPR_INDEX@9859..9868
6856 IDENT@11234..11241 "cindent"6955 EXPR_VAR@9859..9862
6857 WHITESPACE@11241..11242 " "6956 NAME@9859..9862
6858 PLUS@11242..11243 "+"6957 IDENT@9859..9862 "std"
6859 WHITESPACE@11243..11244 " "6958 DOT@9862..9863 "."
6860 EXPR_VAR@11244..112506959 NAME@9863..9868
6861 NAME@11244..112506960 IDENT@9863..9868 "prune"
6862 IDENT@11244..11250 "indent"6961 ARGS_DESC@9868..9871
6863 R_PAREN@11250..11251 ")"6962 L_PAREN@9868..9869 "("
6864 R_PAREN@11251..11252 ")"6963 ARG@9869..9870
6865 WHITESPACE@11252..11263 "\n "6964 EXPR_VAR@9869..9870
6866 FOR_SPEC@11263..112776965 NAME@9869..9870
6867 FOR_KW@11263..11266 "for"6966 IDENT@9869..9870 "x"
6868 WHITESPACE@11266..11267 " "6967 R_PAREN@9870..9871 ")"
6869 NAME@11267..112686968 WHITESPACE@9871..9872 " "
6870 IDENT@11267..11268 "i"6969 FOR_SPEC@9872..9882
6871 WHITESPACE@11268..11269 " "6970 FOR_KW@9872..9875 "for"
6872 IN_KW@11269..11271 "in"6971 WHITESPACE@9875..9876 " "
6873 WHITESPACE@11271..11272 " "6972 NAME@9876..9877
6874 EXPR_VAR@11272..112776973 IDENT@9876..9877 "x"
6875 NAME@11272..112776974 WHITESPACE@9877..9878 " "
6876 IDENT@11272..11277 "range"6975 IN_KW@9878..9880 "in"
6877 WHITESPACE@11277..11286 "\n "6976 WHITESPACE@9880..9881 " "
6878 R_BRACK@11286..11287 "]"6977 EXPR_VAR@9881..9882
6879 SEMI@11287..11288 ";"6978 NAME@9881..9882
6880 WHITESPACE@11288..11297 "\n "6979 IDENT@9881..9882 "a"
6881 EXPR_APPLY@11297..113236980 WHITESPACE@9882..9883 " "
6882 EXPR_INDEX@11297..113056981 IF_SPEC@9883..9907
6883 EXPR_VAR@11297..113006982 IF_KW@9883..9885 "if"
6884 NAME@11297..113006983 WHITESPACE@9885..9886 " "
6885 IDENT@11297..11300 "std"6984 EXPR_APPLY@9886..9907
6886 DOT@11300..11301 "."6985 EXPR_VAR@9886..9895
6887 NAME@11301..113056986 NAME@9886..9895
6888 IDENT@11301..11305 "join"6987 IDENT@9886..9895 "isContent"
6889 ARGS_DESC@11305..113236988 ARGS_DESC@9895..9907
6890 L_PAREN@11305..11306 "("6989 L_PAREN@9895..9896 "("
6891 ARG@11306..113126990 ARG@9896..9906
6892 EXPR_STRING@11306..113126991 EXPR_APPLY@9896..9906
6893 STRING_SINGLE@11306..11312 "'\\n\\n'"6992 EXPR_INDEX@9896..9903
6894 COMMA@11312..11313 ","6993 EXPR_LITERAL@9896..9897
6895 WHITESPACE@11313..11314 " "6994 DOLLAR@9896..9897 "$"
6896 ARG@11314..113226995 DOT@9897..9898 "."
6897 EXPR_VAR@11314..113226996 NAME@9898..9903
6898 NAME@11314..113226997 IDENT@9898..9903 "prune"
6899 IDENT@11314..11322 "sections"6998 ARGS_DESC@9903..9906
6900 R_PAREN@11322..11323 ")"6999 L_PAREN@9903..9904 "("
6901 SEMI@11323..11324 ";"7000 ARG@9904..9905
6902 WHITESPACE@11324..11329 "\n "7001 EXPR_VAR@9904..9905
6903 EXPR_IF_THEN_ELSE@11329..114767002 NAME@9904..9905
6904 IF_KW@11329..11331 "if"7003 IDENT@9904..9905 "x"
6905 WHITESPACE@11331..11332 " "7004 R_PAREN@9905..9906 ")"
6906 EXPR_APPLY@11332..113517005 R_PAREN@9906..9907 ")"
6907 EXPR_INDEX@11332..113447006 R_BRACK@9907..9908 "]"
6908 EXPR_VAR@11332..113357007 WHITESPACE@9908..9913 "\n "
6909 NAME@11332..113357008 ELSE_KW@9913..9917 "else"
6910 IDENT@11332..11335 "std"7009 WHITESPACE@9917..9918 " "
6911 DOT@11335..11336 "."7010 FALSE_EXPR@9918..10058
6912 NAME@11336..113447011 EXPR_IF_THEN_ELSE@9918..10058
6913 IDENT@11336..11344 "isObject"7012 IF_KW@9918..9920 "if"
6914 ARGS_DESC@11344..113517013 WHITESPACE@9920..9921 " "
6915 L_PAREN@11344..11345 "("7014 EXPR_APPLY@9921..9936
6916 ARG@11345..113507015 EXPR_INDEX@9921..9933
6917 EXPR_VAR@11345..113507016 EXPR_VAR@9921..9924
6918 NAME@11345..113507017 NAME@9921..9924
6919 IDENT@11345..11350 "value"7018 IDENT@9921..9924 "std"
6920 R_PAREN@11350..11351 ")"7019 DOT@9924..9925 "."
6921 WHITESPACE@11351..11352 " "7020 NAME@9925..9933
6922 THEN_KW@11352..11356 "then"7021 IDENT@9925..9933 "isObject"
6923 WHITESPACE@11356..11363 "\n "7022 ARGS_DESC@9933..9936
6924 TRUE_EXPR@11363..114017023 L_PAREN@9933..9934 "("
6925 EXPR_APPLY@11363..114017024 ARG@9934..9935
6926 EXPR_VAR@11363..113827025 EXPR_VAR@9934..9935
6927 NAME@11363..113827026 NAME@9934..9935
6928 IDENT@11363..11382 "renderTableInternal"7027 IDENT@9934..9935 "a"
6929 ARGS_DESC@11382..114017028 R_PAREN@9935..9936 ")"
6930 L_PAREN@11382..11383 "("7029 WHITESPACE@9936..9937 " "
6931 ARG@11383..113887030 THEN_KW@9937..9941 "then"
6932 EXPR_VAR@11383..113887031 WHITESPACE@9941..9942 " "
6933 NAME@11383..113887032 TRUE_EXPR@9942..10045
6934 IDENT@11383..11388 "value"7033 EXPR_OBJECT@9942..10045
6935 COMMA@11388..11389 ","7034 OBJ_BODY_MEMBER_LIST@9942..10045
6936 WHITESPACE@11389..11390 " "7035 L_BRACE@9942..9943 "{"
6937 ARG@11390..113927036 WHITESPACE@9943..9950 "\n "
6938 EXPR_ARRAY@11390..113927037 MEMBER_FIELD@9950..10039
6939 L_BRACK@11390..11391 "["7038 FIELD_NORMAL@9950..9968
6940 R_BRACK@11391..11392 "]"7039 FIELD_NAME_DYNAMIC@9950..9953
6941 COMMA@11392..11393 ","7040 L_BRACK@9950..9951 "["
6942 WHITESPACE@11393..11394 " "7041 EXPR_VAR@9951..9952
6943 ARG@11394..113967042 NAME@9951..9952
6944 EXPR_ARRAY@11394..113967043 IDENT@9951..9952 "x"
6945 L_BRACK@11394..11395 "["7044 R_BRACK@9952..9953 "]"
6946 R_BRACK@11395..11396 "]"7045 COLON@9953..9954 ":"
6947 COMMA@11396..11397 ","7046 WHITESPACE@9954..9955 " "
6948 WHITESPACE@11397..11398 " "7047 EXPR_APPLY@9955..9968
6949 ARG@11398..114007048 EXPR_INDEX@9955..9962
6950 EXPR_STRING@11398..114007049 EXPR_LITERAL@9955..9956
6951 STRING_SINGLE@11398..11400 "''"7050 DOLLAR@9955..9956 "$"
6952 R_PAREN@11400..11401 ")"7051 DOT@9956..9957 "."
6953 WHITESPACE@11401..11406 "\n "7052 NAME@9957..9962
6954 ELSE_KW@11406..11410 "else"7053 IDENT@9957..9962 "prune"
6955 WHITESPACE@11410..11417 "\n "7054 ARGS_DESC@9962..9968
6956 FALSE_EXPR@11417..114767055 L_PAREN@9962..9963 "("
6957 EXPR_ERROR@11417..114767056 ARG@9963..9967
6958 ERROR_KW@11417..11422 "error"7057 EXPR_INDEX_EXPR@9963..9967
6959 WHITESPACE@11422..11423 " "7058 LHS_EXPR@9963..9964
6960 EXPR_BINARY@11423..114767059 EXPR_VAR@9963..9964
6961 LHS_EXPR@11423..114587060 NAME@9963..9964
6962 EXPR_STRING@11423..114587061 IDENT@9963..9964 "a"
6963 STRING_SINGLE@11423..11458 "'TOML body must be an ..."7062 L_BRACK@9964..9965 "["
6964 WHITESPACE@11458..11459 " "7063 EXPR_VAR@9965..9966
6965 PLUS@11459..11460 "+"7064 NAME@9965..9966
6966 WHITESPACE@11460..11461 " "7065 IDENT@9965..9966 "x"
6967 EXPR_APPLY@11461..114767066 R_BRACK@9966..9967 "]"
6968 EXPR_INDEX@11461..114697067 R_PAREN@9967..9968 ")"
6969 EXPR_VAR@11461..114647068 WHITESPACE@9968..9975 "\n "
6970 NAME@11461..114647069 FOR_SPEC@9975..10003
6971 IDENT@11461..11464 "std"7070 FOR_KW@9975..9978 "for"
6972 DOT@11464..11465 "."7071 WHITESPACE@9978..9979 " "
6973 NAME@11465..114697072 NAME@9979..9980
6974 IDENT@11465..11469 "type"7073 IDENT@9979..9980 "x"
6975 ARGS_DESC@11469..114767074 WHITESPACE@9980..9981 " "
6976 L_PAREN@11469..11470 "("7075 IN_KW@9981..9983 "in"
6977 ARG@11470..114757076 WHITESPACE@9983..9984 " "
6978 EXPR_VAR@11470..114757077 EXPR_APPLY@9984..10003
6979 NAME@11470..114757078 EXPR_INDEX@9984..10000
6980 IDENT@11470..11475 "value"7079 EXPR_VAR@9984..9987
6981 R_PAREN@11475..11476 ")"7080 NAME@9984..9987
6982 COMMA@11476..11477 ","7081 IDENT@9984..9987 "std"
6983 WHITESPACE@11477..11481 "\n\n "7082 DOT@9987..9988 "."
6984 MEMBER_FIELD@11481..115287083 NAME@9988..10000
6985 FIELD_NORMAL@11481..115287084 IDENT@9988..10000 "objectFields"
6986 FIELD_NAME_FIXED@11481..114977085 ARGS_DESC@10000..10003
6987 NAME@11481..114977086 L_PAREN@10000..10001 "("
6988 IDENT@11481..11497 "escapeStringJson"7087 ARG@10001..10002
6989 COLONCOLON@11497..11499 "::"7088 EXPR_VAR@10001..10002
6990 WHITESPACE@11499..11500 " "7089 NAME@10001..10002
6991 EXPR_INTRINSIC@11500..115287090 IDENT@10001..10002 "a"
6992 INTRINSIC@11500..11510 "$intrinsic"7091 R_PAREN@10002..10003 ")"
6993 L_PAREN@11510..11511 "("7092 WHITESPACE@10003..10010 "\n "
6994 NAME@11511..115277093 IF_SPEC@10010..10039
6995 IDENT@11511..11527 "escapeStringJson"7094 IF_KW@10010..10012 "if"
6996 R_PAREN@11527..11528 ")"7095 WHITESPACE@10012..10013 " "
6997 COMMA@11528..11529 ","7096 EXPR_APPLY@10013..10039
6998 WHITESPACE@11529..11533 "\n\n "7097 EXPR_VAR@10013..10022
6999 MEMBER_FIELD@11533..115887098 NAME@10013..10022
7000 FIELD_METHOD@11533..115887099 IDENT@10013..10022 "isContent"
7001 FIELD_NAME_FIXED@11533..115517100 ARGS_DESC@10022..10039
7002 NAME@11533..115517101 L_PAREN@10022..10023 "("
7003 IDENT@11533..11551 "escapeStringPython"7102 ARG@10023..10038
7004 PARAMS_DESC@11551..115567103 EXPR_APPLY@10023..10038
7005 L_PAREN@11551..11552 "("7104 EXPR_INDEX@10023..10032
7006 PARAM@11552..115557105 EXPR_VAR@10023..10026
7007 DESTRUCT_FULL@11552..115557106 NAME@10023..10026
7008 NAME@11552..115557107 IDENT@10023..10026 "std"
7009 IDENT@11552..11555 "str"7108 DOT@10026..10027 "."
7010 R_PAREN@11555..11556 ")"7109 NAME@10027..10032
7011 COLONCOLON@11556..11558 "::"7110 IDENT@10027..10032 "prune"
7012 WHITESPACE@11558..11563 "\n "7111 ARGS_DESC@10032..10038
7013 EXPR_APPLY@11563..115887112 L_PAREN@10032..10033 "("
7014 EXPR_INDEX@11563..115837113 ARG@10033..10037
7015 EXPR_VAR@11563..115667114 EXPR_INDEX_EXPR@10033..10037
7016 NAME@11563..115667115 LHS_EXPR@10033..10034
7017 IDENT@11563..11566 "std"7116 EXPR_VAR@10033..10034
7018 DOT@11566..11567 "."7117 NAME@10033..10034
7019 NAME@11567..115837118 IDENT@10033..10034 "a"
7020 IDENT@11567..11583 "escapeStringJson"7119 L_BRACK@10034..10035 "["
7021 ARGS_DESC@11583..115887120 EXPR_VAR@10035..10036
7022 L_PAREN@11583..11584 "("7121 NAME@10035..10036
7023 ARG@11584..115877122 IDENT@10035..10036 "x"
7024 EXPR_VAR@11584..115877123 R_BRACK@10036..10037 "]"
7025 NAME@11584..115877124 R_PAREN@10037..10038 ")"
7026 IDENT@11584..11587 "str"7125 R_PAREN@10038..10039 ")"
7027 R_PAREN@11587..11588 ")"7126 WHITESPACE@10039..10044 "\n "
7028 COMMA@11588..11589 ","7127 R_BRACE@10044..10045 "}"
7029 WHITESPACE@11589..11593 "\n\n "7128 WHITESPACE@10045..10046 " "
7030 MEMBER_FIELD@11593..118107129 ELSE_KW@10046..10050 "else"
7031 FIELD_METHOD@11593..118107130 WHITESPACE@10050..10057 "\n "
7032 FIELD_NAME_FIXED@11593..116097131 FALSE_EXPR@10057..10058
7033 NAME@11593..116097132 EXPR_VAR@10057..10058
7034 IDENT@11593..11609 "escapeStringBash"7133 NAME@10057..10058
7035 PARAMS_DESC@11609..116157134 IDENT@10057..10058 "a"
7036 L_PAREN@11609..11610 "("7135 COMMA@10058..10059 ","
7037 PARAM@11610..116147136 WHITESPACE@10059..10063 "\n\n "
7038 DESTRUCT_FULL@11610..116147137 MEMBER_FIELD@10063..10278
7039 NAME@11610..116147138 FIELD_METHOD@10063..10278
7040 IDENT@11610..11614 "str_"7139 FIELD_NAME_FIXED@10063..10067
7041 R_PAREN@11614..11615 ")"7140 NAME@10063..10067
7042 COLONCOLON@11615..11617 "::"7141 IDENT@10063..10067 "find"
7043 WHITESPACE@11617..11622 "\n "7142 PARAMS_DESC@10067..10079
7044 EXPR_LOCAL@11622..118107143 L_PAREN@10067..10068 "("
7045 LOCAL_KW@11622..11627 "local"7144 PARAM@10068..10073
7046 WHITESPACE@11627..11628 " "7145 DESTRUCT_FULL@10068..10073
7047 BIND_DESTRUCT@11628..116527146 NAME@10068..10073
7048 DESTRUCT_FULL@11628..116317147 IDENT@10068..10073 "value"
7049 NAME@11628..116317148 COMMA@10073..10074 ","
7050 IDENT@11628..11631 "str"7149 WHITESPACE@10074..10075 " "
7051 WHITESPACE@11631..11632 " "7150 PARAM@10075..10078
7052 ASSIGN@11632..11633 "="7151 DESTRUCT_FULL@10075..10078
7053 WHITESPACE@11633..11634 " "7152 NAME@10075..10078
7054 EXPR_APPLY@11634..116527153 IDENT@10075..10078 "arr"
7055 EXPR_INDEX@11634..116467154 R_PAREN@10078..10079 ")"
7056 EXPR_VAR@11634..116377155 COLONCOLON@10079..10081 "::"
7057 NAME@11634..116377156 WHITESPACE@10081..10086 "\n "
7058 IDENT@11634..11637 "std"7157 EXPR_IF_THEN_ELSE@10086..10278
7059 DOT@11637..11638 "."7158 IF_KW@10086..10088 "if"
7060 NAME@11638..116467159 WHITESPACE@10088..10089 " "
7061 IDENT@11638..11646 "toString"7160 EXPR_UNARY@10089..10106
7062 ARGS_DESC@11646..116527161 NOT@10089..10090 "!"
7063 L_PAREN@11646..11647 "("7162 EXPR_APPLY@10090..10106
7064 ARG@11647..116517163 EXPR_INDEX@10090..10101
7065 EXPR_VAR@11647..116517164 EXPR_VAR@10090..10093
7066 NAME@11647..116517165 NAME@10090..10093
7067 IDENT@11647..11651 "str_"7166 IDENT@10090..10093 "std"
7068 R_PAREN@11651..11652 ")"7167 DOT@10093..10094 "."
7069 SEMI@11652..11653 ";"7168 NAME@10094..10101
7070 WHITESPACE@11653..11658 "\n "7169 IDENT@10094..10101 "isArray"
7071 EXPR_LOCAL@11658..118107170 ARGS_DESC@10101..10106
7072 LOCAL_KW@11658..11663 "local"7171 L_PAREN@10101..10102 "("
7073 WHITESPACE@11663..11664 " "7172 ARG@10102..10105
7074 BIND_FUNCTION@11664..117397173 EXPR_VAR@10102..10105
7075 NAME@11664..116697174 NAME@10102..10105
7076 IDENT@11664..11669 "trans"7175 IDENT@10102..10105 "arr"
7077 PARAMS_DESC@11669..116737176 R_PAREN@10105..10106 ")"
7078 L_PAREN@11669..11670 "("7177 WHITESPACE@10106..10107 " "
7079 PARAM@11670..116727178 THEN_KW@10107..10111 "then"
7080 DESTRUCT_FULL@11670..116727179 WHITESPACE@10111..10118 "\n "
7081 NAME@11670..116727180 TRUE_EXPR@10118..10188
7082 IDENT@11670..11672 "ch"7181 EXPR_ERROR@10118..10188
7083 R_PAREN@11672..11673 ")"7182 ERROR_KW@10118..10123 "error"
7084 WHITESPACE@11673..11674 " "7183 WHITESPACE@10123..10124 " "
7085 ASSIGN@11674..11675 "="7184 EXPR_BINARY@10124..10188
7086 WHITESPACE@11675..11682 "\n "7185 LHS_EXPR@10124..10172
7087 EXPR_IF_THEN_ELSE@11682..117397186 EXPR_STRING@10124..10172
7088 IF_KW@11682..11684 "if"7187 STRING_SINGLE@10124..10172 "'find second paramete ..."
7089 WHITESPACE@11684..11685 " "7188 WHITESPACE@10172..10173 " "
7090 EXPR_BINARY@11685..116947189 PLUS@10173..10174 "+"
7091 LHS_EXPR@11685..116877190 WHITESPACE@10174..10175 " "
7092 EXPR_VAR@11685..116877191 EXPR_APPLY@10175..10188
7093 NAME@11685..116877192 EXPR_INDEX@10175..10183
7094 IDENT@11685..11687 "ch"7193 EXPR_VAR@10175..10178
7095 WHITESPACE@11687..11688 " "7194 NAME@10175..10178
7096 EQ@11688..11690 "=="7195 IDENT@10175..10178 "std"
7097 WHITESPACE@11690..11691 " "7196 DOT@10178..10179 "."
7098 EXPR_STRING@11691..116947197 NAME@10179..10183
7099 STRING_DOUBLE@11691..11694 "\"'\""7198 IDENT@10179..10183 "type"
7100 WHITESPACE@11694..11695 " "7199 ARGS_DESC@10183..10188
7101 THEN_KW@11695..11699 "then"7200 L_PAREN@10183..10184 "("
7102 WHITESPACE@11699..11708 "\n "7201 ARG@10184..10187
7103 TRUE_EXPR@11708..117177202 EXPR_VAR@10184..10187
7104 EXPR_STRING@11708..117177203 NAME@10184..10187
7105 STRING_DOUBLE@11708..11717 "\"'\\\"'\\\"'\""7204 IDENT@10184..10187 "arr"
7106 WHITESPACE@11717..11724 "\n "7205 R_PAREN@10187..10188 ")"
7107 ELSE_KW@11724..11728 "else"7206 WHITESPACE@10188..10193 "\n "
7108 WHITESPACE@11728..11737 "\n "7207 ELSE_KW@10193..10197 "else"
7109 FALSE_EXPR@11737..117397208 WHITESPACE@10197..10204 "\n "
7110 EXPR_VAR@11737..117397209 FALSE_EXPR@10204..10278
7111 NAME@11737..117397210 EXPR_APPLY@10204..10278
7112 IDENT@11737..11739 "ch"7211 EXPR_INDEX@10204..10214
7113 SEMI@11739..11740 ";"7212 EXPR_VAR@10204..10207
7114 WHITESPACE@11740..11745 "\n "7213 NAME@10204..10207
7115 EXPR_BINARY@11745..118107214 IDENT@10204..10207 "std"
7116 LHS_EXPR@11745..117517215 DOT@10207..10208 "."
7117 EXPR_STRING@11745..117517216 NAME@10208..10214
7118 STRING_DOUBLE@11745..11751 "\"'%s'\""7217 IDENT@10208..10214 "filter"
7119 WHITESPACE@11751..11752 " "7218 ARGS_DESC@10214..10278
7120 MODULO@11752..11753 "%"7219 L_PAREN@10214..10215 "("
7121 WHITESPACE@11753..11754 " "7220 ARG@10215..10242
7122 EXPR_APPLY@11754..118107221 EXPR_FUNCTION@10215..10242
7123 EXPR_INDEX@11754..117627222 FUNCTION_KW@10215..10223 "function"
7124 EXPR_VAR@11754..117577223 PARAMS_DESC@10223..10226
7125 NAME@11754..117577224 L_PAREN@10223..10224 "("
7126 IDENT@11754..11757 "std"7225 PARAM@10224..10225
7127 DOT@11757..11758 "."7226 DESTRUCT_FULL@10224..10225
7128 NAME@11758..117627227 NAME@10224..10225
7129 IDENT@11758..11762 "join"7228 IDENT@10224..10225 "i"
7130 ARGS_DESC@11762..118107229 R_PAREN@10225..10226 ")"
7131 L_PAREN@11762..11763 "("7230 WHITESPACE@10226..10227 " "
7132 ARG@11763..117657231 EXPR_BINARY@10227..10242
7133 EXPR_STRING@11763..117657232 LHS_EXPR@10227..10233
7134 STRING_SINGLE@11763..11765 "''"7233 EXPR_INDEX_EXPR@10227..10233
7135 COMMA@11765..11766 ","7234 LHS_EXPR@10227..10230
7136 WHITESPACE@11766..11767 " "7235 EXPR_VAR@10227..10230
7137 ARG@11767..118097236 NAME@10227..10230
7138 EXPR_ARRAY_COMP@11767..118097237 IDENT@10227..10230 "arr"
7139 L_BRACK@11767..11768 "["7238 L_BRACK@10230..10231 "["
7140 EXPR_APPLY@11768..117777239 EXPR_VAR@10231..10232
7141 EXPR_VAR@11768..117737240 NAME@10231..10232
7142 NAME@11768..117737241 IDENT@10231..10232 "i"
7143 IDENT@11768..11773 "trans"7242 R_BRACK@10232..10233 "]"
7144 ARGS_DESC@11773..117777243 WHITESPACE@10233..10234 " "
7145 L_PAREN@11773..11774 "("7244 EQ@10234..10236 "=="
7146 ARG@11774..117767245 WHITESPACE@10236..10237 " "
7147 EXPR_VAR@11774..117767246 EXPR_VAR@10237..10242
7148 NAME@11774..117767247 NAME@10237..10242
7149 IDENT@11774..11776 "ch"7248 IDENT@10237..10242 "value"
7150 R_PAREN@11776..11777 ")"7249 COMMA@10242..10243 ","
7151 WHITESPACE@11777..11778 " "7250 WHITESPACE@10243..10244 " "
7152 FOR_SPEC@11778..118087251 ARG@10244..10277
7153 FOR_KW@11778..11781 "for"7252 EXPR_APPLY@10244..10277
7154 WHITESPACE@11781..11782 " "7253 EXPR_INDEX@10244..10253
7155 NAME@11782..117847254 EXPR_VAR@10244..10247
7156 IDENT@11782..11784 "ch"7255 NAME@10244..10247
7157 WHITESPACE@11784..11785 " "7256 IDENT@10244..10247 "std"
7158 IN_KW@11785..11787 "in"7257 DOT@10247..10248 "."
7159 WHITESPACE@11787..11788 " "7258 NAME@10248..10253
7160 EXPR_APPLY@11788..118087259 IDENT@10248..10253 "range"
7161 EXPR_INDEX@11788..118037260 ARGS_DESC@10253..10277
7162 EXPR_VAR@11788..117917261 L_PAREN@10253..10254 "("
7163 NAME@11788..117917262 ARG@10254..10255
7164 IDENT@11788..11791 "std"7263 EXPR_NUMBER@10254..10255
7165 DOT@11791..11792 "."7264 FLOAT@10254..10255 "0"
7166 NAME@11792..118037265 COMMA@10255..10256 ","
7167 IDENT@11792..11803 "stringChars"7266 WHITESPACE@10256..10257 " "
7168 ARGS_DESC@11803..118087267 ARG@10257..10276
7169 L_PAREN@11803..11804 "("7268 EXPR_BINARY@10257..10276
7170 ARG@11804..118077269 LHS_EXPR@10257..10272
7171 EXPR_VAR@11804..118077270 EXPR_APPLY@10257..10272
7172 NAME@11804..118077271 EXPR_INDEX@10257..10267
7173 IDENT@11804..11807 "str"7272 EXPR_VAR@10257..10260
7174 R_PAREN@11807..11808 ")"7273 NAME@10257..10260
7175 R_BRACK@11808..11809 "]"7274 IDENT@10257..10260 "std"
7176 R_PAREN@11809..11810 ")"7275 DOT@10260..10261 "."
7177 COMMA@11810..11811 ","7276 NAME@10261..10267
7178 WHITESPACE@11811..11815 "\n\n "7277 IDENT@10261..10267 "length"
7179 MEMBER_FIELD@11815..120297278 ARGS_DESC@10267..10272
7180 FIELD_METHOD@11815..120297279 L_PAREN@10267..10268 "("
7181 FIELD_NAME_FIXED@11815..118347280 ARG@10268..10271
7182 NAME@11815..118347281 EXPR_VAR@10268..10271
7183 IDENT@11815..11834 "escapeStringDollars"7282 NAME@10268..10271
7184 PARAMS_DESC@11834..118407283 IDENT@10268..10271 "arr"
7185 L_PAREN@11834..11835 "("7284 R_PAREN@10271..10272 ")"
7186 PARAM@11835..118397285 WHITESPACE@10272..10273 " "
7187 DESTRUCT_FULL@11835..118397286 MINUS@10273..10274 "-"
7188 NAME@11835..118397287 WHITESPACE@10274..10275 " "
7189 IDENT@11835..11839 "str_"7288 EXPR_NUMBER@10275..10276
7190 R_PAREN@11839..11840 ")"7289 FLOAT@10275..10276 "1"
7191 COLONCOLON@11840..11842 "::"7290 R_PAREN@10276..10277 ")"
7192 WHITESPACE@11842..11847 "\n "7291 R_PAREN@10277..10278 ")"
7193 EXPR_LOCAL@11847..120297292 COMMA@10278..10279 ","
7194 LOCAL_KW@11847..11852 "local"7293 WHITESPACE@10279..10280 "\n"
7195 WHITESPACE@11852..11853 " "7294 R_BRACE@10280..10281 "}"
7196 BIND_DESTRUCT@11853..118777295 WHITESPACE@10281..10282 "\n"
7197 DESTRUCT_FULL@11853..11856
7198 NAME@11853..11856
7199 IDENT@11853..11856 "str"
7200 WHITESPACE@11856..11857 " "
7201 ASSIGN@11857..11858 "="
7202 WHITESPACE@11858..11859 " "
7203 EXPR_APPLY@11859..11877
7204 EXPR_INDEX@11859..11871
7205 EXPR_VAR@11859..11862
7206 NAME@11859..11862
7207 IDENT@11859..11862 "std"
7208 DOT@11862..11863 "."
7209 NAME@11863..11871
7210 IDENT@11863..11871 "toString"
7211 ARGS_DESC@11871..11877
7212 L_PAREN@11871..11872 "("
7213 ARG@11872..11876
7214 EXPR_VAR@11872..11876
7215 NAME@11872..11876
7216 IDENT@11872..11876 "str_"
7217 R_PAREN@11876..11877 ")"
7218 SEMI@11877..11878 ";"
7219 WHITESPACE@11878..11883 "\n "
7220 EXPR_LOCAL@11883..12029
7221 LOCAL_KW@11883..11888 "local"
7222 WHITESPACE@11888..11889 " "
7223 BIND_FUNCTION@11889..11959
7224 NAME@11889..11894
7225 IDENT@11889..11894 "trans"
7226 PARAMS_DESC@11894..11898
7227 L_PAREN@11894..11895 "("
7228 PARAM@11895..11897
7229 DESTRUCT_FULL@11895..11897
7230 NAME@11895..11897
7231 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..11959
7237 IF_KW@11907..11909 "if"
7238 WHITESPACE@11909..11910 " "
7239 EXPR_BINARY@11910..11919
7240 LHS_EXPR@11910..11912
7241 EXPR_VAR@11910..11912
7242 NAME@11910..11912
7243 IDENT@11910..11912 "ch"
7244 WHITESPACE@11912..11913 " "
7245 EQ@11913..11915 "=="
7246 WHITESPACE@11915..11916 " "
7247 EXPR_STRING@11916..11919
7248 STRING_SINGLE@11916..11919 "'$'"
7249 WHITESPACE@11919..11920 " "
7250 THEN_KW@11920..11924 "then"
7251 WHITESPACE@11924..11933 "\n "
7252 TRUE_EXPR@11933..11937
7253 EXPR_STRING@11933..11937
7254 STRING_SINGLE@11933..11937 "'$$'"
7255 WHITESPACE@11937..11944 "\n "
7256 ELSE_KW@11944..11948 "else"
7257 WHITESPACE@11948..11957 "\n "
7258 FALSE_EXPR@11957..11959
7259 EXPR_VAR@11957..11959
7260 NAME@11957..11959
7261 IDENT@11957..11959 "ch"
7262 SEMI@11959..11960 ";"
7263 WHITESPACE@11960..11965 "\n "
7264 EXPR_APPLY@11965..12029
7265 EXPR_INDEX@11965..11974
7266 EXPR_VAR@11965..11968
7267 NAME@11965..11968
7268 IDENT@11965..11968 "std"
7269 DOT@11968..11969 "."
7270 NAME@11969..11974
7271 IDENT@11969..11974 "foldl"
7272 ARGS_DESC@11974..12029
7273 L_PAREN@11974..11975 "("
7274 ARG@11975..12002
7275 EXPR_FUNCTION@11975..12002
7276 FUNCTION_KW@11975..11983 "function"
7277 PARAMS_DESC@11983..11989
7278 L_PAREN@11983..11984 "("
7279 PARAM@11984..11985
7280 DESTRUCT_FULL@11984..11985
7281 NAME@11984..11985
7282 IDENT@11984..11985 "a"
7283 COMMA@11985..11986 ","
7284 WHITESPACE@11986..11987 " "
7285 PARAM@11987..11988
7286 DESTRUCT_FULL@11987..11988
7287 NAME@11987..11988
7288 IDENT@11987..11988 "b"
7289 R_PAREN@11988..11989 ")"
7290 WHITESPACE@11989..11990 " "
7291 EXPR_BINARY@11990..12002
7292 LHS_EXPR@11990..11991
7293 EXPR_VAR@11990..11991
7294 NAME@11990..11991
7295 IDENT@11990..11991 "a"
7296 WHITESPACE@11991..11992 " "
7297 PLUS@11992..11993 "+"
7298 WHITESPACE@11993..11994 " "
7299 EXPR_APPLY@11994..12002
7300 EXPR_VAR@11994..11999
7301 NAME@11994..11999
7302 IDENT@11994..11999 "trans"
7303 ARGS_DESC@11999..12002
7304 L_PAREN@11999..12000 "("
7305 ARG@12000..12001
7306 EXPR_VAR@12000..12001
7307 NAME@12000..12001
7308 IDENT@12000..12001 "b"
7309 R_PAREN@12001..12002 ")"
7310 COMMA@12002..12003 ","
7311 WHITESPACE@12003..12004 " "
7312 ARG@12004..12024
7313 EXPR_APPLY@12004..12024
7314 EXPR_INDEX@12004..12019
7315 EXPR_VAR@12004..12007
7316 NAME@12004..12007
7317 IDENT@12004..12007 "std"
7318 DOT@12007..12008 "."
7319 NAME@12008..12019
7320 IDENT@12008..12019 "stringChars"
7321 ARGS_DESC@12019..12024
7322 L_PAREN@12019..12020 "("
7323 ARG@12020..12023
7324 EXPR_VAR@12020..12023
7325 NAME@12020..12023
7326 IDENT@12020..12023 "str"
7327 R_PAREN@12023..12024 ")"
7328 COMMA@12024..12025 ","
7329 WHITESPACE@12025..12026 " "
7330 ARG@12026..12028
7331 EXPR_STRING@12026..12028
7332 STRING_SINGLE@12026..12028 "''"
7333 R_PAREN@12028..12029 ")"
7334 COMMA@12029..12030 ","
7335 WHITESPACE@12030..12034 "\n\n "
7336 MEMBER_FIELD@12034..12100
7337 FIELD_METHOD@12034..12100
7338 FIELD_NAME_FIXED@12034..12046
7339 NAME@12034..12046
7340 IDENT@12034..12046 "manifestJson"
7341 PARAMS_DESC@12046..12053
7342 L_PAREN@12046..12047 "("
7343 PARAM@12047..12052
7344 DESTRUCT_FULL@12047..12052
7345 NAME@12047..12052
7346 IDENT@12047..12052 "value"
7347 R_PAREN@12052..12053 ")"
7348 COLONCOLON@12053..12055 "::"
7349 WHITESPACE@12055..12056 " "
7350 EXPR_APPLY@12056..12100
7351 EXPR_INDEX@12056..12074
7352 EXPR_VAR@12056..12059
7353 NAME@12056..12059
7354 IDENT@12056..12059 "std"
7355 DOT@12059..12060 "."
7356 NAME@12060..12074
7357 IDENT@12060..12074 "manifestJsonEx"
7358 ARGS_DESC@12074..12100
7359 L_PAREN@12074..12075 "("
7360 ARG@12075..12080
7361 EXPR_VAR@12075..12080
7362 NAME@12075..12080
7363 IDENT@12075..12080 "value"
7364 COMMA@12080..12081 ","
7365 WHITESPACE@12081..12082 " "
7366 ARG@12082..12088
7367 EXPR_STRING@12082..12088
7368 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..12173
7375 FIELD_METHOD@12105..12173
7376 FIELD_NAME_FIXED@12105..12125
7377 NAME@12105..12125
7378 IDENT@12105..12125 "manifestJsonMinified"
7379 PARAMS_DESC@12125..12132
7380 L_PAREN@12125..12126 "("
7381 PARAM@12126..12131
7382 DESTRUCT_FULL@12126..12131
7383 NAME@12126..12131
7384 IDENT@12126..12131 "value"
7385 R_PAREN@12131..12132 ")"
7386 COLONCOLON@12132..12134 "::"
7387 WHITESPACE@12134..12135 " "
7388 EXPR_APPLY@12135..12173
7389 EXPR_INDEX@12135..12153
7390 EXPR_VAR@12135..12138
7391 NAME@12135..12138
7392 IDENT@12135..12138 "std"
7393 DOT@12138..12139 "."
7394 NAME@12139..12153
7395 IDENT@12139..12153 "manifestJsonEx"
7396 ARGS_DESC@12153..12173
7397 L_PAREN@12153..12154 "("
7398 ARG@12154..12159
7399 EXPR_VAR@12154..12159
7400 NAME@12154..12159
7401 IDENT@12154..12159 "value"
7402 COMMA@12159..12160 ","
7403 WHITESPACE@12160..12161 " "
7404 ARG@12161..12163
7405 EXPR_STRING@12161..12163
7406 STRING_SINGLE@12161..12163 "''"
7407 COMMA@12163..12164 ","
7408 WHITESPACE@12164..12165 " "
7409 ARG@12165..12167
7410 EXPR_STRING@12165..12167
7411 STRING_SINGLE@12165..12167 "''"
7412 COMMA@12167..12168 ","
7413 WHITESPACE@12168..12169 " "
7414 ARG@12169..12172
7415 EXPR_STRING@12169..12172
7416 STRING_SINGLE@12169..12172 "':'"
7417 R_PAREN@12172..12173 ")"
7418 COMMA@12173..12174 ","
7419 WHITESPACE@12174..12178 "\n\n "
7420 MEMBER_FIELD@12178..12221
7421 FIELD_NORMAL@12178..12221
7422 FIELD_NAME_FIXED@12178..12192
7423 NAME@12178..12192
7424 IDENT@12178..12192 "manifestJsonEx"
7425 COLONCOLON@12192..12194 "::"
7426 WHITESPACE@12194..12195 " "
7427 EXPR_INTRINSIC@12195..12221
7428 INTRINSIC@12195..12205 "$intrinsic"
7429 L_PAREN@12205..12206 "("
7430 NAME@12206..12220
7431 IDENT@12206..12220 "manifestJsonEx"
7432 R_PAREN@12220..12221 ")"
7433 COMMA@12221..12222 ","
7434 WHITESPACE@12222..12226 "\n\n "
7435 MEMBER_FIELD@12226..12271
7436 FIELD_NORMAL@12226..12271
7437 FIELD_NAME_FIXED@12226..12241
7438 NAME@12226..12241
7439 IDENT@12226..12241 "manifestYamlDoc"
7440 COLONCOLON@12241..12243 "::"
7441 WHITESPACE@12243..12244 " "
7442 EXPR_INTRINSIC@12244..12271
7443 INTRINSIC@12244..12254 "$intrinsic"
7444 L_PAREN@12254..12255 "("
7445 NAME@12255..12270
7446 IDENT@12255..12270 "manifestYamlDoc"
7447 R_PAREN@12270..12271 ")"
7448 COMMA@12271..12272 ","
7449 WHITESPACE@12272..12276 "\n\n "
7450 MEMBER_FIELD@12276..12632
7451 FIELD_METHOD@12276..12632
7452 FIELD_NAME_FIXED@12276..12294
7453 NAME@12276..12294
7454 IDENT@12276..12294 "manifestYamlStream"
7455 PARAMS_DESC@12294..12352
7456 L_PAREN@12294..12295 "("
7457 PARAM@12295..12300
7458 DESTRUCT_FULL@12295..12300
7459 NAME@12295..12300
7460 IDENT@12295..12300 "value"
7461 COMMA@12300..12301 ","
7462 WHITESPACE@12301..12302 " "
7463 PARAM@12302..12330
7464 DESTRUCT_FULL@12302..12324
7465 NAME@12302..12324
7466 IDENT@12302..12324 "indent_array_in_object"
7467 ASSIGN@12324..12325 "="
7468 EXPR_LITERAL@12325..12330
7469 FALSE_KW@12325..12330 "false"
7470 COMMA@12330..12331 ","
7471 WHITESPACE@12331..12332 " "
7472 PARAM@12332..12351
7473 DESTRUCT_FULL@12332..12346
7474 NAME@12332..12346
7475 IDENT@12332..12346 "c_document_end"
7476 ASSIGN@12346..12347 "="
7477 EXPR_LITERAL@12347..12351
7478 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..12632
7483 IF_KW@12359..12361 "if"
7484 WHITESPACE@12361..12362 " "
7485 EXPR_UNARY@12362..12381
7486 NOT@12362..12363 "!"
7487 EXPR_APPLY@12363..12381
7488 EXPR_INDEX@12363..12374
7489 EXPR_VAR@12363..12366
7490 NAME@12363..12366
7491 IDENT@12363..12366 "std"
7492 DOT@12366..12367 "."
7493 NAME@12367..12374
7494 IDENT@12367..12374 "isArray"
7495 ARGS_DESC@12374..12381
7496 L_PAREN@12374..12375 "("
7497 ARG@12375..12380
7498 EXPR_VAR@12375..12380
7499 NAME@12375..12380
7500 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..12461
7506 EXPR_ERROR@12393..12461
7507 ERROR_KW@12393..12398 "error"
7508 WHITESPACE@12398..12399 " "
7509 EXPR_BINARY@12399..12461
7510 LHS_EXPR@12399..12443
7511 EXPR_STRING@12399..12443
7512 STRING_SINGLE@12399..12443 "'manifestYamlStream o ..."
7513 WHITESPACE@12443..12444 " "
7514 PLUS@12444..12445 "+"
7515 WHITESPACE@12445..12446 " "
7516 EXPR_APPLY@12446..12461
7517 EXPR_INDEX@12446..12454
7518 EXPR_VAR@12446..12449
7519 NAME@12446..12449
7520 IDENT@12446..12449 "std"
7521 DOT@12449..12450 "."
7522 NAME@12450..12454
7523 IDENT@12450..12454 "type"
7524 ARGS_DESC@12454..12461
7525 L_PAREN@12454..12455 "("
7526 ARG@12455..12460
7527 EXPR_VAR@12455..12460
7528 NAME@12455..12460
7529 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..12632
7535 EXPR_BINARY@12477..12632
7536 LHS_EXPR@12477..12587
7537 EXPR_BINARY@12477..12587
7538 LHS_EXPR@12477..12484
7539 EXPR_STRING@12477..12484
7540 STRING_SINGLE@12477..12484 "'---\\n'"
7541 WHITESPACE@12484..12485 " "
7542 PLUS@12485..12486 "+"
7543 WHITESPACE@12486..12487 " "
7544 EXPR_APPLY@12487..12587
7545 EXPR_INDEX@12487..12495
7546 EXPR_VAR@12487..12490
7547 NAME@12487..12490
7548 IDENT@12487..12490 "std"
7549 DOT@12490..12491 "."
7550 NAME@12491..12495
7551 IDENT@12491..12495 "join"
7552 ARGS_DESC@12495..12587
7553 L_PAREN@12495..12496 "("
7554 WHITESPACE@12496..12505 "\n "
7555 ARG@12505..12514
7556 EXPR_STRING@12505..12514
7557 STRING_SINGLE@12505..12514 "'\\n---\\n'"
7558 COMMA@12514..12515 ","
7559 WHITESPACE@12515..12516 " "
7560 ARG@12516..12579
7561 EXPR_ARRAY_COMP@12516..12579
7562 L_BRACK@12516..12517 "["
7563 EXPR_APPLY@12517..12563
7564 EXPR_INDEX@12517..12536
7565 EXPR_VAR@12517..12520
7566 NAME@12517..12520
7567 IDENT@12517..12520 "std"
7568 DOT@12520..12521 "."
7569 NAME@12521..12536
7570 IDENT@12521..12536 "manifestYamlDoc"
7571 ARGS_DESC@12536..12563
7572 L_PAREN@12536..12537 "("
7573 ARG@12537..12538
7574 EXPR_VAR@12537..12538
7575 NAME@12537..12538
7576 IDENT@12537..12538 "e"
7577 COMMA@12538..12539 ","
7578 WHITESPACE@12539..12540 " "
7579 ARG@12540..12562
7580 EXPR_VAR@12540..12562
7581 NAME@12540..12562
7582 IDENT@12540..12562 "indent_array_in_object"
7583 R_PAREN@12562..12563 ")"
7584 WHITESPACE@12563..12564 " "
7585 FOR_SPEC@12564..12578
7586 FOR_KW@12564..12567 "for"
7587 WHITESPACE@12567..12568 " "
7588 NAME@12568..12569
7589 IDENT@12568..12569 "e"
7590 WHITESPACE@12569..12570 " "
7591 IN_KW@12570..12572 "in"
7592 WHITESPACE@12572..12573 " "
7593 EXPR_VAR@12573..12578
7594 NAME@12573..12578
7595 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..12632
7603 IF_KW@12590..12592 "if"
7604 WHITESPACE@12592..12593 " "
7605 EXPR_VAR@12593..12607
7606 NAME@12593..12607
7607 IDENT@12593..12607 "c_document_end"
7608 WHITESPACE@12607..12608 " "
7609 THEN_KW@12608..12612 "then"
7610 WHITESPACE@12612..12613 " "
7611 TRUE_EXPR@12613..12622
7612 EXPR_STRING@12613..12622
7613 STRING_SINGLE@12613..12622 "'\\n...\\n'"
7614 WHITESPACE@12622..12623 " "
7615 ELSE_KW@12623..12627 "else"
7616 WHITESPACE@12627..12628 " "
7617 FALSE_EXPR@12628..12632
7618 EXPR_STRING@12628..12632
7619 STRING_SINGLE@12628..12632 "'\\n'"
7620 COMMA@12632..12633 ","
7621 WHITESPACE@12633..12638 "\n\n\n "
7622 MEMBER_FIELD@12638..13294
7623 FIELD_METHOD@12638..13294
7624 FIELD_NAME_FIXED@12638..12652
7625 NAME@12638..12652
7626 IDENT@12638..12652 "manifestPython"
7627 PARAMS_DESC@12652..12655
7628 L_PAREN@12652..12653 "("
7629 PARAM@12653..12654
7630 DESTRUCT_FULL@12653..12654
7631 NAME@12653..12654
7632 IDENT@12653..12654 "v"
7633 R_PAREN@12654..12655 ")"
7634 COLONCOLON@12655..12657 "::"
7635 WHITESPACE@12657..12662 "\n "
7636 EXPR_IF_THEN_ELSE@12662..13294
7637 IF_KW@12662..12664 "if"
7638 WHITESPACE@12664..12665 " "
7639 EXPR_APPLY@12665..12680
7640 EXPR_INDEX@12665..12677
7641 EXPR_VAR@12665..12668
7642 NAME@12665..12668
7643 IDENT@12665..12668 "std"
7644 DOT@12668..12669 "."
7645 NAME@12669..12677
7646 IDENT@12669..12677 "isObject"
7647 ARGS_DESC@12677..12680
7648 L_PAREN@12677..12678 "("
7649 ARG@12678..12679
7650 EXPR_VAR@12678..12679
7651 NAME@12678..12679
7652 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..12867
7658 EXPR_LOCAL@12692..12867
7659 LOCAL_KW@12692..12697 "local"
7660 WHITESPACE@12697..12698 " "
7661 BIND_DESTRUCT@12698..12826
7662 DESTRUCT_FULL@12698..12704
7663 NAME@12698..12704
7664 IDENT@12698..12704 "fields"
7665 WHITESPACE@12704..12705 " "
7666 ASSIGN@12705..12706 "="
7667 WHITESPACE@12706..12707 " "
7668 EXPR_ARRAY_COMP@12707..12826
7669 L_BRACK@12707..12708 "["
7670 WHITESPACE@12708..12717 "\n "
7671 EXPR_BINARY@12717..12781
7672 LHS_EXPR@12717..12725
7673 EXPR_STRING@12717..12725
7674 STRING_SINGLE@12717..12725 "'%s: %s'"
7675 WHITESPACE@12725..12726 " "
7676 MODULO@12726..12727 "%"
7677 WHITESPACE@12727..12728 " "
7678 EXPR_ARRAY@12728..12781
7679 L_BRACK@12728..12729 "["
7680 EXPR_APPLY@12729..12754
7681 EXPR_INDEX@12729..12751
7682 EXPR_VAR@12729..12732
7683 NAME@12729..12732
7684 IDENT@12729..12732 "std"
7685 DOT@12732..12733 "."
7686 NAME@12733..12751
7687 IDENT@12733..12751 "escapeStringPython"
7688 ARGS_DESC@12751..12754
7689 L_PAREN@12751..12752 "("
7690 ARG@12752..12753
7691 EXPR_VAR@12752..12753
7692 NAME@12752..12753
7693 IDENT@12752..12753 "k"
7694 R_PAREN@12753..12754 ")"
7695 COMMA@12754..12755 ","
7696 WHITESPACE@12755..12756 " "
7697 EXPR_APPLY@12756..12780
7698 EXPR_INDEX@12756..12774
7699 EXPR_VAR@12756..12759
7700 NAME@12756..12759
7701 IDENT@12756..12759 "std"
7702 DOT@12759..12760 "."
7703 NAME@12760..12774
7704 IDENT@12760..12774 "manifestPython"
7705 ARGS_DESC@12774..12780
7706 L_PAREN@12774..12775 "("
7707 ARG@12775..12779
7708 EXPR_INDEX_EXPR@12775..12779
7709 LHS_EXPR@12775..12776
7710 EXPR_VAR@12775..12776
7711 NAME@12775..12776
7712 IDENT@12775..12776 "v"
7713 L_BRACK@12776..12777 "["
7714 EXPR_VAR@12777..12778
7715 NAME@12777..12778
7716 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..12818
7722 FOR_KW@12790..12793 "for"
7723 WHITESPACE@12793..12794 " "
7724 NAME@12794..12795
7725 IDENT@12794..12795 "k"
7726 WHITESPACE@12795..12796 " "
7727 IN_KW@12796..12798 "in"
7728 WHITESPACE@12798..12799 " "
7729 EXPR_APPLY@12799..12818
7730 EXPR_INDEX@12799..12815
7731 EXPR_VAR@12799..12802
7732 NAME@12799..12802
7733 IDENT@12799..12802 "std"
7734 DOT@12802..12803 "."
7735 NAME@12803..12815
7736 IDENT@12803..12815 "objectFields"
7737 ARGS_DESC@12815..12818
7738 L_PAREN@12815..12816 "("
7739 ARG@12816..12817
7740 EXPR_VAR@12816..12817
7741 NAME@12816..12817
7742 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..12867
7749 LHS_EXPR@12834..12840
7750 EXPR_STRING@12834..12840
7751 STRING_SINGLE@12834..12840 "'{%s}'"
7752 WHITESPACE@12840..12841 " "
7753 MODULO@12841..12842 "%"
7754 WHITESPACE@12842..12843 " "
7755 EXPR_ARRAY@12843..12867
7756 L_BRACK@12843..12844 "["
7757 EXPR_APPLY@12844..12866
7758 EXPR_INDEX@12844..12852
7759 EXPR_VAR@12844..12847
7760 NAME@12844..12847
7761 IDENT@12844..12847 "std"
7762 DOT@12847..12848 "."
7763 NAME@12848..12852
7764 IDENT@12848..12852 "join"
7765 ARGS_DESC@12852..12866
7766 L_PAREN@12852..12853 "("
7767 ARG@12853..12857
7768 EXPR_STRING@12853..12857
7769 STRING_SINGLE@12853..12857 "', '"
7770 COMMA@12857..12858 ","
7771 WHITESPACE@12858..12859 " "
7772 ARG@12859..12865
7773 EXPR_VAR@12859..12865
7774 NAME@12859..12865
7775 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..13294
7782 EXPR_IF_THEN_ELSE@12877..13294
7783 IF_KW@12877..12879 "if"
7784 WHITESPACE@12879..12880 " "
7785 EXPR_APPLY@12880..12894
7786 EXPR_INDEX@12880..12891
7787 EXPR_VAR@12880..12883
7788 NAME@12880..12883
7789 IDENT@12880..12883 "std"
7790 DOT@12883..12884 "."
7791 NAME@12884..12891
7792 IDENT@12884..12891 "isArray"
7793 ARGS_DESC@12891..12894
7794 L_PAREN@12891..12892 "("
7795 ARG@12892..12893
7796 EXPR_VAR@12892..12893
7797 NAME@12892..12893
7798 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..12969
7804 EXPR_BINARY@12906..12969
7805 LHS_EXPR@12906..12912
7806 EXPR_STRING@12906..12912
7807 STRING_SINGLE@12906..12912 "'[%s]'"
7808 WHITESPACE@12912..12913 " "
7809 MODULO@12913..12914 "%"
7810 WHITESPACE@12914..12915 " "
7811 EXPR_ARRAY@12915..12969
7812 L_BRACK@12915..12916 "["
7813 EXPR_APPLY@12916..12968
7814 EXPR_INDEX@12916..12924
7815 EXPR_VAR@12916..12919
7816 NAME@12916..12919
7817 IDENT@12916..12919 "std"
7818 DOT@12919..12920 "."
7819 NAME@12920..12924
7820 IDENT@12920..12924 "join"
7821 ARGS_DESC@12924..12968
7822 L_PAREN@12924..12925 "("
7823 ARG@12925..12929
7824 EXPR_STRING@12925..12929
7825 STRING_SINGLE@12925..12929 "', '"
7826 COMMA@12929..12930 ","
7827 WHITESPACE@12930..12931 " "
7828 ARG@12931..12967
7829 EXPR_ARRAY_COMP@12931..12967
7830 L_BRACK@12931..12932 "["
7831 EXPR_APPLY@12932..12954
7832 EXPR_INDEX@12932..12950
7833 EXPR_VAR@12932..12935
7834 NAME@12932..12935
7835 IDENT@12932..12935 "std"
7836 DOT@12935..12936 "."
7837 NAME@12936..12950
7838 IDENT@12936..12950 "manifestPython"
7839 ARGS_DESC@12950..12954
7840 L_PAREN@12950..12951 "("
7841 ARG@12951..12953
7842 EXPR_VAR@12951..12953
7843 NAME@12951..12953
7844 IDENT@12951..12953 "v2"
7845 R_PAREN@12953..12954 ")"
7846 WHITESPACE@12954..12955 " "
7847 FOR_SPEC@12955..12966
7848 FOR_KW@12955..12958 "for"
7849 WHITESPACE@12958..12959 " "
7850 NAME@12959..12961
7851 IDENT@12959..12961 "v2"
7852 WHITESPACE@12961..12962 " "
7853 IN_KW@12962..12964 "in"
7854 WHITESPACE@12964..12965 " "
7855 EXPR_VAR@12965..12966
7856 NAME@12965..12966
7857 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..13294
7865 EXPR_IF_THEN_ELSE@12979..13294
7866 IF_KW@12979..12981 "if"
7867 WHITESPACE@12981..12982 " "
7868 EXPR_APPLY@12982..12997
7869 EXPR_INDEX@12982..12994
7870 EXPR_VAR@12982..12985
7871 NAME@12982..12985
7872 IDENT@12982..12985 "std"
7873 DOT@12985..12986 "."
7874 NAME@12986..12994
7875 IDENT@12986..12994 "isString"
7876 ARGS_DESC@12994..12997
7877 L_PAREN@12994..12995 "("
7878 ARG@12995..12996
7879 EXPR_VAR@12995..12996
7880 NAME@12995..12996
7881 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..13043
7887 EXPR_BINARY@13009..13043
7888 LHS_EXPR@13009..13013
7889 EXPR_STRING@13009..13013
7890 STRING_SINGLE@13009..13013 "'%s'"
7891 WHITESPACE@13013..13014 " "
7892 MODULO@13014..13015 "%"
7893 WHITESPACE@13015..13016 " "
7894 EXPR_ARRAY@13016..13043
7895 L_BRACK@13016..13017 "["
7896 EXPR_APPLY@13017..13042
7897 EXPR_INDEX@13017..13039
7898 EXPR_VAR@13017..13020
7899 NAME@13017..13020
7900 IDENT@13017..13020 "std"
7901 DOT@13020..13021 "."
7902 NAME@13021..13039
7903 IDENT@13021..13039 "escapeStringPython"
7904 ARGS_DESC@13039..13042
7905 L_PAREN@13039..13040 "("
7906 ARG@13040..13041
7907 EXPR_VAR@13040..13041
7908 NAME@13040..13041
7909 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..13294
7916 EXPR_IF_THEN_ELSE@13053..13294
7917 IF_KW@13053..13055 "if"
7918 WHITESPACE@13055..13056 " "
7919 EXPR_APPLY@13056..13073
7920 EXPR_INDEX@13056..13070
7921 EXPR_VAR@13056..13059
7922 NAME@13056..13059
7923 IDENT@13056..13059 "std"
7924 DOT@13059..13060 "."
7925 NAME@13060..13070
7926 IDENT@13060..13070 "isFunction"
7927 ARGS_DESC@13070..13073
7928 L_PAREN@13070..13071 "("
7929 ARG@13071..13072
7930 EXPR_VAR@13071..13072
7931 NAME@13071..13072
7932 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..13117
7938 EXPR_ERROR@13085..13117
7939 ERROR_KW@13085..13090 "error"
7940 WHITESPACE@13090..13091 " "
7941 EXPR_STRING@13091..13117
7942 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..13294
7947 EXPR_IF_THEN_ELSE@13127..13294
7948 IF_KW@13127..13129 "if"
7949 WHITESPACE@13129..13130 " "
7950 EXPR_APPLY@13130..13145
7951 EXPR_INDEX@13130..13142
7952 EXPR_VAR@13130..13133
7953 NAME@13130..13133
7954 IDENT@13130..13133 "std"
7955 DOT@13133..13134 "."
7956 NAME@13134..13142
7957 IDENT@13134..13142 "isNumber"
7958 ARGS_DESC@13142..13145
7959 L_PAREN@13142..13143 "("
7960 ARG@13143..13144
7961 EXPR_VAR@13143..13144
7962 NAME@13143..13144
7963 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..13172
7969 EXPR_APPLY@13157..13172
7970 EXPR_INDEX@13157..13169
7971 EXPR_VAR@13157..13160
7972 NAME@13157..13160
7973 IDENT@13157..13160 "std"
7974 DOT@13160..13161 "."
7975 NAME@13161..13169
7976 IDENT@13161..13169 "toString"
7977 ARGS_DESC@13169..13172
7978 L_PAREN@13169..13170 "("
7979 ARG@13170..13171
7980 EXPR_VAR@13170..13171
7981 NAME@13170..13171
7982 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..13294
7988 EXPR_IF_THEN_ELSE@13182..13294
7989 IF_KW@13182..13184 "if"
7990 WHITESPACE@13184..13185 " "
7991 EXPR_BINARY@13185..13194
7992 LHS_EXPR@13185..13186
7993 EXPR_VAR@13185..13186
7994 NAME@13185..13186
7995 IDENT@13185..13186 "v"
7996 WHITESPACE@13186..13187 " "
7997 EQ@13187..13189 "=="
7998 WHITESPACE@13189..13190 " "
7999 EXPR_LITERAL@13190..13194
8000 TRUE_KW@13190..13194 "true"
8001 WHITESPACE@13194..13195 " "
8002 THEN_KW@13195..13199 "then"
8003 WHITESPACE@13199..13206 "\n "
8004 TRUE_EXPR@13206..13212
8005 EXPR_STRING@13206..13212
8006 STRING_SINGLE@13206..13212 "'True'"
8007 WHITESPACE@13212..13217 "\n "
8008 ELSE_KW@13217..13221 "else"
8009 WHITESPACE@13221..13222 " "
8010 FALSE_EXPR@13222..13294
8011 EXPR_IF_THEN_ELSE@13222..13294
8012 IF_KW@13222..13224 "if"
8013 WHITESPACE@13224..13225 " "
8014 EXPR_BINARY@13225..13235
8015 LHS_EXPR@13225..13226
8016 EXPR_VAR@13225..13226
8017 NAME@13225..13226
8018 IDENT@13225..13226 "v"
8019 WHITESPACE@13226..13227 " "
8020 EQ@13227..13229 "=="
8021 WHITESPACE@13229..13230 " "
8022 EXPR_LITERAL@13230..13235
8023 FALSE_KW@13230..13235 "false"
8024 WHITESPACE@13235..13236 " "
8025 THEN_KW@13236..13240 "then"
8026 WHITESPACE@13240..13247 "\n "
8027 TRUE_EXPR@13247..13254
8028 EXPR_STRING@13247..13254
8029 STRING_SINGLE@13247..13254 "'False'"
8030 WHITESPACE@13254..13259 "\n "
8031 ELSE_KW@13259..13263 "else"
8032 WHITESPACE@13263..13264 " "
8033 FALSE_EXPR@13264..13294
8034 EXPR_IF_THEN_ELSE@13264..13294
8035 IF_KW@13264..13266 "if"
8036 WHITESPACE@13266..13267 " "
8037 EXPR_BINARY@13267..13276
8038 LHS_EXPR@13267..13268
8039 EXPR_VAR@13267..13268
8040 NAME@13267..13268
8041 IDENT@13267..13268 "v"
8042 WHITESPACE@13268..13269 " "
8043 EQ@13269..13271 "=="
8044 WHITESPACE@13271..13272 " "
8045 EXPR_LITERAL@13272..13276
8046 NULL_KW@13272..13276 "null"
8047 WHITESPACE@13276..13277 " "
8048 THEN_KW@13277..13281 "then"
8049 WHITESPACE@13281..13288 "\n "
8050 TRUE_EXPR@13288..13294
8051 EXPR_STRING@13288..13294
8052 STRING_SINGLE@13288..13294 "'None'"
8053 COMMA@13294..13295 ","
8054 WHITESPACE@13295..13299 "\n\n "
8055 MEMBER_FIELD@13299..13454
8056 FIELD_METHOD@13299..13454
8057 FIELD_NAME_FIXED@13299..13317
8058 NAME@13299..13317
8059 IDENT@13299..13317 "manifestPythonVars"
8060 PARAMS_DESC@13317..13323
8061 L_PAREN@13317..13318 "("
8062 PARAM@13318..13322
8063 DESTRUCT_FULL@13318..13322
8064 NAME@13318..13322
8065 IDENT@13318..13322 "conf"
8066 R_PAREN@13322..13323 ")"
8067 COLONCOLON@13323..13325 "::"
8068 WHITESPACE@13325..13330 "\n "
8069 EXPR_LOCAL@13330..13454
8070 LOCAL_KW@13330..13335 "local"
8071 WHITESPACE@13335..13336 " "
8072 BIND_DESTRUCT@13336..13421
8073 DESTRUCT_FULL@13336..13340
8074 NAME@13336..13340
8075 IDENT@13336..13340 "vars"
8076 WHITESPACE@13340..13341 " "
8077 ASSIGN@13341..13342 "="
8078 WHITESPACE@13342..13343 " "
8079 EXPR_ARRAY_COMP@13343..13421
8080 L_BRACK@13343..13344 "["
8081 EXPR_BINARY@13344..13388
8082 LHS_EXPR@13344..13353
8083 EXPR_STRING@13344..13353
8084 STRING_SINGLE@13344..13353 "'%s = %s'"
8085 WHITESPACE@13353..13354 " "
8086 MODULO@13354..13355 "%"
8087 WHITESPACE@13355..13356 " "
8088 EXPR_ARRAY@13356..13388
8089 L_BRACK@13356..13357 "["
8090 EXPR_VAR@13357..13358
8091 NAME@13357..13358
8092 IDENT@13357..13358 "k"
8093 COMMA@13358..13359 ","
8094 WHITESPACE@13359..13360 " "
8095 EXPR_APPLY@13360..13387
8096 EXPR_INDEX@13360..13378
8097 EXPR_VAR@13360..13363
8098 NAME@13360..13363
8099 IDENT@13360..13363 "std"
8100 DOT@13363..13364 "."
8101 NAME@13364..13378
8102 IDENT@13364..13378 "manifestPython"
8103 ARGS_DESC@13378..13387
8104 L_PAREN@13378..13379 "("
8105 ARG@13379..13386
8106 EXPR_INDEX_EXPR@13379..13386
8107 LHS_EXPR@13379..13383
8108 EXPR_VAR@13379..13383
8109 NAME@13379..13383
8110 IDENT@13379..13383 "conf"
8111 L_BRACK@13383..13384 "["
8112 EXPR_VAR@13384..13385
8113 NAME@13384..13385
8114 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..13420
8120 FOR_KW@13389..13392 "for"
8121 WHITESPACE@13392..13393 " "
8122 NAME@13393..13394
8123 IDENT@13393..13394 "k"
8124 WHITESPACE@13394..13395 " "
8125 IN_KW@13395..13397 "in"
8126 WHITESPACE@13397..13398 " "
8127 EXPR_APPLY@13398..13420
8128 EXPR_INDEX@13398..13414
8129 EXPR_VAR@13398..13401
8130 NAME@13398..13401
8131 IDENT@13398..13401 "std"
8132 DOT@13401..13402 "."
8133 NAME@13402..13414
8134 IDENT@13402..13414 "objectFields"
8135 ARGS_DESC@13414..13420
8136 L_PAREN@13414..13415 "("
8137 ARG@13415..13419
8138 EXPR_VAR@13415..13419
8139 NAME@13415..13419
8140 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..13454
8146 EXPR_INDEX@13427..13435
8147 EXPR_VAR@13427..13430
8148 NAME@13427..13430
8149 IDENT@13427..13430 "std"
8150 DOT@13430..13431 "."
8151 NAME@13431..13435
8152 IDENT@13431..13435 "join"
8153 ARGS_DESC@13435..13454
8154 L_PAREN@13435..13436 "("
8155 ARG@13436..13440
8156 EXPR_STRING@13436..13440
8157 STRING_SINGLE@13436..13440 "'\\n'"
8158 COMMA@13440..13441 ","
8159 WHITESPACE@13441..13442 " "
8160 ARG@13442..13453
8161 EXPR_BINARY@13442..13453
8162 LHS_EXPR@13442..13446
8163 EXPR_VAR@13442..13446
8164 NAME@13442..13446
8165 IDENT@13442..13446 "vars"
8166 WHITESPACE@13446..13447 " "
8167 PLUS@13447..13448 "+"
8168 WHITESPACE@13448..13449 " "
8169 EXPR_ARRAY@13449..13453
8170 L_BRACK@13449..13450 "["
8171 EXPR_STRING@13450..13452
8172 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..14126
8178 FIELD_METHOD@13459..14126
8179 FIELD_NAME_FIXED@13459..13476
8180 NAME@13459..13476
8181 IDENT@13459..13476 "manifestXmlJsonml"
8182 PARAMS_DESC@13476..13483
8183 L_PAREN@13476..13477 "("
8184 PARAM@13477..13482
8185 DESTRUCT_FULL@13477..13482
8186 NAME@13477..13482
8187 IDENT@13477..13482 "value"
8188 R_PAREN@13482..13483 ")"
8189 COLONCOLON@13483..13485 "::"
8190 WHITESPACE@13485..13490 "\n "
8191 EXPR_IF_THEN_ELSE@13490..14126
8192 IF_KW@13490..13492 "if"
8193 WHITESPACE@13492..13493 " "
8194 EXPR_UNARY@13493..13512
8195 NOT@13493..13494 "!"
8196 EXPR_APPLY@13494..13512
8197 EXPR_INDEX@13494..13505
8198 EXPR_VAR@13494..13497
8199 NAME@13494..13497
8200 IDENT@13494..13497 "std"
8201 DOT@13497..13498 "."
8202 NAME@13498..13505
8203 IDENT@13498..13505 "isArray"
8204 ARGS_DESC@13505..13512
8205 L_PAREN@13505..13506 "("
8206 ARG@13506..13511
8207 EXPR_VAR@13506..13511
8208 NAME@13506..13511
8209 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..13592
8215 EXPR_ERROR@13524..13592
8216 ERROR_KW@13524..13529 "error"
8217 WHITESPACE@13529..13530 " "
8218 EXPR_BINARY@13530..13592
8219 LHS_EXPR@13530..13574
8220 EXPR_STRING@13530..13574
8221 STRING_SINGLE@13530..13574 "'Expected a JSONML va ..."
8222 WHITESPACE@13574..13575 " "
8223 MODULO@13575..13576 "%"
8224 WHITESPACE@13576..13577 " "
8225 EXPR_APPLY@13577..13592
8226 EXPR_INDEX@13577..13585
8227 EXPR_VAR@13577..13580
8228 NAME@13577..13580
8229 IDENT@13577..13580 "std"
8230 DOT@13580..13581 "."
8231 NAME@13581..13585
8232 IDENT@13581..13585 "type"
8233 ARGS_DESC@13585..13592
8234 L_PAREN@13585..13586 "("
8235 ARG@13586..13591
8236 EXPR_VAR@13586..13591
8237 NAME@13586..13591
8238 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..14126
8244 EXPR_LOCAL@13608..14126
8245 LOCAL_KW@13608..13613 "local"
8246 WHITESPACE@13613..13614 " "
8247 BIND_FUNCTION@13614..14107
8248 NAME@13614..13617
8249 IDENT@13614..13617 "aux"
8250 PARAMS_DESC@13617..13620
8251 L_PAREN@13617..13618 "("
8252 PARAM@13618..13619
8253 DESTRUCT_FULL@13618..13619
8254 NAME@13618..13619
8255 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..14107
8261 IF_KW@13631..13633 "if"
8262 WHITESPACE@13633..13634 " "
8263 EXPR_APPLY@13634..13649
8264 EXPR_INDEX@13634..13646
8265 EXPR_VAR@13634..13637
8266 NAME@13634..13637
8267 IDENT@13634..13637 "std"
8268 DOT@13637..13638 "."
8269 NAME@13638..13646
8270 IDENT@13638..13646 "isString"
8271 ARGS_DESC@13646..13649
8272 L_PAREN@13646..13647 "("
8273 ARG@13647..13648
8274 EXPR_VAR@13647..13648
8275 NAME@13647..13648
8276 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..13666
8282 EXPR_VAR@13665..13666
8283 NAME@13665..13666
8284 IDENT@13665..13666 "v"
8285 WHITESPACE@13666..13675 "\n "
8286 ELSE_KW@13675..13679 "else"
8287 WHITESPACE@13679..13690 "\n "
8288 FALSE_EXPR@13690..14107
8289 EXPR_LOCAL@13690..14107
8290 LOCAL_KW@13690..13695 "local"
8291 WHITESPACE@13695..13696 " "
8292 BIND_DESTRUCT@13696..13706
8293 DESTRUCT_FULL@13696..13699
8294 NAME@13696..13699
8295 IDENT@13696..13699 "tag"
8296 WHITESPACE@13699..13700 " "
8297 ASSIGN@13700..13701 "="
8298 WHITESPACE@13701..13702 " "
8299 EXPR_INDEX_EXPR@13702..13706
8300 LHS_EXPR@13702..13703
8301 EXPR_VAR@13702..13703
8302 NAME@13702..13703
8303 IDENT@13702..13703 "v"
8304 L_BRACK@13703..13704 "["
8305 EXPR_NUMBER@13704..13705
8306 FLOAT@13704..13705 "0"
8307 R_BRACK@13705..13706 "]"
8308 SEMI@13706..13707 ";"
8309 WHITESPACE@13707..13718 "\n "
8310 EXPR_LOCAL@13718..14107
8311 LOCAL_KW@13718..13723 "local"
8312 WHITESPACE@13723..13724 " "
8313 BIND_DESTRUCT@13724..13775
8314 DESTRUCT_FULL@13724..13733
8315 NAME@13724..13733
8316 IDENT@13724..13733 "has_attrs"
8317 WHITESPACE@13733..13734 " "
8318 ASSIGN@13734..13735 "="
8319 WHITESPACE@13735..13736 " "
8320 EXPR_BINARY@13736..13775
8321 LHS_EXPR@13736..13753
8322 EXPR_BINARY@13736..13753
8323 LHS_EXPR@13736..13749
8324 EXPR_APPLY@13736..13749
8325 EXPR_INDEX@13736..13746
8326 EXPR_VAR@13736..13739
8327 NAME@13736..13739
8328 IDENT@13736..13739 "std"
8329 DOT@13739..13740 "."
8330 NAME@13740..13746
8331 IDENT@13740..13746 "length"
8332 ARGS_DESC@13746..13749
8333 L_PAREN@13746..13747 "("
8334 ARG@13747..13748
8335 EXPR_VAR@13747..13748
8336 NAME@13747..13748
8337 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..13753
8343 FLOAT@13752..13753 "1"
8344 WHITESPACE@13753..13754 " "
8345 AND@13754..13756 "&&"
8346 WHITESPACE@13756..13757 " "
8347 EXPR_APPLY@13757..13775
8348 EXPR_INDEX@13757..13769
8349 EXPR_VAR@13757..13760
8350 NAME@13757..13760
8351 IDENT@13757..13760 "std"
8352 DOT@13760..13761 "."
8353 NAME@13761..13769
8354 IDENT@13761..13769 "isObject"
8355 ARGS_DESC@13769..13775
8356 L_PAREN@13769..13770 "("
8357 ARG@13770..13774
8358 EXPR_INDEX_EXPR@13770..13774
8359 LHS_EXPR@13770..13771
8360 EXPR_VAR@13770..13771
8361 NAME@13770..13771
8362 IDENT@13770..13771 "v"
8363 L_BRACK@13771..13772 "["
8364 EXPR_NUMBER@13772..13773
8365 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..14107
8371 LOCAL_KW@13787..13792 "local"
8372 WHITESPACE@13792..13793 " "
8373 BIND_DESTRUCT@13793..13831
8374 DESTRUCT_FULL@13793..13798
8375 NAME@13793..13798
8376 IDENT@13793..13798 "attrs"
8377 WHITESPACE@13798..13799 " "
8378 ASSIGN@13799..13800 "="
8379 WHITESPACE@13800..13801 " "
8380 EXPR_IF_THEN_ELSE@13801..13831
8381 IF_KW@13801..13803 "if"
8382 WHITESPACE@13803..13804 " "
8383 EXPR_VAR@13804..13813
8384 NAME@13804..13813
8385 IDENT@13804..13813 "has_attrs"
8386 WHITESPACE@13813..13814 " "
8387 THEN_KW@13814..13818 "then"
8388 WHITESPACE@13818..13819 " "
8389 TRUE_EXPR@13819..13823
8390 EXPR_INDEX_EXPR@13819..13823
8391 LHS_EXPR@13819..13820
8392 EXPR_VAR@13819..13820
8393 NAME@13819..13820
8394 IDENT@13819..13820 "v"
8395 L_BRACK@13820..13821 "["
8396 EXPR_NUMBER@13821..13822
8397 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..13831
8403 EXPR_OBJECT@13829..13831
8404 OBJ_BODY_MEMBER_LIST@13829..13831
8405 L_BRACE@13829..13830 "{"
8406 R_BRACE@13830..13831 "}"
8407 SEMI@13831..13832 ";"
8408 WHITESPACE@13832..13843 "\n "
8409 EXPR_LOCAL@13843..14107
8410 LOCAL_KW@13843..13848 "local"
8411 WHITESPACE@13848..13849 " "
8412 BIND_DESTRUCT@13849..13894
8413 DESTRUCT_FULL@13849..13857
8414 NAME@13849..13857
8415 IDENT@13849..13857 "children"
8416 WHITESPACE@13857..13858 " "
8417 ASSIGN@13858..13859 "="
8418 WHITESPACE@13859..13860 " "
8419 EXPR_IF_THEN_ELSE@13860..13894
8420 IF_KW@13860..13862 "if"
8421 WHITESPACE@13862..13863 " "
8422 EXPR_VAR@13863..13872
8423 NAME@13863..13872
8424 IDENT@13863..13872 "has_attrs"
8425 WHITESPACE@13872..13873 " "
8426 THEN_KW@13873..13877 "then"
8427 WHITESPACE@13877..13878 " "
8428 TRUE_EXPR@13878..13883
8429 EXPR_SLICE@13878..13883
8430 EXPR_VAR@13878..13879
8431 NAME@13878..13879
8432 IDENT@13878..13879 "v"
8433 SLICE_DESC@13879..13883
8434 L_BRACK@13879..13880 "["
8435 EXPR_NUMBER@13880..13881
8436 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..13894
8443 EXPR_SLICE@13889..13894
8444 EXPR_VAR@13889..13890
8445 NAME@13889..13890
8446 IDENT@13889..13890 "v"
8447 SLICE_DESC@13890..13894
8448 L_BRACK@13890..13891 "["
8449 EXPR_NUMBER@13891..13892
8450 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..14107
8456 LOCAL_KW@13906..13911 "local"
8457 WHITESPACE@13911..13912 " "
8458 BIND_DESTRUCT@13912..14011
8459 DESTRUCT_FULL@13912..13921
8460 NAME@13912..13921
8461 IDENT@13912..13921 "attrs_str"
8462 WHITESPACE@13921..13922 " "
8463 ASSIGN@13922..13923 "="
8464 WHITESPACE@13923..13936 "\n "
8465 EXPR_APPLY@13936..14011
8466 EXPR_INDEX@13936..13944
8467 EXPR_VAR@13936..13939
8468 NAME@13936..13939
8469 IDENT@13936..13939 "std"
8470 DOT@13939..13940 "."
8471 NAME@13940..13944
8472 IDENT@13940..13944 "join"
8473 ARGS_DESC@13944..14011
8474 L_PAREN@13944..13945 "("
8475 ARG@13945..13947
8476 EXPR_STRING@13945..13947
8477 STRING_SINGLE@13945..13947 "''"
8478 COMMA@13947..13948 ","
8479 WHITESPACE@13948..13949 " "
8480 ARG@13949..14010
8481 EXPR_ARRAY_COMP@13949..14010
8482 L_BRACK@13949..13950 "["
8483 EXPR_BINARY@13950..13976
8484 LHS_EXPR@13950..13960
8485 EXPR_STRING@13950..13960
8486 STRING_SINGLE@13950..13960 "' %s=\"%s\"'"
8487 WHITESPACE@13960..13961 " "
8488 MODULO@13961..13962 "%"
8489 WHITESPACE@13962..13963 " "
8490 EXPR_ARRAY@13963..13976
8491 L_BRACK@13963..13964 "["
8492 EXPR_VAR@13964..13965
8493 NAME@13964..13965
8494 IDENT@13964..13965 "k"
8495 COMMA@13965..13966 ","
8496 WHITESPACE@13966..13967 " "
8497 EXPR_INDEX_EXPR@13967..13975
8498 LHS_EXPR@13967..13972
8499 EXPR_VAR@13967..13972
8500 NAME@13967..13972
8501 IDENT@13967..13972 "attrs"
8502 L_BRACK@13972..13973 "["
8503 EXPR_VAR@13973..13974
8504 NAME@13973..13974
8505 IDENT@13973..13974 "k"
8506 R_BRACK@13974..13975 "]"
8507 R_BRACK@13975..13976 "]"
8508 WHITESPACE@13976..13977 " "
8509 FOR_SPEC@13977..14009
8510 FOR_KW@13977..13980 "for"
8511 WHITESPACE@13980..13981 " "
8512 NAME@13981..13982
8513 IDENT@13981..13982 "k"
8514 WHITESPACE@13982..13983 " "
8515 IN_KW@13983..13985 "in"
8516 WHITESPACE@13985..13986 " "
8517 EXPR_APPLY@13986..14009
8518 EXPR_INDEX@13986..14002
8519 EXPR_VAR@13986..13989
8520 NAME@13986..13989
8521 IDENT@13986..13989 "std"
8522 DOT@13989..13990 "."
8523 NAME@13990..14002
8524 IDENT@13990..14002 "objectFields"
8525 ARGS_DESC@14002..14009
8526 L_PAREN@14002..14003 "("
8527 ARG@14003..14008
8528 EXPR_VAR@14003..14008
8529 NAME@14003..14008
8530 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..14107
8537 EXPR_INDEX@14023..14035
8538 EXPR_VAR@14023..14026
8539 NAME@14023..14026
8540 IDENT@14023..14026 "std"
8541 DOT@14026..14027 "."
8542 NAME@14027..14035
8543 IDENT@14027..14035 "deepJoin"
8544 ARGS_DESC@14035..14107
8545 L_PAREN@14035..14036 "("
8546 ARG@14036..14106
8547 EXPR_ARRAY@14036..14106
8548 L_BRACK@14036..14037 "["
8549 EXPR_STRING@14037..14040
8550 STRING_SINGLE@14037..14040 "'<'"
8551 COMMA@14040..14041 ","
8552 WHITESPACE@14041..14042 " "
8553 EXPR_VAR@14042..14045
8554 NAME@14042..14045
8555 IDENT@14042..14045 "tag"
8556 COMMA@14045..14046 ","
8557 WHITESPACE@14046..14047 " "
8558 EXPR_VAR@14047..14056
8559 NAME@14047..14056
8560 IDENT@14047..14056 "attrs_str"
8561 COMMA@14056..14057 ","
8562 WHITESPACE@14057..14058 " "
8563 EXPR_STRING@14058..14061
8564 STRING_SINGLE@14058..14061 "'>'"
8565 COMMA@14061..14062 ","
8566 WHITESPACE@14062..14063 " "
8567 EXPR_ARRAY_COMP@14063..14089
8568 L_BRACK@14063..14064 "["
8569 EXPR_APPLY@14064..14070
8570 EXPR_VAR@14064..14067
8571 NAME@14064..14067
8572 IDENT@14064..14067 "aux"
8573 ARGS_DESC@14067..14070
8574 L_PAREN@14067..14068 "("
8575 ARG@14068..14069
8576 EXPR_VAR@14068..14069
8577 NAME@14068..14069
8578 IDENT@14068..14069 "x"
8579 R_PAREN@14069..14070 ")"
8580 WHITESPACE@14070..14071 " "
8581 FOR_SPEC@14071..14088
8582 FOR_KW@14071..14074 "for"
8583 WHITESPACE@14074..14075 " "
8584 NAME@14075..14076
8585 IDENT@14075..14076 "x"
8586 WHITESPACE@14076..14077 " "
8587 IN_KW@14077..14079 "in"
8588 WHITESPACE@14079..14080 " "
8589 EXPR_VAR@14080..14088
8590 NAME@14080..14088
8591 IDENT@14080..14088 "children"
8592 R_BRACK@14088..14089 "]"
8593 COMMA@14089..14090 ","
8594 WHITESPACE@14090..14091 " "
8595 EXPR_STRING@14091..14095
8596 STRING_SINGLE@14091..14095 "'</'"
8597 COMMA@14095..14096 ","
8598 WHITESPACE@14096..14097 " "
8599 EXPR_VAR@14097..14100
8600 NAME@14097..14100
8601 IDENT@14097..14100 "tag"
8602 COMMA@14100..14101 ","
8603 WHITESPACE@14101..14102 " "
8604 EXPR_STRING@14102..14105
8605 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..14126
8611 EXPR_VAR@14116..14119
8612 NAME@14116..14119
8613 IDENT@14116..14119 "aux"
8614 ARGS_DESC@14119..14126
8615 L_PAREN@14119..14120 "("
8616 ARG@14120..14125
8617 EXPR_VAR@14120..14125
8618 NAME@14120..14125
8619 IDENT@14120..14125 "value"
8620 R_PAREN@14125..14126 ")"
8621 COMMA@14126..14127 ","
8622 WHITESPACE@14127..14131 "\n\n "
8623 MEMBER_BIND_STMT@14131..14218
8624 OBJ_LOCAL@14131..14218
8625 LOCAL_KW@14131..14136 "local"
8626 WHITESPACE@14136..14137 " "
8627 BIND_DESTRUCT@14137..14218
8628 DESTRUCT_FULL@14137..14149
8629 NAME@14137..14149
8630 IDENT@14137..14149 "base64_table"
8631 WHITESPACE@14149..14150 " "
8632 ASSIGN@14150..14151 "="
8633 WHITESPACE@14151..14152 " "
8634 EXPR_STRING@14152..14218
8635 STRING_SINGLE@14152..14218 "'ABCDEFGHIJKLMNOPQRST ..."
8636 COMMA@14218..14219 ","
8637 WHITESPACE@14219..14222 "\n "
8638 MEMBER_BIND_STMT@14222..14291
8639 OBJ_LOCAL@14222..14291
8640 LOCAL_KW@14222..14227 "local"
8641 WHITESPACE@14227..14228 " "
8642 BIND_DESTRUCT@14228..14291
8643 DESTRUCT_FULL@14228..14238
8644 NAME@14228..14238
8645 IDENT@14228..14238 "base64_inv"
8646 WHITESPACE@14238..14239 " "
8647 ASSIGN@14239..14240 "="
8648 WHITESPACE@14240..14241 " "
8649 EXPR_OBJECT@14241..14291
8650 OBJ_BODY_MEMBER_LIST@14241..14291
8651 L_BRACE@14241..14242 "{"
8652 WHITESPACE@14242..14243 " "
8653 MEMBER_FIELD@14243..14289
8654 FIELD_NORMAL@14243..14263
8655 FIELD_NAME_DYNAMIC@14243..14260
8656 L_BRACK@14243..14244 "["
8657 EXPR_INDEX_EXPR@14244..14259
8658 LHS_EXPR@14244..14256
8659 EXPR_VAR@14244..14256
8660 NAME@14244..14256
8661 IDENT@14244..14256 "base64_table"
8662 L_BRACK@14256..14257 "["
8663 EXPR_VAR@14257..14258
8664 NAME@14257..14258
8665 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..14263
8671 NAME@14262..14263
8672 IDENT@14262..14263 "i"
8673 WHITESPACE@14263..14264 " "
8674 FOR_SPEC@14264..14289
8675 FOR_KW@14264..14267 "for"
8676 WHITESPACE@14267..14268 " "
8677 NAME@14268..14269
8678 IDENT@14268..14269 "i"
8679 WHITESPACE@14269..14270 " "
8680 IN_KW@14270..14272 "in"
8681 WHITESPACE@14272..14273 " "
8682 EXPR_APPLY@14273..14289
8683 EXPR_INDEX@14273..14282
8684 EXPR_VAR@14273..14276
8685 NAME@14273..14276
8686 IDENT@14273..14276 "std"
8687 DOT@14276..14277 "."
8688 NAME@14277..14282
8689 IDENT@14277..14282 "range"
8690 ARGS_DESC@14282..14289
8691 L_PAREN@14282..14283 "("
8692 ARG@14283..14284
8693 EXPR_NUMBER@14283..14284
8694 FLOAT@14283..14284 "0"
8695 COMMA@14284..14285 ","
8696 WHITESPACE@14285..14286 " "
8697 ARG@14286..14288
8698 EXPR_NUMBER@14286..14288
8699 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..14323
8706 FIELD_NORMAL@14296..14323
8707 FIELD_NAME_FIXED@14296..14302
8708 NAME@14296..14302
8709 IDENT@14296..14302 "base64"
8710 COLONCOLON@14302..14304 "::"
8711 WHITESPACE@14304..14305 " "
8712 EXPR_INTRINSIC@14305..14323
8713 INTRINSIC@14305..14315 "$intrinsic"
8714 L_PAREN@14315..14316 "("
8715 NAME@14316..14322
8716 IDENT@14316..14322 "base64"
8717 R_PAREN@14322..14323 ")"
8718 COMMA@14323..14324 ","
8719 WHITESPACE@14324..14328 "\n\n "
8720 MEMBER_FIELD@14328..14377
8721 FIELD_NORMAL@14328..14377
8722 FIELD_NAME_FIXED@14328..14345
8723 NAME@14328..14345
8724 IDENT@14328..14345 "base64DecodeBytes"
8725 COLONCOLON@14345..14347 "::"
8726 WHITESPACE@14347..14348 " "
8727 EXPR_INTRINSIC@14348..14377
8728 INTRINSIC@14348..14358 "$intrinsic"
8729 L_PAREN@14358..14359 "("
8730 NAME@14359..14376
8731 IDENT@14359..14376 "base64DecodeBytes"
8732 R_PAREN@14376..14377 ")"
8733 COMMA@14377..14378 ","
8734 WHITESPACE@14378..14382 "\n\n "
8735 MEMBER_FIELD@14382..14421
8736 FIELD_NORMAL@14382..14421
8737 FIELD_NAME_FIXED@14382..14394
8738 NAME@14382..14394
8739 IDENT@14382..14394 "base64Decode"
8740 COLONCOLON@14394..14396 "::"
8741 WHITESPACE@14396..14397 " "
8742 EXPR_INTRINSIC@14397..14421
8743 INTRINSIC@14397..14407 "$intrinsic"
8744 L_PAREN@14407..14408 "("
8745 NAME@14408..14420
8746 IDENT@14408..14420 "base64Decode"
8747 R_PAREN@14420..14421 ")"
8748 COMMA@14421..14422 ","
8749 WHITESPACE@14422..14426 "\n\n "
8750 MEMBER_FIELD@14426..14455
8751 FIELD_NORMAL@14426..14455
8752 FIELD_NAME_FIXED@14426..14433
8753 NAME@14426..14433
8754 IDENT@14426..14433 "reverse"
8755 COLONCOLON@14433..14435 "::"
8756 WHITESPACE@14435..14436 " "
8757 EXPR_INTRINSIC@14436..14455
8758 INTRINSIC@14436..14446 "$intrinsic"
8759 L_PAREN@14446..14447 "("
8760 NAME@14447..14454
8761 IDENT@14447..14454 "reverse"
8762 R_PAREN@14454..14455 ")"
8763 COMMA@14455..14456 ","
8764 WHITESPACE@14456..14460 "\n\n "
8765 MEMBER_FIELD@14460..14483
8766 FIELD_NORMAL@14460..14483
8767 FIELD_NAME_FIXED@14460..14464
8768 NAME@14460..14464
8769 IDENT@14460..14464 "sort"
8770 COLONCOLON@14464..14466 "::"
8771 WHITESPACE@14466..14467 " "
8772 EXPR_INTRINSIC@14467..14483
8773 INTRINSIC@14467..14477 "$intrinsic"
8774 L_PAREN@14477..14478 "("
8775 NAME@14478..14482
8776 IDENT@14478..14482 "sort"
8777 R_PAREN@14482..14483 ")"
8778 COMMA@14483..14484 ","
8779 WHITESPACE@14484..14488 "\n\n "
8780 MEMBER_FIELD@14488..14694
8781 FIELD_METHOD@14488..14694
8782 FIELD_NAME_FIXED@14488..14492
8783 NAME@14488..14492
8784 IDENT@14488..14492 "uniq"
8785 PARAMS_DESC@14492..14506
8786 L_PAREN@14492..14493 "("
8787 PARAM@14493..14496
8788 DESTRUCT_FULL@14493..14496
8789 NAME@14493..14496
8790 IDENT@14493..14496 "arr"
8791 COMMA@14496..14497 ","
8792 WHITESPACE@14497..14498 " "
8793 PARAM@14498..14505
8794 DESTRUCT_FULL@14498..14502
8795 NAME@14498..14502
8796 IDENT@14498..14502 "keyF"
8797 ASSIGN@14502..14503 "="
8798 EXPR_VAR@14503..14505
8799 NAME@14503..14505
8800 IDENT@14503..14505 "id"
8801 R_PAREN@14505..14506 ")"
8802 COLONCOLON@14506..14508 "::"
8803 WHITESPACE@14508..14513 "\n "
8804 EXPR_LOCAL@14513..14694
8805 LOCAL_KW@14513..14518 "local"
8806 WHITESPACE@14518..14519 " "
8807 BIND_FUNCTION@14519..14667
8808 NAME@14519..14520
8809 IDENT@14519..14520 "f"
8810 PARAMS_DESC@14520..14526
8811 L_PAREN@14520..14521 "("
8812 PARAM@14521..14522
8813 DESTRUCT_FULL@14521..14522
8814 NAME@14521..14522
8815 IDENT@14521..14522 "a"
8816 COMMA@14522..14523 ","
8817 WHITESPACE@14523..14524 " "
8818 PARAM@14524..14525
8819 DESTRUCT_FULL@14524..14525
8820 NAME@14524..14525
8821 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..14667
8827 IF_KW@14535..14537 "if"
8828 WHITESPACE@14537..14538 " "
8829 EXPR_BINARY@14538..14556
8830 LHS_EXPR@14538..14551
8831 EXPR_APPLY@14538..14551
8832 EXPR_INDEX@14538..14548
8833 EXPR_VAR@14538..14541
8834 NAME@14538..14541
8835 IDENT@14538..14541 "std"
8836 DOT@14541..14542 "."
8837 NAME@14542..14548
8838 IDENT@14542..14548 "length"
8839 ARGS_DESC@14548..14551
8840 L_PAREN@14548..14549 "("
8841 ARG@14549..14550
8842 EXPR_VAR@14549..14550
8843 NAME@14549..14550
8844 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..14556
8850 FLOAT@14555..14556 "0"
8851 WHITESPACE@14556..14557 " "
8852 THEN_KW@14557..14561 "then"
8853 WHITESPACE@14561..14570 "\n "
8854 TRUE_EXPR@14570..14573
8855 EXPR_ARRAY@14570..14573
8856 L_BRACK@14570..14571 "["
8857 EXPR_VAR@14571..14572
8858 NAME@14571..14572
8859 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..14667
8865 EXPR_IF_THEN_ELSE@14585..14667
8866 IF_KW@14585..14587 "if"
8867 WHITESPACE@14587..14588 " "
8868 EXPR_BINARY@14588..14625
8869 LHS_EXPR@14588..14614
8870 EXPR_APPLY@14588..14614
8871 EXPR_VAR@14588..14592
8872 NAME@14588..14592
8873 IDENT@14588..14592 "keyF"
8874 ARGS_DESC@14592..14614
8875 L_PAREN@14592..14593 "("
8876 ARG@14593..14613
8877 EXPR_INDEX_EXPR@14593..14613
8878 LHS_EXPR@14593..14594
8879 EXPR_VAR@14593..14594
8880 NAME@14593..14594
8881 IDENT@14593..14594 "a"
8882 L_BRACK@14594..14595 "["
8883 EXPR_BINARY@14595..14612
8884 LHS_EXPR@14595..14608
8885 EXPR_APPLY@14595..14608
8886 EXPR_INDEX@14595..14605
8887 EXPR_VAR@14595..14598
8888 NAME@14595..14598
8889 IDENT@14595..14598 "std"
8890 DOT@14598..14599 "."
8891 NAME@14599..14605
8892 IDENT@14599..14605 "length"
8893 ARGS_DESC@14605..14608
8894 L_PAREN@14605..14606 "("
8895 ARG@14606..14607
8896 EXPR_VAR@14606..14607
8897 NAME@14606..14607
8898 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..14612
8904 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..14625
8911 EXPR_VAR@14618..14622
8912 NAME@14618..14622
8913 IDENT@14618..14622 "keyF"
8914 ARGS_DESC@14622..14625
8915 L_PAREN@14622..14623 "("
8916 ARG@14623..14624
8917 EXPR_VAR@14623..14624
8918 NAME@14623..14624
8919 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..14640
8925 EXPR_VAR@14639..14640
8926 NAME@14639..14640
8927 IDENT@14639..14640 "a"
8928 WHITESPACE@14640..14647 "\n "
8929 ELSE_KW@14647..14651 "else"
8930 WHITESPACE@14651..14660 "\n "
8931 FALSE_EXPR@14660..14667
8932 EXPR_BINARY@14660..14667
8933 LHS_EXPR@14660..14661
8934 EXPR_VAR@14660..14661
8935 NAME@14660..14661
8936 IDENT@14660..14661 "a"
8937 WHITESPACE@14661..14662 " "
8938 PLUS@14662..14663 "+"
8939 WHITESPACE@14663..14664 " "
8940 EXPR_ARRAY@14664..14667
8941 L_BRACK@14664..14665 "["
8942 EXPR_VAR@14665..14666
8943 NAME@14665..14666
8944 IDENT@14665..14666 "b"
8945 R_BRACK@14666..14667 "]"
8946 SEMI@14667..14668 ";"
8947 WHITESPACE@14668..14673 "\n "
8948 EXPR_APPLY@14673..14694
8949 EXPR_INDEX@14673..14682
8950 EXPR_VAR@14673..14676
8951 NAME@14673..14676
8952 IDENT@14673..14676 "std"
8953 DOT@14676..14677 "."
8954 NAME@14677..14682
8955 IDENT@14677..14682 "foldl"
8956 ARGS_DESC@14682..14694
8957 L_PAREN@14682..14683 "("
8958 ARG@14683..14684
8959 EXPR_VAR@14683..14684
8960 NAME@14683..14684
8961 IDENT@14683..14684 "f"
8962 COMMA@14684..14685 ","
8963 WHITESPACE@14685..14686 " "
8964 ARG@14686..14689
8965 EXPR_VAR@14686..14689
8966 NAME@14686..14689
8967 IDENT@14686..14689 "arr"
8968 COMMA@14689..14690 ","
8969 WHITESPACE@14690..14691 " "
8970 ARG@14691..14693
8971 EXPR_ARRAY@14691..14693
8972 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..14758
8978 FIELD_METHOD@14699..14758
8979 FIELD_NAME_FIXED@14699..14702
8980 NAME@14699..14702
8981 IDENT@14699..14702 "set"
8982 PARAMS_DESC@14702..14716
8983 L_PAREN@14702..14703 "("
8984 PARAM@14703..14706
8985 DESTRUCT_FULL@14703..14706
8986 NAME@14703..14706
8987 IDENT@14703..14706 "arr"
8988 COMMA@14706..14707 ","
8989 WHITESPACE@14707..14708 " "
8990 PARAM@14708..14715
8991 DESTRUCT_FULL@14708..14712
8992 NAME@14708..14712
8993 IDENT@14708..14712 "keyF"
8994 ASSIGN@14712..14713 "="
8995 EXPR_VAR@14713..14715
8996 NAME@14713..14715
8997 IDENT@14713..14715 "id"
8998 R_PAREN@14715..14716 ")"
8999 COLONCOLON@14716..14718 "::"
9000 WHITESPACE@14718..14723 "\n "
9001 EXPR_APPLY@14723..14758
9002 EXPR_INDEX@14723..14731
9003 EXPR_VAR@14723..14726
9004 NAME@14723..14726
9005 IDENT@14723..14726 "std"
9006 DOT@14726..14727 "."
9007 NAME@14727..14731
9008 IDENT@14727..14731 "uniq"
9009 ARGS_DESC@14731..14758
9010 L_PAREN@14731..14732 "("
9011 ARG@14732..14751
9012 EXPR_APPLY@14732..14751
9013 EXPR_INDEX@14732..14740
9014 EXPR_VAR@14732..14735
9015 NAME@14732..14735
9016 IDENT@14732..14735 "std"
9017 DOT@14735..14736 "."
9018 NAME@14736..14740
9019 IDENT@14736..14740 "sort"
9020 ARGS_DESC@14740..14751
9021 L_PAREN@14740..14741 "("
9022 ARG@14741..14744
9023 EXPR_VAR@14741..14744
9024 NAME@14741..14744
9025 IDENT@14741..14744 "arr"
9026 COMMA@14744..14745 ","
9027 WHITESPACE@14745..14746 " "
9028 ARG@14746..14750
9029 EXPR_VAR@14746..14750
9030 NAME@14746..14750
9031 IDENT@14746..14750 "keyF"
9032 R_PAREN@14750..14751 ")"
9033 COMMA@14751..14752 ","
9034 WHITESPACE@14752..14753 " "
9035 ARG@14753..14757
9036 EXPR_VAR@14753..14757
9037 NAME@14753..14757
9038 IDENT@14753..14757 "keyF"
9039 R_PAREN@14757..14758 ")"
9040 COMMA@14758..14759 ","
9041 WHITESPACE@14759..14763 "\n\n "
9042 MEMBER_FIELD@14763..14898
9043 FIELD_METHOD@14763..14898
9044 FIELD_NAME_FIXED@14763..14772
9045 NAME@14763..14772
9046 IDENT@14763..14772 "setMember"
9047 PARAMS_DESC@14772..14789
9048 L_PAREN@14772..14773 "("
9049 PARAM@14773..14774
9050 DESTRUCT_FULL@14773..14774
9051 NAME@14773..14774
9052 IDENT@14773..14774 "x"
9053 COMMA@14774..14775 ","
9054 WHITESPACE@14775..14776 " "
9055 PARAM@14776..14779
9056 DESTRUCT_FULL@14776..14779
9057 NAME@14776..14779
9058 IDENT@14776..14779 "arr"
9059 COMMA@14779..14780 ","
9060 WHITESPACE@14780..14781 " "
9061 PARAM@14781..14788
9062 DESTRUCT_FULL@14781..14785
9063 NAME@14781..14785
9064 IDENT@14781..14785 "keyF"
9065 ASSIGN@14785..14786 "="
9066 EXPR_VAR@14786..14788
9067 NAME@14786..14788
9068 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..14898
9075 LHS_EXPR@14854..14894
9076 EXPR_APPLY@14854..14894
9077 EXPR_INDEX@14854..14864
9078 EXPR_VAR@14854..14857
9079 NAME@14854..14857
9080 IDENT@14854..14857 "std"
9081 DOT@14857..14858 "."
9082 NAME@14858..14864
9083 IDENT@14858..14864 "length"
9084 ARGS_DESC@14864..14894
9085 L_PAREN@14864..14865 "("
9086 ARG@14865..14893
9087 EXPR_APPLY@14865..14893
9088 EXPR_INDEX@14865..14877
9089 EXPR_VAR@14865..14868
9090 NAME@14865..14868
9091 IDENT@14865..14868 "std"
9092 DOT@14868..14869 "."
9093 NAME@14869..14877
9094 IDENT@14869..14877 "setInter"
9095 ARGS_DESC@14877..14893
9096 L_PAREN@14877..14878 "("
9097 ARG@14878..14881
9098 EXPR_ARRAY@14878..14881
9099 L_BRACK@14878..14879 "["
9100 EXPR_VAR@14879..14880
9101 NAME@14879..14880
9102 IDENT@14879..14880 "x"
9103 R_BRACK@14880..14881 "]"
9104 COMMA@14881..14882 ","
9105 WHITESPACE@14882..14883 " "
9106 ARG@14883..14886
9107 EXPR_VAR@14883..14886
9108 NAME@14883..14886
9109 IDENT@14883..14886 "arr"
9110 COMMA@14886..14887 ","
9111 WHITESPACE@14887..14888 " "
9112 ARG@14888..14892
9113 EXPR_VAR@14888..14892
9114 NAME@14888..14892
9115 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..14898
9122 FLOAT@14897..14898 "0"
9123 COMMA@14898..14899 ","
9124 WHITESPACE@14899..14903 "\n\n "
9125 MEMBER_FIELD@14903..15452
9126 FIELD_METHOD@14903..15452
9127 FIELD_NAME_FIXED@14903..14911
9128 NAME@14903..14911
9129 IDENT@14903..14911 "setUnion"
9130 PARAMS_DESC@14911..14926
9131 L_PAREN@14911..14912 "("
9132 PARAM@14912..14913
9133 DESTRUCT_FULL@14912..14913
9134 NAME@14912..14913
9135 IDENT@14912..14913 "a"
9136 COMMA@14913..14914 ","
9137 WHITESPACE@14914..14915 " "
9138 PARAM@14915..14916
9139 DESTRUCT_FULL@14915..14916
9140 NAME@14915..14916
9141 IDENT@14915..14916 "b"
9142 COMMA@14916..14917 ","
9143 WHITESPACE@14917..14918 " "
9144 PARAM@14918..14925
9145 DESTRUCT_FULL@14918..14922
9146 NAME@14918..14922
9147 IDENT@14918..14922 "keyF"
9148 ASSIGN@14922..14923 "="
9149 EXPR_VAR@14923..14925
9150 NAME@14923..14925
9151 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..15452
9158 LOCAL_KW@14979..14984 "local"
9159 WHITESPACE@14984..14985 " "
9160 BIND_FUNCTION@14985..15427
9161 NAME@14985..14988
9162 IDENT@14985..14988 "aux"
9163 PARAMS_DESC@14988..15005
9164 L_PAREN@14988..14989 "("
9165 PARAM@14989..14990
9166 DESTRUCT_FULL@14989..14990
9167 NAME@14989..14990
9168 IDENT@14989..14990 "a"
9169 COMMA@14990..14991 ","
9170 WHITESPACE@14991..14992 " "
9171 PARAM@14992..14993
9172 DESTRUCT_FULL@14992..14993
9173 NAME@14992..14993
9174 IDENT@14992..14993 "b"
9175 COMMA@14993..14994 ","
9176 WHITESPACE@14994..14995 " "
9177 PARAM@14995..14996
9178 DESTRUCT_FULL@14995..14996
9179 NAME@14995..14996
9180 IDENT@14995..14996 "i"
9181 COMMA@14996..14997 ","
9182 WHITESPACE@14997..14998 " "
9183 PARAM@14998..14999
9184 DESTRUCT_FULL@14998..14999
9185 NAME@14998..14999
9186 IDENT@14998..14999 "j"
9187 COMMA@14999..15000 ","
9188 WHITESPACE@15000..15001 " "
9189 PARAM@15001..15004
9190 DESTRUCT_FULL@15001..15004
9191 NAME@15001..15004
9192 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..15427
9198 IF_KW@15014..15016 "if"
9199 WHITESPACE@15016..15017 " "
9200 EXPR_BINARY@15017..15035
9201 LHS_EXPR@15017..15018
9202 EXPR_VAR@15017..15018
9203 NAME@15017..15018
9204 IDENT@15017..15018 "i"
9205 WHITESPACE@15018..15019 " "
9206 GE@15019..15021 ">="
9207 WHITESPACE@15021..15022 " "
9208 EXPR_APPLY@15022..15035
9209 EXPR_INDEX@15022..15032
9210 EXPR_VAR@15022..15025
9211 NAME@15022..15025
9212 IDENT@15022..15025 "std"
9213 DOT@15025..15026 "."
9214 NAME@15026..15032
9215 IDENT@15026..15032 "length"
9216 ARGS_DESC@15032..15035
9217 L_PAREN@15032..15033 "("
9218 ARG@15033..15034
9219 EXPR_VAR@15033..15034
9220 NAME@15033..15034
9221 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..15060
9227 EXPR_BINARY@15049..15060
9228 LHS_EXPR@15049..15052
9229 EXPR_VAR@15049..15052
9230 NAME@15049..15052
9231 IDENT@15049..15052 "acc"
9232 WHITESPACE@15052..15053 " "
9233 PLUS@15053..15054 "+"
9234 WHITESPACE@15054..15055 " "
9235 EXPR_SLICE@15055..15060
9236 EXPR_VAR@15055..15056
9237 NAME@15055..15056
9238 IDENT@15055..15056 "b"
9239 SLICE_DESC@15056..15060
9240 L_BRACK@15056..15057 "["
9241 EXPR_VAR@15057..15058
9242 NAME@15057..15058
9243 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..15427
9250 EXPR_IF_THEN_ELSE@15072..15427
9251 IF_KW@15072..15074 "if"
9252 WHITESPACE@15074..15075 " "
9253 EXPR_BINARY@15075..15093
9254 LHS_EXPR@15075..15076
9255 EXPR_VAR@15075..15076
9256 NAME@15075..15076
9257 IDENT@15075..15076 "j"
9258 WHITESPACE@15076..15077 " "
9259 GE@15077..15079 ">="
9260 WHITESPACE@15079..15080 " "
9261 EXPR_APPLY@15080..15093
9262 EXPR_INDEX@15080..15090
9263 EXPR_VAR@15080..15083
9264 NAME@15080..15083
9265 IDENT@15080..15083 "std"
9266 DOT@15083..15084 "."
9267 NAME@15084..15090
9268 IDENT@15084..15090 "length"
9269 ARGS_DESC@15090..15093
9270 L_PAREN@15090..15091 "("
9271 ARG@15091..15092
9272 EXPR_VAR@15091..15092
9273 NAME@15091..15092
9274 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..15118
9280 EXPR_BINARY@15107..15118
9281 LHS_EXPR@15107..15110
9282 EXPR_VAR@15107..15110
9283 NAME@15107..15110
9284 IDENT@15107..15110 "acc"
9285 WHITESPACE@15110..15111 " "
9286 PLUS@15111..15112 "+"
9287 WHITESPACE@15112..15113 " "
9288 EXPR_SLICE@15113..15118
9289 EXPR_VAR@15113..15114
9290 NAME@15113..15114
9291 IDENT@15113..15114 "a"
9292 SLICE_DESC@15114..15118
9293 L_BRACK@15114..15115 "["
9294 EXPR_VAR@15115..15116
9295 NAME@15115..15116
9296 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..15427
9303 EXPR_LOCAL@15138..15427
9304 LOCAL_KW@15138..15143 "local"
9305 WHITESPACE@15143..15144 " "
9306 BIND_DESTRUCT@15144..15159
9307 DESTRUCT_FULL@15144..15146
9308 NAME@15144..15146
9309 IDENT@15144..15146 "ak"
9310 WHITESPACE@15146..15147 " "
9311 ASSIGN@15147..15148 "="
9312 WHITESPACE@15148..15149 " "
9313 EXPR_APPLY@15149..15159
9314 EXPR_VAR@15149..15153
9315 NAME@15149..15153
9316 IDENT@15149..15153 "keyF"
9317 ARGS_DESC@15153..15159
9318 L_PAREN@15153..15154 "("
9319 ARG@15154..15158
9320 EXPR_INDEX_EXPR@15154..15158
9321 LHS_EXPR@15154..15155
9322 EXPR_VAR@15154..15155
9323 NAME@15154..15155
9324 IDENT@15154..15155 "a"
9325 L_BRACK@15155..15156 "["
9326 EXPR_VAR@15156..15157
9327 NAME@15156..15157
9328 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..15427
9334 LOCAL_KW@15169..15174 "local"
9335 WHITESPACE@15174..15175 " "
9336 BIND_DESTRUCT@15175..15190
9337 DESTRUCT_FULL@15175..15177
9338 NAME@15175..15177
9339 IDENT@15175..15177 "bk"
9340 WHITESPACE@15177..15178 " "
9341 ASSIGN@15178..15179 "="
9342 WHITESPACE@15179..15180 " "
9343 EXPR_APPLY@15180..15190
9344 EXPR_VAR@15180..15184
9345 NAME@15180..15184
9346 IDENT@15180..15184 "keyF"
9347 ARGS_DESC@15184..15190
9348 L_PAREN@15184..15185 "("
9349 ARG@15185..15189
9350 EXPR_INDEX_EXPR@15185..15189
9351 LHS_EXPR@15185..15186
9352 EXPR_VAR@15185..15186
9353 NAME@15185..15186
9354 IDENT@15185..15186 "b"
9355 L_BRACK@15186..15187 "["
9356 EXPR_VAR@15187..15188
9357 NAME@15187..15188
9358 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..15427
9364 IF_KW@15200..15202 "if"
9365 WHITESPACE@15202..15203 " "
9366 EXPR_BINARY@15203..15211
9367 LHS_EXPR@15203..15205
9368 EXPR_VAR@15203..15205
9369 NAME@15203..15205
9370 IDENT@15203..15205 "ak"
9371 WHITESPACE@15205..15206 " "
9372 EQ@15206..15208 "=="
9373 WHITESPACE@15208..15209 " "
9374 EXPR_VAR@15209..15211
9375 NAME@15209..15211
9376 IDENT@15209..15211 "bk"
9377 WHITESPACE@15211..15212 " "
9378 THEN_KW@15212..15216 "then"
9379 WHITESPACE@15216..15227 "\n "
9380 TRUE_EXPR@15227..15275
9381 EXPR_APPLY@15227..15275
9382 EXPR_VAR@15227..15230
9383 NAME@15227..15230
9384 IDENT@15227..15230 "aux"
9385 ARGS_DESC@15230..15275
9386 L_PAREN@15230..15231 "("
9387 ARG@15231..15232
9388 EXPR_VAR@15231..15232
9389 NAME@15231..15232
9390 IDENT@15231..15232 "a"
9391 COMMA@15232..15233 ","
9392 WHITESPACE@15233..15234 " "
9393 ARG@15234..15235
9394 EXPR_VAR@15234..15235
9395 NAME@15234..15235
9396 IDENT@15234..15235 "b"
9397 COMMA@15235..15236 ","
9398 WHITESPACE@15236..15237 " "
9399 ARG@15237..15242
9400 EXPR_BINARY@15237..15242
9401 LHS_EXPR@15237..15238
9402 EXPR_VAR@15237..15238
9403 NAME@15237..15238
9404 IDENT@15237..15238 "i"
9405 WHITESPACE@15238..15239 " "
9406 PLUS@15239..15240 "+"
9407 WHITESPACE@15240..15241 " "
9408 EXPR_NUMBER@15241..15242
9409 FLOAT@15241..15242 "1"
9410 COMMA@15242..15243 ","
9411 WHITESPACE@15243..15244 " "
9412 ARG@15244..15249
9413 EXPR_BINARY@15244..15249
9414 LHS_EXPR@15244..15245
9415 EXPR_VAR@15244..15245
9416 NAME@15244..15245
9417 IDENT@15244..15245 "j"
9418 WHITESPACE@15245..15246 " "
9419 PLUS@15246..15247 "+"
9420 WHITESPACE@15247..15248 " "
9421 EXPR_NUMBER@15248..15249
9422 FLOAT@15248..15249 "1"
9423 COMMA@15249..15250 ","
9424 WHITESPACE@15250..15251 " "
9425 ARG@15251..15263
9426 EXPR_BINARY@15251..15263
9427 LHS_EXPR@15251..15254
9428 EXPR_VAR@15251..15254
9429 NAME@15251..15254
9430 IDENT@15251..15254 "acc"
9431 WHITESPACE@15254..15255 " "
9432 PLUS@15255..15256 "+"
9433 WHITESPACE@15256..15257 " "
9434 EXPR_ARRAY@15257..15263
9435 L_BRACK@15257..15258 "["
9436 EXPR_INDEX_EXPR@15258..15262
9437 LHS_EXPR@15258..15259
9438 EXPR_VAR@15258..15259
9439 NAME@15258..15259
9440 IDENT@15258..15259 "a"
9441 L_BRACK@15259..15260 "["
9442 EXPR_VAR@15260..15261
9443 NAME@15260..15261
9444 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..15427
9454 EXPR_IF_THEN_ELSE@15289..15427
9455 IF_KW@15289..15291 "if"
9456 WHITESPACE@15291..15292 " "
9457 EXPR_BINARY@15292..15299
9458 LHS_EXPR@15292..15294
9459 EXPR_VAR@15292..15294
9460 NAME@15292..15294
9461 IDENT@15292..15294 "ak"
9462 WHITESPACE@15294..15295 " "
9463 LT@15295..15296 "<"
9464 WHITESPACE@15296..15297 " "
9465 EXPR_VAR@15297..15299
9466 NAME@15297..15299
9467 IDENT@15297..15299 "bk"
9468 WHITESPACE@15299..15300 " "
9469 THEN_KW@15300..15304 "then"
9470 WHITESPACE@15304..15315 "\n "
9471 TRUE_EXPR@15315..15359
9472 EXPR_APPLY@15315..15359
9473 EXPR_VAR@15315..15318
9474 NAME@15315..15318
9475 IDENT@15315..15318 "aux"
9476 ARGS_DESC@15318..15359
9477 L_PAREN@15318..15319 "("
9478 ARG@15319..15320
9479 EXPR_VAR@15319..15320
9480 NAME@15319..15320
9481 IDENT@15319..15320 "a"
9482 COMMA@15320..15321 ","
9483 WHITESPACE@15321..15322 " "
9484 ARG@15322..15323
9485 EXPR_VAR@15322..15323
9486 NAME@15322..15323
9487 IDENT@15322..15323 "b"
9488 COMMA@15323..15324 ","
9489 WHITESPACE@15324..15325 " "
9490 ARG@15325..15330
9491 EXPR_BINARY@15325..15330
9492 LHS_EXPR@15325..15326
9493 EXPR_VAR@15325..15326
9494 NAME@15325..15326
9495 IDENT@15325..15326 "i"
9496 WHITESPACE@15326..15327 " "
9497 PLUS@15327..15328 "+"
9498 WHITESPACE@15328..15329 " "
9499 EXPR_NUMBER@15329..15330
9500 FLOAT@15329..15330 "1"
9501 COMMA@15330..15331 ","
9502 WHITESPACE@15331..15332 " "
9503 ARG@15332..15333
9504 EXPR_VAR@15332..15333
9505 NAME@15332..15333
9506 IDENT@15332..15333 "j"
9507 COMMA@15333..15334 ","
9508 WHITESPACE@15334..15335 " "
9509 ARG@15335..15347
9510 EXPR_BINARY@15335..15347
9511 LHS_EXPR@15335..15338
9512 EXPR_VAR@15335..15338
9513 NAME@15335..15338
9514 IDENT@15335..15338 "acc"
9515 WHITESPACE@15338..15339 " "
9516 PLUS@15339..15340 "+"
9517 WHITESPACE@15340..15341 " "
9518 EXPR_ARRAY@15341..15347
9519 L_BRACK@15341..15342 "["
9520 EXPR_INDEX_EXPR@15342..15346
9521 LHS_EXPR@15342..15343
9522 EXPR_VAR@15342..15343
9523 NAME@15342..15343
9524 IDENT@15342..15343 "a"
9525 L_BRACK@15343..15344 "["
9526 EXPR_VAR@15344..15345
9527 NAME@15344..15345
9528 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..15427
9538 EXPR_APPLY@15383..15427
9539 EXPR_VAR@15383..15386
9540 NAME@15383..15386
9541 IDENT@15383..15386 "aux"
9542 ARGS_DESC@15386..15427
9543 L_PAREN@15386..15387 "("
9544 ARG@15387..15388
9545 EXPR_VAR@15387..15388
9546 NAME@15387..15388
9547 IDENT@15387..15388 "a"
9548 COMMA@15388..15389 ","
9549 WHITESPACE@15389..15390 " "
9550 ARG@15390..15391
9551 EXPR_VAR@15390..15391
9552 NAME@15390..15391
9553 IDENT@15390..15391 "b"
9554 COMMA@15391..15392 ","
9555 WHITESPACE@15392..15393 " "
9556 ARG@15393..15394
9557 EXPR_VAR@15393..15394
9558 NAME@15393..15394
9559 IDENT@15393..15394 "i"
9560 COMMA@15394..15395 ","
9561 WHITESPACE@15395..15396 " "
9562 ARG@15396..15401
9563 EXPR_BINARY@15396..15401
9564 LHS_EXPR@15396..15397
9565 EXPR_VAR@15396..15397
9566 NAME@15396..15397
9567 IDENT@15396..15397 "j"
9568 WHITESPACE@15397..15398 " "
9569 PLUS@15398..15399 "+"
9570 WHITESPACE@15399..15400 " "
9571 EXPR_NUMBER@15400..15401
9572 FLOAT@15400..15401 "1"
9573 COMMA@15401..15402 ","
9574 WHITESPACE@15402..15403 " "
9575 ARG@15403..15415
9576 EXPR_BINARY@15403..15415
9577 LHS_EXPR@15403..15406
9578 EXPR_VAR@15403..15406
9579 NAME@15403..15406
9580 IDENT@15403..15406 "acc"
9581 WHITESPACE@15406..15407 " "
9582 PLUS@15407..15408 "+"
9583 WHITESPACE@15408..15409 " "
9584 EXPR_ARRAY@15409..15415
9585 L_BRACK@15409..15410 "["
9586 EXPR_INDEX_EXPR@15410..15414
9587 LHS_EXPR@15410..15411
9588 EXPR_VAR@15410..15411
9589 NAME@15410..15411
9590 IDENT@15410..15411 "b"
9591 L_BRACK@15411..15412 "["
9592 EXPR_VAR@15412..15413
9593 NAME@15412..15413
9594 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..15452
9603 EXPR_VAR@15433..15436
9604 NAME@15433..15436
9605 IDENT@15433..15436 "aux"
9606 ARGS_DESC@15436..15452
9607 L_PAREN@15436..15437 "("
9608 ARG@15437..15438
9609 EXPR_VAR@15437..15438
9610 NAME@15437..15438
9611 IDENT@15437..15438 "a"
9612 COMMA@15438..15439 ","
9613 WHITESPACE@15439..15440 " "
9614 ARG@15440..15441
9615 EXPR_VAR@15440..15441
9616 NAME@15440..15441
9617 IDENT@15440..15441 "b"
9618 COMMA@15441..15442 ","
9619 WHITESPACE@15442..15443 " "
9620 ARG@15443..15444
9621 EXPR_NUMBER@15443..15444
9622 FLOAT@15443..15444 "0"
9623 COMMA@15444..15445 ","
9624 WHITESPACE@15445..15446 " "
9625 ARG@15446..15447
9626 EXPR_NUMBER@15446..15447
9627 FLOAT@15446..15447 "0"
9628 COMMA@15447..15448 ","
9629 WHITESPACE@15448..15449 " "
9630 ARG@15449..15451
9631 EXPR_ARRAY@15449..15451
9632 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..15879
9638 FIELD_METHOD@15457..15879
9639 FIELD_NAME_FIXED@15457..15465
9640 NAME@15457..15465
9641 IDENT@15457..15465 "setInter"
9642 PARAMS_DESC@15465..15480
9643 L_PAREN@15465..15466 "("
9644 PARAM@15466..15467
9645 DESTRUCT_FULL@15466..15467
9646 NAME@15466..15467
9647 IDENT@15466..15467 "a"
9648 COMMA@15467..15468 ","
9649 WHITESPACE@15468..15469 " "
9650 PARAM@15469..15470
9651 DESTRUCT_FULL@15469..15470
9652 NAME@15469..15470
9653 IDENT@15469..15470 "b"
9654 COMMA@15470..15471 ","
9655 WHITESPACE@15471..15472 " "
9656 PARAM@15472..15479
9657 DESTRUCT_FULL@15472..15476
9658 NAME@15472..15476
9659 IDENT@15472..15476 "keyF"
9660 ASSIGN@15476..15477 "="
9661 EXPR_VAR@15477..15479
9662 NAME@15477..15479
9663 IDENT@15477..15479 "id"
9664 R_PAREN@15479..15480 ")"
9665 COLONCOLON@15480..15482 "::"
9666 WHITESPACE@15482..15487 "\n "
9667 EXPR_LOCAL@15487..15879
9668 LOCAL_KW@15487..15492 "local"
9669 WHITESPACE@15492..15493 " "
9670 BIND_FUNCTION@15493..15843
9671 NAME@15493..15496
9672 IDENT@15493..15496 "aux"
9673 PARAMS_DESC@15496..15513
9674 L_PAREN@15496..15497 "("
9675 PARAM@15497..15498
9676 DESTRUCT_FULL@15497..15498
9677 NAME@15497..15498
9678 IDENT@15497..15498 "a"
9679 COMMA@15498..15499 ","
9680 WHITESPACE@15499..15500 " "
9681 PARAM@15500..15501
9682 DESTRUCT_FULL@15500..15501
9683 NAME@15500..15501
9684 IDENT@15500..15501 "b"
9685 COMMA@15501..15502 ","
9686 WHITESPACE@15502..15503 " "
9687 PARAM@15503..15504
9688 DESTRUCT_FULL@15503..15504
9689 NAME@15503..15504
9690 IDENT@15503..15504 "i"
9691 COMMA@15504..15505 ","
9692 WHITESPACE@15505..15506 " "
9693 PARAM@15506..15507
9694 DESTRUCT_FULL@15506..15507
9695 NAME@15506..15507
9696 IDENT@15506..15507 "j"
9697 COMMA@15507..15508 ","
9698 WHITESPACE@15508..15509 " "
9699 PARAM@15509..15512
9700 DESTRUCT_FULL@15509..15512
9701 NAME@15509..15512
9702 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..15843
9708 IF_KW@15522..15524 "if"
9709 WHITESPACE@15524..15525 " "
9710 EXPR_BINARY@15525..15565
9711 LHS_EXPR@15525..15543
9712 EXPR_BINARY@15525..15543
9713 LHS_EXPR@15525..15526
9714 EXPR_VAR@15525..15526
9715 NAME@15525..15526
9716 IDENT@15525..15526 "i"
9717 WHITESPACE@15526..15527 " "
9718 GE@15527..15529 ">="
9719 WHITESPACE@15529..15530 " "
9720 EXPR_APPLY@15530..15543
9721 EXPR_INDEX@15530..15540
9722 EXPR_VAR@15530..15533
9723 NAME@15530..15533
9724 IDENT@15530..15533 "std"
9725 DOT@15533..15534 "."
9726 NAME@15534..15540
9727 IDENT@15534..15540 "length"
9728 ARGS_DESC@15540..15543
9729 L_PAREN@15540..15541 "("
9730 ARG@15541..15542
9731 EXPR_VAR@15541..15542
9732 NAME@15541..15542
9733 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..15565
9739 LHS_EXPR@15547..15548
9740 EXPR_VAR@15547..15548
9741 NAME@15547..15548
9742 IDENT@15547..15548 "j"
9743 WHITESPACE@15548..15549 " "
9744 GE@15549..15551 ">="
9745 WHITESPACE@15551..15552 " "
9746 EXPR_APPLY@15552..15565
9747 EXPR_INDEX@15552..15562
9748 EXPR_VAR@15552..15555
9749 NAME@15552..15555
9750 IDENT@15552..15555 "std"
9751 DOT@15555..15556 "."
9752 NAME@15556..15562
9753 IDENT@15556..15562 "length"
9754 ARGS_DESC@15562..15565
9755 L_PAREN@15562..15563 "("
9756 ARG@15563..15564
9757 EXPR_VAR@15563..15564
9758 NAME@15563..15564
9759 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..15582
9765 EXPR_VAR@15579..15582
9766 NAME@15579..15582
9767 IDENT@15579..15582 "acc"
9768 WHITESPACE@15582..15589 "\n "
9769 ELSE_KW@15589..15593 "else"
9770 WHITESPACE@15593..15602 "\n "
9771 FALSE_EXPR@15602..15843
9772 EXPR_IF_THEN_ELSE@15602..15843
9773 IF_KW@15602..15604 "if"
9774 WHITESPACE@15604..15605 " "
9775 EXPR_BINARY@15605..15629
9776 LHS_EXPR@15605..15615
9777 EXPR_APPLY@15605..15615
9778 EXPR_VAR@15605..15609
9779 NAME@15605..15609
9780 IDENT@15605..15609 "keyF"
9781 ARGS_DESC@15609..15615
9782 L_PAREN@15609..15610 "("
9783 ARG@15610..15614
9784 EXPR_INDEX_EXPR@15610..15614
9785 LHS_EXPR@15610..15611
9786 EXPR_VAR@15610..15611
9787 NAME@15610..15611
9788 IDENT@15610..15611 "a"
9789 L_BRACK@15611..15612 "["
9790 EXPR_VAR@15612..15613
9791 NAME@15612..15613
9792 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..15629
9799 EXPR_VAR@15619..15623
9800 NAME@15619..15623
9801 IDENT@15619..15623 "keyF"
9802 ARGS_DESC@15623..15629
9803 L_PAREN@15623..15624 "("
9804 ARG@15624..15628
9805 EXPR_INDEX_EXPR@15624..15628
9806 LHS_EXPR@15624..15625
9807 EXPR_VAR@15624..15625
9808 NAME@15624..15625
9809 IDENT@15624..15625 "b"
9810 L_BRACK@15625..15626 "["
9811 EXPR_VAR@15626..15627
9812 NAME@15626..15627
9813 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..15693
9820 EXPR_APPLY@15645..15693
9821 EXPR_VAR@15645..15648
9822 NAME@15645..15648
9823 IDENT@15645..15648 "aux"
9824 ARGS_DESC@15648..15693
9825 L_PAREN@15648..15649 "("
9826 ARG@15649..15650
9827 EXPR_VAR@15649..15650
9828 NAME@15649..15650
9829 IDENT@15649..15650 "a"
9830 COMMA@15650..15651 ","
9831 WHITESPACE@15651..15652 " "
9832 ARG@15652..15653
9833 EXPR_VAR@15652..15653
9834 NAME@15652..15653
9835 IDENT@15652..15653 "b"
9836 COMMA@15653..15654 ","
9837 WHITESPACE@15654..15655 " "
9838 ARG@15655..15660
9839 EXPR_BINARY@15655..15660
9840 LHS_EXPR@15655..15656
9841 EXPR_VAR@15655..15656
9842 NAME@15655..15656
9843 IDENT@15655..15656 "i"
9844 WHITESPACE@15656..15657 " "
9845 PLUS@15657..15658 "+"
9846 WHITESPACE@15658..15659 " "
9847 EXPR_NUMBER@15659..15660
9848 FLOAT@15659..15660 "1"
9849 COMMA@15660..15661 ","
9850 WHITESPACE@15661..15662 " "
9851 ARG@15662..15667
9852 EXPR_BINARY@15662..15667
9853 LHS_EXPR@15662..15663
9854 EXPR_VAR@15662..15663
9855 NAME@15662..15663
9856 IDENT@15662..15663 "j"
9857 WHITESPACE@15663..15664 " "
9858 PLUS@15664..15665 "+"
9859 WHITESPACE@15665..15666 " "
9860 EXPR_NUMBER@15666..15667
9861 FLOAT@15666..15667 "1"
9862 COMMA@15667..15668 ","
9863 WHITESPACE@15668..15669 " "
9864 ARG@15669..15681
9865 EXPR_BINARY@15669..15681
9866 LHS_EXPR@15669..15672
9867 EXPR_VAR@15669..15672
9868 NAME@15669..15672
9869 IDENT@15669..15672 "acc"
9870 WHITESPACE@15672..15673 " "
9871 PLUS@15673..15674 "+"
9872 WHITESPACE@15674..15675 " "
9873 EXPR_ARRAY@15675..15681
9874 L_BRACK@15675..15676 "["
9875 EXPR_INDEX_EXPR@15676..15680
9876 LHS_EXPR@15676..15677
9877 EXPR_VAR@15676..15677
9878 NAME@15676..15677
9879 IDENT@15676..15677 "a"
9880 L_BRACK@15677..15678 "["
9881 EXPR_VAR@15678..15679
9882 NAME@15678..15679
9883 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..15843
9893 EXPR_IF_THEN_ELSE@15707..15843
9894 IF_KW@15707..15709 "if"
9895 WHITESPACE@15709..15710 " "
9896 EXPR_BINARY@15710..15733
9897 LHS_EXPR@15710..15720
9898 EXPR_APPLY@15710..15720
9899 EXPR_VAR@15710..15714
9900 NAME@15710..15714
9901 IDENT@15710..15714 "keyF"
9902 ARGS_DESC@15714..15720
9903 L_PAREN@15714..15715 "("
9904 ARG@15715..15719
9905 EXPR_INDEX_EXPR@15715..15719
9906 LHS_EXPR@15715..15716
9907 EXPR_VAR@15715..15716
9908 NAME@15715..15716
9909 IDENT@15715..15716 "a"
9910 L_BRACK@15716..15717 "["
9911 EXPR_VAR@15717..15718
9912 NAME@15717..15718
9913 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..15733
9920 EXPR_VAR@15723..15727
9921 NAME@15723..15727
9922 IDENT@15723..15727 "keyF"
9923 ARGS_DESC@15727..15733
9924 L_PAREN@15727..15728 "("
9925 ARG@15728..15732
9926 EXPR_INDEX_EXPR@15728..15732
9927 LHS_EXPR@15728..15729
9928 EXPR_VAR@15728..15729
9929 NAME@15728..15729
9930 IDENT@15728..15729 "b"
9931 L_BRACK@15729..15730 "["
9932 EXPR_VAR@15730..15731
9933 NAME@15730..15731
9934 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..15784
9941 EXPR_APPLY@15749..15784
9942 EXPR_VAR@15749..15752
9943 NAME@15749..15752
9944 IDENT@15749..15752 "aux"
9945 ARGS_DESC@15752..15784
9946 L_PAREN@15752..15753 "("
9947 ARG@15753..15754
9948 EXPR_VAR@15753..15754
9949 NAME@15753..15754
9950 IDENT@15753..15754 "a"
9951 COMMA@15754..15755 ","
9952 WHITESPACE@15755..15756 " "
9953 ARG@15756..15757
9954 EXPR_VAR@15756..15757
9955 NAME@15756..15757
9956 IDENT@15756..15757 "b"
9957 COMMA@15757..15758 ","
9958 WHITESPACE@15758..15759 " "
9959 ARG@15759..15764
9960 EXPR_BINARY@15759..15764
9961 LHS_EXPR@15759..15760
9962 EXPR_VAR@15759..15760
9963 NAME@15759..15760
9964 IDENT@15759..15760 "i"
9965 WHITESPACE@15760..15761 " "
9966 PLUS@15761..15762 "+"
9967 WHITESPACE@15762..15763 " "
9968 EXPR_NUMBER@15763..15764
9969 FLOAT@15763..15764 "1"
9970 COMMA@15764..15765 ","
9971 WHITESPACE@15765..15766 " "
9972 ARG@15766..15767
9973 EXPR_VAR@15766..15767
9974 NAME@15766..15767
9975 IDENT@15766..15767 "j"
9976 COMMA@15767..15768 ","
9977 WHITESPACE@15768..15769 " "
9978 ARG@15769..15772
9979 EXPR_VAR@15769..15772
9980 NAME@15769..15772
9981 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..15843
9989 EXPR_APPLY@15808..15843
9990 EXPR_VAR@15808..15811
9991 NAME@15808..15811
9992 IDENT@15808..15811 "aux"
9993 ARGS_DESC@15811..15843
9994 L_PAREN@15811..15812 "("
9995 ARG@15812..15813
9996 EXPR_VAR@15812..15813
9997 NAME@15812..15813
9998 IDENT@15812..15813 "a"
9999 COMMA@15813..15814 ","
10000 WHITESPACE@15814..15815 " "
10001 ARG@15815..15816
10002 EXPR_VAR@15815..15816
10003 NAME@15815..15816
10004 IDENT@15815..15816 "b"
10005 COMMA@15816..15817 ","
10006 WHITESPACE@15817..15818 " "
10007 ARG@15818..15819
10008 EXPR_VAR@15818..15819
10009 NAME@15818..15819
10010 IDENT@15818..15819 "i"
10011 COMMA@15819..15820 ","
10012 WHITESPACE@15820..15821 " "
10013 ARG@15821..15826
10014 EXPR_BINARY@15821..15826
10015 LHS_EXPR@15821..15822
10016 EXPR_VAR@15821..15822
10017 NAME@15821..15822
10018 IDENT@15821..15822 "j"
10019 WHITESPACE@15822..15823 " "
10020 PLUS@15823..15824 "+"
10021 WHITESPACE@15824..15825 " "
10022 EXPR_NUMBER@15825..15826
10023 FLOAT@15825..15826 "1"
10024 COMMA@15826..15827 ","
10025 WHITESPACE@15827..15828 " "
10026 ARG@15828..15831
10027 EXPR_VAR@15828..15831
10028 NAME@15828..15831
10029 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..15879
10036 EXPR_VAR@15849..15852
10037 NAME@15849..15852
10038 IDENT@15849..15852 "aux"
10039 ARGS_DESC@15852..15879
10040 L_PAREN@15852..15853 "("
10041 ARG@15853..15854
10042 EXPR_VAR@15853..15854
10043 NAME@15853..15854
10044 IDENT@15853..15854 "a"
10045 COMMA@15854..15855 ","
10046 WHITESPACE@15855..15856 " "
10047 ARG@15856..15857
10048 EXPR_VAR@15856..15857
10049 NAME@15856..15857
10050 IDENT@15856..15857 "b"
10051 COMMA@15857..15858 ","
10052 WHITESPACE@15858..15859 " "
10053 ARG@15859..15860
10054 EXPR_NUMBER@15859..15860
10055 FLOAT@15859..15860 "0"
10056 COMMA@15860..15861 ","
10057 WHITESPACE@15861..15862 " "
10058 ARG@15862..15863
10059 EXPR_NUMBER@15862..15863
10060 FLOAT@15862..15863 "0"
10061 COMMA@15863..15864 ","
10062 WHITESPACE@15864..15865 " "
10063 ARG@15865..15867
10064 EXPR_ARRAY@15865..15867
10065 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..16341
10073 FIELD_METHOD@15884..16341
10074 FIELD_NAME_FIXED@15884..15891
10075 NAME@15884..15891
10076 IDENT@15884..15891 "setDiff"
10077 PARAMS_DESC@15891..15906
10078 L_PAREN@15891..15892 "("
10079 PARAM@15892..15893
10080 DESTRUCT_FULL@15892..15893
10081 NAME@15892..15893
10082 IDENT@15892..15893 "a"
10083 COMMA@15893..15894 ","
10084 WHITESPACE@15894..15895 " "
10085 PARAM@15895..15896
10086 DESTRUCT_FULL@15895..15896
10087 NAME@15895..15896
10088 IDENT@15895..15896 "b"
10089 COMMA@15896..15897 ","
10090 WHITESPACE@15897..15898 " "
10091 PARAM@15898..15905
10092 DESTRUCT_FULL@15898..15902
10093 NAME@15898..15902
10094 IDENT@15898..15902 "keyF"
10095 ASSIGN@15902..15903 "="
10096 EXPR_VAR@15903..15905
10097 NAME@15903..15905
10098 IDENT@15903..15905 "id"
10099 R_PAREN@15905..15906 ")"
10100 COLONCOLON@15906..15908 "::"
10101 WHITESPACE@15908..15913 "\n "
10102 EXPR_LOCAL@15913..16341
10103 LOCAL_KW@15913..15918 "local"
10104 WHITESPACE@15918..15919 " "
10105 BIND_FUNCTION@15919..16305
10106 NAME@15919..15922
10107 IDENT@15919..15922 "aux"
10108 PARAMS_DESC@15922..15939
10109 L_PAREN@15922..15923 "("
10110 PARAM@15923..15924
10111 DESTRUCT_FULL@15923..15924
10112 NAME@15923..15924
10113 IDENT@15923..15924 "a"
10114 COMMA@15924..15925 ","
10115 WHITESPACE@15925..15926 " "
10116 PARAM@15926..15927
10117 DESTRUCT_FULL@15926..15927
10118 NAME@15926..15927
10119 IDENT@15926..15927 "b"
10120 COMMA@15927..15928 ","
10121 WHITESPACE@15928..15929 " "
10122 PARAM@15929..15930
10123 DESTRUCT_FULL@15929..15930
10124 NAME@15929..15930
10125 IDENT@15929..15930 "i"
10126 COMMA@15930..15931 ","
10127 WHITESPACE@15931..15932 " "
10128 PARAM@15932..15933
10129 DESTRUCT_FULL@15932..15933
10130 NAME@15932..15933
10131 IDENT@15932..15933 "j"
10132 COMMA@15933..15934 ","
10133 WHITESPACE@15934..15935 " "
10134 PARAM@15935..15938
10135 DESTRUCT_FULL@15935..15938
10136 NAME@15935..15938
10137 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..16305
10143 IF_KW@15948..15950 "if"
10144 WHITESPACE@15950..15951 " "
10145 EXPR_BINARY@15951..15969
10146 LHS_EXPR@15951..15952
10147 EXPR_VAR@15951..15952
10148 NAME@15951..15952
10149 IDENT@15951..15952 "i"
10150 WHITESPACE@15952..15953 " "
10151 GE@15953..15955 ">="
10152 WHITESPACE@15955..15956 " "
10153 EXPR_APPLY@15956..15969
10154 EXPR_INDEX@15956..15966
10155 EXPR_VAR@15956..15959
10156 NAME@15956..15959
10157 IDENT@15956..15959 "std"
10158 DOT@15959..15960 "."
10159 NAME@15960..15966
10160 IDENT@15960..15966 "length"
10161 ARGS_DESC@15966..15969
10162 L_PAREN@15966..15967 "("
10163 ARG@15967..15968
10164 EXPR_VAR@15967..15968
10165 NAME@15967..15968
10166 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..15986
10172 EXPR_VAR@15983..15986
10173 NAME@15983..15986
10174 IDENT@15983..15986 "acc"
10175 WHITESPACE@15986..15993 "\n "
10176 ELSE_KW@15993..15997 "else"
10177 WHITESPACE@15997..15998 " "
10178 FALSE_EXPR@15998..16305
10179 EXPR_IF_THEN_ELSE@15998..16305
10180 IF_KW@15998..16000 "if"
10181 WHITESPACE@16000..16001 " "
10182 EXPR_BINARY@16001..16019
10183 LHS_EXPR@16001..16002
10184 EXPR_VAR@16001..16002
10185 NAME@16001..16002
10186 IDENT@16001..16002 "j"
10187 WHITESPACE@16002..16003 " "
10188 GE@16003..16005 ">="
10189 WHITESPACE@16005..16006 " "
10190 EXPR_APPLY@16006..16019
10191 EXPR_INDEX@16006..16016
10192 EXPR_VAR@16006..16009
10193 NAME@16006..16009
10194 IDENT@16006..16009 "std"
10195 DOT@16009..16010 "."
10196 NAME@16010..16016
10197 IDENT@16010..16016 "length"
10198 ARGS_DESC@16016..16019
10199 L_PAREN@16016..16017 "("
10200 ARG@16017..16018
10201 EXPR_VAR@16017..16018
10202 NAME@16017..16018
10203 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..16044
10209 EXPR_BINARY@16033..16044
10210 LHS_EXPR@16033..16036
10211 EXPR_VAR@16033..16036
10212 NAME@16033..16036
10213 IDENT@16033..16036 "acc"
10214 WHITESPACE@16036..16037 " "
10215 PLUS@16037..16038 "+"
10216 WHITESPACE@16038..16039 " "
10217 EXPR_SLICE@16039..16044
10218 EXPR_VAR@16039..16040
10219 NAME@16039..16040
10220 IDENT@16039..16040 "a"
10221 SLICE_DESC@16040..16044
10222 L_BRACK@16040..16041 "["
10223 EXPR_VAR@16041..16042
10224 NAME@16041..16042
10225 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..16305
10232 EXPR_IF_THEN_ELSE@16064..16305
10233 IF_KW@16064..16066 "if"
10234 WHITESPACE@16066..16067 " "
10235 EXPR_BINARY@16067..16091
10236 LHS_EXPR@16067..16077
10237 EXPR_APPLY@16067..16077
10238 EXPR_VAR@16067..16071
10239 NAME@16067..16071
10240 IDENT@16067..16071 "keyF"
10241 ARGS_DESC@16071..16077
10242 L_PAREN@16071..16072 "("
10243 ARG@16072..16076
10244 EXPR_INDEX_EXPR@16072..16076
10245 LHS_EXPR@16072..16073
10246 EXPR_VAR@16072..16073
10247 NAME@16072..16073
10248 IDENT@16072..16073 "a"
10249 L_BRACK@16073..16074 "["
10250 EXPR_VAR@16074..16075
10251 NAME@16074..16075
10252 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..16091
10259 EXPR_VAR@16081..16085
10260 NAME@16081..16085
10261 IDENT@16081..16085 "keyF"
10262 ARGS_DESC@16085..16091
10263 L_PAREN@16085..16086 "("
10264 ARG@16086..16090
10265 EXPR_INDEX_EXPR@16086..16090
10266 LHS_EXPR@16086..16087
10267 EXPR_VAR@16086..16087
10268 NAME@16086..16087
10269 IDENT@16086..16087 "b"
10270 L_BRACK@16087..16088 "["
10271 EXPR_VAR@16088..16089
10272 NAME@16088..16089
10273 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..16146
10280 EXPR_APPLY@16107..16146
10281 EXPR_VAR@16107..16110
10282 NAME@16107..16110
10283 IDENT@16107..16110 "aux"
10284 ARGS_DESC@16110..16146
10285 L_PAREN@16110..16111 "("
10286 ARG@16111..16112
10287 EXPR_VAR@16111..16112
10288 NAME@16111..16112
10289 IDENT@16111..16112 "a"
10290 COMMA@16112..16113 ","
10291 WHITESPACE@16113..16114 " "
10292 ARG@16114..16115
10293 EXPR_VAR@16114..16115
10294 NAME@16114..16115
10295 IDENT@16114..16115 "b"
10296 COMMA@16115..16116 ","
10297 WHITESPACE@16116..16117 " "
10298 ARG@16117..16122
10299 EXPR_BINARY@16117..16122
10300 LHS_EXPR@16117..16118
10301 EXPR_VAR@16117..16118
10302 NAME@16117..16118
10303 IDENT@16117..16118 "i"
10304 WHITESPACE@16118..16119 " "
10305 PLUS@16119..16120 "+"
10306 WHITESPACE@16120..16121 " "
10307 EXPR_NUMBER@16121..16122
10308 FLOAT@16121..16122 "1"
10309 COMMA@16122..16123 ","
10310 WHITESPACE@16123..16124 " "
10311 ARG@16124..16129
10312 EXPR_BINARY@16124..16129
10313 LHS_EXPR@16124..16125
10314 EXPR_VAR@16124..16125
10315 NAME@16124..16125
10316 IDENT@16124..16125 "j"
10317 WHITESPACE@16125..16126 " "
10318 PLUS@16126..16127 "+"
10319 WHITESPACE@16127..16128 " "
10320 EXPR_NUMBER@16128..16129
10321 FLOAT@16128..16129 "1"
10322 COMMA@16129..16130 ","
10323 WHITESPACE@16130..16131 " "
10324 ARG@16131..16134
10325 EXPR_VAR@16131..16134
10326 NAME@16131..16134
10327 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..16305
10335 EXPR_IF_THEN_ELSE@16160..16305
10336 IF_KW@16160..16162 "if"
10337 WHITESPACE@16162..16163 " "
10338 EXPR_BINARY@16163..16186
10339 LHS_EXPR@16163..16173
10340 EXPR_APPLY@16163..16173
10341 EXPR_VAR@16163..16167
10342 NAME@16163..16167
10343 IDENT@16163..16167 "keyF"
10344 ARGS_DESC@16167..16173
10345 L_PAREN@16167..16168 "("
10346 ARG@16168..16172
10347 EXPR_INDEX_EXPR@16168..16172
10348 LHS_EXPR@16168..16169
10349 EXPR_VAR@16168..16169
10350 NAME@16168..16169
10351 IDENT@16168..16169 "a"
10352 L_BRACK@16169..16170 "["
10353 EXPR_VAR@16170..16171
10354 NAME@16170..16171
10355 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..16186
10362 EXPR_VAR@16176..16180
10363 NAME@16176..16180
10364 IDENT@16176..16180 "keyF"
10365 ARGS_DESC@16180..16186
10366 L_PAREN@16180..16181 "("
10367 ARG@16181..16185
10368 EXPR_INDEX_EXPR@16181..16185
10369 LHS_EXPR@16181..16182
10370 EXPR_VAR@16181..16182
10371 NAME@16181..16182
10372 IDENT@16181..16182 "b"
10373 L_BRACK@16182..16183 "["
10374 EXPR_VAR@16183..16184
10375 NAME@16183..16184
10376 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..16246
10383 EXPR_APPLY@16202..16246
10384 EXPR_VAR@16202..16205
10385 NAME@16202..16205
10386 IDENT@16202..16205 "aux"
10387 ARGS_DESC@16205..16246
10388 L_PAREN@16205..16206 "("
10389 ARG@16206..16207
10390 EXPR_VAR@16206..16207
10391 NAME@16206..16207
10392 IDENT@16206..16207 "a"
10393 COMMA@16207..16208 ","
10394 WHITESPACE@16208..16209 " "
10395 ARG@16209..16210
10396 EXPR_VAR@16209..16210
10397 NAME@16209..16210
10398 IDENT@16209..16210 "b"
10399 COMMA@16210..16211 ","
10400 WHITESPACE@16211..16212 " "
10401 ARG@16212..16217
10402 EXPR_BINARY@16212..16217
10403 LHS_EXPR@16212..16213
10404 EXPR_VAR@16212..16213
10405 NAME@16212..16213
10406 IDENT@16212..16213 "i"
10407 WHITESPACE@16213..16214 " "
10408 PLUS@16214..16215 "+"
10409 WHITESPACE@16215..16216 " "
10410 EXPR_NUMBER@16216..16217
10411 FLOAT@16216..16217 "1"
10412 COMMA@16217..16218 ","
10413 WHITESPACE@16218..16219 " "
10414 ARG@16219..16220
10415 EXPR_VAR@16219..16220
10416 NAME@16219..16220
10417 IDENT@16219..16220 "j"
10418 COMMA@16220..16221 ","
10419 WHITESPACE@16221..16222 " "
10420 ARG@16222..16234
10421 EXPR_BINARY@16222..16234
10422 LHS_EXPR@16222..16225
10423 EXPR_VAR@16222..16225
10424 NAME@16222..16225
10425 IDENT@16222..16225 "acc"
10426 WHITESPACE@16225..16226 " "
10427 PLUS@16226..16227 "+"
10428 WHITESPACE@16227..16228 " "
10429 EXPR_ARRAY@16228..16234
10430 L_BRACK@16228..16229 "["
10431 EXPR_INDEX_EXPR@16229..16233
10432 LHS_EXPR@16229..16230
10433 EXPR_VAR@16229..16230
10434 NAME@16229..16230
10435 IDENT@16229..16230 "a"
10436 L_BRACK@16230..16231 "["
10437 EXPR_VAR@16231..16232
10438 NAME@16231..16232
10439 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..16305
10449 EXPR_APPLY@16270..16305
10450 EXPR_VAR@16270..16273
10451 NAME@16270..16273
10452 IDENT@16270..16273 "aux"
10453 ARGS_DESC@16273..16305
10454 L_PAREN@16273..16274 "("
10455 ARG@16274..16275
10456 EXPR_VAR@16274..16275
10457 NAME@16274..16275
10458 IDENT@16274..16275 "a"
10459 COMMA@16275..16276 ","
10460 WHITESPACE@16276..16277 " "
10461 ARG@16277..16278
10462 EXPR_VAR@16277..16278
10463 NAME@16277..16278
10464 IDENT@16277..16278 "b"
10465 COMMA@16278..16279 ","
10466 WHITESPACE@16279..16280 " "
10467 ARG@16280..16281
10468 EXPR_VAR@16280..16281
10469 NAME@16280..16281
10470 IDENT@16280..16281 "i"
10471 COMMA@16281..16282 ","
10472 WHITESPACE@16282..16283 " "
10473 ARG@16283..16288
10474 EXPR_BINARY@16283..16288
10475 LHS_EXPR@16283..16284
10476 EXPR_VAR@16283..16284
10477 NAME@16283..16284
10478 IDENT@16283..16284 "j"
10479 WHITESPACE@16284..16285 " "
10480 PLUS@16285..16286 "+"
10481 WHITESPACE@16286..16287 " "
10482 EXPR_NUMBER@16287..16288
10483 FLOAT@16287..16288 "1"
10484 COMMA@16288..16289 ","
10485 WHITESPACE@16289..16290 " "
10486 ARG@16290..16293
10487 EXPR_VAR@16290..16293
10488 NAME@16290..16293
10489 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..16341
10496 EXPR_VAR@16311..16314
10497 NAME@16311..16314
10498 IDENT@16311..16314 "aux"
10499 ARGS_DESC@16314..16341
10500 L_PAREN@16314..16315 "("
10501 ARG@16315..16316
10502 EXPR_VAR@16315..16316
10503 NAME@16315..16316
10504 IDENT@16315..16316 "a"
10505 COMMA@16316..16317 ","
10506 WHITESPACE@16317..16318 " "
10507 ARG@16318..16319
10508 EXPR_VAR@16318..16319
10509 NAME@16318..16319
10510 IDENT@16318..16319 "b"
10511 COMMA@16319..16320 ","
10512 WHITESPACE@16320..16321 " "
10513 ARG@16321..16322
10514 EXPR_NUMBER@16321..16322
10515 FLOAT@16321..16322 "0"
10516 COMMA@16322..16323 ","
10517 WHITESPACE@16323..16324 " "
10518 ARG@16324..16325
10519 EXPR_NUMBER@16324..16325
10520 FLOAT@16324..16325 "0"
10521 COMMA@16325..16326 ","
10522 WHITESPACE@16326..16327 " "
10523 ARG@16327..16329
10524 EXPR_ARRAY@16327..16329
10525 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..17134
10533 FIELD_METHOD@16346..17134
10534 FIELD_NAME_FIXED@16346..16356
10535 NAME@16346..16356
10536 IDENT@16346..16356 "mergePatch"
10537 PARAMS_DESC@16356..16371
10538 L_PAREN@16356..16357 "("
10539 PARAM@16357..16363
10540 DESTRUCT_FULL@16357..16363
10541 NAME@16357..16363
10542 IDENT@16357..16363 "target"
10543 COMMA@16363..16364 ","
10544 WHITESPACE@16364..16365 " "
10545 PARAM@16365..16370
10546 DESTRUCT_FULL@16365..16370
10547 NAME@16365..16370
10548 IDENT@16365..16370 "patch"
10549 R_PAREN@16370..16371 ")"
10550 COLONCOLON@16371..16373 "::"
10551 WHITESPACE@16373..16378 "\n "
10552 EXPR_IF_THEN_ELSE@16378..17134
10553 IF_KW@16378..16380 "if"
10554 WHITESPACE@16380..16381 " "
10555 EXPR_APPLY@16381..16400
10556 EXPR_INDEX@16381..16393
10557 EXPR_VAR@16381..16384
10558 NAME@16381..16384
10559 IDENT@16381..16384 "std"
10560 DOT@16384..16385 "."
10561 NAME@16385..16393
10562 IDENT@16385..16393 "isObject"
10563 ARGS_DESC@16393..16400
10564 L_PAREN@16393..16394 "("
10565 ARG@16394..16399
10566 EXPR_VAR@16394..16399
10567 NAME@16394..16399
10568 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..17113
10574 EXPR_LOCAL@16412..17113
10575 LOCAL_KW@16412..16417 "local"
10576 WHITESPACE@16417..16418 " "
10577 BIND_DESTRUCT@16418..16485
10578 DESTRUCT_FULL@16418..16431
10579 NAME@16418..16431
10580 IDENT@16418..16431 "target_object"
10581 WHITESPACE@16431..16432 " "
10582 ASSIGN@16432..16433 "="
10583 WHITESPACE@16433..16442 "\n "
10584 EXPR_IF_THEN_ELSE@16442..16485
10585 IF_KW@16442..16444 "if"
10586 WHITESPACE@16444..16445 " "
10587 EXPR_APPLY@16445..16465
10588 EXPR_INDEX@16445..16457
10589 EXPR_VAR@16445..16448
10590 NAME@16445..16448
10591 IDENT@16445..16448 "std"
10592 DOT@16448..16449 "."
10593 NAME@16449..16457
10594 IDENT@16449..16457 "isObject"
10595 ARGS_DESC@16457..16465
10596 L_PAREN@16457..16458 "("
10597 ARG@16458..16464
10598 EXPR_VAR@16458..16464
10599 NAME@16458..16464
10600 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..16477
10606 EXPR_VAR@16471..16477
10607 NAME@16471..16477
10608 IDENT@16471..16477 "target"
10609 WHITESPACE@16477..16478 " "
10610 ELSE_KW@16478..16482 "else"
10611 WHITESPACE@16482..16483 " "
10612 FALSE_EXPR@16483..16485
10613 EXPR_OBJECT@16483..16485
10614 OBJ_BODY_MEMBER_LIST@16483..16485
10615 L_BRACE@16483..16484 "{"
10616 R_BRACE@16484..16485 "}"
10617 SEMI@16485..16486 ";"
10618 WHITESPACE@16486..16494 "\n\n "
10619 EXPR_LOCAL@16494..17113
10620 LOCAL_KW@16494..16499 "local"
10621 WHITESPACE@16499..16500 " "
10622 BIND_DESTRUCT@16500..16599
10623 DESTRUCT_FULL@16500..16513
10624 NAME@16500..16513
10625 IDENT@16500..16513 "target_fields"
10626 WHITESPACE@16513..16514 " "
10627 ASSIGN@16514..16515 "="
10628 WHITESPACE@16515..16524 "\n "
10629 EXPR_IF_THEN_ELSE@16524..16599
10630 IF_KW@16524..16526 "if"
10631 WHITESPACE@16526..16527 " "
10632 EXPR_APPLY@16527..16554
10633 EXPR_INDEX@16527..16539
10634 EXPR_VAR@16527..16530
10635 NAME@16527..16530
10636 IDENT@16527..16530 "std"
10637 DOT@16530..16531 "."
10638 NAME@16531..16539
10639 IDENT@16531..16539 "isObject"
10640 ARGS_DESC@16539..16554
10641 L_PAREN@16539..16540 "("
10642 ARG@16540..16553
10643 EXPR_VAR@16540..16553
10644 NAME@16540..16553
10645 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..16591
10651 EXPR_APPLY@16560..16591
10652 EXPR_INDEX@16560..16576
10653 EXPR_VAR@16560..16563
10654 NAME@16560..16563
10655 IDENT@16560..16563 "std"
10656 DOT@16563..16564 "."
10657 NAME@16564..16576
10658 IDENT@16564..16576 "objectFields"
10659 ARGS_DESC@16576..16591
10660 L_PAREN@16576..16577 "("
10661 ARG@16577..16590
10662 EXPR_VAR@16577..16590
10663 NAME@16577..16590
10664 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..16599
10670 EXPR_ARRAY@16597..16599
10671 L_BRACK@16597..16598 "["
10672 R_BRACK@16598..16599 "]"
10673 SEMI@16599..16600 ";"
10674 WHITESPACE@16600..16608 "\n\n "
10675 EXPR_LOCAL@16608..17113
10676 LOCAL_KW@16608..16613 "local"
10677 WHITESPACE@16613..16614 " "
10678 BIND_DESTRUCT@16614..16684
10679 DESTRUCT_FULL@16614..16625
10680 NAME@16614..16625
10681 IDENT@16614..16625 "null_fields"
10682 WHITESPACE@16625..16626 " "
10683 ASSIGN@16626..16627 "="
10684 WHITESPACE@16627..16628 " "
10685 EXPR_ARRAY_COMP@16628..16684
10686 L_BRACK@16628..16629 "["
10687 EXPR_VAR@16629..16630
10688 NAME@16629..16630
10689 IDENT@16629..16630 "k"
10690 WHITESPACE@16630..16631 " "
10691 FOR_SPEC@16631..16663
10692 FOR_KW@16631..16634 "for"
10693 WHITESPACE@16634..16635 " "
10694 NAME@16635..16636
10695 IDENT@16635..16636 "k"
10696 WHITESPACE@16636..16637 " "
10697 IN_KW@16637..16639 "in"
10698 WHITESPACE@16639..16640 " "
10699 EXPR_APPLY@16640..16663
10700 EXPR_INDEX@16640..16656
10701 EXPR_VAR@16640..16643
10702 NAME@16640..16643
10703 IDENT@16640..16643 "std"
10704 DOT@16643..16644 "."
10705 NAME@16644..16656
10706 IDENT@16644..16656 "objectFields"
10707 ARGS_DESC@16656..16663
10708 L_PAREN@16656..16657 "("
10709 ARG@16657..16662
10710 EXPR_VAR@16657..16662
10711 NAME@16657..16662
10712 IDENT@16657..16662 "patch"
10713 R_PAREN@16662..16663 ")"
10714 WHITESPACE@16663..16664 " "
10715 IF_SPEC@16664..16683
10716 IF_KW@16664..16666 "if"
10717 WHITESPACE@16666..16667 " "
10718 EXPR_BINARY@16667..16683
10719 LHS_EXPR@16667..16675
10720 EXPR_INDEX_EXPR@16667..16675
10721 LHS_EXPR@16667..16672
10722 EXPR_VAR@16667..16672
10723 NAME@16667..16672
10724 IDENT@16667..16672 "patch"
10725 L_BRACK@16672..16673 "["
10726 EXPR_VAR@16673..16674
10727 NAME@16673..16674
10728 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..16683
10734 NULL_KW@16679..16683 "null"
10735 R_BRACK@16683..16684 "]"
10736 SEMI@16684..16685 ";"
10737 WHITESPACE@16685..16692 "\n "
10738 EXPR_LOCAL@16692..17113
10739 LOCAL_KW@16692..16697 "local"
10740 WHITESPACE@16697..16698 " "
10741 BIND_DESTRUCT@16698..16764
10742 DESTRUCT_FULL@16698..16709
10743 NAME@16698..16709
10744 IDENT@16698..16709 "both_fields"
10745 WHITESPACE@16709..16710 " "
10746 ASSIGN@16710..16711 "="
10747 WHITESPACE@16711..16712 " "
10748 EXPR_APPLY@16712..16764
10749 EXPR_INDEX@16712..16724
10750 EXPR_VAR@16712..16715
10751 NAME@16712..16715
10752 IDENT@16712..16715 "std"
10753 DOT@16715..16716 "."
10754 NAME@16716..16724
10755 IDENT@16716..16724 "setUnion"
10756 ARGS_DESC@16724..16764
10757 L_PAREN@16724..16725 "("
10758 ARG@16725..16738
10759 EXPR_VAR@16725..16738
10760 NAME@16725..16738
10761 IDENT@16725..16738 "target_fields"
10762 COMMA@16738..16739 ","
10763 WHITESPACE@16739..16740 " "
10764 ARG@16740..16763
10765 EXPR_APPLY@16740..16763
10766 EXPR_INDEX@16740..16756
10767 EXPR_VAR@16740..16743
10768 NAME@16740..16743
10769 IDENT@16740..16743 "std"
10770 DOT@16743..16744 "."
10771 NAME@16744..16756
10772 IDENT@16744..16756 "objectFields"
10773 ARGS_DESC@16756..16763
10774 L_PAREN@16756..16757 "("
10775 ARG@16757..16762
10776 EXPR_VAR@16757..16762
10777 NAME@16757..16762
10778 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..17113
10784 OBJ_BODY_MEMBER_LIST@16773..17113
10785 L_BRACE@16773..16774 "{"
10786 WHITESPACE@16774..16783 "\n "
10787 MEMBER_FIELD@16783..17105
10788 FIELD_NORMAL@16783..17050
10789 FIELD_NAME_DYNAMIC@16783..16786
10790 L_BRACK@16783..16784 "["
10791 EXPR_VAR@16784..16785
10792 NAME@16784..16785
10793 IDENT@16784..16785 "k"
10794 R_BRACK@16785..16786 "]"
10795 COLON@16786..16787 ":"
10796 WHITESPACE@16787..16798 "\n "
10797 EXPR_IF_THEN_ELSE@16798..17050
10798 IF_KW@16798..16800 "if"
10799 WHITESPACE@16800..16801 " "
10800 EXPR_UNARY@16801..16825
10801 NOT@16801..16802 "!"
10802 EXPR_APPLY@16802..16825
10803 EXPR_INDEX@16802..16815
10804 EXPR_VAR@16802..16805
10805 NAME@16802..16805
10806 IDENT@16802..16805 "std"
10807 DOT@16805..16806 "."
10808 NAME@16806..16815
10809 IDENT@16806..16815 "objectHas"
10810 ARGS_DESC@16815..16825
10811 L_PAREN@16815..16816 "("
10812 ARG@16816..16821
10813 EXPR_VAR@16816..16821
10814 NAME@16816..16821
10815 IDENT@16816..16821 "patch"
10816 COMMA@16821..16822 ","
10817 WHITESPACE@16822..16823 " "
10818 ARG@16823..16824
10819 EXPR_VAR@16823..16824
10820 NAME@16823..16824
10821 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..16859
10827 EXPR_INDEX_EXPR@16843..16859
10828 LHS_EXPR@16843..16856
10829 EXPR_VAR@16843..16856
10830 NAME@16843..16856
10831 IDENT@16843..16856 "target_object"
10832 L_BRACK@16856..16857 "["
10833 EXPR_VAR@16857..16858
10834 NAME@16857..16858
10835 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..17050
10841 EXPR_IF_THEN_ELSE@16875..17050
10842 IF_KW@16875..16877 "if"
10843 WHITESPACE@16877..16878 " "
10844 EXPR_UNARY@16878..16910
10845 NOT@16878..16879 "!"
10846 EXPR_APPLY@16879..16910
10847 EXPR_INDEX@16879..16892
10848 EXPR_VAR@16879..16882
10849 NAME@16879..16882
10850 IDENT@16879..16882 "std"
10851 DOT@16882..16883 "."
10852 NAME@16883..16892
10853 IDENT@16883..16892 "objectHas"
10854 ARGS_DESC@16892..16910
10855 L_PAREN@16892..16893 "("
10856 ARG@16893..16906
10857 EXPR_VAR@16893..16906
10858 NAME@16893..16906
10859 IDENT@16893..16906 "target_object"
10860 COMMA@16906..16907 ","
10861 WHITESPACE@16907..16908 " "
10862 ARG@16908..16909
10863 EXPR_VAR@16908..16909
10864 NAME@16908..16909
10865 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..16969
10871 EXPR_APPLY@16928..16969
10872 EXPR_INDEX@16928..16942
10873 EXPR_VAR@16928..16931
10874 NAME@16928..16931
10875 IDENT@16928..16931 "std"
10876 DOT@16931..16932 "."
10877 NAME@16932..16942
10878 IDENT@16932..16942 "mergePatch"
10879 ARGS_DESC@16942..16969
10880 L_PAREN@16942..16943 "("
10881 ARG@16943..16947
10882 EXPR_LITERAL@16943..16947
10883 NULL_KW@16943..16947 "null"
10884 COMMA@16947..16948 ","
10885 WHITESPACE@16948..16949 " "
10886 ARG@16949..16957
10887 EXPR_INDEX_EXPR@16949..16957
10888 LHS_EXPR@16949..16954
10889 EXPR_VAR@16949..16954
10890 NAME@16949..16954
10891 IDENT@16949..16954 "patch"
10892 L_BRACK@16954..16955 "["
10893 EXPR_VAR@16955..16956
10894 NAME@16955..16956
10895 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..17050
10904 EXPR_APPLY@16997..17050
10905 EXPR_INDEX@16997..17011
10906 EXPR_VAR@16997..17000
10907 NAME@16997..17000
10908 IDENT@16997..17000 "std"
10909 DOT@17000..17001 "."
10910 NAME@17001..17011
10911 IDENT@17001..17011 "mergePatch"
10912 ARGS_DESC@17011..17050
10913 L_PAREN@17011..17012 "("
10914 ARG@17012..17028
10915 EXPR_INDEX_EXPR@17012..17028
10916 LHS_EXPR@17012..17025
10917 EXPR_VAR@17012..17025
10918 NAME@17012..17025
10919 IDENT@17012..17025 "target_object"
10920 L_BRACK@17025..17026 "["
10921 EXPR_VAR@17026..17027
10922 NAME@17026..17027
10923 IDENT@17026..17027 "k"
10924 R_BRACK@17027..17028 "]"
10925 COMMA@17028..17029 ","
10926 WHITESPACE@17029..17030 " "
10927 ARG@17030..17038
10928 EXPR_INDEX_EXPR@17030..17038
10929 LHS_EXPR@17030..17035
10930 EXPR_VAR@17030..17035
10931 NAME@17030..17035
10932 IDENT@17030..17035 "patch"
10933 L_BRACK@17035..17036 "["
10934 EXPR_VAR@17036..17037
10935 NAME@17036..17037
10936 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..17105
10943 FOR_KW@17059..17062 "for"
10944 WHITESPACE@17062..17063 " "
10945 NAME@17063..17064
10946 IDENT@17063..17064 "k"
10947 WHITESPACE@17064..17065 " "
10948 IN_KW@17065..17067 "in"
10949 WHITESPACE@17067..17068 " "
10950 EXPR_APPLY@17068..17105
10951 EXPR_INDEX@17068..17079
10952 EXPR_VAR@17068..17071
10953 NAME@17068..17071
10954 IDENT@17068..17071 "std"
10955 DOT@17071..17072 "."
10956 NAME@17072..17079
10957 IDENT@17072..17079 "setDiff"
10958 ARGS_DESC@17079..17105
10959 L_PAREN@17079..17080 "("
10960 ARG@17080..17091
10961 EXPR_VAR@17080..17091
10962 NAME@17080..17091
10963 IDENT@17080..17091 "both_fields"
10964 COMMA@17091..17092 ","
10965 WHITESPACE@17092..17093 " "
10966 ARG@17093..17104
10967 EXPR_VAR@17093..17104
10968 NAME@17093..17104
10969 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..17134
10977 EXPR_VAR@17129..17134
10978 NAME@17129..17134
10979 IDENT@17129..17134 "patch"
10980 COMMA@17134..17135 ","
10981 WHITESPACE@17135..17139 "\n\n "
10982 MEMBER_FIELD@17139..17249
10983 FIELD_METHOD@17139..17249
10984 FIELD_NAME_FIXED@17139..17142
10985 NAME@17139..17142
10986 IDENT@17139..17142 "get"
10987 PARAMS_DESC@17142..17183
10988 L_PAREN@17142..17143 "("
10989 PARAM@17143..17144
10990 DESTRUCT_FULL@17143..17144
10991 NAME@17143..17144
10992 IDENT@17143..17144 "o"
10993 COMMA@17144..17145 ","
10994 WHITESPACE@17145..17146 " "
10995 PARAM@17146..17147
10996 DESTRUCT_FULL@17146..17147
10997 NAME@17146..17147
10998 IDENT@17146..17147 "f"
10999 COMMA@17147..17148 ","
11000 WHITESPACE@17148..17149 " "
11001 PARAM@17149..17163
11002 DESTRUCT_FULL@17149..17156
11003 NAME@17149..17156
11004 IDENT@17149..17156 "default"
11005 WHITESPACE@17156..17157 " "
11006 ASSIGN@17157..17158 "="
11007 WHITESPACE@17158..17159 " "
11008 EXPR_LITERAL@17159..17163
11009 NULL_KW@17159..17163 "null"
11010 COMMA@17163..17164 ","
11011 WHITESPACE@17164..17165 " "
11012 PARAM@17165..17182
11013 DESTRUCT_FULL@17165..17175
11014 NAME@17165..17175
11015 IDENT@17165..17175 "inc_hidden"
11016 WHITESPACE@17175..17176 " "
11017 ASSIGN@17176..17177 "="
11018 WHITESPACE@17177..17178 " "
11019 EXPR_LITERAL@17178..17182
11020 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..17249
11025 IF_KW@17190..17192 "if"
11026 WHITESPACE@17192..17193 " "
11027 EXPR_APPLY@17193..17226
11028 EXPR_INDEX@17193..17208
11029 EXPR_VAR@17193..17196
11030 NAME@17193..17196
11031 IDENT@17193..17196 "std"
11032 DOT@17196..17197 "."
11033 NAME@17197..17208
11034 IDENT@17197..17208 "objectHasEx"
11035 ARGS_DESC@17208..17226
11036 L_PAREN@17208..17209 "("
11037 ARG@17209..17210
11038 EXPR_VAR@17209..17210
11039 NAME@17209..17210
11040 IDENT@17209..17210 "o"
11041 COMMA@17210..17211 ","
11042 WHITESPACE@17211..17212 " "
11043 ARG@17212..17213
11044 EXPR_VAR@17212..17213
11045 NAME@17212..17213
11046 IDENT@17212..17213 "f"
11047 COMMA@17213..17214 ","
11048 WHITESPACE@17214..17215 " "
11049 ARG@17215..17225
11050 EXPR_VAR@17215..17225
11051 NAME@17215..17225
11052 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..17236
11058 EXPR_INDEX_EXPR@17232..17236
11059 LHS_EXPR@17232..17233
11060 EXPR_VAR@17232..17233
11061 NAME@17232..17233
11062 IDENT@17232..17233 "o"
11063 L_BRACK@17233..17234 "["
11064 EXPR_VAR@17234..17235
11065 NAME@17234..17235
11066 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..17249
11072 EXPR_VAR@17242..17249
11073 NAME@17242..17249
11074 IDENT@17242..17249 "default"
11075 COMMA@17249..17250 ","
11076 WHITESPACE@17250..17254 "\n\n "
11077 MEMBER_FIELD@17254..17304
11078 FIELD_METHOD@17254..17304
11079 FIELD_NAME_FIXED@17254..17266
11080 NAME@17254..17266
11081 IDENT@17254..17266 "objectFields"
11082 PARAMS_DESC@17266..17269
11083 L_PAREN@17266..17267 "("
11084 PARAM@17267..17268
11085 DESTRUCT_FULL@17267..17268
11086 NAME@17267..17268
11087 IDENT@17267..17268 "o"
11088 R_PAREN@17268..17269 ")"
11089 COLONCOLON@17269..17271 "::"
11090 WHITESPACE@17271..17276 "\n "
11091 EXPR_APPLY@17276..17304
11092 EXPR_INDEX@17276..17294
11093 EXPR_VAR@17276..17279
11094 NAME@17276..17279
11095 IDENT@17276..17279 "std"
11096 DOT@17279..17280 "."
11097 NAME@17280..17294
11098 IDENT@17280..17294 "objectFieldsEx"
11099 ARGS_DESC@17294..17304
11100 L_PAREN@17294..17295 "("
11101 ARG@17295..17296
11102 EXPR_VAR@17295..17296
11103 NAME@17295..17296
11104 IDENT@17295..17296 "o"
11105 COMMA@17296..17297 ","
11106 WHITESPACE@17297..17298 " "
11107 ARG@17298..17303
11108 EXPR_LITERAL@17298..17303
11109 FALSE_KW@17298..17303 "false"
11110 R_PAREN@17303..17304 ")"
11111 COMMA@17304..17305 ","
11112 WHITESPACE@17305..17309 "\n\n "
11113 MEMBER_FIELD@17309..17361
11114 FIELD_METHOD@17309..17361
11115 FIELD_NAME_FIXED@17309..17324
11116 NAME@17309..17324
11117 IDENT@17309..17324 "objectFieldsAll"
11118 PARAMS_DESC@17324..17327
11119 L_PAREN@17324..17325 "("
11120 PARAM@17325..17326
11121 DESTRUCT_FULL@17325..17326
11122 NAME@17325..17326
11123 IDENT@17325..17326 "o"
11124 R_PAREN@17326..17327 ")"
11125 COLONCOLON@17327..17329 "::"
11126 WHITESPACE@17329..17334 "\n "
11127 EXPR_APPLY@17334..17361
11128 EXPR_INDEX@17334..17352
11129 EXPR_VAR@17334..17337
11130 NAME@17334..17337
11131 IDENT@17334..17337 "std"
11132 DOT@17337..17338 "."
11133 NAME@17338..17352
11134 IDENT@17338..17352 "objectFieldsEx"
11135 ARGS_DESC@17352..17361
11136 L_PAREN@17352..17353 "("
11137 ARG@17353..17354
11138 EXPR_VAR@17353..17354
11139 NAME@17353..17354
11140 IDENT@17353..17354 "o"
11141 COMMA@17354..17355 ","
11142 WHITESPACE@17355..17356 " "
11143 ARG@17356..17360
11144 EXPR_LITERAL@17356..17360
11145 TRUE_KW@17356..17360 "true"
11146 R_PAREN@17360..17361 ")"
11147 COMMA@17361..17362 ","
11148 WHITESPACE@17362..17366 "\n\n "
11149 MEMBER_FIELD@17366..17416
11150 FIELD_METHOD@17366..17416
11151 FIELD_NAME_FIXED@17366..17375
11152 NAME@17366..17375
11153 IDENT@17366..17375 "objectHas"
11154 PARAMS_DESC@17375..17381
11155 L_PAREN@17375..17376 "("
11156 PARAM@17376..17377
11157 DESTRUCT_FULL@17376..17377
11158 NAME@17376..17377
11159 IDENT@17376..17377 "o"
11160 COMMA@17377..17378 ","
11161 WHITESPACE@17378..17379 " "
11162 PARAM@17379..17380
11163 DESTRUCT_FULL@17379..17380
11164 NAME@17379..17380
11165 IDENT@17379..17380 "f"
11166 R_PAREN@17380..17381 ")"
11167 COLONCOLON@17381..17383 "::"
11168 WHITESPACE@17383..17388 "\n "
11169 EXPR_APPLY@17388..17416
11170 EXPR_INDEX@17388..17403
11171 EXPR_VAR@17388..17391
11172 NAME@17388..17391
11173 IDENT@17388..17391 "std"
11174 DOT@17391..17392 "."
11175 NAME@17392..17403
11176 IDENT@17392..17403 "objectHasEx"
11177 ARGS_DESC@17403..17416
11178 L_PAREN@17403..17404 "("
11179 ARG@17404..17405
11180 EXPR_VAR@17404..17405
11181 NAME@17404..17405
11182 IDENT@17404..17405 "o"
11183 COMMA@17405..17406 ","
11184 WHITESPACE@17406..17407 " "
11185 ARG@17407..17408
11186 EXPR_VAR@17407..17408
11187 NAME@17407..17408
11188 IDENT@17407..17408 "f"
11189 COMMA@17408..17409 ","
11190 WHITESPACE@17409..17410 " "
11191 ARG@17410..17415
11192 EXPR_LITERAL@17410..17415
11193 FALSE_KW@17410..17415 "false"
11194 R_PAREN@17415..17416 ")"
11195 COMMA@17416..17417 ","
11196 WHITESPACE@17417..17421 "\n\n "
11197 MEMBER_FIELD@17421..17473
11198 FIELD_METHOD@17421..17473
11199 FIELD_NAME_FIXED@17421..17433
11200 NAME@17421..17433
11201 IDENT@17421..17433 "objectHasAll"
11202 PARAMS_DESC@17433..17439
11203 L_PAREN@17433..17434 "("
11204 PARAM@17434..17435
11205 DESTRUCT_FULL@17434..17435
11206 NAME@17434..17435
11207 IDENT@17434..17435 "o"
11208 COMMA@17435..17436 ","
11209 WHITESPACE@17436..17437 " "
11210 PARAM@17437..17438
11211 DESTRUCT_FULL@17437..17438
11212 NAME@17437..17438
11213 IDENT@17437..17438 "f"
11214 R_PAREN@17438..17439 ")"
11215 COLONCOLON@17439..17441 "::"
11216 WHITESPACE@17441..17446 "\n "
11217 EXPR_APPLY@17446..17473
11218 EXPR_INDEX@17446..17461
11219 EXPR_VAR@17446..17449
11220 NAME@17446..17449
11221 IDENT@17446..17449 "std"
11222 DOT@17449..17450 "."
11223 NAME@17450..17461
11224 IDENT@17450..17461 "objectHasEx"
11225 ARGS_DESC@17461..17473
11226 L_PAREN@17461..17462 "("
11227 ARG@17462..17463
11228 EXPR_VAR@17462..17463
11229 NAME@17462..17463
11230 IDENT@17462..17463 "o"
11231 COMMA@17463..17464 ","
11232 WHITESPACE@17464..17465 " "
11233 ARG@17465..17466
11234 EXPR_VAR@17465..17466
11235 NAME@17465..17466
11236 IDENT@17465..17466 "f"
11237 COMMA@17466..17467 ","
11238 WHITESPACE@17467..17468 " "
11239 ARG@17468..17472
11240 EXPR_LITERAL@17468..17472
11241 TRUE_KW@17468..17472 "true"
11242 R_PAREN@17472..17473 ")"
11243 COMMA@17473..17474 ","
11244 WHITESPACE@17474..17478 "\n\n "
11245 MEMBER_FIELD@17478..17535
11246 FIELD_METHOD@17478..17535
11247 FIELD_NAME_FIXED@17478..17490
11248 NAME@17478..17490
11249 IDENT@17478..17490 "objectValues"
11250 PARAMS_DESC@17490..17493
11251 L_PAREN@17490..17491 "("
11252 PARAM@17491..17492
11253 DESTRUCT_FULL@17491..17492
11254 NAME@17491..17492
11255 IDENT@17491..17492 "o"
11256 R_PAREN@17492..17493 ")"
11257 COLONCOLON@17493..17495 "::"
11258 WHITESPACE@17495..17500 "\n "
11259 EXPR_ARRAY_COMP@17500..17535
11260 L_BRACK@17500..17501 "["
11261 EXPR_INDEX_EXPR@17501..17505
11262 LHS_EXPR@17501..17502
11263 EXPR_VAR@17501..17502
11264 NAME@17501..17502
11265 IDENT@17501..17502 "o"
11266 L_BRACK@17502..17503 "["
11267 EXPR_VAR@17503..17504
11268 NAME@17503..17504
11269 IDENT@17503..17504 "k"
11270 R_BRACK@17504..17505 "]"
11271 WHITESPACE@17505..17506 " "
11272 FOR_SPEC@17506..17534
11273 FOR_KW@17506..17509 "for"
11274 WHITESPACE@17509..17510 " "
11275 NAME@17510..17511
11276 IDENT@17510..17511 "k"
11277 WHITESPACE@17511..17512 " "
11278 IN_KW@17512..17514 "in"
11279 WHITESPACE@17514..17515 " "
11280 EXPR_APPLY@17515..17534
11281 EXPR_INDEX@17515..17531
11282 EXPR_VAR@17515..17518
11283 NAME@17515..17518
11284 IDENT@17515..17518 "std"
11285 DOT@17518..17519 "."
11286 NAME@17519..17531
11287 IDENT@17519..17531 "objectFields"
11288 ARGS_DESC@17531..17534
11289 L_PAREN@17531..17532 "("
11290 ARG@17532..17533
11291 EXPR_VAR@17532..17533
11292 NAME@17532..17533
11293 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..17603
11299 FIELD_METHOD@17540..17603
11300 FIELD_NAME_FIXED@17540..17555
11301 NAME@17540..17555
11302 IDENT@17540..17555 "objectValuesAll"
11303 PARAMS_DESC@17555..17558
11304 L_PAREN@17555..17556 "("
11305 PARAM@17556..17557
11306 DESTRUCT_FULL@17556..17557
11307 NAME@17556..17557
11308 IDENT@17556..17557 "o"
11309 R_PAREN@17557..17558 ")"
11310 COLONCOLON@17558..17560 "::"
11311 WHITESPACE@17560..17565 "\n "
11312 EXPR_ARRAY_COMP@17565..17603
11313 L_BRACK@17565..17566 "["
11314 EXPR_INDEX_EXPR@17566..17570
11315 LHS_EXPR@17566..17567
11316 EXPR_VAR@17566..17567
11317 NAME@17566..17567
11318 IDENT@17566..17567 "o"
11319 L_BRACK@17567..17568 "["
11320 EXPR_VAR@17568..17569
11321 NAME@17568..17569
11322 IDENT@17568..17569 "k"
11323 R_BRACK@17569..17570 "]"
11324 WHITESPACE@17570..17571 " "
11325 FOR_SPEC@17571..17602
11326 FOR_KW@17571..17574 "for"
11327 WHITESPACE@17574..17575 " "
11328 NAME@17575..17576
11329 IDENT@17575..17576 "k"
11330 WHITESPACE@17576..17577 " "
11331 IN_KW@17577..17579 "in"
11332 WHITESPACE@17579..17580 " "
11333 EXPR_APPLY@17580..17602
11334 EXPR_INDEX@17580..17599
11335 EXPR_VAR@17580..17583
11336 NAME@17580..17583
11337 IDENT@17580..17583 "std"
11338 DOT@17583..17584 "."
11339 NAME@17584..17599
11340 IDENT@17584..17599 "objectFieldsAll"
11341 ARGS_DESC@17599..17602
11342 L_PAREN@17599..17600 "("
11343 ARG@17600..17601
11344 EXPR_VAR@17600..17601
11345 NAME@17600..17601
11346 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..17635
11352 FIELD_NORMAL@17608..17635
11353 FIELD_NAME_FIXED@17608..17614
11354 NAME@17608..17614
11355 IDENT@17608..17614 "equals"
11356 COLONCOLON@17614..17616 "::"
11357 WHITESPACE@17616..17617 " "
11358 EXPR_INTRINSIC@17617..17635
11359 INTRINSIC@17617..17627 "$intrinsic"
11360 L_PAREN@17627..17628 "("
11361 NAME@17628..17634
11362 IDENT@17628..17634 "equals"
11363 R_PAREN@17634..17635 ")"
11364 COMMA@17635..17636 ","
11365 WHITESPACE@17636..17640 "\n\n "
11366 MEMBER_FIELD@17640..17774
11367 FIELD_METHOD@17640..17774
11368 FIELD_NAME_FIXED@17640..17651
11369 NAME@17640..17651
11370 IDENT@17640..17651 "resolvePath"
11371 PARAMS_DESC@17651..17657
11372 L_PAREN@17651..17652 "("
11373 PARAM@17652..17653
11374 DESTRUCT_FULL@17652..17653
11375 NAME@17652..17653
11376 IDENT@17652..17653 "f"
11377 COMMA@17653..17654 ","
11378 WHITESPACE@17654..17655 " "
11379 PARAM@17655..17656
11380 DESTRUCT_FULL@17655..17656
11381 NAME@17655..17656
11382 IDENT@17655..17656 "r"
11383 R_PAREN@17656..17657 ")"
11384 COLONCOLON@17657..17659 "::"
11385 WHITESPACE@17659..17664 "\n "
11386 EXPR_LOCAL@17664..17774
11387 LOCAL_KW@17664..17669 "local"
11388 WHITESPACE@17669..17670 " "
11389 BIND_DESTRUCT@17670..17693
11390 DESTRUCT_FULL@17670..17673
11391 NAME@17670..17673
11392 IDENT@17670..17673 "arr"
11393 WHITESPACE@17673..17674 " "
11394 ASSIGN@17674..17675 "="
11395 WHITESPACE@17675..17676 " "
11396 EXPR_APPLY@17676..17693
11397 EXPR_INDEX@17676..17685
11398 EXPR_VAR@17676..17679
11399 NAME@17676..17679
11400 IDENT@17676..17679 "std"
11401 DOT@17679..17680 "."
11402 NAME@17680..17685
11403 IDENT@17680..17685 "split"
11404 ARGS_DESC@17685..17693
11405 L_PAREN@17685..17686 "("
11406 ARG@17686..17687
11407 EXPR_VAR@17686..17687
11408 NAME@17686..17687
11409 IDENT@17686..17687 "f"
11410 COMMA@17687..17688 ","
11411 WHITESPACE@17688..17689 " "
11412 ARG@17689..17692
11413 EXPR_STRING@17689..17692
11414 STRING_SINGLE@17689..17692 "'/'"
11415 R_PAREN@17692..17693 ")"
11416 SEMI@17693..17694 ";"
11417 WHITESPACE@17694..17699 "\n "
11418 EXPR_APPLY@17699..17774
11419 EXPR_INDEX@17699..17707
11420 EXPR_VAR@17699..17702
11421 NAME@17699..17702
11422 IDENT@17699..17702 "std"
11423 DOT@17702..17703 "."
11424 NAME@17703..17707
11425 IDENT@17703..17707 "join"
11426 ARGS_DESC@17707..17774
11427 L_PAREN@17707..17708 "("
11428 ARG@17708..17711
11429 EXPR_STRING@17708..17711
11430 STRING_SINGLE@17708..17711 "'/'"
11431 COMMA@17711..17712 ","
11432 WHITESPACE@17712..17713 " "
11433 ARG@17713..17773
11434 EXPR_BINARY@17713..17773
11435 LHS_EXPR@17713..17767
11436 EXPR_APPLY@17713..17767
11437 EXPR_INDEX@17713..17726
11438 EXPR_VAR@17713..17716
11439 NAME@17713..17716
11440 IDENT@17713..17716 "std"
11441 DOT@17716..17717 "."
11442 NAME@17717..17726
11443 IDENT@17717..17726 "makeArray"
11444 ARGS_DESC@17726..17767
11445 L_PAREN@17726..17727 "("
11446 ARG@17727..17746
11447 EXPR_BINARY@17727..17746
11448 LHS_EXPR@17727..17742
11449 EXPR_APPLY@17727..17742
11450 EXPR_INDEX@17727..17737
11451 EXPR_VAR@17727..17730
11452 NAME@17727..17730
11453 IDENT@17727..17730 "std"
11454 DOT@17730..17731 "."
11455 NAME@17731..17737
11456 IDENT@17731..17737 "length"
11457 ARGS_DESC@17737..17742
11458 L_PAREN@17737..17738 "("
11459 ARG@17738..17741
11460 EXPR_VAR@17738..17741
11461 NAME@17738..17741
11462 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..17746
11468 FLOAT@17745..17746 "1"
11469 COMMA@17746..17747 ","
11470 WHITESPACE@17747..17748 " "
11471 ARG@17748..17766
11472 EXPR_FUNCTION@17748..17766
11473 FUNCTION_KW@17748..17756 "function"
11474 PARAMS_DESC@17756..17759
11475 L_PAREN@17756..17757 "("
11476 PARAM@17757..17758
11477 DESTRUCT_FULL@17757..17758
11478 NAME@17757..17758
11479 IDENT@17757..17758 "i"
11480 R_PAREN@17758..17759 ")"
11481 WHITESPACE@17759..17760 " "
11482 EXPR_INDEX_EXPR@17760..17766
11483 LHS_EXPR@17760..17763
11484 EXPR_VAR@17760..17763
11485 NAME@17760..17763
11486 IDENT@17760..17763 "arr"
11487 L_BRACK@17763..17764 "["
11488 EXPR_VAR@17764..17765
11489 NAME@17764..17765
11490 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..17773
11497 L_BRACK@17770..17771 "["
11498 EXPR_VAR@17771..17772
11499 NAME@17771..17772
11500 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..18232
11506 FIELD_METHOD@17779..18232
11507 FIELD_NAME_FIXED@17779..17784
11508 NAME@17779..17784
11509 IDENT@17779..17784 "prune"
11510 PARAMS_DESC@17784..17787
11511 L_PAREN@17784..17785 "("
11512 PARAM@17785..17786
11513 DESTRUCT_FULL@17785..17786
11514 NAME@17785..17786
11515 IDENT@17785..17786 "a"
11516 R_PAREN@17786..17787 ")"
11517 COLONCOLON@17787..17789 "::"
11518 WHITESPACE@17789..17794 "\n "
11519 EXPR_LOCAL@17794..18232
11520 LOCAL_KW@17794..17799 "local"
11521 WHITESPACE@17799..17800 " "
11522 BIND_FUNCTION@17800..17997
11523 NAME@17800..17809
11524 IDENT@17800..17809 "isContent"
11525 PARAMS_DESC@17809..17812
11526 L_PAREN@17809..17810 "("
11527 PARAM@17810..17811
11528 DESTRUCT_FULL@17810..17811
11529 NAME@17810..17811
11530 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..17997
11536 IF_KW@17821..17823 "if"
11537 WHITESPACE@17823..17824 " "
11538 EXPR_BINARY@17824..17833
11539 LHS_EXPR@17824..17825
11540 EXPR_VAR@17824..17825
11541 NAME@17824..17825
11542 IDENT@17824..17825 "b"
11543 WHITESPACE@17825..17826 " "
11544 EQ@17826..17828 "=="
11545 WHITESPACE@17828..17829 " "
11546 EXPR_LITERAL@17829..17833
11547 NULL_KW@17829..17833 "null"
11548 WHITESPACE@17833..17834 " "
11549 THEN_KW@17834..17838 "then"
11550 WHITESPACE@17838..17847 "\n "
11551 TRUE_EXPR@17847..17852
11552 EXPR_LITERAL@17847..17852
11553 FALSE_KW@17847..17852 "false"
11554 WHITESPACE@17852..17859 "\n "
11555 ELSE_KW@17859..17863 "else"
11556 WHITESPACE@17863..17864 " "
11557 FALSE_EXPR@17864..17997
11558 EXPR_IF_THEN_ELSE@17864..17997
11559 IF_KW@17864..17866 "if"
11560 WHITESPACE@17866..17867 " "
11561 EXPR_APPLY@17867..17881
11562 EXPR_INDEX@17867..17878
11563 EXPR_VAR@17867..17870
11564 NAME@17867..17870
11565 IDENT@17867..17870 "std"
11566 DOT@17870..17871 "."
11567 NAME@17871..17878
11568 IDENT@17871..17878 "isArray"
11569 ARGS_DESC@17878..17881
11570 L_PAREN@17878..17879 "("
11571 ARG@17879..17880
11572 EXPR_VAR@17879..17880
11573 NAME@17879..17880
11574 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..17912
11580 EXPR_BINARY@17895..17912
11581 LHS_EXPR@17895..17908
11582 EXPR_APPLY@17895..17908
11583 EXPR_INDEX@17895..17905
11584 EXPR_VAR@17895..17898
11585 NAME@17895..17898
11586 IDENT@17895..17898 "std"
11587 DOT@17898..17899 "."
11588 NAME@17899..17905
11589 IDENT@17899..17905 "length"
11590 ARGS_DESC@17905..17908
11591 L_PAREN@17905..17906 "("
11592 ARG@17906..17907
11593 EXPR_VAR@17906..17907
11594 NAME@17906..17907
11595 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..17912
11601 FLOAT@17911..17912 "0"
11602 WHITESPACE@17912..17919 "\n "
11603 ELSE_KW@17919..17923 "else"
11604 WHITESPACE@17923..17924 " "
11605 FALSE_EXPR@17924..17997
11606 EXPR_IF_THEN_ELSE@17924..17997
11607 IF_KW@17924..17926 "if"
11608 WHITESPACE@17926..17927 " "
11609 EXPR_APPLY@17927..17942
11610 EXPR_INDEX@17927..17939
11611 EXPR_VAR@17927..17930
11612 NAME@17927..17930
11613 IDENT@17927..17930 "std"
11614 DOT@17930..17931 "."
11615 NAME@17931..17939
11616 IDENT@17931..17939 "isObject"
11617 ARGS_DESC@17939..17942
11618 L_PAREN@17939..17940 "("
11619 ARG@17940..17941
11620 EXPR_VAR@17940..17941
11621 NAME@17940..17941
11622 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..17973
11628 EXPR_BINARY@17956..17973
11629 LHS_EXPR@17956..17969
11630 EXPR_APPLY@17956..17969
11631 EXPR_INDEX@17956..17966
11632 EXPR_VAR@17956..17959
11633 NAME@17956..17959
11634 IDENT@17956..17959 "std"
11635 DOT@17959..17960 "."
11636 NAME@17960..17966
11637 IDENT@17960..17966 "length"
11638 ARGS_DESC@17966..17969
11639 L_PAREN@17966..17967 "("
11640 ARG@17967..17968
11641 EXPR_VAR@17967..17968
11642 NAME@17967..17968
11643 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..17973
11649 FLOAT@17972..17973 "0"
11650 WHITESPACE@17973..17980 "\n "
11651 ELSE_KW@17980..17984 "else"
11652 WHITESPACE@17984..17993 "\n "
11653 FALSE_EXPR@17993..17997
11654 EXPR_LITERAL@17993..17997
11655 TRUE_KW@17993..17997 "true"
11656 SEMI@17997..17998 ";"
11657 WHITESPACE@17998..18003 "\n "
11658 EXPR_IF_THEN_ELSE@18003..18232
11659 IF_KW@18003..18005 "if"
11660 WHITESPACE@18005..18006 " "
11661 EXPR_APPLY@18006..18020
11662 EXPR_INDEX@18006..18017
11663 EXPR_VAR@18006..18009
11664 NAME@18006..18009
11665 IDENT@18006..18009 "std"
11666 DOT@18009..18010 "."
11667 NAME@18010..18017
11668 IDENT@18010..18017 "isArray"
11669 ARGS_DESC@18017..18020
11670 L_PAREN@18017..18018 "("
11671 ARG@18018..18019
11672 EXPR_VAR@18018..18019
11673 NAME@18018..18019
11674 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..18082
11680 EXPR_ARRAY_COMP@18032..18082
11681 L_BRACK@18032..18033 "["
11682 EXPR_APPLY@18033..18045
11683 EXPR_INDEX@18033..18042
11684 EXPR_VAR@18033..18036
11685 NAME@18033..18036
11686 IDENT@18033..18036 "std"
11687 DOT@18036..18037 "."
11688 NAME@18037..18042
11689 IDENT@18037..18042 "prune"
11690 ARGS_DESC@18042..18045
11691 L_PAREN@18042..18043 "("
11692 ARG@18043..18044
11693 EXPR_VAR@18043..18044
11694 NAME@18043..18044
11695 IDENT@18043..18044 "x"
11696 R_PAREN@18044..18045 ")"
11697 WHITESPACE@18045..18046 " "
11698 FOR_SPEC@18046..18056
11699 FOR_KW@18046..18049 "for"
11700 WHITESPACE@18049..18050 " "
11701 NAME@18050..18051
11702 IDENT@18050..18051 "x"
11703 WHITESPACE@18051..18052 " "
11704 IN_KW@18052..18054 "in"
11705 WHITESPACE@18054..18055 " "
11706 EXPR_VAR@18055..18056
11707 NAME@18055..18056
11708 IDENT@18055..18056 "a"
11709 WHITESPACE@18056..18057 " "
11710 IF_SPEC@18057..18081
11711 IF_KW@18057..18059 "if"
11712 WHITESPACE@18059..18060 " "
11713 EXPR_APPLY@18060..18081
11714 EXPR_VAR@18060..18069
11715 NAME@18060..18069
11716 IDENT@18060..18069 "isContent"
11717 ARGS_DESC@18069..18081
11718 L_PAREN@18069..18070 "("
11719 ARG@18070..18080
11720 EXPR_APPLY@18070..18080
11721 EXPR_INDEX@18070..18077
11722 EXPR_LITERAL@18070..18071
11723 DOLLAR@18070..18071 "$"
11724 DOT@18071..18072 "."
11725 NAME@18072..18077
11726 IDENT@18072..18077 "prune"
11727 ARGS_DESC@18077..18080
11728 L_PAREN@18077..18078 "("
11729 ARG@18078..18079
11730 EXPR_VAR@18078..18079
11731 NAME@18078..18079
11732 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..18232
11740 EXPR_IF_THEN_ELSE@18092..18232
11741 IF_KW@18092..18094 "if"
11742 WHITESPACE@18094..18095 " "
11743 EXPR_APPLY@18095..18110
11744 EXPR_INDEX@18095..18107
11745 EXPR_VAR@18095..18098
11746 NAME@18095..18098
11747 IDENT@18095..18098 "std"
11748 DOT@18098..18099 "."
11749 NAME@18099..18107
11750 IDENT@18099..18107 "isObject"
11751 ARGS_DESC@18107..18110
11752 L_PAREN@18107..18108 "("
11753 ARG@18108..18109
11754 EXPR_VAR@18108..18109
11755 NAME@18108..18109
11756 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..18219
11762 EXPR_OBJECT@18116..18219
11763 OBJ_BODY_MEMBER_LIST@18116..18219
11764 L_BRACE@18116..18117 "{"
11765 WHITESPACE@18117..18124 "\n "
11766 MEMBER_FIELD@18124..18213
11767 FIELD_NORMAL@18124..18142
11768 FIELD_NAME_DYNAMIC@18124..18127
11769 L_BRACK@18124..18125 "["
11770 EXPR_VAR@18125..18126
11771 NAME@18125..18126
11772 IDENT@18125..18126 "x"
11773 R_BRACK@18126..18127 "]"
11774 COLON@18127..18128 ":"
11775 WHITESPACE@18128..18129 " "
11776 EXPR_APPLY@18129..18142
11777 EXPR_INDEX@18129..18136
11778 EXPR_LITERAL@18129..18130
11779 DOLLAR@18129..18130 "$"
11780 DOT@18130..18131 "."
11781 NAME@18131..18136
11782 IDENT@18131..18136 "prune"
11783 ARGS_DESC@18136..18142
11784 L_PAREN@18136..18137 "("
11785 ARG@18137..18141
11786 EXPR_INDEX_EXPR@18137..18141
11787 LHS_EXPR@18137..18138
11788 EXPR_VAR@18137..18138
11789 NAME@18137..18138
11790 IDENT@18137..18138 "a"
11791 L_BRACK@18138..18139 "["
11792 EXPR_VAR@18139..18140
11793 NAME@18139..18140
11794 IDENT@18139..18140 "x"
11795 R_BRACK@18140..18141 "]"
11796 R_PAREN@18141..18142 ")"
11797 WHITESPACE@18142..18149 "\n "
11798 FOR_SPEC@18149..18177
11799 FOR_KW@18149..18152 "for"
11800 WHITESPACE@18152..18153 " "
11801 NAME@18153..18154
11802 IDENT@18153..18154 "x"
11803 WHITESPACE@18154..18155 " "
11804 IN_KW@18155..18157 "in"
11805 WHITESPACE@18157..18158 " "
11806 EXPR_APPLY@18158..18177
11807 EXPR_INDEX@18158..18174
11808 EXPR_VAR@18158..18161
11809 NAME@18158..18161
11810 IDENT@18158..18161 "std"
11811 DOT@18161..18162 "."
11812 NAME@18162..18174
11813 IDENT@18162..18174 "objectFields"
11814 ARGS_DESC@18174..18177
11815 L_PAREN@18174..18175 "("
11816 ARG@18175..18176
11817 EXPR_VAR@18175..18176
11818 NAME@18175..18176
11819 IDENT@18175..18176 "a"
11820 R_PAREN@18176..18177 ")"
11821 WHITESPACE@18177..18184 "\n "
11822 IF_SPEC@18184..18213
11823 IF_KW@18184..18186 "if"
11824 WHITESPACE@18186..18187 " "
11825 EXPR_APPLY@18187..18213
11826 EXPR_VAR@18187..18196
11827 NAME@18187..18196
11828 IDENT@18187..18196 "isContent"
11829 ARGS_DESC@18196..18213
11830 L_PAREN@18196..18197 "("
11831 ARG@18197..18212
11832 EXPR_APPLY@18197..18212
11833 EXPR_INDEX@18197..18206
11834 EXPR_VAR@18197..18200
11835 NAME@18197..18200
11836 IDENT@18197..18200 "std"
11837 DOT@18200..18201 "."
11838 NAME@18201..18206
11839 IDENT@18201..18206 "prune"
11840 ARGS_DESC@18206..18212
11841 L_PAREN@18206..18207 "("
11842 ARG@18207..18211
11843 EXPR_INDEX_EXPR@18207..18211
11844 LHS_EXPR@18207..18208
11845 EXPR_VAR@18207..18208
11846 NAME@18207..18208
11847 IDENT@18207..18208 "a"
11848 L_BRACK@18208..18209 "["
11849 EXPR_VAR@18209..18210
11850 NAME@18209..18210
11851 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..18232
11861 EXPR_VAR@18231..18232
11862 NAME@18231..18232
11863 IDENT@18231..18232 "a"
11864 COMMA@18232..18233 ","
11865 WHITESPACE@18233..18237 "\n\n "
11866 MEMBER_FIELD@18237..18755
11867 FIELD_METHOD@18237..18755
11868 FIELD_NAME_FIXED@18237..18247
11869 NAME@18237..18247
11870 IDENT@18237..18247 "findSubstr"
11871 PARAMS_DESC@18247..18257
11872 L_PAREN@18247..18248 "("
11873 PARAM@18248..18251
11874 DESTRUCT_FULL@18248..18251
11875 NAME@18248..18251
11876 IDENT@18248..18251 "pat"
11877 COMMA@18251..18252 ","
11878 WHITESPACE@18252..18253 " "
11879 PARAM@18253..18256
11880 DESTRUCT_FULL@18253..18256
11881 NAME@18253..18256
11882 IDENT@18253..18256 "str"
11883 R_PAREN@18256..18257 ")"
11884 COLONCOLON@18257..18259 "::"
11885 WHITESPACE@18259..18264 "\n "
11886 EXPR_IF_THEN_ELSE@18264..18755
11887 IF_KW@18264..18266 "if"
11888 WHITESPACE@18266..18267 " "
11889 EXPR_UNARY@18267..18285
11890 NOT@18267..18268 "!"
11891 EXPR_APPLY@18268..18285
11892 EXPR_INDEX@18268..18280
11893 EXPR_VAR@18268..18271
11894 NAME@18268..18271
11895 IDENT@18268..18271 "std"
11896 DOT@18271..18272 "."
11897 NAME@18272..18280
11898 IDENT@18272..18280 "isString"
11899 ARGS_DESC@18280..18285
11900 L_PAREN@18280..18281 "("
11901 ARG@18281..18284
11902 EXPR_VAR@18281..18284
11903 NAME@18281..18284
11904 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..18372
11910 EXPR_ERROR@18297..18372
11911 ERROR_KW@18297..18302 "error"
11912 WHITESPACE@18302..18303 " "
11913 EXPR_BINARY@18303..18372
11914 LHS_EXPR@18303..18356
11915 EXPR_STRING@18303..18356
11916 STRING_SINGLE@18303..18356 "'findSubstr first par ..."
11917 WHITESPACE@18356..18357 " "
11918 PLUS@18357..18358 "+"
11919 WHITESPACE@18358..18359 " "
11920 EXPR_APPLY@18359..18372
11921 EXPR_INDEX@18359..18367
11922 EXPR_VAR@18359..18362
11923 NAME@18359..18362
11924 IDENT@18359..18362 "std"
11925 DOT@18362..18363 "."
11926 NAME@18363..18367
11927 IDENT@18363..18367 "type"
11928 ARGS_DESC@18367..18372
11929 L_PAREN@18367..18368 "("
11930 ARG@18368..18371
11931 EXPR_VAR@18368..18371
11932 NAME@18368..18371
11933 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..18755
11939 EXPR_IF_THEN_ELSE@18382..18755
11940 IF_KW@18382..18384 "if"
11941 WHITESPACE@18384..18385 " "
11942 EXPR_UNARY@18385..18403
11943 NOT@18385..18386 "!"
11944 EXPR_APPLY@18386..18403
11945 EXPR_INDEX@18386..18398
11946 EXPR_VAR@18386..18389
11947 NAME@18386..18389
11948 IDENT@18386..18389 "std"
11949 DOT@18389..18390 "."
11950 NAME@18390..18398
11951 IDENT@18390..18398 "isString"
11952 ARGS_DESC@18398..18403
11953 L_PAREN@18398..18399 "("
11954 ARG@18399..18402
11955 EXPR_VAR@18399..18402
11956 NAME@18399..18402
11957 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..18491
11963 EXPR_ERROR@18415..18491
11964 ERROR_KW@18415..18420 "error"
11965 WHITESPACE@18420..18421 " "
11966 EXPR_BINARY@18421..18491
11967 LHS_EXPR@18421..18475
11968 EXPR_STRING@18421..18475
11969 STRING_SINGLE@18421..18475 "'findSubstr second pa ..."
11970 WHITESPACE@18475..18476 " "
11971 PLUS@18476..18477 "+"
11972 WHITESPACE@18477..18478 " "
11973 EXPR_APPLY@18478..18491
11974 EXPR_INDEX@18478..18486
11975 EXPR_VAR@18478..18481
11976 NAME@18478..18481
11977 IDENT@18478..18481 "std"
11978 DOT@18481..18482 "."
11979 NAME@18482..18486
11980 IDENT@18482..18486 "type"
11981 ARGS_DESC@18486..18491
11982 L_PAREN@18486..18487 "("
11983 ARG@18487..18490
11984 EXPR_VAR@18487..18490
11985 NAME@18487..18490
11986 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..18755
11992 EXPR_LOCAL@18507..18755
11993 LOCAL_KW@18507..18512 "local"
11994 WHITESPACE@18512..18513 " "
11995 BIND_DESTRUCT@18513..18538
11996 DESTRUCT_FULL@18513..18520
11997 NAME@18513..18520
11998 IDENT@18513..18520 "pat_len"
11999 WHITESPACE@18520..18521 " "
12000 ASSIGN@18521..18522 "="
12001 WHITESPACE@18522..18523 " "
12002 EXPR_APPLY@18523..18538
12003 EXPR_INDEX@18523..18533
12004 EXPR_VAR@18523..18526
12005 NAME@18523..18526
12006 IDENT@18523..18526 "std"
12007 DOT@18526..18527 "."
12008 NAME@18527..18533
12009 IDENT@18527..18533 "length"
12010 ARGS_DESC@18533..18538
12011 L_PAREN@18533..18534 "("
12012 ARG@18534..18537
12013 EXPR_VAR@18534..18537
12014 NAME@18534..18537
12015 IDENT@18534..18537 "pat"
12016 R_PAREN@18537..18538 ")"
12017 SEMI@18538..18539 ";"
12018 WHITESPACE@18539..18546 "\n "
12019 EXPR_LOCAL@18546..18755
12020 LOCAL_KW@18546..18551 "local"
12021 WHITESPACE@18551..18552 " "
12022 BIND_DESTRUCT@18552..18577
12023 DESTRUCT_FULL@18552..18559
12024 NAME@18552..18559
12025 IDENT@18552..18559 "str_len"
12026 WHITESPACE@18559..18560 " "
12027 ASSIGN@18560..18561 "="
12028 WHITESPACE@18561..18562 " "
12029 EXPR_APPLY@18562..18577
12030 EXPR_INDEX@18562..18572
12031 EXPR_VAR@18562..18565
12032 NAME@18562..18565
12033 IDENT@18562..18565 "std"
12034 DOT@18565..18566 "."
12035 NAME@18566..18572
12036 IDENT@18566..18572 "length"
12037 ARGS_DESC@18572..18577
12038 L_PAREN@18572..18573 "("
12039 ARG@18573..18576
12040 EXPR_VAR@18573..18576
12041 NAME@18573..18576
12042 IDENT@18573..18576 "str"
12043 R_PAREN@18576..18577 ")"
12044 SEMI@18577..18578 ";"
12045 WHITESPACE@18578..18585 "\n "
12046 EXPR_IF_THEN_ELSE@18585..18755
12047 IF_KW@18585..18587 "if"
12048 WHITESPACE@18587..18588 " "
12049 EXPR_BINARY@18588..18637
12050 LHS_EXPR@18588..18616
12051 EXPR_BINARY@18588..18616
12052 LHS_EXPR@18588..18600
12053 EXPR_BINARY@18588..18600
12054 LHS_EXPR@18588..18595
12055 EXPR_VAR@18588..18595
12056 NAME@18588..18595
12057 IDENT@18588..18595 "pat_len"
12058 WHITESPACE@18595..18596 " "
12059 EQ@18596..18598 "=="
12060 WHITESPACE@18598..18599 " "
12061 EXPR_NUMBER@18599..18600
12062 FLOAT@18599..18600 "0"
12063 WHITESPACE@18600..18601 " "
12064 OR@18601..18603 "||"
12065 WHITESPACE@18603..18604 " "
12066 EXPR_BINARY@18604..18616
12067 LHS_EXPR@18604..18611
12068 EXPR_VAR@18604..18611
12069 NAME@18604..18611
12070 IDENT@18604..18611 "str_len"
12071 WHITESPACE@18611..18612 " "
12072 EQ@18612..18614 "=="
12073 WHITESPACE@18614..18615 " "
12074 EXPR_NUMBER@18615..18616
12075 FLOAT@18615..18616 "0"
12076 WHITESPACE@18616..18617 " "
12077 OR@18617..18619 "||"
12078 WHITESPACE@18619..18620 " "
12079 EXPR_BINARY@18620..18637
12080 LHS_EXPR@18620..18627
12081 EXPR_VAR@18620..18627
12082 NAME@18620..18627
12083 IDENT@18620..18627 "pat_len"
12084 WHITESPACE@18627..18628 " "
12085 GT@18628..18629 ">"
12086 WHITESPACE@18629..18630 " "
12087 EXPR_VAR@18630..18637
12088 NAME@18630..18637
12089 IDENT@18630..18637 "str_len"
12090 WHITESPACE@18637..18638 " "
12091 THEN_KW@18638..18642 "then"
12092 WHITESPACE@18642..18651 "\n "
12093 TRUE_EXPR@18651..18653
12094 EXPR_ARRAY@18651..18653
12095 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..18755
12101 EXPR_APPLY@18673..18755
12102 EXPR_INDEX@18673..18683
12103 EXPR_VAR@18673..18676
12104 NAME@18673..18676
12105 IDENT@18673..18676 "std"
12106 DOT@18676..18677 "."
12107 NAME@18677..18683
12108 IDENT@18677..18683 "filter"
12109 ARGS_DESC@18683..18755
12110 L_PAREN@18683..18684 "("
12111 ARG@18684..18721
12112 EXPR_FUNCTION@18684..18721
12113 FUNCTION_KW@18684..18692 "function"
12114 PARAMS_DESC@18692..18695
12115 L_PAREN@18692..18693 "("
12116 PARAM@18693..18694
12117 DESTRUCT_FULL@18693..18694
12118 NAME@18693..18694
12119 IDENT@18693..18694 "i"
12120 R_PAREN@18694..18695 ")"
12121 WHITESPACE@18695..18696 " "
12122 EXPR_BINARY@18696..18721
12123 LHS_EXPR@18696..18714
12124 EXPR_SLICE@18696..18714
12125 EXPR_VAR@18696..18699
12126 NAME@18696..18699
12127 IDENT@18696..18699 "str"
12128 SLICE_DESC@18699..18714
12129 L_BRACK@18699..18700 "["
12130 EXPR_VAR@18700..18701
12131 NAME@18700..18701
12132 IDENT@18700..18701 "i"
12133 COLON@18701..18702 ":"
12134 SLICE_DESC_END@18702..18713
12135 EXPR_BINARY@18702..18713
12136 LHS_EXPR@18702..18703
12137 EXPR_VAR@18702..18703
12138 NAME@18702..18703
12139 IDENT@18702..18703 "i"
12140 WHITESPACE@18703..18704 " "
12141 PLUS@18704..18705 "+"
12142 WHITESPACE@18705..18706 " "
12143 EXPR_VAR@18706..18713
12144 NAME@18706..18713
12145 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..18721
12151 NAME@18718..18721
12152 IDENT@18718..18721 "pat"
12153 COMMA@18721..18722 ","
12154 WHITESPACE@18722..18723 " "
12155 ARG@18723..18754
12156 EXPR_APPLY@18723..18754
12157 EXPR_INDEX@18723..18732
12158 EXPR_VAR@18723..18726
12159 NAME@18723..18726
12160 IDENT@18723..18726 "std"
12161 DOT@18726..18727 "."
12162 NAME@18727..18732
12163 IDENT@18727..18732 "range"
12164 ARGS_DESC@18732..18754
12165 L_PAREN@18732..18733 "("
12166 ARG@18733..18734
12167 EXPR_NUMBER@18733..18734
12168 FLOAT@18733..18734 "0"
12169 COMMA@18734..18735 ","
12170 WHITESPACE@18735..18736 " "
12171 ARG@18736..18753
12172 EXPR_BINARY@18736..18753
12173 LHS_EXPR@18736..18743
12174 EXPR_VAR@18736..18743
12175 NAME@18736..18743
12176 IDENT@18736..18743 "str_len"
12177 WHITESPACE@18743..18744 " "
12178 MINUS@18744..18745 "-"
12179 WHITESPACE@18745..18746 " "
12180 EXPR_VAR@18746..18753
12181 NAME@18746..18753
12182 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..18975
12188 FIELD_METHOD@18760..18975
12189 FIELD_NAME_FIXED@18760..18764
12190 NAME@18760..18764
12191 IDENT@18760..18764 "find"
12192 PARAMS_DESC@18764..18776
12193 L_PAREN@18764..18765 "("
12194 PARAM@18765..18770
12195 DESTRUCT_FULL@18765..18770
12196 NAME@18765..18770
12197 IDENT@18765..18770 "value"
12198 COMMA@18770..18771 ","
12199 WHITESPACE@18771..18772 " "
12200 PARAM@18772..18775
12201 DESTRUCT_FULL@18772..18775
12202 NAME@18772..18775
12203 IDENT@18772..18775 "arr"
12204 R_PAREN@18775..18776 ")"
12205 COLONCOLON@18776..18778 "::"
12206 WHITESPACE@18778..18783 "\n "
12207 EXPR_IF_THEN_ELSE@18783..18975
12208 IF_KW@18783..18785 "if"
12209 WHITESPACE@18785..18786 " "
12210 EXPR_UNARY@18786..18803
12211 NOT@18786..18787 "!"
12212 EXPR_APPLY@18787..18803
12213 EXPR_INDEX@18787..18798
12214 EXPR_VAR@18787..18790
12215 NAME@18787..18790
12216 IDENT@18787..18790 "std"
12217 DOT@18790..18791 "."
12218 NAME@18791..18798
12219 IDENT@18791..18798 "isArray"
12220 ARGS_DESC@18798..18803
12221 L_PAREN@18798..18799 "("
12222 ARG@18799..18802
12223 EXPR_VAR@18799..18802
12224 NAME@18799..18802
12225 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..18885
12231 EXPR_ERROR@18815..18885
12232 ERROR_KW@18815..18820 "error"
12233 WHITESPACE@18820..18821 " "
12234 EXPR_BINARY@18821..18885
12235 LHS_EXPR@18821..18869
12236 EXPR_STRING@18821..18869
12237 STRING_SINGLE@18821..18869 "'find second paramete ..."
12238 WHITESPACE@18869..18870 " "
12239 PLUS@18870..18871 "+"
12240 WHITESPACE@18871..18872 " "
12241 EXPR_APPLY@18872..18885
12242 EXPR_INDEX@18872..18880
12243 EXPR_VAR@18872..18875
12244 NAME@18872..18875
12245 IDENT@18872..18875 "std"
12246 DOT@18875..18876 "."
12247 NAME@18876..18880
12248 IDENT@18876..18880 "type"
12249 ARGS_DESC@18880..18885
12250 L_PAREN@18880..18881 "("
12251 ARG@18881..18884
12252 EXPR_VAR@18881..18884
12253 NAME@18881..18884
12254 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..18975
12260 EXPR_APPLY@18901..18975
12261 EXPR_INDEX@18901..18911
12262 EXPR_VAR@18901..18904
12263 NAME@18901..18904
12264 IDENT@18901..18904 "std"
12265 DOT@18904..18905 "."
12266 NAME@18905..18911
12267 IDENT@18905..18911 "filter"
12268 ARGS_DESC@18911..18975
12269 L_PAREN@18911..18912 "("
12270 ARG@18912..18939
12271 EXPR_FUNCTION@18912..18939
12272 FUNCTION_KW@18912..18920 "function"
12273 PARAMS_DESC@18920..18923
12274 L_PAREN@18920..18921 "("
12275 PARAM@18921..18922
12276 DESTRUCT_FULL@18921..18922
12277 NAME@18921..18922
12278 IDENT@18921..18922 "i"
12279 R_PAREN@18922..18923 ")"
12280 WHITESPACE@18923..18924 " "
12281 EXPR_BINARY@18924..18939
12282 LHS_EXPR@18924..18930
12283 EXPR_INDEX_EXPR@18924..18930
12284 LHS_EXPR@18924..18927
12285 EXPR_VAR@18924..18927
12286 NAME@18924..18927
12287 IDENT@18924..18927 "arr"
12288 L_BRACK@18927..18928 "["
12289 EXPR_VAR@18928..18929
12290 NAME@18928..18929
12291 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..18939
12297 NAME@18934..18939
12298 IDENT@18934..18939 "value"
12299 COMMA@18939..18940 ","
12300 WHITESPACE@18940..18941 " "
12301 ARG@18941..18974
12302 EXPR_APPLY@18941..18974
12303 EXPR_INDEX@18941..18950
12304 EXPR_VAR@18941..18944
12305 NAME@18941..18944
12306 IDENT@18941..18944 "std"
12307 DOT@18944..18945 "."
12308 NAME@18945..18950
12309 IDENT@18945..18950 "range"
12310 ARGS_DESC@18950..18974
12311 L_PAREN@18950..18951 "("
12312 ARG@18951..18952
12313 EXPR_NUMBER@18951..18952
12314 FLOAT@18951..18952 "0"
12315 COMMA@18952..18953 ","
12316 WHITESPACE@18953..18954 " "
12317 ARG@18954..18973
12318 EXPR_BINARY@18954..18973
12319 LHS_EXPR@18954..18969
12320 EXPR_APPLY@18954..18969
12321 EXPR_INDEX@18954..18964
12322 EXPR_VAR@18954..18957
12323 NAME@18954..18957
12324 IDENT@18954..18957 "std"
12325 DOT@18957..18958 "."
12326 NAME@18958..18964
12327 IDENT@18958..18964 "length"
12328 ARGS_DESC@18964..18969
12329 L_PAREN@18964..18965 "("
12330 ARG@18965..18968
12331 EXPR_VAR@18965..18968
12332 NAME@18965..18968
12333 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..18973
12339 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 "}"
123457296
12346
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,