difftreelog
refactor upgrade for new master
in: master
30 files changed
Cargo.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" }
cmds/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"
cmds/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"
crates/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" }
crates/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!'
crates/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),
+ });
}
}
}
crates/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)
crates/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,
}
}
crates/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()
crates/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());
})
}
crates/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"
crates/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"
+
crates/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
`----
-
crates/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"
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_body.snapdiffbeforeafterboth2source: crates/jrsonnet-rowan-parser/src/tests.rs2source: crates/jrsonnet-rowan-parser/src/tests.rs3expression: "function(a, b)\n"3expression: "function(a, b)\n"4---4---5SOURCE_FILE@0..145SOURCE_FILE@0..156 EXPR_FUNCTION@0..146 EXPR_FUNCTION@0..157 FUNCTION_KW@0..8 "function"7 FUNCTION_KW@0..8 "function"8 PARAMS_DESC@8..148 PARAMS_DESC@8..149 L_PAREN@8..9 "("9 L_PAREN@8..9 "("18 NAME@12..1318 NAME@12..1319 IDENT@12..13 "b"19 IDENT@12..13 "b"20 R_PAREN@13..14 ")"20 R_PAREN@13..14 ")"21 WHITESPACE@14..15 "\n"22 ERROR_MISSING_TOKEN@15..1521===23===22Missing { expected: Named("value"), offset: 14 }24LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 15..15 }23===25===24 x syntax error26 x syntax error25 ,----27 ,----26 1 | function(a, b)28 1 | function(a, b)27 : ^29 : ^28 : `-- missing value30 : `-- missing expression29 `----31 `----303132crates/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
`----
-
crates/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
`----
-
crates/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
`----
-
crates/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
`----
-
crates/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
`----
-
crates/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
`----
-
crates/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
`----
-
crates/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"
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__stdlib.snapdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__stdlib.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__stdlib.snap
@@ -1,10 +1,10 @@
---
source: crates/jrsonnet-rowan-parser/src/tests.rs
-expression: "{\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"
+expression: "{\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 '<': '<',\n '>': '>',\n '&': '&',\n '\"': '"',\n \"'\": ''',\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"
---
-SOURCE_FILE@0..18978
- EXPR_OBJECT@0..18978
- OBJ_BODY_MEMBER_LIST@0..18978
+SOURCE_FILE@0..10282
+ EXPR_OBJECT@0..10281
+ OBJ_BODY_MEMBER_LIST@0..10281
L_BRACE@0..1 "{"
WHITESPACE@1..4 "\n "
MEMBER_BIND_STMT@4..20
@@ -42,12304 +42,7254 @@
IDENT@39..41 "id"
COMMA@41..42 ","
WHITESPACE@42..46 "\n\n "
- SINGLE_LINE_HASH_COMMENT@46..67 "# Magic legacy field\n"
- WHITESPACE@67..69 " "
- MEMBER_FIELD@69..98
- FIELD_NORMAL@69..98
- FIELD_NAME_FIXED@69..77
- NAME@69..77
- IDENT@69..77 "thisFile"
- COLONCOLON@77..79 "::"
- WHITESPACE@79..80 " "
- EXPR_INTRINSIC_THIS_FILE@80..98
- INTRINSIC_THIS_FILE@80..98 "$intrinsicThisFile"
- COMMA@98..99 ","
- WHITESPACE@99..102 "\n "
- MEMBER_FIELD@102..119
- FIELD_NORMAL@102..119
- FIELD_NAME_FIXED@102..104
- NAME@102..104
- IDENT@102..104 "id"
- COLONCOLON@104..106 "::"
- WHITESPACE@106..107 " "
- EXPR_INTRINSIC_ID@107..119
- INTRINSIC_ID@107..119 "$intrinsicId"
- COMMA@119..120 ","
- WHITESPACE@120..124 "\n\n "
- SINGLE_LINE_HASH_COMMENT@124..176 "# Those functions are ..."
- WHITESPACE@176..178 " "
- MEMBER_FIELD@178..205
- FIELD_NORMAL@178..205
- FIELD_NAME_FIXED@178..184
- NAME@178..184
- IDENT@178..184 "length"
- COLONCOLON@184..186 "::"
- WHITESPACE@186..187 " "
- EXPR_INTRINSIC@187..205
- INTRINSIC@187..197 "$intrinsic"
- L_PAREN@197..198 "("
- NAME@198..204
- IDENT@198..204 "length"
- R_PAREN@204..205 ")"
- COMMA@205..206 ","
- WHITESPACE@206..209 "\n "
- MEMBER_FIELD@209..232
- FIELD_NORMAL@209..232
- FIELD_NAME_FIXED@209..213
- NAME@209..213
- IDENT@209..213 "type"
- COLONCOLON@213..215 "::"
- WHITESPACE@215..216 " "
- EXPR_INTRINSIC@216..232
- INTRINSIC@216..226 "$intrinsic"
- L_PAREN@226..227 "("
- NAME@227..231
- IDENT@227..231 "type"
- R_PAREN@231..232 ")"
- COMMA@232..233 ","
- WHITESPACE@233..236 "\n "
- MEMBER_FIELD@236..269
- FIELD_NORMAL@236..269
- FIELD_NAME_FIXED@236..245
- NAME@236..245
- IDENT@236..245 "makeArray"
- COLONCOLON@245..247 "::"
- WHITESPACE@247..248 " "
- EXPR_INTRINSIC@248..269
- INTRINSIC@248..258 "$intrinsic"
- L_PAREN@258..259 "("
- NAME@259..268
- IDENT@259..268 "makeArray"
- R_PAREN@268..269 ")"
- COMMA@269..270 ","
- WHITESPACE@270..273 "\n "
- MEMBER_FIELD@273..306
- FIELD_NORMAL@273..306
- FIELD_NAME_FIXED@273..282
- NAME@273..282
- IDENT@273..282 "codepoint"
- COLONCOLON@282..284 "::"
- WHITESPACE@284..285 " "
- EXPR_INTRINSIC@285..306
- INTRINSIC@285..295 "$intrinsic"
- L_PAREN@295..296 "("
- NAME@296..305
- IDENT@296..305 "codepoint"
- R_PAREN@305..306 ")"
- COMMA@306..307 ","
- WHITESPACE@307..310 "\n "
- MEMBER_FIELD@310..353
- FIELD_NORMAL@310..353
- FIELD_NAME_FIXED@310..324
- NAME@310..324
- IDENT@310..324 "objectFieldsEx"
- COLONCOLON@324..326 "::"
- WHITESPACE@326..327 " "
- EXPR_INTRINSIC@327..353
- INTRINSIC@327..337 "$intrinsic"
- L_PAREN@337..338 "("
- NAME@338..352
- IDENT@338..352 "objectFieldsEx"
- R_PAREN@352..353 ")"
- COMMA@353..354 ","
- WHITESPACE@354..357 "\n "
- MEMBER_FIELD@357..394
- FIELD_NORMAL@357..394
- FIELD_NAME_FIXED@357..368
- NAME@357..368
- IDENT@357..368 "objectHasEx"
- COLONCOLON@368..370 "::"
- WHITESPACE@370..371 " "
- EXPR_INTRINSIC@371..394
- INTRINSIC@371..381 "$intrinsic"
- L_PAREN@381..382 "("
- NAME@382..393
- IDENT@382..393 "objectHasEx"
- R_PAREN@393..394 ")"
- COMMA@394..395 ","
- WHITESPACE@395..398 "\n "
- MEMBER_FIELD@398..443
- FIELD_NORMAL@398..443
- FIELD_NAME_FIXED@398..413
- NAME@398..413
- IDENT@398..413 "primitiveEquals"
- COLONCOLON@413..415 "::"
- WHITESPACE@415..416 " "
- EXPR_INTRINSIC@416..443
- INTRINSIC@416..426 "$intrinsic"
- L_PAREN@426..427 "("
- NAME@427..442
- IDENT@427..442 "primitiveEquals"
- R_PAREN@442..443 ")"
- COMMA@443..444 ","
- WHITESPACE@444..447 "\n "
- MEMBER_FIELD@447..474
- FIELD_NORMAL@447..474
- FIELD_NAME_FIXED@447..453
- NAME@447..453
- IDENT@447..453 "modulo"
- COLONCOLON@453..455 "::"
- WHITESPACE@455..456 " "
- EXPR_INTRINSIC@456..474
- INTRINSIC@456..466 "$intrinsic"
- L_PAREN@466..467 "("
- NAME@467..473
- IDENT@467..473 "modulo"
- R_PAREN@473..474 ")"
- COMMA@474..475 ","
- WHITESPACE@475..478 "\n "
- MEMBER_FIELD@478..503
- FIELD_NORMAL@478..503
- FIELD_NAME_FIXED@478..483
- NAME@478..483
- IDENT@478..483 "floor"
- COLONCOLON@483..485 "::"
- WHITESPACE@485..486 " "
- EXPR_INTRINSIC@486..503
- INTRINSIC@486..496 "$intrinsic"
- L_PAREN@496..497 "("
- NAME@497..502
- IDENT@497..502 "floor"
- R_PAREN@502..503 ")"
- COMMA@503..504 ","
- WHITESPACE@504..507 "\n "
- MEMBER_FIELD@507..530
- FIELD_NORMAL@507..530
- FIELD_NAME_FIXED@507..511
- NAME@507..511
- IDENT@507..511 "ceil"
- COLONCOLON@511..513 "::"
- WHITESPACE@513..514 " "
- EXPR_INTRINSIC@514..530
- INTRINSIC@514..524 "$intrinsic"
- L_PAREN@524..525 "("
- NAME@525..529
- IDENT@525..529 "ceil"
- R_PAREN@529..530 ")"
- COMMA@530..531 ","
- WHITESPACE@531..534 "\n "
- MEMBER_FIELD@534..561
- FIELD_NORMAL@534..561
- FIELD_NAME_FIXED@534..540
- NAME@534..540
- IDENT@534..540 "extVar"
- COLONCOLON@540..542 "::"
- WHITESPACE@542..543 " "
- EXPR_INTRINSIC@543..561
- INTRINSIC@543..553 "$intrinsic"
- L_PAREN@553..554 "("
- NAME@554..560
- IDENT@554..560 "extVar"
- R_PAREN@560..561 ")"
- COMMA@561..562 ","
- WHITESPACE@562..565 "\n "
- MEMBER_FIELD@565..592
- FIELD_NORMAL@565..592
- FIELD_NAME_FIXED@565..571
- NAME@565..571
- IDENT@565..571 "native"
- COLONCOLON@571..573 "::"
- WHITESPACE@573..574 " "
- EXPR_INTRINSIC@574..592
- INTRINSIC@574..584 "$intrinsic"
- L_PAREN@584..585 "("
- NAME@585..591
- IDENT@585..591 "native"
- R_PAREN@591..592 ")"
- COMMA@592..593 ","
- WHITESPACE@593..596 "\n "
- MEMBER_FIELD@596..623
- FIELD_NORMAL@596..623
- FIELD_NAME_FIXED@596..602
- NAME@596..602
- IDENT@596..602 "filter"
- COLONCOLON@602..604 "::"
- WHITESPACE@604..605 " "
- EXPR_INTRINSIC@605..623
- INTRINSIC@605..615 "$intrinsic"
- L_PAREN@615..616 "("
- NAME@616..622
- IDENT@616..622 "filter"
- R_PAREN@622..623 ")"
- COMMA@623..624 ","
- WHITESPACE@624..627 "\n "
- MEMBER_FIELD@627..650
- FIELD_NORMAL@627..650
- FIELD_NAME_FIXED@627..631
- NAME@627..631
- IDENT@627..631 "char"
- COLONCOLON@631..633 "::"
- WHITESPACE@633..634 " "
- EXPR_INTRINSIC@634..650
- INTRINSIC@634..644 "$intrinsic"
- L_PAREN@644..645 "("
- NAME@645..649
- IDENT@645..649 "char"
- R_PAREN@649..650 ")"
- COMMA@650..651 ","
- WHITESPACE@651..654 "\n "
- MEMBER_FIELD@654..689
- FIELD_NORMAL@654..689
- FIELD_NAME_FIXED@654..664
- NAME@654..664
- IDENT@654..664 "encodeUTF8"
- COLONCOLON@664..666 "::"
- WHITESPACE@666..667 " "
- EXPR_INTRINSIC@667..689
- INTRINSIC@667..677 "$intrinsic"
- L_PAREN@677..678 "("
- NAME@678..688
- IDENT@678..688 "encodeUTF8"
- R_PAREN@688..689 ")"
- COMMA@689..690 ","
- WHITESPACE@690..693 "\n "
- MEMBER_FIELD@693..728
- FIELD_NORMAL@693..728
- FIELD_NAME_FIXED@693..703
- NAME@693..703
- IDENT@693..703 "decodeUTF8"
- COLONCOLON@703..705 "::"
- WHITESPACE@705..706 " "
- EXPR_INTRINSIC@706..728
- INTRINSIC@706..716 "$intrinsic"
- L_PAREN@716..717 "("
- NAME@717..727
- IDENT@717..727 "decodeUTF8"
- R_PAREN@727..728 ")"
- COMMA@728..729 ","
- WHITESPACE@729..732 "\n "
- MEMBER_FIELD@732..753
- FIELD_NORMAL@732..753
- FIELD_NAME_FIXED@732..735
- NAME@732..735
- IDENT@732..735 "md5"
- COLONCOLON@735..737 "::"
- WHITESPACE@737..738 " "
- EXPR_INTRINSIC@738..753
- INTRINSIC@738..748 "$intrinsic"
- L_PAREN@748..749 "("
- NAME@749..752
- IDENT@749..752 "md5"
- R_PAREN@752..753 ")"
- COMMA@753..754 ","
- WHITESPACE@754..757 "\n "
- MEMBER_FIELD@757..782
- FIELD_NORMAL@757..782
- FIELD_NAME_FIXED@757..762
- NAME@757..762
- IDENT@757..762 "trace"
- COLONCOLON@762..764 "::"
- WHITESPACE@764..765 " "
- EXPR_INTRINSIC@765..782
- INTRINSIC@765..775 "$intrinsic"
- L_PAREN@775..776 "("
- NAME@776..781
- IDENT@776..781 "trace"
- R_PAREN@781..782 ")"
- COMMA@782..783 ","
- WHITESPACE@783..786 "\n "
- MEMBER_FIELD@786..819
- FIELD_NORMAL@786..819
- FIELD_NAME_FIXED@786..795
- NAME@786..795
- IDENT@786..795 "parseJson"
- COLONCOLON@795..797 "::"
- WHITESPACE@797..798 " "
- EXPR_INTRINSIC@798..819
- INTRINSIC@798..808 "$intrinsic"
- L_PAREN@808..809 "("
- NAME@809..818
- IDENT@809..818 "parseJson"
- R_PAREN@818..819 ")"
- COMMA@819..820 ","
- WHITESPACE@820..823 "\n "
- MEMBER_FIELD@823..856
- FIELD_NORMAL@823..856
- FIELD_NAME_FIXED@823..832
- NAME@823..832
- IDENT@823..832 "parseYaml"
- COLONCOLON@832..834 "::"
- WHITESPACE@834..835 " "
- EXPR_INTRINSIC@835..856
- INTRINSIC@835..845 "$intrinsic"
- L_PAREN@845..846 "("
- NAME@846..855
- IDENT@846..855 "parseYaml"
- R_PAREN@855..856 ")"
- COMMA@856..857 ","
- WHITESPACE@857..861 "\n\n "
- MEMBER_FIELD@861..882
- FIELD_NORMAL@861..882
- FIELD_NAME_FIXED@861..864
- NAME@861..864
- IDENT@861..864 "log"
- COLONCOLON@864..866 "::"
- WHITESPACE@866..867 " "
- EXPR_INTRINSIC@867..882
- INTRINSIC@867..877 "$intrinsic"
- L_PAREN@877..878 "("
- NAME@878..881
- IDENT@878..881 "log"
- R_PAREN@881..882 ")"
- COMMA@882..883 ","
- WHITESPACE@883..886 "\n "
- MEMBER_FIELD@886..907
- FIELD_NORMAL@886..907
- FIELD_NAME_FIXED@886..889
- NAME@886..889
- IDENT@886..889 "pow"
- COLONCOLON@889..891 "::"
- WHITESPACE@891..892 " "
- EXPR_INTRINSIC@892..907
- INTRINSIC@892..902 "$intrinsic"
- L_PAREN@902..903 "("
- NAME@903..906
- IDENT@903..906 "pow"
- R_PAREN@906..907 ")"
- COMMA@907..908 ","
- WHITESPACE@908..911 "\n "
- MEMBER_FIELD@911..934
- FIELD_NORMAL@911..934
- FIELD_NAME_FIXED@911..915
- NAME@911..915
- IDENT@911..915 "sqrt"
- COLONCOLON@915..917 "::"
- WHITESPACE@917..918 " "
- EXPR_INTRINSIC@918..934
- INTRINSIC@918..928 "$intrinsic"
- L_PAREN@928..929 "("
- NAME@929..933
- IDENT@929..933 "sqrt"
- R_PAREN@933..934 ")"
- COMMA@934..935 ","
- WHITESPACE@935..939 "\n\n "
- MEMBER_FIELD@939..960
- FIELD_NORMAL@939..960
- FIELD_NAME_FIXED@939..942
- NAME@939..942
- IDENT@939..942 "sin"
- COLONCOLON@942..944 "::"
- WHITESPACE@944..945 " "
- EXPR_INTRINSIC@945..960
- INTRINSIC@945..955 "$intrinsic"
- L_PAREN@955..956 "("
- NAME@956..959
- IDENT@956..959 "sin"
- R_PAREN@959..960 ")"
- COMMA@960..961 ","
- WHITESPACE@961..964 "\n "
- MEMBER_FIELD@964..985
- FIELD_NORMAL@964..985
- FIELD_NAME_FIXED@964..967
- NAME@964..967
- IDENT@964..967 "cos"
- COLONCOLON@967..969 "::"
- WHITESPACE@969..970 " "
- EXPR_INTRINSIC@970..985
- INTRINSIC@970..980 "$intrinsic"
- L_PAREN@980..981 "("
- NAME@981..984
- IDENT@981..984 "cos"
- R_PAREN@984..985 ")"
- COMMA@985..986 ","
- WHITESPACE@986..989 "\n "
- MEMBER_FIELD@989..1010
- FIELD_NORMAL@989..1010
- FIELD_NAME_FIXED@989..992
- NAME@989..992
- IDENT@989..992 "tan"
- COLONCOLON@992..994 "::"
- WHITESPACE@994..995 " "
- EXPR_INTRINSIC@995..1010
- INTRINSIC@995..1005 "$intrinsic"
- L_PAREN@1005..1006 "("
- NAME@1006..1009
- IDENT@1006..1009 "tan"
- R_PAREN@1009..1010 ")"
- COMMA@1010..1011 ","
- WHITESPACE@1011..1014 "\n "
- MEMBER_FIELD@1014..1037
- FIELD_NORMAL@1014..1037
- FIELD_NAME_FIXED@1014..1018
- NAME@1014..1018
- IDENT@1014..1018 "asin"
- COLONCOLON@1018..1020 "::"
- WHITESPACE@1020..1021 " "
- EXPR_INTRINSIC@1021..1037
- INTRINSIC@1021..1031 "$intrinsic"
- L_PAREN@1031..1032 "("
- NAME@1032..1036
- IDENT@1032..1036 "asin"
- R_PAREN@1036..1037 ")"
- COMMA@1037..1038 ","
- WHITESPACE@1038..1041 "\n "
- MEMBER_FIELD@1041..1064
- FIELD_NORMAL@1041..1064
- FIELD_NAME_FIXED@1041..1045
- NAME@1041..1045
- IDENT@1041..1045 "acos"
- COLONCOLON@1045..1047 "::"
- WHITESPACE@1047..1048 " "
- EXPR_INTRINSIC@1048..1064
- INTRINSIC@1048..1058 "$intrinsic"
- L_PAREN@1058..1059 "("
- NAME@1059..1063
- IDENT@1059..1063 "acos"
- R_PAREN@1063..1064 ")"
- COMMA@1064..1065 ","
- WHITESPACE@1065..1068 "\n "
- MEMBER_FIELD@1068..1091
- FIELD_NORMAL@1068..1091
- FIELD_NAME_FIXED@1068..1072
- NAME@1068..1072
- IDENT@1068..1072 "atan"
- COLONCOLON@1072..1074 "::"
- WHITESPACE@1074..1075 " "
- EXPR_INTRINSIC@1075..1091
- INTRINSIC@1075..1085 "$intrinsic"
- L_PAREN@1085..1086 "("
- NAME@1086..1090
- IDENT@1086..1090 "atan"
- R_PAREN@1090..1091 ")"
- COMMA@1091..1092 ","
- WHITESPACE@1092..1096 "\n\n "
- MEMBER_FIELD@1096..1117
- FIELD_NORMAL@1096..1117
- FIELD_NAME_FIXED@1096..1099
- NAME@1096..1099
- IDENT@1096..1099 "exp"
+ MEMBER_FIELD@46..224
+ FIELD_NORMAL@46..224
+ FIELD_NAME_FIXED@46..54
+ NAME@46..54
+ IDENT@46..54 "thisFile"
+ COLONCOLON@54..56 "::"
+ WHITESPACE@56..57 " "
+ EXPR_ERROR@57..224
+ ERROR_KW@57..62 "error"
+ WHITESPACE@62..63 " "
+ EXPR_STRING@63..224
+ STRING_SINGLE@63..224 "'std.thisFile is depr ..."
+ COMMA@224..225 ","
+ WHITESPACE@225..229 "\n\n "
+ MEMBER_FIELD@229..249
+ FIELD_METHOD@229..249
+ FIELD_NAME_FIXED@229..237
+ NAME@229..237
+ IDENT@229..237 "toString"
+ PARAMS_DESC@237..240
+ L_PAREN@237..238 "("
+ PARAM@238..239
+ DESTRUCT_FULL@238..239
+ NAME@238..239
+ IDENT@238..239 "a"
+ R_PAREN@239..240 ")"
+ COLONCOLON@240..242 "::"
+ WHITESPACE@242..243 " "
+ EXPR_BINARY@243..249
+ LHS_EXPR@243..245
+ EXPR_STRING@243..245
+ STRING_SINGLE@243..245 "''"
+ WHITESPACE@245..246 " "
+ PLUS@246..247 "+"
+ WHITESPACE@247..248 " "
+ EXPR_VAR@248..249
+ NAME@248..249
+ IDENT@248..249 "a"
+ COMMA@249..250 ","
+ WHITESPACE@250..254 "\n\n "
+ MEMBER_FIELD@254..397
+ FIELD_METHOD@254..397
+ FIELD_NAME_FIXED@254..265
+ NAME@254..265
+ IDENT@254..265 "lstripChars"
+ PARAMS_DESC@265..277
+ L_PAREN@265..266 "("
+ PARAM@266..269
+ DESTRUCT_FULL@266..269
+ NAME@266..269
+ IDENT@266..269 "str"
+ COMMA@269..270 ","
+ WHITESPACE@270..271 " "
+ PARAM@271..276
+ DESTRUCT_FULL@271..276
+ NAME@271..276
+ IDENT@271..276 "chars"
+ R_PAREN@276..277 ")"
+ COLONCOLON@277..279 "::"
+ WHITESPACE@279..284 "\n "
+ EXPR_IF_THEN_ELSE@284..397
+ IF_KW@284..286 "if"
+ WHITESPACE@286..287 " "
+ EXPR_BINARY@287..335
+ LHS_EXPR@287..306
+ EXPR_BINARY@287..306
+ LHS_EXPR@287..302
+ EXPR_APPLY@287..302
+ EXPR_INDEX@287..297
+ EXPR_VAR@287..290
+ NAME@287..290
+ IDENT@287..290 "std"
+ DOT@290..291 "."
+ NAME@291..297
+ IDENT@291..297 "length"
+ ARGS_DESC@297..302
+ L_PAREN@297..298 "("
+ ARG@298..301
+ EXPR_VAR@298..301
+ NAME@298..301
+ IDENT@298..301 "str"
+ R_PAREN@301..302 ")"
+ WHITESPACE@302..303 " "
+ GT@303..304 ">"
+ WHITESPACE@304..305 " "
+ EXPR_NUMBER@305..306
+ FLOAT@305..306 "0"
+ WHITESPACE@306..307 " "
+ AND@307..309 "&&"
+ WHITESPACE@309..310 " "
+ EXPR_APPLY@310..335
+ EXPR_INDEX@310..320
+ EXPR_VAR@310..313
+ NAME@310..313
+ IDENT@310..313 "std"
+ DOT@313..314 "."
+ NAME@314..320
+ IDENT@314..320 "member"
+ ARGS_DESC@320..335
+ L_PAREN@320..321 "("
+ ARG@321..326
+ EXPR_VAR@321..326
+ NAME@321..326
+ IDENT@321..326 "chars"
+ COMMA@326..327 ","
+ WHITESPACE@327..328 " "
+ ARG@328..334
+ EXPR_INDEX_EXPR@328..334
+ LHS_EXPR@328..331
+ EXPR_VAR@328..331
+ NAME@328..331
+ IDENT@328..331 "str"
+ L_BRACK@331..332 "["
+ EXPR_NUMBER@332..333
+ FLOAT@332..333 "0"
+ R_BRACK@333..334 "]"
+ R_PAREN@334..335 ")"
+ WHITESPACE@335..336 " "
+ THEN_KW@336..340 "then"
+ WHITESPACE@340..347 "\n "
+ TRUE_EXPR@347..378
+ EXPR_APPLY@347..378
+ EXPR_INDEX@347..362
+ EXPR_VAR@347..350
+ NAME@347..350
+ IDENT@347..350 "std"
+ DOT@350..351 "."
+ NAME@351..362
+ IDENT@351..362 "lstripChars"
+ ARGS_DESC@362..378
+ L_PAREN@362..363 "("
+ ARG@363..370
+ EXPR_SLICE@363..370
+ EXPR_VAR@363..366
+ NAME@363..366
+ IDENT@363..366 "str"
+ SLICE_DESC@366..370
+ L_BRACK@366..367 "["
+ EXPR_NUMBER@367..368
+ FLOAT@367..368 "1"
+ COLON@368..369 ":"
+ R_BRACK@369..370 "]"
+ COMMA@370..371 ","
+ WHITESPACE@371..372 " "
+ ARG@372..377
+ EXPR_VAR@372..377
+ NAME@372..377
+ IDENT@372..377 "chars"
+ R_PAREN@377..378 ")"
+ WHITESPACE@378..383 "\n "
+ ELSE_KW@383..387 "else"
+ WHITESPACE@387..394 "\n "
+ FALSE_EXPR@394..397
+ EXPR_VAR@394..397
+ NAME@394..397
+ IDENT@394..397 "str"
+ COMMA@397..398 ","
+ WHITESPACE@398..402 "\n\n "
+ MEMBER_FIELD@402..578
+ FIELD_METHOD@402..578
+ FIELD_NAME_FIXED@402..413
+ NAME@402..413
+ IDENT@402..413 "rstripChars"
+ PARAMS_DESC@413..425
+ L_PAREN@413..414 "("
+ PARAM@414..417
+ DESTRUCT_FULL@414..417
+ NAME@414..417
+ IDENT@414..417 "str"
+ COMMA@417..418 ","
+ WHITESPACE@418..419 " "
+ PARAM@419..424
+ DESTRUCT_FULL@419..424
+ NAME@419..424
+ IDENT@419..424 "chars"
+ R_PAREN@424..425 ")"
+ COLONCOLON@425..427 "::"
+ WHITESPACE@427..432 "\n "
+ EXPR_LOCAL@432..578
+ LOCAL_KW@432..437 "local"
+ WHITESPACE@437..438 " "
+ BIND_DESTRUCT@438..459
+ DESTRUCT_FULL@438..441
+ NAME@438..441
+ IDENT@438..441 "len"
+ WHITESPACE@441..442 " "
+ ASSIGN@442..443 "="
+ WHITESPACE@443..444 " "
+ EXPR_APPLY@444..459
+ EXPR_INDEX@444..454
+ EXPR_VAR@444..447
+ NAME@444..447
+ IDENT@444..447 "std"
+ DOT@447..448 "."
+ NAME@448..454
+ IDENT@448..454 "length"
+ ARGS_DESC@454..459
+ L_PAREN@454..455 "("
+ ARG@455..458
+ EXPR_VAR@455..458
+ NAME@455..458
+ IDENT@455..458 "str"
+ R_PAREN@458..459 ")"
+ SEMI@459..460 ";"
+ WHITESPACE@460..465 "\n "
+ EXPR_IF_THEN_ELSE@465..578
+ IF_KW@465..467 "if"
+ WHITESPACE@467..468 " "
+ EXPR_BINARY@468..510
+ LHS_EXPR@468..475
+ EXPR_BINARY@468..475
+ LHS_EXPR@468..471
+ EXPR_VAR@468..471
+ NAME@468..471
+ IDENT@468..471 "len"
+ WHITESPACE@471..472 " "
+ GT@472..473 ">"
+ WHITESPACE@473..474 " "
+ EXPR_NUMBER@474..475
+ FLOAT@474..475 "0"
+ WHITESPACE@475..476 " "
+ AND@476..478 "&&"
+ WHITESPACE@478..479 " "
+ EXPR_APPLY@479..510
+ EXPR_INDEX@479..489
+ EXPR_VAR@479..482
+ NAME@479..482
+ IDENT@479..482 "std"
+ DOT@482..483 "."
+ NAME@483..489
+ IDENT@483..489 "member"
+ ARGS_DESC@489..510
+ L_PAREN@489..490 "("
+ ARG@490..495
+ EXPR_VAR@490..495
+ NAME@490..495
+ IDENT@490..495 "chars"
+ COMMA@495..496 ","
+ WHITESPACE@496..497 " "
+ ARG@497..509
+ EXPR_INDEX_EXPR@497..509
+ LHS_EXPR@497..500
+ EXPR_VAR@497..500
+ NAME@497..500
+ IDENT@497..500 "str"
+ L_BRACK@500..501 "["
+ EXPR_BINARY@501..508
+ LHS_EXPR@501..504
+ EXPR_VAR@501..504
+ NAME@501..504
+ IDENT@501..504 "len"
+ WHITESPACE@504..505 " "
+ MINUS@505..506 "-"
+ WHITESPACE@506..507 " "
+ EXPR_NUMBER@507..508
+ FLOAT@507..508 "1"
+ R_BRACK@508..509 "]"
+ R_PAREN@509..510 ")"
+ WHITESPACE@510..511 " "
+ THEN_KW@511..515 "then"
+ WHITESPACE@515..522 "\n "
+ TRUE_EXPR@522..559
+ EXPR_APPLY@522..559
+ EXPR_INDEX@522..537
+ EXPR_VAR@522..525
+ NAME@522..525
+ IDENT@522..525 "std"
+ DOT@525..526 "."
+ NAME@526..537
+ IDENT@526..537 "rstripChars"
+ ARGS_DESC@537..559
+ L_PAREN@537..538 "("
+ ARG@538..551
+ EXPR_SLICE@538..551
+ EXPR_VAR@538..541
+ NAME@538..541
+ IDENT@538..541 "str"
+ SLICE_DESC@541..551
+ L_BRACK@541..542 "["
+ COLON@542..543 ":"
+ SLICE_DESC_END@543..550
+ EXPR_BINARY@543..550
+ LHS_EXPR@543..546
+ EXPR_VAR@543..546
+ NAME@543..546
+ IDENT@543..546 "len"
+ WHITESPACE@546..547 " "
+ MINUS@547..548 "-"
+ WHITESPACE@548..549 " "
+ EXPR_NUMBER@549..550
+ FLOAT@549..550 "1"
+ R_BRACK@550..551 "]"
+ COMMA@551..552 ","
+ WHITESPACE@552..553 " "
+ ARG@553..558
+ EXPR_VAR@553..558
+ NAME@553..558
+ IDENT@553..558 "chars"
+ R_PAREN@558..559 ")"
+ WHITESPACE@559..564 "\n "
+ ELSE_KW@564..568 "else"
+ WHITESPACE@568..575 "\n "
+ FALSE_EXPR@575..578
+ EXPR_VAR@575..578
+ NAME@575..578
+ IDENT@575..578 "str"
+ COMMA@578..579 ","
+ WHITESPACE@579..583 "\n\n "
+ MEMBER_FIELD@583..663
+ FIELD_METHOD@583..663
+ FIELD_NAME_FIXED@583..593
+ NAME@583..593
+ IDENT@583..593 "stripChars"
+ PARAMS_DESC@593..605
+ L_PAREN@593..594 "("
+ PARAM@594..597
+ DESTRUCT_FULL@594..597
+ NAME@594..597
+ IDENT@594..597 "str"
+ COMMA@597..598 ","
+ WHITESPACE@598..599 " "
+ PARAM@599..604
+ DESTRUCT_FULL@599..604
+ NAME@599..604
+ IDENT@599..604 "chars"
+ R_PAREN@604..605 ")"
+ COLONCOLON@605..607 "::"
+ WHITESPACE@607..612 "\n "
+ EXPR_APPLY@612..663
+ EXPR_INDEX@612..627
+ EXPR_VAR@612..615
+ NAME@612..615
+ IDENT@612..615 "std"
+ DOT@615..616 "."
+ NAME@616..627
+ IDENT@616..627 "lstripChars"
+ ARGS_DESC@627..663
+ L_PAREN@627..628 "("
+ ARG@628..655
+ EXPR_APPLY@628..655
+ EXPR_INDEX@628..643
+ EXPR_VAR@628..631
+ NAME@628..631
+ IDENT@628..631 "std"
+ DOT@631..632 "."
+ NAME@632..643
+ IDENT@632..643 "rstripChars"
+ ARGS_DESC@643..655
+ L_PAREN@643..644 "("
+ ARG@644..647
+ EXPR_VAR@644..647
+ NAME@644..647
+ IDENT@644..647 "str"
+ COMMA@647..648 ","
+ WHITESPACE@648..649 " "
+ ARG@649..654
+ EXPR_VAR@649..654
+ NAME@649..654
+ IDENT@649..654 "chars"
+ R_PAREN@654..655 ")"
+ COMMA@655..656 ","
+ WHITESPACE@656..657 " "
+ ARG@657..662
+ EXPR_VAR@657..662
+ NAME@657..662
+ IDENT@657..662 "chars"
+ R_PAREN@662..663 ")"
+ COMMA@663..664 ","
+ WHITESPACE@664..668 "\n\n "
+ MEMBER_FIELD@668..741
+ FIELD_METHOD@668..741
+ FIELD_NAME_FIXED@668..679
+ NAME@668..679
+ IDENT@668..679 "stringChars"
+ PARAMS_DESC@679..684
+ L_PAREN@679..680 "("
+ PARAM@680..683
+ DESTRUCT_FULL@680..683
+ NAME@680..683
+ IDENT@680..683 "str"
+ R_PAREN@683..684 ")"
+ COLONCOLON@684..686 "::"
+ WHITESPACE@686..691 "\n "
+ EXPR_APPLY@691..741
+ EXPR_INDEX@691..704
+ EXPR_VAR@691..694
+ NAME@691..694
+ IDENT@691..694 "std"
+ DOT@694..695 "."
+ NAME@695..704
+ IDENT@695..704 "makeArray"
+ ARGS_DESC@704..741
+ L_PAREN@704..705 "("
+ ARG@705..720
+ EXPR_APPLY@705..720
+ EXPR_INDEX@705..715
+ EXPR_VAR@705..708
+ NAME@705..708
+ IDENT@705..708 "std"
+ DOT@708..709 "."
+ NAME@709..715
+ IDENT@709..715 "length"
+ ARGS_DESC@715..720
+ L_PAREN@715..716 "("
+ ARG@716..719
+ EXPR_VAR@716..719
+ NAME@716..719
+ IDENT@716..719 "str"
+ R_PAREN@719..720 ")"
+ COMMA@720..721 ","
+ WHITESPACE@721..722 " "
+ ARG@722..740
+ EXPR_FUNCTION@722..740
+ FUNCTION_KW@722..730 "function"
+ PARAMS_DESC@730..733
+ L_PAREN@730..731 "("
+ PARAM@731..732
+ DESTRUCT_FULL@731..732
+ NAME@731..732
+ IDENT@731..732 "i"
+ R_PAREN@732..733 ")"
+ WHITESPACE@733..734 " "
+ EXPR_INDEX_EXPR@734..740
+ LHS_EXPR@734..737
+ EXPR_VAR@734..737
+ NAME@734..737
+ IDENT@734..737 "str"
+ L_BRACK@737..738 "["
+ EXPR_VAR@738..739
+ NAME@738..739
+ IDENT@738..739 "i"
+ R_BRACK@739..740 "]"
+ R_PAREN@740..741 ")"
+ COMMA@741..742 ","
+ WHITESPACE@742..746 "\n\n "
+ MEMBER_FIELD@746..1024
+ FIELD_METHOD@746..1024
+ FIELD_NAME_FIXED@746..757
+ NAME@746..757
+ IDENT@746..757 "splitLimitR"
+ PARAMS_DESC@757..776
+ L_PAREN@757..758 "("
+ PARAM@758..761
+ DESTRUCT_FULL@758..761
+ NAME@758..761
+ IDENT@758..761 "str"
+ COMMA@761..762 ","
+ WHITESPACE@762..763 " "
+ PARAM@763..764
+ DESTRUCT_FULL@763..764
+ NAME@763..764
+ IDENT@763..764 "c"
+ COMMA@764..765 ","
+ WHITESPACE@765..766 " "
+ PARAM@766..775
+ DESTRUCT_FULL@766..775
+ NAME@766..775
+ IDENT@766..775 "maxsplits"
+ R_PAREN@775..776 ")"
+ COLONCOLON@776..778 "::"
+ WHITESPACE@778..783 "\n "
+ EXPR_IF_THEN_ELSE@783..1024
+ IF_KW@783..785 "if"
+ WHITESPACE@785..786 " "
+ EXPR_BINARY@786..801
+ LHS_EXPR@786..795
+ EXPR_VAR@786..795
+ NAME@786..795
+ IDENT@786..795 "maxsplits"
+ WHITESPACE@795..796 " "
+ EQ@796..798 "=="
+ WHITESPACE@798..799 " "
+ EXPR_UNARY@799..801
+ MINUS@799..800 "-"
+ EXPR_NUMBER@800..801
+ FLOAT@800..801 "1"
+ WHITESPACE@801..802 " "
+ THEN_KW@802..806 "then"
+ WHITESPACE@806..813 "\n "
+ TRUE_EXPR@813..839
+ EXPR_APPLY@813..839
+ EXPR_INDEX@813..827
+ EXPR_VAR@813..816
+ NAME@813..816
+ IDENT@813..816 "std"
+ DOT@816..817 "."
+ NAME@817..827
+ IDENT@817..827 "splitLimit"
+ ARGS_DESC@827..839
+ L_PAREN@827..828 "("
+ ARG@828..831
+ EXPR_VAR@828..831
+ NAME@828..831
+ IDENT@828..831 "str"
+ COMMA@831..832 ","
+ WHITESPACE@832..833 " "
+ ARG@833..834
+ EXPR_VAR@833..834
+ NAME@833..834
+ IDENT@833..834 "c"
+ COMMA@834..835 ","
+ WHITESPACE@835..836 " "
+ ARG@836..838
+ EXPR_UNARY@836..838
+ MINUS@836..837 "-"
+ EXPR_NUMBER@837..838
+ FLOAT@837..838 "1"
+ R_PAREN@838..839 ")"
+ WHITESPACE@839..844 "\n "
+ ELSE_KW@844..848 "else"
+ WHITESPACE@848..855 "\n "
+ FALSE_EXPR@855..1024
+ EXPR_LOCAL@855..1024
+ LOCAL_KW@855..860 "local"
+ WHITESPACE@860..861 " "
+ BIND_FUNCTION@861..922
+ NAME@861..867
+ IDENT@861..867 "revStr"
+ PARAMS_DESC@867..872
+ L_PAREN@867..868 "("
+ PARAM@868..871
+ DESTRUCT_FULL@868..871
+ NAME@868..871
+ IDENT@868..871 "str"
+ R_PAREN@871..872 ")"
+ WHITESPACE@872..873 " "
+ ASSIGN@873..874 "="
+ WHITESPACE@874..875 " "
+ EXPR_APPLY@875..922
+ EXPR_INDEX@875..883
+ EXPR_VAR@875..878
+ NAME@875..878
+ IDENT@875..878 "std"
+ DOT@878..879 "."
+ NAME@879..883
+ IDENT@879..883 "join"
+ ARGS_DESC@883..922
+ L_PAREN@883..884 "("
+ ARG@884..886
+ EXPR_STRING@884..886
+ STRING_SINGLE@884..886 "''"
+ COMMA@886..887 ","
+ WHITESPACE@887..888 " "
+ ARG@888..921
+ EXPR_APPLY@888..921
+ EXPR_INDEX@888..899
+ EXPR_VAR@888..891
+ NAME@888..891
+ IDENT@888..891 "std"
+ DOT@891..892 "."
+ NAME@892..899
+ IDENT@892..899 "reverse"
+ ARGS_DESC@899..921
+ L_PAREN@899..900 "("
+ ARG@900..920
+ EXPR_APPLY@900..920
+ EXPR_INDEX@900..915
+ EXPR_VAR@900..903
+ NAME@900..903
+ IDENT@900..903 "std"
+ DOT@903..904 "."
+ NAME@904..915
+ IDENT@904..915 "stringChars"
+ ARGS_DESC@915..920
+ L_PAREN@915..916 "("
+ ARG@916..919
+ EXPR_VAR@916..919
+ NAME@916..919
+ IDENT@916..919 "str"
+ R_PAREN@919..920 ")"
+ R_PAREN@920..921 ")"
+ R_PAREN@921..922 ")"
+ SEMI@922..923 ";"
+ WHITESPACE@923..930 "\n "
+ EXPR_APPLY@930..1024
+ EXPR_INDEX@930..937
+ EXPR_VAR@930..933
+ NAME@930..933
+ IDENT@930..933 "std"
+ DOT@933..934 "."
+ NAME@934..937
+ IDENT@934..937 "map"
+ ARGS_DESC@937..1024
+ L_PAREN@937..938 "("
+ ARG@938..959
+ EXPR_FUNCTION@938..959
+ FUNCTION_KW@938..946 "function"
+ PARAMS_DESC@946..949
+ L_PAREN@946..947 "("
+ PARAM@947..948
+ DESTRUCT_FULL@947..948
+ NAME@947..948
+ IDENT@947..948 "e"
+ R_PAREN@948..949 ")"
+ WHITESPACE@949..950 " "
+ EXPR_APPLY@950..959
+ EXPR_VAR@950..956
+ NAME@950..956
+ IDENT@950..956 "revStr"
+ ARGS_DESC@956..959
+ L_PAREN@956..957 "("
+ ARG@957..958
+ EXPR_VAR@957..958
+ NAME@957..958
+ IDENT@957..958 "e"
+ R_PAREN@958..959 ")"
+ COMMA@959..960 ","
+ WHITESPACE@960..961 " "
+ ARG@961..1023
+ EXPR_APPLY@961..1023
+ EXPR_INDEX@961..972
+ EXPR_VAR@961..964
+ NAME@961..964
+ IDENT@961..964 "std"
+ DOT@964..965 "."
+ NAME@965..972
+ IDENT@965..972 "reverse"
+ ARGS_DESC@972..1023
+ L_PAREN@972..973 "("
+ ARG@973..1022
+ EXPR_APPLY@973..1022
+ EXPR_INDEX@973..987
+ EXPR_VAR@973..976
+ NAME@973..976
+ IDENT@973..976 "std"
+ DOT@976..977 "."
+ NAME@977..987
+ IDENT@977..987 "splitLimit"
+ ARGS_DESC@987..1022
+ L_PAREN@987..988 "("
+ ARG@988..999
+ EXPR_APPLY@988..999
+ EXPR_VAR@988..994
+ NAME@988..994
+ IDENT@988..994 "revStr"
+ ARGS_DESC@994..999
+ L_PAREN@994..995 "("
+ ARG@995..998
+ EXPR_VAR@995..998
+ NAME@995..998
+ IDENT@995..998 "str"
+ R_PAREN@998..999 ")"
+ COMMA@999..1000 ","
+ WHITESPACE@1000..1001 " "
+ ARG@1001..1010
+ EXPR_APPLY@1001..1010
+ EXPR_VAR@1001..1007
+ NAME@1001..1007
+ IDENT@1001..1007 "revStr"
+ ARGS_DESC@1007..1010
+ L_PAREN@1007..1008 "("
+ ARG@1008..1009
+ EXPR_VAR@1008..1009
+ NAME@1008..1009
+ IDENT@1008..1009 "c"
+ R_PAREN@1009..1010 ")"
+ COMMA@1010..1011 ","
+ WHITESPACE@1011..1012 " "
+ ARG@1012..1021
+ EXPR_VAR@1012..1021
+ NAME@1012..1021
+ IDENT@1012..1021 "maxsplits"
+ R_PAREN@1021..1022 ")"
+ R_PAREN@1022..1023 ")"
+ R_PAREN@1023..1024 ")"
+ COMMA@1024..1025 ","
+ WHITESPACE@1025..1029 "\n\n "
+ MEMBER_FIELD@1029..1071
+ FIELD_METHOD@1029..1071
+ FIELD_NAME_FIXED@1029..1034
+ NAME@1029..1034
+ IDENT@1029..1034 "split"
+ PARAMS_DESC@1034..1042
+ L_PAREN@1034..1035 "("
+ PARAM@1035..1038
+ DESTRUCT_FULL@1035..1038
+ NAME@1035..1038
+ IDENT@1035..1038 "str"
+ COMMA@1038..1039 ","
+ WHITESPACE@1039..1040 " "
+ PARAM@1040..1041
+ DESTRUCT_FULL@1040..1041
+ NAME@1040..1041
+ IDENT@1040..1041 "c"
+ R_PAREN@1041..1042 ")"
+ COLONCOLON@1042..1044 "::"
+ WHITESPACE@1044..1045 " "
+ EXPR_APPLY@1045..1071
+ EXPR_INDEX@1045..1059
+ EXPR_VAR@1045..1048
+ NAME@1045..1048
+ IDENT@1045..1048 "std"
+ DOT@1048..1049 "."
+ NAME@1049..1059
+ IDENT@1049..1059 "splitLimit"
+ ARGS_DESC@1059..1071
+ L_PAREN@1059..1060 "("
+ ARG@1060..1063
+ EXPR_VAR@1060..1063
+ NAME@1060..1063
+ IDENT@1060..1063 "str"
+ COMMA@1063..1064 ","
+ WHITESPACE@1064..1065 " "
+ ARG@1065..1066
+ EXPR_VAR@1065..1066
+ NAME@1065..1066
+ IDENT@1065..1066 "c"
+ COMMA@1066..1067 ","
+ WHITESPACE@1067..1068 " "
+ ARG@1068..1070
+ EXPR_UNARY@1068..1070
+ MINUS@1068..1069 "-"
+ EXPR_NUMBER@1069..1070
+ FLOAT@1069..1070 "1"
+ R_PAREN@1070..1071 ")"
+ COMMA@1071..1072 ","
+ WHITESPACE@1072..1076 "\n\n "
+ MEMBER_FIELD@1076..1434
+ FIELD_METHOD@1076..1434
+ FIELD_NAME_FIXED@1076..1088
+ NAME@1076..1088
+ IDENT@1076..1088 "mapWithIndex"
+ PARAMS_DESC@1088..1099
+ L_PAREN@1088..1089 "("
+ PARAM@1089..1093
+ DESTRUCT_FULL@1089..1093
+ NAME@1089..1093
+ IDENT@1089..1093 "func"
+ COMMA@1093..1094 ","
+ WHITESPACE@1094..1095 " "
+ PARAM@1095..1098
+ DESTRUCT_FULL@1095..1098
+ NAME@1095..1098
+ IDENT@1095..1098 "arr"
+ R_PAREN@1098..1099 ")"
COLONCOLON@1099..1101 "::"
- WHITESPACE@1101..1102 " "
- EXPR_INTRINSIC@1102..1117
- INTRINSIC@1102..1112 "$intrinsic"
- L_PAREN@1112..1113 "("
- NAME@1113..1116
- IDENT@1113..1116 "exp"
- R_PAREN@1116..1117 ")"
- COMMA@1117..1118 ","
- WHITESPACE@1118..1121 "\n "
- MEMBER_FIELD@1121..1152
- FIELD_NORMAL@1121..1152
- FIELD_NAME_FIXED@1121..1129
- NAME@1121..1129
- IDENT@1121..1129 "mantissa"
- COLONCOLON@1129..1131 "::"
- WHITESPACE@1131..1132 " "
- EXPR_INTRINSIC@1132..1152
- INTRINSIC@1132..1142 "$intrinsic"
- L_PAREN@1142..1143 "("
- NAME@1143..1151
- IDENT@1143..1151 "mantissa"
- R_PAREN@1151..1152 ")"
- COMMA@1152..1153 ","
- WHITESPACE@1153..1156 "\n "
- MEMBER_FIELD@1156..1187
- FIELD_NORMAL@1156..1187
- FIELD_NAME_FIXED@1156..1164
- NAME@1156..1164
- IDENT@1156..1164 "exponent"
- COLONCOLON@1164..1166 "::"
- WHITESPACE@1166..1167 " "
- EXPR_INTRINSIC@1167..1187
- INTRINSIC@1167..1177 "$intrinsic"
- L_PAREN@1177..1178 "("
- NAME@1178..1186
- IDENT@1178..1186 "exponent"
- R_PAREN@1186..1187 ")"
- COMMA@1187..1188 ","
- WHITESPACE@1188..1192 "\n\n "
- MEMBER_FIELD@1192..1213
- FIELD_NORMAL@1192..1213
- FIELD_NAME_FIXED@1192..1195
- NAME@1192..1195
- IDENT@1192..1195 "any"
- COLONCOLON@1195..1197 "::"
- WHITESPACE@1197..1198 " "
- EXPR_INTRINSIC@1198..1213
- INTRINSIC@1198..1208 "$intrinsic"
- L_PAREN@1208..1209 "("
- NAME@1209..1212
- IDENT@1209..1212 "any"
- R_PAREN@1212..1213 ")"
- COMMA@1213..1214 ","
- WHITESPACE@1214..1217 "\n "
- MEMBER_FIELD@1217..1238
- FIELD_NORMAL@1217..1238
- FIELD_NAME_FIXED@1217..1220
- NAME@1217..1220
- IDENT@1217..1220 "all"
- COLONCOLON@1220..1222 "::"
- WHITESPACE@1222..1223 " "
- EXPR_INTRINSIC@1223..1238
- INTRINSIC@1223..1233 "$intrinsic"
- L_PAREN@1233..1234 "("
- NAME@1234..1237
- IDENT@1234..1237 "all"
- R_PAREN@1237..1238 ")"
- COMMA@1238..1239 ","
- WHITESPACE@1239..1243 "\n\n "
- MEMBER_FIELD@1243..1280
- FIELD_METHOD@1243..1280
- FIELD_NAME_FIXED@1243..1251
- NAME@1243..1251
- IDENT@1243..1251 "isString"
- PARAMS_DESC@1251..1254
- L_PAREN@1251..1252 "("
- PARAM@1252..1253
- DESTRUCT_FULL@1252..1253
- NAME@1252..1253
- IDENT@1252..1253 "v"
- R_PAREN@1253..1254 ")"
- COLONCOLON@1254..1256 "::"
- WHITESPACE@1256..1257 " "
- EXPR_BINARY@1257..1280
- LHS_EXPR@1257..1268
- EXPR_APPLY@1257..1268
- EXPR_INDEX@1257..1265
- EXPR_VAR@1257..1260
- NAME@1257..1260
- IDENT@1257..1260 "std"
- DOT@1260..1261 "."
- NAME@1261..1265
- IDENT@1261..1265 "type"
- ARGS_DESC@1265..1268
- L_PAREN@1265..1266 "("
- ARG@1266..1267
- EXPR_VAR@1266..1267
- NAME@1266..1267
- IDENT@1266..1267 "v"
- R_PAREN@1267..1268 ")"
- WHITESPACE@1268..1269 " "
- EQ@1269..1271 "=="
- WHITESPACE@1271..1272 " "
- EXPR_STRING@1272..1280
- STRING_SINGLE@1272..1280 "'string'"
- COMMA@1280..1281 ","
- WHITESPACE@1281..1284 "\n "
- MEMBER_FIELD@1284..1321
- FIELD_METHOD@1284..1321
- FIELD_NAME_FIXED@1284..1292
- NAME@1284..1292
- IDENT@1284..1292 "isNumber"
- PARAMS_DESC@1292..1295
- L_PAREN@1292..1293 "("
- PARAM@1293..1294
- DESTRUCT_FULL@1293..1294
- NAME@1293..1294
- IDENT@1293..1294 "v"
- R_PAREN@1294..1295 ")"
- COLONCOLON@1295..1297 "::"
- WHITESPACE@1297..1298 " "
- EXPR_BINARY@1298..1321
- LHS_EXPR@1298..1309
- EXPR_APPLY@1298..1309
- EXPR_INDEX@1298..1306
- EXPR_VAR@1298..1301
- NAME@1298..1301
- IDENT@1298..1301 "std"
- DOT@1301..1302 "."
- NAME@1302..1306
- IDENT@1302..1306 "type"
- ARGS_DESC@1306..1309
- L_PAREN@1306..1307 "("
- ARG@1307..1308
- EXPR_VAR@1307..1308
- NAME@1307..1308
- IDENT@1307..1308 "v"
- R_PAREN@1308..1309 ")"
- WHITESPACE@1309..1310 " "
- EQ@1310..1312 "=="
- WHITESPACE@1312..1313 " "
- EXPR_STRING@1313..1321
- STRING_SINGLE@1313..1321 "'number'"
- COMMA@1321..1322 ","
- WHITESPACE@1322..1325 "\n "
- MEMBER_FIELD@1325..1364
- FIELD_METHOD@1325..1364
- FIELD_NAME_FIXED@1325..1334
- NAME@1325..1334
- IDENT@1325..1334 "isBoolean"
- PARAMS_DESC@1334..1337
- L_PAREN@1334..1335 "("
- PARAM@1335..1336
- DESTRUCT_FULL@1335..1336
- NAME@1335..1336
- IDENT@1335..1336 "v"
- R_PAREN@1336..1337 ")"
- COLONCOLON@1337..1339 "::"
- WHITESPACE@1339..1340 " "
- EXPR_BINARY@1340..1364
- LHS_EXPR@1340..1351
- EXPR_APPLY@1340..1351
- EXPR_INDEX@1340..1348
- EXPR_VAR@1340..1343
- NAME@1340..1343
- IDENT@1340..1343 "std"
- DOT@1343..1344 "."
- NAME@1344..1348
- IDENT@1344..1348 "type"
- ARGS_DESC@1348..1351
- L_PAREN@1348..1349 "("
- ARG@1349..1350
- EXPR_VAR@1349..1350
- NAME@1349..1350
- IDENT@1349..1350 "v"
- R_PAREN@1350..1351 ")"
- WHITESPACE@1351..1352 " "
- EQ@1352..1354 "=="
- WHITESPACE@1354..1355 " "
- EXPR_STRING@1355..1364
- STRING_SINGLE@1355..1364 "'boolean'"
- COMMA@1364..1365 ","
- WHITESPACE@1365..1368 "\n "
- MEMBER_FIELD@1368..1405
- FIELD_METHOD@1368..1405
- FIELD_NAME_FIXED@1368..1376
- NAME@1368..1376
- IDENT@1368..1376 "isObject"
- PARAMS_DESC@1376..1379
- L_PAREN@1376..1377 "("
- PARAM@1377..1378
- DESTRUCT_FULL@1377..1378
- NAME@1377..1378
- IDENT@1377..1378 "v"
- R_PAREN@1378..1379 ")"
- COLONCOLON@1379..1381 "::"
- WHITESPACE@1381..1382 " "
- EXPR_BINARY@1382..1405
- LHS_EXPR@1382..1393
- EXPR_APPLY@1382..1393
- EXPR_INDEX@1382..1390
- EXPR_VAR@1382..1385
- NAME@1382..1385
- IDENT@1382..1385 "std"
- DOT@1385..1386 "."
- NAME@1386..1390
- IDENT@1386..1390 "type"
- ARGS_DESC@1390..1393
- L_PAREN@1390..1391 "("
- ARG@1391..1392
- EXPR_VAR@1391..1392
- NAME@1391..1392
- IDENT@1391..1392 "v"
- R_PAREN@1392..1393 ")"
- WHITESPACE@1393..1394 " "
- EQ@1394..1396 "=="
- WHITESPACE@1396..1397 " "
- EXPR_STRING@1397..1405
- STRING_SINGLE@1397..1405 "'object'"
- COMMA@1405..1406 ","
- WHITESPACE@1406..1409 "\n "
- MEMBER_FIELD@1409..1444
- FIELD_METHOD@1409..1444
- FIELD_NAME_FIXED@1409..1416
- NAME@1409..1416
- IDENT@1409..1416 "isArray"
- PARAMS_DESC@1416..1419
- L_PAREN@1416..1417 "("
- PARAM@1417..1418
- DESTRUCT_FULL@1417..1418
- NAME@1417..1418
- IDENT@1417..1418 "v"
- R_PAREN@1418..1419 ")"
- COLONCOLON@1419..1421 "::"
- WHITESPACE@1421..1422 " "
- EXPR_BINARY@1422..1444
- LHS_EXPR@1422..1433
- EXPR_APPLY@1422..1433
- EXPR_INDEX@1422..1430
- EXPR_VAR@1422..1425
- NAME@1422..1425
- IDENT@1422..1425 "std"
- DOT@1425..1426 "."
- NAME@1426..1430
- IDENT@1426..1430 "type"
- ARGS_DESC@1430..1433
- L_PAREN@1430..1431 "("
- ARG@1431..1432
- EXPR_VAR@1431..1432
- NAME@1431..1432
- IDENT@1431..1432 "v"
- R_PAREN@1432..1433 ")"
- WHITESPACE@1433..1434 " "
- EQ@1434..1436 "=="
- WHITESPACE@1436..1437 " "
- EXPR_STRING@1437..1444
- STRING_SINGLE@1437..1444 "'array'"
- COMMA@1444..1445 ","
- WHITESPACE@1445..1448 "\n "
- MEMBER_FIELD@1448..1489
- FIELD_METHOD@1448..1489
- FIELD_NAME_FIXED@1448..1458
- NAME@1448..1458
- IDENT@1448..1458 "isFunction"
- PARAMS_DESC@1458..1461
- L_PAREN@1458..1459 "("
- PARAM@1459..1460
- DESTRUCT_FULL@1459..1460
- NAME@1459..1460
- IDENT@1459..1460 "v"
- R_PAREN@1460..1461 ")"
- COLONCOLON@1461..1463 "::"
- WHITESPACE@1463..1464 " "
- EXPR_BINARY@1464..1489
- LHS_EXPR@1464..1475
- EXPR_APPLY@1464..1475
- EXPR_INDEX@1464..1472
- EXPR_VAR@1464..1467
- NAME@1464..1467
- IDENT@1464..1467 "std"
- DOT@1467..1468 "."
- NAME@1468..1472
- IDENT@1468..1472 "type"
- ARGS_DESC@1472..1475
- L_PAREN@1472..1473 "("
- ARG@1473..1474
- EXPR_VAR@1473..1474
- NAME@1473..1474
- IDENT@1473..1474 "v"
- R_PAREN@1474..1475 ")"
- WHITESPACE@1475..1476 " "
- EQ@1476..1478 "=="
- WHITESPACE@1478..1479 " "
- EXPR_STRING@1479..1489
- STRING_SINGLE@1479..1489 "'function'"
- COMMA@1489..1490 ","
- WHITESPACE@1490..1494 "\n\n "
- MEMBER_FIELD@1494..1557
- FIELD_METHOD@1494..1557
- FIELD_NAME_FIXED@1494..1502
- NAME@1494..1502
- IDENT@1494..1502 "toString"
- PARAMS_DESC@1502..1505
- L_PAREN@1502..1503 "("
- PARAM@1503..1504
- DESTRUCT_FULL@1503..1504
- NAME@1503..1504
- IDENT@1503..1504 "a"
- R_PAREN@1504..1505 ")"
- COLONCOLON@1505..1507 "::"
- WHITESPACE@1507..1512 "\n "
- EXPR_IF_THEN_ELSE@1512..1557
- IF_KW@1512..1514 "if"
- WHITESPACE@1514..1515 " "
- EXPR_BINARY@1515..1538
- LHS_EXPR@1515..1526
- EXPR_APPLY@1515..1526
- EXPR_INDEX@1515..1523
- EXPR_VAR@1515..1518
- NAME@1515..1518
- IDENT@1515..1518 "std"
- DOT@1518..1519 "."
- NAME@1519..1523
- IDENT@1519..1523 "type"
- ARGS_DESC@1523..1526
- L_PAREN@1523..1524 "("
- ARG@1524..1525
- EXPR_VAR@1524..1525
- NAME@1524..1525
- IDENT@1524..1525 "a"
- R_PAREN@1525..1526 ")"
- WHITESPACE@1526..1527 " "
- EQ@1527..1529 "=="
- WHITESPACE@1529..1530 " "
- EXPR_STRING@1530..1538
- STRING_SINGLE@1530..1538 "'string'"
- WHITESPACE@1538..1539 " "
- THEN_KW@1539..1543 "then"
- WHITESPACE@1543..1544 " "
- TRUE_EXPR@1544..1545
- EXPR_VAR@1544..1545
- NAME@1544..1545
- IDENT@1544..1545 "a"
- WHITESPACE@1545..1546 " "
- ELSE_KW@1546..1550 "else"
- WHITESPACE@1550..1551 " "
- FALSE_EXPR@1551..1557
- EXPR_BINARY@1551..1557
- LHS_EXPR@1551..1553
- EXPR_STRING@1551..1553
- STRING_SINGLE@1551..1553 "''"
- WHITESPACE@1553..1554 " "
- PLUS@1554..1555 "+"
- WHITESPACE@1555..1556 " "
- EXPR_VAR@1556..1557
- NAME@1556..1557
- IDENT@1556..1557 "a"
- COMMA@1557..1558 ","
- WHITESPACE@1558..1562 "\n\n "
- MEMBER_FIELD@1562..1589
- FIELD_NORMAL@1562..1589
- FIELD_NAME_FIXED@1562..1568
- NAME@1562..1568
- IDENT@1562..1568 "substr"
- COLONCOLON@1568..1570 "::"
- WHITESPACE@1570..1571 " "
- EXPR_INTRINSIC@1571..1589
- INTRINSIC@1571..1581 "$intrinsic"
- L_PAREN@1581..1582 "("
- NAME@1582..1588
- IDENT@1582..1588 "substr"
- R_PAREN@1588..1589 ")"
- COMMA@1589..1590 ","
- WHITESPACE@1590..1594 "\n\n "
- MEMBER_FIELD@1594..1718
- FIELD_METHOD@1594..1718
- FIELD_NAME_FIXED@1594..1604
- NAME@1594..1604
- IDENT@1594..1604 "startsWith"
- PARAMS_DESC@1604..1610
- L_PAREN@1604..1605 "("
- PARAM@1605..1606
- DESTRUCT_FULL@1605..1606
- NAME@1605..1606
- IDENT@1605..1606 "a"
- COMMA@1606..1607 ","
- WHITESPACE@1607..1608 " "
- PARAM@1608..1609
- DESTRUCT_FULL@1608..1609
- NAME@1608..1609
- IDENT@1608..1609 "b"
- R_PAREN@1609..1610 ")"
- COLONCOLON@1610..1612 "::"
- WHITESPACE@1612..1617 "\n "
- EXPR_IF_THEN_ELSE@1617..1718
- IF_KW@1617..1619 "if"
- WHITESPACE@1619..1620 " "
- EXPR_BINARY@1620..1649
- LHS_EXPR@1620..1633
- EXPR_APPLY@1620..1633
- EXPR_INDEX@1620..1630
- EXPR_VAR@1620..1623
- NAME@1620..1623
- IDENT@1620..1623 "std"
- DOT@1623..1624 "."
- NAME@1624..1630
- IDENT@1624..1630 "length"
- ARGS_DESC@1630..1633
- L_PAREN@1630..1631 "("
- ARG@1631..1632
- EXPR_VAR@1631..1632
- NAME@1631..1632
- IDENT@1631..1632 "a"
- R_PAREN@1632..1633 ")"
- WHITESPACE@1633..1634 " "
- LT@1634..1635 "<"
- WHITESPACE@1635..1636 " "
- EXPR_APPLY@1636..1649
- EXPR_INDEX@1636..1646
- EXPR_VAR@1636..1639
- NAME@1636..1639
- IDENT@1636..1639 "std"
- DOT@1639..1640 "."
- NAME@1640..1646
- IDENT@1640..1646 "length"
- ARGS_DESC@1646..1649
- L_PAREN@1646..1647 "("
- ARG@1647..1648
- EXPR_VAR@1647..1648
- NAME@1647..1648
- IDENT@1647..1648 "b"
- R_PAREN@1648..1649 ")"
- WHITESPACE@1649..1650 " "
- THEN_KW@1650..1654 "then"
- WHITESPACE@1654..1661 "\n "
- TRUE_EXPR@1661..1666
- EXPR_LITERAL@1661..1666
- FALSE_KW@1661..1666 "false"
- WHITESPACE@1666..1671 "\n "
- ELSE_KW@1671..1675 "else"
- WHITESPACE@1675..1682 "\n "
- FALSE_EXPR@1682..1718
- EXPR_BINARY@1682..1718
- LHS_EXPR@1682..1713
- EXPR_APPLY@1682..1713
- EXPR_INDEX@1682..1692
- EXPR_VAR@1682..1685
- NAME@1682..1685
- IDENT@1682..1685 "std"
- DOT@1685..1686 "."
- NAME@1686..1692
- IDENT@1686..1692 "substr"
- ARGS_DESC@1692..1713
- L_PAREN@1692..1693 "("
- ARG@1693..1694
- EXPR_VAR@1693..1694
- NAME@1693..1694
- IDENT@1693..1694 "a"
- COMMA@1694..1695 ","
- WHITESPACE@1695..1696 " "
- ARG@1696..1697
- EXPR_NUMBER@1696..1697
- FLOAT@1696..1697 "0"
- COMMA@1697..1698 ","
- WHITESPACE@1698..1699 " "
- ARG@1699..1712
- EXPR_APPLY@1699..1712
- EXPR_INDEX@1699..1709
- EXPR_VAR@1699..1702
- NAME@1699..1702
- IDENT@1699..1702 "std"
- DOT@1702..1703 "."
- NAME@1703..1709
- IDENT@1703..1709 "length"
- ARGS_DESC@1709..1712
- L_PAREN@1709..1710 "("
- ARG@1710..1711
- EXPR_VAR@1710..1711
- NAME@1710..1711
- IDENT@1710..1711 "b"
- R_PAREN@1711..1712 ")"
- R_PAREN@1712..1713 ")"
- WHITESPACE@1713..1714 " "
- EQ@1714..1716 "=="
- WHITESPACE@1716..1717 " "
- EXPR_VAR@1717..1718
- NAME@1717..1718
- IDENT@1717..1718 "b"
- COMMA@1718..1719 ","
- WHITESPACE@1719..1723 "\n\n "
- MEMBER_FIELD@1723..1873
- FIELD_METHOD@1723..1873
- FIELD_NAME_FIXED@1723..1731
- NAME@1723..1731
- IDENT@1723..1731 "endsWith"
- PARAMS_DESC@1731..1737
- L_PAREN@1731..1732 "("
- PARAM@1732..1733
- DESTRUCT_FULL@1732..1733
- NAME@1732..1733
- IDENT@1732..1733 "a"
- COMMA@1733..1734 ","
- WHITESPACE@1734..1735 " "
- PARAM@1735..1736
- DESTRUCT_FULL@1735..1736
- NAME@1735..1736
- IDENT@1735..1736 "b"
- R_PAREN@1736..1737 ")"
- COLONCOLON@1737..1739 "::"
- WHITESPACE@1739..1744 "\n "
- EXPR_IF_THEN_ELSE@1744..1873
- IF_KW@1744..1746 "if"
- WHITESPACE@1746..1747 " "
- EXPR_BINARY@1747..1776
- LHS_EXPR@1747..1760
- EXPR_APPLY@1747..1760
- EXPR_INDEX@1747..1757
- EXPR_VAR@1747..1750
- NAME@1747..1750
- IDENT@1747..1750 "std"
- DOT@1750..1751 "."
- NAME@1751..1757
- IDENT@1751..1757 "length"
- ARGS_DESC@1757..1760
- L_PAREN@1757..1758 "("
- ARG@1758..1759
- EXPR_VAR@1758..1759
- NAME@1758..1759
- IDENT@1758..1759 "a"
- R_PAREN@1759..1760 ")"
- WHITESPACE@1760..1761 " "
- LT@1761..1762 "<"
- WHITESPACE@1762..1763 " "
- EXPR_APPLY@1763..1776
- EXPR_INDEX@1763..1773
- EXPR_VAR@1763..1766
- NAME@1763..1766
- IDENT@1763..1766 "std"
- DOT@1766..1767 "."
- NAME@1767..1773
- IDENT@1767..1773 "length"
- ARGS_DESC@1773..1776
- L_PAREN@1773..1774 "("
- ARG@1774..1775
- EXPR_VAR@1774..1775
- NAME@1774..1775
- IDENT@1774..1775 "b"
- R_PAREN@1775..1776 ")"
- WHITESPACE@1776..1777 " "
- THEN_KW@1777..1781 "then"
- WHITESPACE@1781..1788 "\n "
- TRUE_EXPR@1788..1793
- EXPR_LITERAL@1788..1793
- FALSE_KW@1788..1793 "false"
- WHITESPACE@1793..1798 "\n "
- ELSE_KW@1798..1802 "else"
- WHITESPACE@1802..1809 "\n "
- FALSE_EXPR@1809..1873
- EXPR_BINARY@1809..1873
- LHS_EXPR@1809..1868
- EXPR_APPLY@1809..1868
- EXPR_INDEX@1809..1819
- EXPR_VAR@1809..1812
- NAME@1809..1812
- IDENT@1809..1812 "std"
- DOT@1812..1813 "."
- NAME@1813..1819
- IDENT@1813..1819 "substr"
- ARGS_DESC@1819..1868
- L_PAREN@1819..1820 "("
- ARG@1820..1821
- EXPR_VAR@1820..1821
- NAME@1820..1821
- IDENT@1820..1821 "a"
- COMMA@1821..1822 ","
- WHITESPACE@1822..1823 " "
- ARG@1823..1852
- EXPR_BINARY@1823..1852
- LHS_EXPR@1823..1836
- EXPR_APPLY@1823..1836
- EXPR_INDEX@1823..1833
- EXPR_VAR@1823..1826
- NAME@1823..1826
- IDENT@1823..1826 "std"
- DOT@1826..1827 "."
- NAME@1827..1833
- IDENT@1827..1833 "length"
- ARGS_DESC@1833..1836
- L_PAREN@1833..1834 "("
- ARG@1834..1835
- EXPR_VAR@1834..1835
- NAME@1834..1835
- IDENT@1834..1835 "a"
- R_PAREN@1835..1836 ")"
- WHITESPACE@1836..1837 " "
- MINUS@1837..1838 "-"
- WHITESPACE@1838..1839 " "
- EXPR_APPLY@1839..1852
- EXPR_INDEX@1839..1849
- EXPR_VAR@1839..1842
- NAME@1839..1842
- IDENT@1839..1842 "std"
- DOT@1842..1843 "."
- NAME@1843..1849
- IDENT@1843..1849 "length"
- ARGS_DESC@1849..1852
- L_PAREN@1849..1850 "("
- ARG@1850..1851
- EXPR_VAR@1850..1851
- NAME@1850..1851
- IDENT@1850..1851 "b"
- R_PAREN@1851..1852 ")"
- COMMA@1852..1853 ","
- WHITESPACE@1853..1854 " "
- ARG@1854..1867
- EXPR_APPLY@1854..1867
- EXPR_INDEX@1854..1864
- EXPR_VAR@1854..1857
- NAME@1854..1857
- IDENT@1854..1857 "std"
- DOT@1857..1858 "."
- NAME@1858..1864
- IDENT@1858..1864 "length"
- ARGS_DESC@1864..1867
- L_PAREN@1864..1865 "("
- ARG@1865..1866
- EXPR_VAR@1865..1866
- NAME@1865..1866
- IDENT@1865..1866 "b"
- R_PAREN@1866..1867 ")"
- R_PAREN@1867..1868 ")"
- WHITESPACE@1868..1869 " "
- EQ@1869..1871 "=="
- WHITESPACE@1871..1872 " "
- EXPR_VAR@1872..1873
- NAME@1872..1873
- IDENT@1872..1873 "b"
- COMMA@1873..1874 ","
- WHITESPACE@1874..1878 "\n\n "
- MEMBER_FIELD@1878..2021
- FIELD_METHOD@1878..2021
- FIELD_NAME_FIXED@1878..1889
- NAME@1878..1889
- IDENT@1878..1889 "lstripChars"
- PARAMS_DESC@1889..1901
- L_PAREN@1889..1890 "("
- PARAM@1890..1893
- DESTRUCT_FULL@1890..1893
- NAME@1890..1893
- IDENT@1890..1893 "str"
- COMMA@1893..1894 ","
- WHITESPACE@1894..1895 " "
- PARAM@1895..1900
- DESTRUCT_FULL@1895..1900
- NAME@1895..1900
- IDENT@1895..1900 "chars"
- R_PAREN@1900..1901 ")"
- COLONCOLON@1901..1903 "::"
- WHITESPACE@1903..1908 "\n "
- EXPR_IF_THEN_ELSE@1908..2021
- IF_KW@1908..1910 "if"
- WHITESPACE@1910..1911 " "
- EXPR_BINARY@1911..1959
- LHS_EXPR@1911..1930
- EXPR_BINARY@1911..1930
- LHS_EXPR@1911..1926
- EXPR_APPLY@1911..1926
- EXPR_INDEX@1911..1921
- EXPR_VAR@1911..1914
- NAME@1911..1914
- IDENT@1911..1914 "std"
- DOT@1914..1915 "."
- NAME@1915..1921
- IDENT@1915..1921 "length"
- ARGS_DESC@1921..1926
- L_PAREN@1921..1922 "("
- ARG@1922..1925
- EXPR_VAR@1922..1925
- NAME@1922..1925
- IDENT@1922..1925 "str"
- R_PAREN@1925..1926 ")"
- WHITESPACE@1926..1927 " "
- GT@1927..1928 ">"
- WHITESPACE@1928..1929 " "
- EXPR_NUMBER@1929..1930
- FLOAT@1929..1930 "0"
- WHITESPACE@1930..1931 " "
- AND@1931..1933 "&&"
- WHITESPACE@1933..1934 " "
- EXPR_APPLY@1934..1959
- EXPR_INDEX@1934..1944
- EXPR_VAR@1934..1937
- NAME@1934..1937
- IDENT@1934..1937 "std"
- DOT@1937..1938 "."
- NAME@1938..1944
- IDENT@1938..1944 "member"
- ARGS_DESC@1944..1959
- L_PAREN@1944..1945 "("
- ARG@1945..1950
- EXPR_VAR@1945..1950
- NAME@1945..1950
- IDENT@1945..1950 "chars"
- COMMA@1950..1951 ","
- WHITESPACE@1951..1952 " "
- ARG@1952..1958
- EXPR_INDEX_EXPR@1952..1958
- LHS_EXPR@1952..1955
- EXPR_VAR@1952..1955
- NAME@1952..1955
- IDENT@1952..1955 "str"
- L_BRACK@1955..1956 "["
- EXPR_NUMBER@1956..1957
- FLOAT@1956..1957 "0"
- R_BRACK@1957..1958 "]"
- R_PAREN@1958..1959 ")"
- WHITESPACE@1959..1960 " "
- THEN_KW@1960..1964 "then"
- WHITESPACE@1964..1971 "\n "
- TRUE_EXPR@1971..2002
- EXPR_APPLY@1971..2002
- EXPR_INDEX@1971..1986
- EXPR_VAR@1971..1974
- NAME@1971..1974
- IDENT@1971..1974 "std"
- DOT@1974..1975 "."
- NAME@1975..1986
- IDENT@1975..1986 "lstripChars"
- ARGS_DESC@1986..2002
- L_PAREN@1986..1987 "("
- ARG@1987..1994
- EXPR_SLICE@1987..1994
- EXPR_VAR@1987..1990
- NAME@1987..1990
- IDENT@1987..1990 "str"
- SLICE_DESC@1990..1994
- L_BRACK@1990..1991 "["
- EXPR_NUMBER@1991..1992
- FLOAT@1991..1992 "1"
- COLON@1992..1993 ":"
- R_BRACK@1993..1994 "]"
- COMMA@1994..1995 ","
- WHITESPACE@1995..1996 " "
- ARG@1996..2001
- EXPR_VAR@1996..2001
- NAME@1996..2001
- IDENT@1996..2001 "chars"
- R_PAREN@2001..2002 ")"
- WHITESPACE@2002..2007 "\n "
- ELSE_KW@2007..2011 "else"
- WHITESPACE@2011..2018 "\n "
- FALSE_EXPR@2018..2021
- EXPR_VAR@2018..2021
- NAME@2018..2021
- IDENT@2018..2021 "str"
- COMMA@2021..2022 ","
- WHITESPACE@2022..2026 "\n\n "
- MEMBER_FIELD@2026..2202
- FIELD_METHOD@2026..2202
- FIELD_NAME_FIXED@2026..2037
- NAME@2026..2037
- IDENT@2026..2037 "rstripChars"
- PARAMS_DESC@2037..2049
- L_PAREN@2037..2038 "("
- PARAM@2038..2041
- DESTRUCT_FULL@2038..2041
- NAME@2038..2041
- IDENT@2038..2041 "str"
- COMMA@2041..2042 ","
- WHITESPACE@2042..2043 " "
- PARAM@2043..2048
- DESTRUCT_FULL@2043..2048
- NAME@2043..2048
- IDENT@2043..2048 "chars"
- R_PAREN@2048..2049 ")"
- COLONCOLON@2049..2051 "::"
- WHITESPACE@2051..2056 "\n "
- EXPR_LOCAL@2056..2202
- LOCAL_KW@2056..2061 "local"
- WHITESPACE@2061..2062 " "
- BIND_DESTRUCT@2062..2083
- DESTRUCT_FULL@2062..2065
- NAME@2062..2065
- IDENT@2062..2065 "len"
- WHITESPACE@2065..2066 " "
- ASSIGN@2066..2067 "="
- WHITESPACE@2067..2068 " "
- EXPR_APPLY@2068..2083
- EXPR_INDEX@2068..2078
- EXPR_VAR@2068..2071
- NAME@2068..2071
- IDENT@2068..2071 "std"
- DOT@2071..2072 "."
- NAME@2072..2078
- IDENT@2072..2078 "length"
- ARGS_DESC@2078..2083
- L_PAREN@2078..2079 "("
- ARG@2079..2082
- EXPR_VAR@2079..2082
- NAME@2079..2082
- IDENT@2079..2082 "str"
- R_PAREN@2082..2083 ")"
- SEMI@2083..2084 ";"
- WHITESPACE@2084..2089 "\n "
- EXPR_IF_THEN_ELSE@2089..2202
- IF_KW@2089..2091 "if"
- WHITESPACE@2091..2092 " "
- EXPR_BINARY@2092..2134
- LHS_EXPR@2092..2099
- EXPR_BINARY@2092..2099
- LHS_EXPR@2092..2095
- EXPR_VAR@2092..2095
- NAME@2092..2095
- IDENT@2092..2095 "len"
- WHITESPACE@2095..2096 " "
- GT@2096..2097 ">"
- WHITESPACE@2097..2098 " "
- EXPR_NUMBER@2098..2099
- FLOAT@2098..2099 "0"
- WHITESPACE@2099..2100 " "
- AND@2100..2102 "&&"
- WHITESPACE@2102..2103 " "
- EXPR_APPLY@2103..2134
- EXPR_INDEX@2103..2113
- EXPR_VAR@2103..2106
- NAME@2103..2106
- IDENT@2103..2106 "std"
- DOT@2106..2107 "."
- NAME@2107..2113
- IDENT@2107..2113 "member"
- ARGS_DESC@2113..2134
- L_PAREN@2113..2114 "("
- ARG@2114..2119
- EXPR_VAR@2114..2119
- NAME@2114..2119
- IDENT@2114..2119 "chars"
- COMMA@2119..2120 ","
- WHITESPACE@2120..2121 " "
- ARG@2121..2133
- EXPR_INDEX_EXPR@2121..2133
- LHS_EXPR@2121..2124
- EXPR_VAR@2121..2124
- NAME@2121..2124
- IDENT@2121..2124 "str"
- L_BRACK@2124..2125 "["
- EXPR_BINARY@2125..2132
- LHS_EXPR@2125..2128
- EXPR_VAR@2125..2128
- NAME@2125..2128
- IDENT@2125..2128 "len"
- WHITESPACE@2128..2129 " "
- MINUS@2129..2130 "-"
- WHITESPACE@2130..2131 " "
- EXPR_NUMBER@2131..2132
- FLOAT@2131..2132 "1"
- R_BRACK@2132..2133 "]"
- R_PAREN@2133..2134 ")"
- WHITESPACE@2134..2135 " "
- THEN_KW@2135..2139 "then"
- WHITESPACE@2139..2146 "\n "
- TRUE_EXPR@2146..2183
- EXPR_APPLY@2146..2183
- EXPR_INDEX@2146..2161
- EXPR_VAR@2146..2149
- NAME@2146..2149
- IDENT@2146..2149 "std"
- DOT@2149..2150 "."
- NAME@2150..2161
- IDENT@2150..2161 "rstripChars"
- ARGS_DESC@2161..2183
- L_PAREN@2161..2162 "("
- ARG@2162..2175
- EXPR_SLICE@2162..2175
- EXPR_VAR@2162..2165
- NAME@2162..2165
- IDENT@2162..2165 "str"
- SLICE_DESC@2165..2175
- L_BRACK@2165..2166 "["
- COLON@2166..2167 ":"
- SLICE_DESC_END@2167..2174
- EXPR_BINARY@2167..2174
- LHS_EXPR@2167..2170
- EXPR_VAR@2167..2170
- NAME@2167..2170
- IDENT@2167..2170 "len"
- WHITESPACE@2170..2171 " "
- MINUS@2171..2172 "-"
- WHITESPACE@2172..2173 " "
- EXPR_NUMBER@2173..2174
- FLOAT@2173..2174 "1"
- R_BRACK@2174..2175 "]"
- COMMA@2175..2176 ","
- WHITESPACE@2176..2177 " "
- ARG@2177..2182
- EXPR_VAR@2177..2182
- NAME@2177..2182
- IDENT@2177..2182 "chars"
- R_PAREN@2182..2183 ")"
- WHITESPACE@2183..2188 "\n "
- ELSE_KW@2188..2192 "else"
- WHITESPACE@2192..2199 "\n "
- FALSE_EXPR@2199..2202
- EXPR_VAR@2199..2202
- NAME@2199..2202
- IDENT@2199..2202 "str"
- COMMA@2202..2203 ","
- WHITESPACE@2203..2207 "\n\n "
- MEMBER_FIELD@2207..2287
- FIELD_METHOD@2207..2287
- FIELD_NAME_FIXED@2207..2217
- NAME@2207..2217
- IDENT@2207..2217 "stripChars"
- PARAMS_DESC@2217..2229
- L_PAREN@2217..2218 "("
- PARAM@2218..2221
- DESTRUCT_FULL@2218..2221
- NAME@2218..2221
- IDENT@2218..2221 "str"
- COMMA@2221..2222 ","
- WHITESPACE@2222..2223 " "
- PARAM@2223..2228
- DESTRUCT_FULL@2223..2228
- NAME@2223..2228
- IDENT@2223..2228 "chars"
- R_PAREN@2228..2229 ")"
- COLONCOLON@2229..2231 "::"
- WHITESPACE@2231..2236 "\n "
- EXPR_APPLY@2236..2287
- EXPR_INDEX@2236..2251
- EXPR_VAR@2236..2239
- NAME@2236..2239
- IDENT@2236..2239 "std"
- DOT@2239..2240 "."
- NAME@2240..2251
- IDENT@2240..2251 "lstripChars"
- ARGS_DESC@2251..2287
- L_PAREN@2251..2252 "("
- ARG@2252..2279
- EXPR_APPLY@2252..2279
- EXPR_INDEX@2252..2267
- EXPR_VAR@2252..2255
- NAME@2252..2255
- IDENT@2252..2255 "std"
- DOT@2255..2256 "."
- NAME@2256..2267
- IDENT@2256..2267 "rstripChars"
- ARGS_DESC@2267..2279
- L_PAREN@2267..2268 "("
- ARG@2268..2271
- EXPR_VAR@2268..2271
- NAME@2268..2271
- IDENT@2268..2271 "str"
- COMMA@2271..2272 ","
- WHITESPACE@2272..2273 " "
- ARG@2273..2278
- EXPR_VAR@2273..2278
- NAME@2273..2278
- IDENT@2273..2278 "chars"
- R_PAREN@2278..2279 ")"
- COMMA@2279..2280 ","
- WHITESPACE@2280..2281 " "
- ARG@2281..2286
- EXPR_VAR@2281..2286
- NAME@2281..2286
- IDENT@2281..2286 "chars"
- R_PAREN@2286..2287 ")"
- COMMA@2287..2288 ","
- WHITESPACE@2288..2292 "\n\n "
- MEMBER_FIELD@2292..2365
- FIELD_METHOD@2292..2365
- FIELD_NAME_FIXED@2292..2303
- NAME@2292..2303
- IDENT@2292..2303 "stringChars"
- PARAMS_DESC@2303..2308
- L_PAREN@2303..2304 "("
- PARAM@2304..2307
- DESTRUCT_FULL@2304..2307
- NAME@2304..2307
- IDENT@2304..2307 "str"
- R_PAREN@2307..2308 ")"
- COLONCOLON@2308..2310 "::"
- WHITESPACE@2310..2315 "\n "
- EXPR_APPLY@2315..2365
- EXPR_INDEX@2315..2328
- EXPR_VAR@2315..2318
- NAME@2315..2318
- IDENT@2315..2318 "std"
- DOT@2318..2319 "."
- NAME@2319..2328
- IDENT@2319..2328 "makeArray"
- ARGS_DESC@2328..2365
- L_PAREN@2328..2329 "("
- ARG@2329..2344
- EXPR_APPLY@2329..2344
- EXPR_INDEX@2329..2339
- EXPR_VAR@2329..2332
- NAME@2329..2332
- IDENT@2329..2332 "std"
- DOT@2332..2333 "."
- NAME@2333..2339
- IDENT@2333..2339 "length"
- ARGS_DESC@2339..2344
- L_PAREN@2339..2340 "("
- ARG@2340..2343
- EXPR_VAR@2340..2343
- NAME@2340..2343
- IDENT@2340..2343 "str"
- R_PAREN@2343..2344 ")"
- COMMA@2344..2345 ","
- WHITESPACE@2345..2346 " "
- ARG@2346..2364
- EXPR_FUNCTION@2346..2364
- FUNCTION_KW@2346..2354 "function"
- PARAMS_DESC@2354..2357
- L_PAREN@2354..2355 "("
- PARAM@2355..2356
- DESTRUCT_FULL@2355..2356
- NAME@2355..2356
- IDENT@2355..2356 "i"
- R_PAREN@2356..2357 ")"
- WHITESPACE@2357..2358 " "
- EXPR_INDEX_EXPR@2358..2364
- LHS_EXPR@2358..2361
- EXPR_VAR@2358..2361
- NAME@2358..2361
- IDENT@2358..2361 "str"
- L_BRACK@2361..2362 "["
- EXPR_VAR@2362..2363
- NAME@2362..2363
- IDENT@2362..2363 "i"
- R_BRACK@2363..2364 "]"
- R_PAREN@2364..2365 ")"
- COMMA@2365..2366 ","
- WHITESPACE@2366..2370 "\n\n "
- MEMBER_BIND_STMT@2370..3086
- OBJ_LOCAL@2370..3086
- LOCAL_KW@2370..2375 "local"
- WHITESPACE@2375..2376 " "
- BIND_FUNCTION@2376..3086
- NAME@2376..2385
- IDENT@2376..2385 "parse_nat"
- PARAMS_DESC@2385..2396
- L_PAREN@2385..2386 "("
- PARAM@2386..2389
- DESTRUCT_FULL@2386..2389
- NAME@2386..2389
- IDENT@2386..2389 "str"
- COMMA@2389..2390 ","
- WHITESPACE@2390..2391 " "
- PARAM@2391..2395
- DESTRUCT_FULL@2391..2395
- NAME@2391..2395
- IDENT@2391..2395 "base"
- R_PAREN@2395..2396 ")"
- WHITESPACE@2396..2397 " "
- ASSIGN@2397..2398 "="
- WHITESPACE@2398..2403 "\n "
- EXPR_ASSERT@2403..3086
- ASSERTION@2403..2467
- ASSERT_KW@2403..2409 "assert"
- WHITESPACE@2409..2410 " "
- LHS_EXPR@2410..2432
- EXPR_BINARY@2410..2432
- LHS_EXPR@2410..2418
- EXPR_BINARY@2410..2418
- LHS_EXPR@2410..2414
- EXPR_VAR@2410..2414
- NAME@2410..2414
- IDENT@2410..2414 "base"
- WHITESPACE@2414..2415 " "
- GT@2415..2416 ">"
- WHITESPACE@2416..2417 " "
- EXPR_NUMBER@2417..2418
- FLOAT@2417..2418 "0"
- WHITESPACE@2418..2419 " "
- AND@2419..2421 "&&"
- WHITESPACE@2421..2422 " "
- EXPR_BINARY@2422..2432
- LHS_EXPR@2422..2426
- EXPR_VAR@2422..2426
- NAME@2422..2426
- IDENT@2422..2426 "base"
- WHITESPACE@2426..2427 " "
- LE@2427..2429 "<="
- WHITESPACE@2429..2430 " "
- EXPR_NUMBER@2430..2432
- FLOAT@2430..2432 "16"
- WHITESPACE@2432..2433 " "
- COLON@2433..2434 ":"
- WHITESPACE@2434..2435 " "
- EXPR_BINARY@2435..2467
- LHS_EXPR@2435..2460
- EXPR_STRING@2435..2460
- STRING_SINGLE@2435..2460 "'integer base %d inva ..."
- WHITESPACE@2460..2461 " "
- MODULO@2461..2462 "%"
- WHITESPACE@2462..2463 " "
- EXPR_VAR@2463..2467
- NAME@2463..2467
- IDENT@2463..2467 "base"
- SEMI@2467..2468 ";"
- WHITESPACE@2468..2473 "\n "
- SINGLE_LINE_SLASH_COMMENT@2473..2517 "// These codepoints a ..."
- WHITESPACE@2517..2521 " "
- EXPR_LOCAL@2521..3086
- LOCAL_KW@2521..2526 "local"
- WHITESPACE@2526..2527 " "
- BIND_DESTRUCT@2527..2557
- DESTRUCT_FULL@2527..2536
- NAME@2527..2536
- IDENT@2527..2536 "zero_code"
- WHITESPACE@2536..2537 " "
- ASSIGN@2537..2538 "="
- WHITESPACE@2538..2539 " "
- EXPR_APPLY@2539..2557
- EXPR_INDEX@2539..2552
- EXPR_VAR@2539..2542
- NAME@2539..2542
- IDENT@2539..2542 "std"
- DOT@2542..2543 "."
- NAME@2543..2552
- IDENT@2543..2552 "codepoint"
- ARGS_DESC@2552..2557
- L_PAREN@2552..2553 "("
- ARG@2553..2556
- EXPR_STRING@2553..2556
- STRING_SINGLE@2553..2556 "'0'"
- R_PAREN@2556..2557 ")"
- SEMI@2557..2558 ";"
- WHITESPACE@2558..2563 "\n "
- EXPR_LOCAL@2563..3086
- LOCAL_KW@2563..2568 "local"
- WHITESPACE@2568..2569 " "
- BIND_DESTRUCT@2569..2602
- DESTRUCT_FULL@2569..2581
- NAME@2569..2581
- IDENT@2569..2581 "upper_a_code"
- WHITESPACE@2581..2582 " "
- ASSIGN@2582..2583 "="
- WHITESPACE@2583..2584 " "
- EXPR_APPLY@2584..2602
- EXPR_INDEX@2584..2597
- EXPR_VAR@2584..2587
- NAME@2584..2587
- IDENT@2584..2587 "std"
- DOT@2587..2588 "."
- NAME@2588..2597
- IDENT@2588..2597 "codepoint"
- ARGS_DESC@2597..2602
- L_PAREN@2597..2598 "("
- ARG@2598..2601
- EXPR_STRING@2598..2601
- STRING_SINGLE@2598..2601 "'A'"
- R_PAREN@2601..2602 ")"
- SEMI@2602..2603 ";"
- WHITESPACE@2603..2608 "\n "
- EXPR_LOCAL@2608..3086
- LOCAL_KW@2608..2613 "local"
- WHITESPACE@2613..2614 " "
- BIND_DESTRUCT@2614..2647
- DESTRUCT_FULL@2614..2626
- NAME@2614..2626
- IDENT@2614..2626 "lower_a_code"
- WHITESPACE@2626..2627 " "
- ASSIGN@2627..2628 "="
- WHITESPACE@2628..2629 " "
- EXPR_APPLY@2629..2647
- EXPR_INDEX@2629..2642
- EXPR_VAR@2629..2632
- NAME@2629..2632
- IDENT@2629..2632 "std"
- DOT@2632..2633 "."
- NAME@2633..2642
- IDENT@2633..2642 "codepoint"
- ARGS_DESC@2642..2647
- L_PAREN@2642..2643 "("
- ARG@2643..2646
- EXPR_STRING@2643..2646
- STRING_SINGLE@2643..2646 "'a'"
- R_PAREN@2646..2647 ")"
- SEMI@2647..2648 ";"
- WHITESPACE@2648..2653 "\n "
- EXPR_LOCAL@2653..3086
- LOCAL_KW@2653..2658 "local"
- WHITESPACE@2658..2659 " "
- BIND_FUNCTION@2659..3036
- NAME@2659..2667
- IDENT@2659..2667 "addDigit"
- PARAMS_DESC@2667..2684
- L_PAREN@2667..2668 "("
- PARAM@2668..2677
- DESTRUCT_FULL@2668..2677
- NAME@2668..2677
- IDENT@2668..2677 "aggregate"
- COMMA@2677..2678 ","
- WHITESPACE@2678..2679 " "
- PARAM@2679..2683
- DESTRUCT_FULL@2679..2683
- NAME@2679..2683
- IDENT@2679..2683 "char"
- R_PAREN@2683..2684 ")"
- WHITESPACE@2684..2685 " "
- ASSIGN@2685..2686 "="
- WHITESPACE@2686..2693 "\n "
- EXPR_LOCAL@2693..3036
- LOCAL_KW@2693..2698 "local"
- WHITESPACE@2698..2699 " "
- BIND_DESTRUCT@2699..2725
- DESTRUCT_FULL@2699..2703
- NAME@2699..2703
- IDENT@2699..2703 "code"
- WHITESPACE@2703..2704 " "
- ASSIGN@2704..2705 "="
- WHITESPACE@2705..2706 " "
- EXPR_APPLY@2706..2725
- EXPR_INDEX@2706..2719
- EXPR_VAR@2706..2709
- NAME@2706..2709
- IDENT@2706..2709 "std"
- DOT@2709..2710 "."
- NAME@2710..2719
- IDENT@2710..2719 "codepoint"
- ARGS_DESC@2719..2725
- L_PAREN@2719..2720 "("
- ARG@2720..2724
- EXPR_VAR@2720..2724
- NAME@2720..2724
- IDENT@2720..2724 "char"
- R_PAREN@2724..2725 ")"
- SEMI@2725..2726 ";"
- WHITESPACE@2726..2733 "\n "
- EXPR_LOCAL@2733..3036
- LOCAL_KW@2733..2738 "local"
- WHITESPACE@2738..2739 " "
- BIND_DESTRUCT@2739..2917
- DESTRUCT_FULL@2739..2744
- NAME@2739..2744
- IDENT@2739..2744 "digit"
- WHITESPACE@2744..2745 " "
- ASSIGN@2745..2746 "="
- WHITESPACE@2746..2747 " "
- EXPR_IF_THEN_ELSE@2747..2917
- IF_KW@2747..2749 "if"
- WHITESPACE@2749..2750 " "
- EXPR_BINARY@2750..2770
- LHS_EXPR@2750..2754
- EXPR_VAR@2750..2754
- NAME@2750..2754
- IDENT@2750..2754 "code"
- WHITESPACE@2754..2755 " "
- GE@2755..2757 ">="
- WHITESPACE@2757..2758 " "
- EXPR_VAR@2758..2770
- NAME@2758..2770
- IDENT@2758..2770 "lower_a_code"
- WHITESPACE@2770..2771 " "
- THEN_KW@2771..2775 "then"
- WHITESPACE@2775..2784 "\n "
- TRUE_EXPR@2784..2808
- EXPR_BINARY@2784..2808
- LHS_EXPR@2784..2803
- EXPR_BINARY@2784..2803
- LHS_EXPR@2784..2788
- EXPR_VAR@2784..2788
- NAME@2784..2788
- IDENT@2784..2788 "code"
- WHITESPACE@2788..2789 " "
- MINUS@2789..2790 "-"
- WHITESPACE@2790..2791 " "
- EXPR_VAR@2791..2803
- NAME@2791..2803
- IDENT@2791..2803 "lower_a_code"
- WHITESPACE@2803..2804 " "
- PLUS@2804..2805 "+"
- WHITESPACE@2805..2806 " "
- EXPR_NUMBER@2806..2808
- FLOAT@2806..2808 "10"
- WHITESPACE@2808..2815 "\n "
- ELSE_KW@2815..2819 "else"
- WHITESPACE@2819..2820 " "
- FALSE_EXPR@2820..2917
- EXPR_IF_THEN_ELSE@2820..2917
- IF_KW@2820..2822 "if"
- WHITESPACE@2822..2823 " "
- EXPR_BINARY@2823..2843
- LHS_EXPR@2823..2827
- EXPR_VAR@2823..2827
- NAME@2823..2827
- IDENT@2823..2827 "code"
- WHITESPACE@2827..2828 " "
- GE@2828..2830 ">="
- WHITESPACE@2830..2831 " "
- EXPR_VAR@2831..2843
- NAME@2831..2843
- IDENT@2831..2843 "upper_a_code"
- WHITESPACE@2843..2844 " "
- THEN_KW@2844..2848 "then"
- WHITESPACE@2848..2857 "\n "
- TRUE_EXPR@2857..2881
- EXPR_BINARY@2857..2881
- LHS_EXPR@2857..2876
- EXPR_BINARY@2857..2876
- LHS_EXPR@2857..2861
- EXPR_VAR@2857..2861
- NAME@2857..2861
- IDENT@2857..2861 "code"
- WHITESPACE@2861..2862 " "
- MINUS@2862..2863 "-"
- WHITESPACE@2863..2864 " "
- EXPR_VAR@2864..2876
- NAME@2864..2876
- IDENT@2864..2876 "upper_a_code"
- WHITESPACE@2876..2877 " "
- PLUS@2877..2878 "+"
- WHITESPACE@2878..2879 " "
- EXPR_NUMBER@2879..2881
- FLOAT@2879..2881 "10"
- WHITESPACE@2881..2888 "\n "
- ELSE_KW@2888..2892 "else"
- WHITESPACE@2892..2901 "\n "
- FALSE_EXPR@2901..2917
- EXPR_BINARY@2901..2917
- LHS_EXPR@2901..2905
- EXPR_VAR@2901..2905
- NAME@2901..2905
- IDENT@2901..2905 "code"
- WHITESPACE@2905..2906 " "
- MINUS@2906..2907 "-"
- WHITESPACE@2907..2908 " "
- EXPR_VAR@2908..2917
- NAME@2908..2917
- IDENT@2908..2917 "zero_code"
- SEMI@2917..2918 ";"
- WHITESPACE@2918..2925 "\n "
- EXPR_ASSERT@2925..3036
- ASSERTION@2925..3004
- ASSERT_KW@2925..2931 "assert"
- WHITESPACE@2931..2932 " "
- LHS_EXPR@2932..2958
- EXPR_BINARY@2932..2958
- LHS_EXPR@2932..2942
- EXPR_BINARY@2932..2942
- LHS_EXPR@2932..2937
- EXPR_VAR@2932..2937
- NAME@2932..2937
- IDENT@2932..2937 "digit"
- WHITESPACE@2937..2938 " "
- GE@2938..2940 ">="
- WHITESPACE@2940..2941 " "
- EXPR_NUMBER@2941..2942
- FLOAT@2941..2942 "0"
- WHITESPACE@2942..2943 " "
- AND@2943..2945 "&&"
- WHITESPACE@2945..2946 " "
- EXPR_BINARY@2946..2958
- LHS_EXPR@2946..2951
- EXPR_VAR@2946..2951
- NAME@2946..2951
- IDENT@2946..2951 "digit"
- WHITESPACE@2951..2952 " "
- LT@2952..2953 "<"
- WHITESPACE@2953..2954 " "
- EXPR_VAR@2954..2958
- NAME@2954..2958
- IDENT@2954..2958 "base"
- WHITESPACE@2958..2959 " "
- COLON@2959..2960 ":"
- WHITESPACE@2960..2961 " "
- EXPR_BINARY@2961..3004
- LHS_EXPR@2961..2990
- EXPR_STRING@2961..2990
- STRING_SINGLE@2961..2990 "'%s is not a base %d ..."
+ WHITESPACE@1101..1106 "\n "
+ EXPR_IF_THEN_ELSE@1106..1434
+ IF_KW@1106..1108 "if"
+ WHITESPACE@1108..1109 " "
+ EXPR_UNARY@1109..1130
+ NOT@1109..1110 "!"
+ EXPR_APPLY@1110..1130
+ EXPR_INDEX@1110..1124
+ EXPR_VAR@1110..1113
+ NAME@1110..1113
+ IDENT@1110..1113 "std"
+ DOT@1113..1114 "."
+ NAME@1114..1124
+ IDENT@1114..1124 "isFunction"
+ ARGS_DESC@1124..1130
+ L_PAREN@1124..1125 "("
+ ARG@1125..1129
+ EXPR_VAR@1125..1129
+ NAME@1125..1129
+ IDENT@1125..1129 "func"
+ R_PAREN@1129..1130 ")"
+ WHITESPACE@1130..1131 " "
+ THEN_KW@1131..1135 "then"
+ WHITESPACE@1135..1142 "\n "
+ TRUE_EXPR@1142..1220
+ EXPR_ERROR@1142..1220
+ ERROR_KW@1142..1147 "error"
+ WHITESPACE@1147..1148 " "
+ EXPR_PARENED@1148..1220
+ L_PAREN@1148..1149 "("
+ EXPR_BINARY@1149..1219
+ LHS_EXPR@1149..1202
+ EXPR_STRING@1149..1202
+ STRING_SINGLE@1149..1202 "'std.mapWithIndex fir ..."
+ WHITESPACE@1202..1203 " "
+ PLUS@1203..1204 "+"
+ WHITESPACE@1204..1205 " "
+ EXPR_APPLY@1205..1219
+ EXPR_INDEX@1205..1213
+ EXPR_VAR@1205..1208
+ NAME@1205..1208
+ IDENT@1205..1208 "std"
+ DOT@1208..1209 "."
+ NAME@1209..1213
+ IDENT@1209..1213 "type"
+ ARGS_DESC@1213..1219
+ L_PAREN@1213..1214 "("
+ ARG@1214..1218
+ EXPR_VAR@1214..1218
+ NAME@1214..1218
+ IDENT@1214..1218 "func"
+ R_PAREN@1218..1219 ")"
+ R_PAREN@1219..1220 ")"
+ WHITESPACE@1220..1225 "\n "
+ ELSE_KW@1225..1229 "else"
+ WHITESPACE@1229..1230 " "
+ FALSE_EXPR@1230..1434
+ EXPR_IF_THEN_ELSE@1230..1434
+ IF_KW@1230..1232 "if"
+ WHITESPACE@1232..1233 " "
+ EXPR_BINARY@1233..1272
+ LHS_EXPR@1233..1250
+ EXPR_UNARY@1233..1250
+ NOT@1233..1234 "!"
+ EXPR_APPLY@1234..1250
+ EXPR_INDEX@1234..1245
+ EXPR_VAR@1234..1237
+ NAME@1234..1237
+ IDENT@1234..1237 "std"
+ DOT@1237..1238 "."
+ NAME@1238..1245
+ IDENT@1238..1245 "isArray"
+ ARGS_DESC@1245..1250
+ L_PAREN@1245..1246 "("
+ ARG@1246..1249
+ EXPR_VAR@1246..1249
+ NAME@1246..1249
+ IDENT@1246..1249 "arr"
+ R_PAREN@1249..1250 ")"
+ WHITESPACE@1250..1251 " "
+ AND@1251..1253 "&&"
+ WHITESPACE@1253..1254 " "
+ EXPR_UNARY@1254..1272
+ NOT@1254..1255 "!"
+ EXPR_APPLY@1255..1272
+ EXPR_INDEX@1255..1267
+ EXPR_VAR@1255..1258
+ NAME@1255..1258
+ IDENT@1255..1258 "std"
+ DOT@1258..1259 "."
+ NAME@1259..1267
+ IDENT@1259..1267 "isString"
+ ARGS_DESC@1267..1272
+ L_PAREN@1267..1268 "("
+ ARG@1268..1271
+ EXPR_VAR@1268..1271
+ NAME@1268..1271
+ IDENT@1268..1271 "arr"
+ R_PAREN@1271..1272 ")"
+ WHITESPACE@1272..1273 " "
+ THEN_KW@1273..1277 "then"
+ WHITESPACE@1277..1284 "\n "
+ TRUE_EXPR@1284..1359
+ EXPR_ERROR@1284..1359
+ ERROR_KW@1284..1289 "error"
+ WHITESPACE@1289..1290 " "
+ EXPR_PARENED@1290..1359
+ L_PAREN@1290..1291 "("
+ EXPR_BINARY@1291..1358
+ LHS_EXPR@1291..1342
+ EXPR_STRING@1291..1342
+ STRING_SINGLE@1291..1342 "'std.mapWithIndex sec ..."
+ WHITESPACE@1342..1343 " "
+ PLUS@1343..1344 "+"
+ WHITESPACE@1344..1345 " "
+ EXPR_APPLY@1345..1358
+ EXPR_INDEX@1345..1353
+ EXPR_VAR@1345..1348
+ NAME@1345..1348
+ IDENT@1345..1348 "std"
+ DOT@1348..1349 "."
+ NAME@1349..1353
+ IDENT@1349..1353 "type"
+ ARGS_DESC@1353..1358
+ L_PAREN@1353..1354 "("
+ ARG@1354..1357
+ EXPR_VAR@1354..1357
+ NAME@1354..1357
+ IDENT@1354..1357 "arr"
+ R_PAREN@1357..1358 ")"
+ R_PAREN@1358..1359 ")"
+ WHITESPACE@1359..1364 "\n "
+ ELSE_KW@1364..1368 "else"
+ WHITESPACE@1368..1375 "\n "
+ FALSE_EXPR@1375..1434
+ EXPR_APPLY@1375..1434
+ EXPR_INDEX@1375..1388
+ EXPR_VAR@1375..1378
+ NAME@1375..1378
+ IDENT@1375..1378 "std"
+ DOT@1378..1379 "."
+ NAME@1379..1388
+ IDENT@1379..1388 "makeArray"
+ ARGS_DESC@1388..1434
+ L_PAREN@1388..1389 "("
+ ARG@1389..1404
+ EXPR_APPLY@1389..1404
+ EXPR_INDEX@1389..1399
+ EXPR_VAR@1389..1392
+ NAME@1389..1392
+ IDENT@1389..1392 "std"
+ DOT@1392..1393 "."
+ NAME@1393..1399
+ IDENT@1393..1399 "length"
+ ARGS_DESC@1399..1404
+ L_PAREN@1399..1400 "("
+ ARG@1400..1403
+ EXPR_VAR@1400..1403
+ NAME@1400..1403
+ IDENT@1400..1403 "arr"
+ R_PAREN@1403..1404 ")"
+ COMMA@1404..1405 ","
+ WHITESPACE@1405..1406 " "
+ ARG@1406..1433
+ EXPR_FUNCTION@1406..1433
+ FUNCTION_KW@1406..1414 "function"
+ PARAMS_DESC@1414..1417
+ L_PAREN@1414..1415 "("
+ PARAM@1415..1416
+ DESTRUCT_FULL@1415..1416
+ NAME@1415..1416
+ IDENT@1415..1416 "i"
+ R_PAREN@1416..1417 ")"
+ WHITESPACE@1417..1418 " "
+ EXPR_APPLY@1418..1433
+ EXPR_VAR@1418..1422
+ NAME@1418..1422
+ IDENT@1418..1422 "func"
+ ARGS_DESC@1422..1433
+ L_PAREN@1422..1423 "("
+ ARG@1423..1424
+ EXPR_VAR@1423..1424
+ NAME@1423..1424
+ IDENT@1423..1424 "i"
+ COMMA@1424..1425 ","
+ WHITESPACE@1425..1426 " "
+ ARG@1426..1432
+ EXPR_INDEX_EXPR@1426..1432
+ LHS_EXPR@1426..1429
+ EXPR_VAR@1426..1429
+ NAME@1426..1429
+ IDENT@1426..1429 "arr"
+ L_BRACK@1429..1430 "["
+ EXPR_VAR@1430..1431
+ NAME@1430..1431
+ IDENT@1430..1431 "i"
+ R_BRACK@1431..1432 "]"
+ R_PAREN@1432..1433 ")"
+ R_PAREN@1433..1434 ")"
+ COMMA@1434..1435 ","
+ WHITESPACE@1435..1439 "\n\n "
+ MEMBER_FIELD@1439..1767
+ FIELD_METHOD@1439..1767
+ FIELD_NAME_FIXED@1439..1449
+ NAME@1439..1449
+ IDENT@1439..1449 "mapWithKey"
+ PARAMS_DESC@1449..1460
+ L_PAREN@1449..1450 "("
+ PARAM@1450..1454
+ DESTRUCT_FULL@1450..1454
+ NAME@1450..1454
+ IDENT@1450..1454 "func"
+ COMMA@1454..1455 ","
+ WHITESPACE@1455..1456 " "
+ PARAM@1456..1459
+ DESTRUCT_FULL@1456..1459
+ NAME@1456..1459
+ IDENT@1456..1459 "obj"
+ R_PAREN@1459..1460 ")"
+ COLONCOLON@1460..1462 "::"
+ WHITESPACE@1462..1467 "\n "
+ EXPR_IF_THEN_ELSE@1467..1767
+ IF_KW@1467..1469 "if"
+ WHITESPACE@1469..1470 " "
+ EXPR_UNARY@1470..1491
+ NOT@1470..1471 "!"
+ EXPR_APPLY@1471..1491
+ EXPR_INDEX@1471..1485
+ EXPR_VAR@1471..1474
+ NAME@1471..1474
+ IDENT@1471..1474 "std"
+ DOT@1474..1475 "."
+ NAME@1475..1485
+ IDENT@1475..1485 "isFunction"
+ ARGS_DESC@1485..1491
+ L_PAREN@1485..1486 "("
+ ARG@1486..1490
+ EXPR_VAR@1486..1490
+ NAME@1486..1490
+ IDENT@1486..1490 "func"
+ R_PAREN@1490..1491 ")"
+ WHITESPACE@1491..1492 " "
+ THEN_KW@1492..1496 "then"
+ WHITESPACE@1496..1503 "\n "
+ TRUE_EXPR@1503..1579
+ EXPR_ERROR@1503..1579
+ ERROR_KW@1503..1508 "error"
+ WHITESPACE@1508..1509 " "
+ EXPR_PARENED@1509..1579
+ L_PAREN@1509..1510 "("
+ EXPR_BINARY@1510..1578
+ LHS_EXPR@1510..1561
+ EXPR_STRING@1510..1561
+ STRING_SINGLE@1510..1561 "'std.mapWithKey first ..."
+ WHITESPACE@1561..1562 " "
+ PLUS@1562..1563 "+"
+ WHITESPACE@1563..1564 " "
+ EXPR_APPLY@1564..1578
+ EXPR_INDEX@1564..1572
+ EXPR_VAR@1564..1567
+ NAME@1564..1567
+ IDENT@1564..1567 "std"
+ DOT@1567..1568 "."
+ NAME@1568..1572
+ IDENT@1568..1572 "type"
+ ARGS_DESC@1572..1578
+ L_PAREN@1572..1573 "("
+ ARG@1573..1577
+ EXPR_VAR@1573..1577
+ NAME@1573..1577
+ IDENT@1573..1577 "func"
+ R_PAREN@1577..1578 ")"
+ R_PAREN@1578..1579 ")"
+ WHITESPACE@1579..1584 "\n "
+ ELSE_KW@1584..1588 "else"
+ WHITESPACE@1588..1589 " "
+ FALSE_EXPR@1589..1767
+ EXPR_IF_THEN_ELSE@1589..1767
+ IF_KW@1589..1591 "if"
+ WHITESPACE@1591..1592 " "
+ EXPR_UNARY@1592..1610
+ NOT@1592..1593 "!"
+ EXPR_APPLY@1593..1610
+ EXPR_INDEX@1593..1605
+ EXPR_VAR@1593..1596
+ NAME@1593..1596
+ IDENT@1593..1596 "std"
+ DOT@1596..1597 "."
+ NAME@1597..1605
+ IDENT@1597..1605 "isObject"
+ ARGS_DESC@1605..1610
+ L_PAREN@1605..1606 "("
+ ARG@1606..1609
+ EXPR_VAR@1606..1609
+ NAME@1606..1609
+ IDENT@1606..1609 "obj"
+ R_PAREN@1609..1610 ")"
+ WHITESPACE@1610..1611 " "
+ THEN_KW@1611..1615 "then"
+ WHITESPACE@1615..1622 "\n "
+ TRUE_EXPR@1622..1696
+ EXPR_ERROR@1622..1696
+ ERROR_KW@1622..1627 "error"
+ WHITESPACE@1627..1628 " "
+ EXPR_PARENED@1628..1696
+ L_PAREN@1628..1629 "("
+ EXPR_BINARY@1629..1695
+ LHS_EXPR@1629..1679
+ EXPR_STRING@1629..1679
+ STRING_SINGLE@1629..1679 "'std.mapWithKey secon ..."
+ WHITESPACE@1679..1680 " "
+ PLUS@1680..1681 "+"
+ WHITESPACE@1681..1682 " "
+ EXPR_APPLY@1682..1695
+ EXPR_INDEX@1682..1690
+ EXPR_VAR@1682..1685
+ NAME@1682..1685
+ IDENT@1682..1685 "std"
+ DOT@1685..1686 "."
+ NAME@1686..1690
+ IDENT@1686..1690 "type"
+ ARGS_DESC@1690..1695
+ L_PAREN@1690..1691 "("
+ ARG@1691..1694
+ EXPR_VAR@1691..1694
+ NAME@1691..1694
+ IDENT@1691..1694 "obj"
+ R_PAREN@1694..1695 ")"
+ R_PAREN@1695..1696 ")"
+ WHITESPACE@1696..1701 "\n "
+ ELSE_KW@1701..1705 "else"
+ WHITESPACE@1705..1712 "\n "
+ FALSE_EXPR@1712..1767
+ EXPR_OBJECT@1712..1767
+ OBJ_BODY_MEMBER_LIST@1712..1767
+ L_BRACE@1712..1713 "{"
+ WHITESPACE@1713..1714 " "
+ MEMBER_FIELD@1714..1765
+ FIELD_NORMAL@1714..1734
+ FIELD_NAME_DYNAMIC@1714..1717
+ L_BRACK@1714..1715 "["
+ EXPR_VAR@1715..1716
+ NAME@1715..1716
+ IDENT@1715..1716 "k"
+ R_BRACK@1716..1717 "]"
+ COLON@1717..1718 ":"
+ WHITESPACE@1718..1719 " "
+ EXPR_APPLY@1719..1734
+ EXPR_VAR@1719..1723
+ NAME@1719..1723
+ IDENT@1719..1723 "func"
+ ARGS_DESC@1723..1734
+ L_PAREN@1723..1724 "("
+ ARG@1724..1725
+ EXPR_VAR@1724..1725
+ NAME@1724..1725
+ IDENT@1724..1725 "k"
+ COMMA@1725..1726 ","
+ WHITESPACE@1726..1727 " "
+ ARG@1727..1733
+ EXPR_INDEX_EXPR@1727..1733
+ LHS_EXPR@1727..1730
+ EXPR_VAR@1727..1730
+ NAME@1727..1730
+ IDENT@1727..1730 "obj"
+ L_BRACK@1730..1731 "["
+ EXPR_VAR@1731..1732
+ NAME@1731..1732
+ IDENT@1731..1732 "k"
+ R_BRACK@1732..1733 "]"
+ R_PAREN@1733..1734 ")"
+ WHITESPACE@1734..1735 " "
+ FOR_SPEC@1735..1765
+ FOR_KW@1735..1738 "for"
+ WHITESPACE@1738..1739 " "
+ NAME@1739..1740
+ IDENT@1739..1740 "k"
+ WHITESPACE@1740..1741 " "
+ IN_KW@1741..1743 "in"
+ WHITESPACE@1743..1744 " "
+ EXPR_APPLY@1744..1765
+ EXPR_INDEX@1744..1760
+ EXPR_VAR@1744..1747
+ NAME@1744..1747
+ IDENT@1744..1747 "std"
+ DOT@1747..1748 "."
+ NAME@1748..1760
+ IDENT@1748..1760 "objectFields"
+ ARGS_DESC@1760..1765
+ L_PAREN@1760..1761 "("
+ ARG@1761..1764
+ EXPR_VAR@1761..1764
+ NAME@1761..1764
+ IDENT@1761..1764 "obj"
+ R_PAREN@1764..1765 ")"
+ WHITESPACE@1765..1766 " "
+ R_BRACE@1766..1767 "}"
+ COMMA@1767..1768 ","
+ WHITESPACE@1768..1772 "\n\n "
+ MEMBER_FIELD@1772..1815
+ FIELD_METHOD@1772..1815
+ FIELD_NAME_FIXED@1772..1777
+ NAME@1772..1777
+ IDENT@1772..1777 "lines"
+ PARAMS_DESC@1777..1782
+ L_PAREN@1777..1778 "("
+ PARAM@1778..1781
+ DESTRUCT_FULL@1778..1781
+ NAME@1778..1781
+ IDENT@1778..1781 "arr"
+ R_PAREN@1781..1782 ")"
+ COLONCOLON@1782..1784 "::"
+ WHITESPACE@1784..1789 "\n "
+ EXPR_APPLY@1789..1815
+ EXPR_INDEX@1789..1797
+ EXPR_VAR@1789..1792
+ NAME@1789..1792
+ IDENT@1789..1792 "std"
+ DOT@1792..1793 "."
+ NAME@1793..1797
+ IDENT@1793..1797 "join"
+ ARGS_DESC@1797..1815
+ L_PAREN@1797..1798 "("
+ ARG@1798..1802
+ EXPR_STRING@1798..1802
+ STRING_SINGLE@1798..1802 "'\\n'"
+ COMMA@1802..1803 ","
+ WHITESPACE@1803..1804 " "
+ ARG@1804..1814
+ EXPR_BINARY@1804..1814
+ LHS_EXPR@1804..1807
+ EXPR_VAR@1804..1807
+ NAME@1804..1807
+ IDENT@1804..1807 "arr"
+ WHITESPACE@1807..1808 " "
+ PLUS@1808..1809 "+"
+ WHITESPACE@1809..1810 " "
+ EXPR_ARRAY@1810..1814
+ L_BRACK@1810..1811 "["
+ EXPR_STRING@1811..1813
+ STRING_SINGLE@1811..1813 "''"
+ R_BRACK@1813..1814 "]"
+ R_PAREN@1814..1815 ")"
+ COMMA@1815..1816 ","
+ WHITESPACE@1816..1820 "\n\n "
+ MEMBER_FIELD@1820..2032
+ FIELD_METHOD@1820..2032
+ FIELD_NAME_FIXED@1820..1828
+ NAME@1820..1828
+ IDENT@1820..1828 "deepJoin"
+ PARAMS_DESC@1828..1833
+ L_PAREN@1828..1829 "("
+ PARAM@1829..1832
+ DESTRUCT_FULL@1829..1832
+ NAME@1829..1832
+ IDENT@1829..1832 "arr"
+ R_PAREN@1832..1833 ")"
+ COLONCOLON@1833..1835 "::"
+ WHITESPACE@1835..1840 "\n "
+ EXPR_IF_THEN_ELSE@1840..2032
+ IF_KW@1840..1842 "if"
+ WHITESPACE@1842..1843 " "
+ EXPR_APPLY@1843..1860
+ EXPR_INDEX@1843..1855
+ EXPR_VAR@1843..1846
+ NAME@1843..1846
+ IDENT@1843..1846 "std"
+ DOT@1846..1847 "."
+ NAME@1847..1855
+ IDENT@1847..1855 "isString"
+ ARGS_DESC@1855..1860
+ L_PAREN@1855..1856 "("
+ ARG@1856..1859
+ EXPR_VAR@1856..1859
+ NAME@1856..1859
+ IDENT@1856..1859 "arr"
+ R_PAREN@1859..1860 ")"
+ WHITESPACE@1860..1861 " "
+ THEN_KW@1861..1865 "then"
+ WHITESPACE@1865..1872 "\n "
+ TRUE_EXPR@1872..1875
+ EXPR_VAR@1872..1875
+ NAME@1872..1875
+ IDENT@1872..1875 "arr"
+ WHITESPACE@1875..1880 "\n "
+ ELSE_KW@1880..1884 "else"
+ WHITESPACE@1884..1885 " "
+ FALSE_EXPR@1885..2032
+ EXPR_IF_THEN_ELSE@1885..2032
+ IF_KW@1885..1887 "if"
+ WHITESPACE@1887..1888 " "
+ EXPR_APPLY@1888..1904
+ EXPR_INDEX@1888..1899
+ EXPR_VAR@1888..1891
+ NAME@1888..1891
+ IDENT@1888..1891 "std"
+ DOT@1891..1892 "."
+ NAME@1892..1899
+ IDENT@1892..1899 "isArray"
+ ARGS_DESC@1899..1904
+ L_PAREN@1899..1900 "("
+ ARG@1900..1903
+ EXPR_VAR@1900..1903
+ NAME@1900..1903
+ IDENT@1900..1903 "arr"
+ R_PAREN@1903..1904 ")"
+ WHITESPACE@1904..1905 " "
+ THEN_KW@1905..1909 "then"
+ WHITESPACE@1909..1916 "\n "
+ TRUE_EXPR@1916..1960
+ EXPR_APPLY@1916..1960
+ EXPR_INDEX@1916..1924
+ EXPR_VAR@1916..1919
+ NAME@1916..1919
+ IDENT@1916..1919 "std"
+ DOT@1919..1920 "."
+ NAME@1920..1924
+ IDENT@1920..1924 "join"
+ ARGS_DESC@1924..1960
+ L_PAREN@1924..1925 "("
+ ARG@1925..1927
+ EXPR_STRING@1925..1927
+ STRING_SINGLE@1925..1927 "''"
+ COMMA@1927..1928 ","
+ WHITESPACE@1928..1929 " "
+ ARG@1929..1959
+ EXPR_ARRAY_COMP@1929..1959
+ L_BRACK@1929..1930 "["
+ EXPR_APPLY@1930..1945
+ EXPR_INDEX@1930..1942
+ EXPR_VAR@1930..1933
+ NAME@1930..1933
+ IDENT@1930..1933 "std"
+ DOT@1933..1934 "."
+ NAME@1934..1942
+ IDENT@1934..1942 "deepJoin"
+ ARGS_DESC@1942..1945
+ L_PAREN@1942..1943 "("
+ ARG@1943..1944
+ EXPR_VAR@1943..1944
+ NAME@1943..1944
+ IDENT@1943..1944 "x"
+ R_PAREN@1944..1945 ")"
+ WHITESPACE@1945..1946 " "
+ FOR_SPEC@1946..1958
+ FOR_KW@1946..1949 "for"
+ WHITESPACE@1949..1950 " "
+ NAME@1950..1951
+ IDENT@1950..1951 "x"
+ WHITESPACE@1951..1952 " "
+ IN_KW@1952..1954 "in"
+ WHITESPACE@1954..1955 " "
+ EXPR_VAR@1955..1958
+ NAME@1955..1958
+ IDENT@1955..1958 "arr"
+ R_BRACK@1958..1959 "]"
+ R_PAREN@1959..1960 ")"
+ WHITESPACE@1960..1965 "\n "
+ ELSE_KW@1965..1969 "else"
+ WHITESPACE@1969..1976 "\n "
+ FALSE_EXPR@1976..2032
+ EXPR_ERROR@1976..2032
+ ERROR_KW@1976..1981 "error"
+ WHITESPACE@1981..1982 " "
+ EXPR_BINARY@1982..2032
+ LHS_EXPR@1982..2016
+ EXPR_STRING@1982..2016
+ STRING_SINGLE@1982..2016 "'Expected string or a ..."
+ WHITESPACE@2016..2017 " "
+ MODULO@2017..2018 "%"
+ WHITESPACE@2018..2019 " "
+ EXPR_APPLY@2019..2032
+ EXPR_INDEX@2019..2027
+ EXPR_VAR@2019..2022
+ NAME@2019..2022
+ IDENT@2019..2022 "std"
+ DOT@2022..2023 "."
+ NAME@2023..2027
+ IDENT@2023..2027 "type"
+ ARGS_DESC@2027..2032
+ L_PAREN@2027..2028 "("
+ ARG@2028..2031
+ EXPR_VAR@2028..2031
+ NAME@2028..2031
+ IDENT@2028..2031 "arr"
+ R_PAREN@2031..2032 ")"
+ COMMA@2032..2033 ","
+ WHITESPACE@2033..2037 "\n\n "
+ MEMBER_FIELD@2037..2512
+ FIELD_METHOD@2037..2512
+ FIELD_NAME_FIXED@2037..2046
+ NAME@2037..2046
+ IDENT@2037..2046 "filterMap"
+ PARAMS_DESC@2046..2074
+ L_PAREN@2046..2047 "("
+ PARAM@2047..2058
+ DESTRUCT_FULL@2047..2058
+ NAME@2047..2058
+ IDENT@2047..2058 "filter_func"
+ COMMA@2058..2059 ","
+ WHITESPACE@2059..2060 " "
+ PARAM@2060..2068
+ DESTRUCT_FULL@2060..2068
+ NAME@2060..2068
+ IDENT@2060..2068 "map_func"
+ COMMA@2068..2069 ","
+ WHITESPACE@2069..2070 " "
+ PARAM@2070..2073
+ DESTRUCT_FULL@2070..2073
+ NAME@2070..2073
+ IDENT@2070..2073 "arr"
+ R_PAREN@2073..2074 ")"
+ COLONCOLON@2074..2076 "::"
+ WHITESPACE@2076..2081 "\n "
+ EXPR_IF_THEN_ELSE@2081..2512
+ IF_KW@2081..2083 "if"
+ WHITESPACE@2083..2084 " "
+ EXPR_UNARY@2084..2112
+ NOT@2084..2085 "!"
+ EXPR_APPLY@2085..2112
+ EXPR_INDEX@2085..2099
+ EXPR_VAR@2085..2088
+ NAME@2085..2088
+ IDENT@2085..2088 "std"
+ DOT@2088..2089 "."
+ NAME@2089..2099
+ IDENT@2089..2099 "isFunction"
+ ARGS_DESC@2099..2112
+ L_PAREN@2099..2100 "("
+ ARG@2100..2111
+ EXPR_VAR@2100..2111
+ NAME@2100..2111
+ IDENT@2100..2111 "filter_func"
+ R_PAREN@2111..2112 ")"
+ WHITESPACE@2112..2113 " "
+ THEN_KW@2113..2117 "then"
+ WHITESPACE@2117..2124 "\n "
+ TRUE_EXPR@2124..2206
+ EXPR_ERROR@2124..2206
+ ERROR_KW@2124..2129 "error"
+ WHITESPACE@2129..2130 " "
+ EXPR_PARENED@2130..2206
+ L_PAREN@2130..2131 "("
+ EXPR_BINARY@2131..2205
+ LHS_EXPR@2131..2181
+ EXPR_STRING@2131..2181
+ STRING_SINGLE@2131..2181 "'std.filterMap first ..."
+ WHITESPACE@2181..2182 " "
+ PLUS@2182..2183 "+"
+ WHITESPACE@2183..2184 " "
+ EXPR_APPLY@2184..2205
+ EXPR_INDEX@2184..2192
+ EXPR_VAR@2184..2187
+ NAME@2184..2187
+ IDENT@2184..2187 "std"
+ DOT@2187..2188 "."
+ NAME@2188..2192
+ IDENT@2188..2192 "type"
+ ARGS_DESC@2192..2205
+ L_PAREN@2192..2193 "("
+ ARG@2193..2204
+ EXPR_VAR@2193..2204
+ NAME@2193..2204
+ IDENT@2193..2204 "filter_func"
+ R_PAREN@2204..2205 ")"
+ R_PAREN@2205..2206 ")"
+ WHITESPACE@2206..2211 "\n "
+ ELSE_KW@2211..2215 "else"
+ WHITESPACE@2215..2216 " "
+ FALSE_EXPR@2216..2512
+ EXPR_IF_THEN_ELSE@2216..2512
+ IF_KW@2216..2218 "if"
+ WHITESPACE@2218..2219 " "
+ EXPR_UNARY@2219..2244
+ NOT@2219..2220 "!"
+ EXPR_APPLY@2220..2244
+ EXPR_INDEX@2220..2234
+ EXPR_VAR@2220..2223
+ NAME@2220..2223
+ IDENT@2220..2223 "std"
+ DOT@2223..2224 "."
+ NAME@2224..2234
+ IDENT@2224..2234 "isFunction"
+ ARGS_DESC@2234..2244
+ L_PAREN@2234..2235 "("
+ ARG@2235..2243
+ EXPR_VAR@2235..2243
+ NAME@2235..2243
+ IDENT@2235..2243 "map_func"
+ R_PAREN@2243..2244 ")"
+ WHITESPACE@2244..2245 " "
+ THEN_KW@2245..2249 "then"
+ WHITESPACE@2249..2256 "\n "
+ TRUE_EXPR@2256..2336
+ EXPR_ERROR@2256..2336
+ ERROR_KW@2256..2261 "error"
+ WHITESPACE@2261..2262 " "
+ EXPR_PARENED@2262..2336
+ L_PAREN@2262..2263 "("
+ EXPR_BINARY@2263..2335
+ LHS_EXPR@2263..2314
+ EXPR_STRING@2263..2314
+ STRING_SINGLE@2263..2314 "'std.filterMap second ..."
+ WHITESPACE@2314..2315 " "
+ PLUS@2315..2316 "+"
+ WHITESPACE@2316..2317 " "
+ EXPR_APPLY@2317..2335
+ EXPR_INDEX@2317..2325
+ EXPR_VAR@2317..2320
+ NAME@2317..2320
+ IDENT@2317..2320 "std"
+ DOT@2320..2321 "."
+ NAME@2321..2325
+ IDENT@2321..2325 "type"
+ ARGS_DESC@2325..2335
+ L_PAREN@2325..2326 "("
+ ARG@2326..2334
+ EXPR_VAR@2326..2334
+ NAME@2326..2334
+ IDENT@2326..2334 "map_func"
+ R_PAREN@2334..2335 ")"
+ R_PAREN@2335..2336 ")"
+ WHITESPACE@2336..2341 "\n "
+ ELSE_KW@2341..2345 "else"
+ WHITESPACE@2345..2346 " "
+ FALSE_EXPR@2346..2512
+ EXPR_IF_THEN_ELSE@2346..2512
+ IF_KW@2346..2348 "if"
+ WHITESPACE@2348..2349 " "
+ EXPR_UNARY@2349..2366
+ NOT@2349..2350 "!"
+ EXPR_APPLY@2350..2366
+ EXPR_INDEX@2350..2361
+ EXPR_VAR@2350..2353
+ NAME@2350..2353
+ IDENT@2350..2353 "std"
+ DOT@2353..2354 "."
+ NAME@2354..2361
+ IDENT@2354..2361 "isArray"
+ ARGS_DESC@2361..2366
+ L_PAREN@2361..2362 "("
+ ARG@2362..2365
+ EXPR_VAR@2362..2365
+ NAME@2362..2365
+ IDENT@2362..2365 "arr"
+ R_PAREN@2365..2366 ")"
+ WHITESPACE@2366..2367 " "
+ THEN_KW@2367..2371 "then"
+ WHITESPACE@2371..2378 "\n "
+ TRUE_EXPR@2378..2449
+ EXPR_ERROR@2378..2449
+ ERROR_KW@2378..2383 "error"
+ WHITESPACE@2383..2384 " "
+ EXPR_PARENED@2384..2449
+ L_PAREN@2384..2385 "("
+ EXPR_BINARY@2385..2448
+ LHS_EXPR@2385..2432
+ EXPR_STRING@2385..2432
+ STRING_SINGLE@2385..2432 "'std.filterMap third ..."
+ WHITESPACE@2432..2433 " "
+ PLUS@2433..2434 "+"
+ WHITESPACE@2434..2435 " "
+ EXPR_APPLY@2435..2448
+ EXPR_INDEX@2435..2443
+ EXPR_VAR@2435..2438
+ NAME@2435..2438
+ IDENT@2435..2438 "std"
+ DOT@2438..2439 "."
+ NAME@2439..2443
+ IDENT@2439..2443 "type"
+ ARGS_DESC@2443..2448
+ L_PAREN@2443..2444 "("
+ ARG@2444..2447
+ EXPR_VAR@2444..2447
+ NAME@2444..2447
+ IDENT@2444..2447 "arr"
+ R_PAREN@2447..2448 ")"
+ R_PAREN@2448..2449 ")"
+ WHITESPACE@2449..2454 "\n "
+ ELSE_KW@2454..2458 "else"
+ WHITESPACE@2458..2465 "\n "
+ FALSE_EXPR@2465..2512
+ EXPR_APPLY@2465..2512
+ EXPR_INDEX@2465..2472
+ EXPR_VAR@2465..2468
+ NAME@2465..2468
+ IDENT@2465..2468 "std"
+ DOT@2468..2469 "."
+ NAME@2469..2472
+ IDENT@2469..2472 "map"
+ ARGS_DESC@2472..2512
+ L_PAREN@2472..2473 "("
+ ARG@2473..2481
+ EXPR_VAR@2473..2481
+ NAME@2473..2481
+ IDENT@2473..2481 "map_func"
+ COMMA@2481..2482 ","
+ WHITESPACE@2482..2483 " "
+ ARG@2483..2511
+ EXPR_APPLY@2483..2511
+ EXPR_INDEX@2483..2493
+ EXPR_VAR@2483..2486
+ NAME@2483..2486
+ IDENT@2483..2486 "std"
+ DOT@2486..2487 "."
+ NAME@2487..2493
+ IDENT@2487..2493 "filter"
+ ARGS_DESC@2493..2511
+ L_PAREN@2493..2494 "("
+ ARG@2494..2505
+ EXPR_VAR@2494..2505
+ NAME@2494..2505
+ IDENT@2494..2505 "filter_func"
+ COMMA@2505..2506 ","
+ WHITESPACE@2506..2507 " "
+ ARG@2507..2510
+ EXPR_VAR@2507..2510
+ NAME@2507..2510
+ IDENT@2507..2510 "arr"
+ R_PAREN@2510..2511 ")"
+ R_PAREN@2511..2512 ")"
+ COMMA@2512..2513 ","
+ WHITESPACE@2513..2517 "\n\n "
+ MEMBER_FIELD@2517..2625
+ FIELD_METHOD@2517..2625
+ FIELD_NAME_FIXED@2517..2528
+ NAME@2517..2528
+ IDENT@2517..2528 "assertEqual"
+ PARAMS_DESC@2528..2534
+ L_PAREN@2528..2529 "("
+ PARAM@2529..2530
+ DESTRUCT_FULL@2529..2530
+ NAME@2529..2530
+ IDENT@2529..2530 "a"
+ COMMA@2530..2531 ","
+ WHITESPACE@2531..2532 " "
+ PARAM@2532..2533
+ DESTRUCT_FULL@2532..2533
+ NAME@2532..2533
+ IDENT@2532..2533 "b"
+ R_PAREN@2533..2534 ")"
+ COLONCOLON@2534..2536 "::"
+ WHITESPACE@2536..2541 "\n "
+ EXPR_IF_THEN_ELSE@2541..2625
+ IF_KW@2541..2543 "if"
+ WHITESPACE@2543..2544 " "
+ EXPR_BINARY@2544..2550
+ LHS_EXPR@2544..2545
+ EXPR_VAR@2544..2545
+ NAME@2544..2545
+ IDENT@2544..2545 "a"
+ WHITESPACE@2545..2546 " "
+ EQ@2546..2548 "=="
+ WHITESPACE@2548..2549 " "
+ EXPR_VAR@2549..2550
+ NAME@2549..2550
+ IDENT@2549..2550 "b"
+ WHITESPACE@2550..2551 " "
+ THEN_KW@2551..2555 "then"
+ WHITESPACE@2555..2562 "\n "
+ TRUE_EXPR@2562..2566
+ EXPR_LITERAL@2562..2566
+ TRUE_KW@2562..2566 "true"
+ WHITESPACE@2566..2571 "\n "
+ ELSE_KW@2571..2575 "else"
+ WHITESPACE@2575..2582 "\n "
+ FALSE_EXPR@2582..2625
+ EXPR_ERROR@2582..2625
+ ERROR_KW@2582..2587 "error"
+ WHITESPACE@2587..2588 " "
+ EXPR_BINARY@2588..2625
+ LHS_EXPR@2588..2621
+ EXPR_BINARY@2588..2621
+ LHS_EXPR@2588..2612
+ EXPR_BINARY@2588..2612
+ LHS_EXPR@2588..2608
+ EXPR_STRING@2588..2608
+ STRING_SINGLE@2588..2608 "'Assertion failed. '"
+ WHITESPACE@2608..2609 " "
+ PLUS@2609..2610 "+"
+ WHITESPACE@2610..2611 " "
+ EXPR_VAR@2611..2612
+ NAME@2611..2612
+ IDENT@2611..2612 "a"
+ WHITESPACE@2612..2613 " "
+ PLUS@2613..2614 "+"
+ WHITESPACE@2614..2615 " "
+ EXPR_STRING@2615..2621
+ STRING_SINGLE@2615..2621 "' != '"
+ WHITESPACE@2621..2622 " "
+ PLUS@2622..2623 "+"
+ WHITESPACE@2623..2624 " "
+ EXPR_VAR@2624..2625
+ NAME@2624..2625
+ IDENT@2624..2625 "b"
+ COMMA@2625..2626 ","
+ WHITESPACE@2626..2630 "\n\n "
+ MEMBER_FIELD@2630..2732
+ FIELD_METHOD@2630..2732
+ FIELD_NAME_FIXED@2630..2635
+ NAME@2630..2635
+ IDENT@2630..2635 "clamp"
+ PARAMS_DESC@2635..2654
+ L_PAREN@2635..2636 "("
+ PARAM@2636..2637
+ DESTRUCT_FULL@2636..2637
+ NAME@2636..2637
+ IDENT@2636..2637 "x"
+ COMMA@2637..2638 ","
+ WHITESPACE@2638..2639 " "
+ PARAM@2639..2645
+ DESTRUCT_FULL@2639..2645
+ NAME@2639..2645
+ IDENT@2639..2645 "minVal"
+ COMMA@2645..2646 ","
+ WHITESPACE@2646..2647 " "
+ PARAM@2647..2653
+ DESTRUCT_FULL@2647..2653
+ NAME@2647..2653
+ IDENT@2647..2653 "maxVal"
+ R_PAREN@2653..2654 ")"
+ COLONCOLON@2654..2656 "::"
+ WHITESPACE@2656..2661 "\n "
+ EXPR_IF_THEN_ELSE@2661..2732
+ IF_KW@2661..2663 "if"
+ WHITESPACE@2663..2664 " "
+ EXPR_BINARY@2664..2674
+ LHS_EXPR@2664..2665
+ EXPR_VAR@2664..2665
+ NAME@2664..2665
+ IDENT@2664..2665 "x"
+ WHITESPACE@2665..2666 " "
+ LT@2666..2667 "<"
+ WHITESPACE@2667..2668 " "
+ EXPR_VAR@2668..2674
+ NAME@2668..2674
+ IDENT@2668..2674 "minVal"
+ WHITESPACE@2674..2675 " "
+ THEN_KW@2675..2679 "then"
+ WHITESPACE@2679..2680 " "
+ TRUE_EXPR@2680..2686
+ EXPR_VAR@2680..2686
+ NAME@2680..2686
+ IDENT@2680..2686 "minVal"
+ WHITESPACE@2686..2691 "\n "
+ ELSE_KW@2691..2695 "else"
+ WHITESPACE@2695..2696 " "
+ FALSE_EXPR@2696..2732
+ EXPR_IF_THEN_ELSE@2696..2732
+ IF_KW@2696..2698 "if"
+ WHITESPACE@2698..2699 " "
+ EXPR_BINARY@2699..2709
+ LHS_EXPR@2699..2700
+ EXPR_VAR@2699..2700
+ NAME@2699..2700
+ IDENT@2699..2700 "x"
+ WHITESPACE@2700..2701 " "
+ GT@2701..2702 ">"
+ WHITESPACE@2702..2703 " "
+ EXPR_VAR@2703..2709
+ NAME@2703..2709
+ IDENT@2703..2709 "maxVal"
+ WHITESPACE@2709..2710 " "
+ THEN_KW@2710..2714 "then"
+ WHITESPACE@2714..2715 " "
+ TRUE_EXPR@2715..2721
+ EXPR_VAR@2715..2721
+ NAME@2715..2721
+ IDENT@2715..2721 "maxVal"
+ WHITESPACE@2721..2726 "\n "
+ ELSE_KW@2726..2730 "else"
+ WHITESPACE@2730..2731 " "
+ FALSE_EXPR@2731..2732
+ EXPR_VAR@2731..2732
+ NAME@2731..2732
+ IDENT@2731..2732 "x"
+ COMMA@2732..2733 ","
+ WHITESPACE@2733..2737 "\n\n "
+ MEMBER_FIELD@2737..2804
+ FIELD_METHOD@2737..2804
+ FIELD_NAME_FIXED@2737..2750
+ NAME@2737..2750
+ IDENT@2737..2750 "flattenArrays"
+ PARAMS_DESC@2750..2756
+ L_PAREN@2750..2751 "("
+ PARAM@2751..2755
+ DESTRUCT_FULL@2751..2755
+ NAME@2751..2755
+ IDENT@2751..2755 "arrs"
+ R_PAREN@2755..2756 ")"
+ COLONCOLON@2756..2758 "::"
+ WHITESPACE@2758..2763 "\n "
+ EXPR_APPLY@2763..2804
+ EXPR_INDEX@2763..2772
+ EXPR_VAR@2763..2766
+ NAME@2763..2766
+ IDENT@2763..2766 "std"
+ DOT@2766..2767 "."
+ NAME@2767..2772
+ IDENT@2767..2772 "foldl"
+ ARGS_DESC@2772..2804
+ L_PAREN@2772..2773 "("
+ ARG@2773..2793
+ EXPR_FUNCTION@2773..2793
+ FUNCTION_KW@2773..2781 "function"
+ PARAMS_DESC@2781..2787
+ L_PAREN@2781..2782 "("
+ PARAM@2782..2783
+ DESTRUCT_FULL@2782..2783
+ NAME@2782..2783
+ IDENT@2782..2783 "a"
+ COMMA@2783..2784 ","
+ WHITESPACE@2784..2785 " "
+ PARAM@2785..2786
+ DESTRUCT_FULL@2785..2786
+ NAME@2785..2786
+ IDENT@2785..2786 "b"
+ R_PAREN@2786..2787 ")"
+ WHITESPACE@2787..2788 " "
+ EXPR_BINARY@2788..2793
+ LHS_EXPR@2788..2789
+ EXPR_VAR@2788..2789
+ NAME@2788..2789
+ IDENT@2788..2789 "a"
+ WHITESPACE@2789..2790 " "
+ PLUS@2790..2791 "+"
+ WHITESPACE@2791..2792 " "
+ EXPR_VAR@2792..2793
+ NAME@2792..2793
+ IDENT@2792..2793 "b"
+ COMMA@2793..2794 ","
+ WHITESPACE@2794..2795 " "
+ ARG@2795..2799
+ EXPR_VAR@2795..2799
+ NAME@2795..2799
+ IDENT@2795..2799 "arrs"
+ COMMA@2799..2800 ","
+ WHITESPACE@2800..2801 " "
+ ARG@2801..2803
+ EXPR_ARRAY@2801..2803
+ L_BRACK@2801..2802 "["
+ R_BRACK@2802..2803 "]"
+ R_PAREN@2803..2804 ")"
+ COMMA@2804..2805 ","
+ WHITESPACE@2805..2809 "\n\n "
+ MEMBER_FIELD@2809..3495
+ FIELD_METHOD@2809..3495
+ FIELD_NAME_FIXED@2809..2820
+ NAME@2809..2820
+ IDENT@2809..2820 "manifestIni"
+ PARAMS_DESC@2820..2825
+ L_PAREN@2820..2821 "("
+ PARAM@2821..2824
+ DESTRUCT_FULL@2821..2824
+ NAME@2821..2824
+ IDENT@2821..2824 "ini"
+ R_PAREN@2824..2825 ")"
+ COLONCOLON@2825..2827 "::"
+ WHITESPACE@2827..2832 "\n "
+ EXPR_LOCAL@2832..3495
+ LOCAL_KW@2832..2837 "local"
+ WHITESPACE@2837..2838 " "
+ BIND_FUNCTION@2838..3135
+ NAME@2838..2848
+ IDENT@2838..2848 "body_lines"
+ PARAMS_DESC@2848..2854
+ L_PAREN@2848..2849 "("
+ PARAM@2849..2853
+ DESTRUCT_FULL@2849..2853
+ NAME@2849..2853
+ IDENT@2849..2853 "body"
+ R_PAREN@2853..2854 ")"
+ WHITESPACE@2854..2855 " "
+ ASSIGN@2855..2856 "="
+ WHITESPACE@2856..2863 "\n "
+ EXPR_APPLY@2863..3135
+ EXPR_INDEX@2863..2871
+ EXPR_VAR@2863..2866
+ NAME@2863..2866
+ IDENT@2863..2866 "std"
+ DOT@2866..2867 "."
+ NAME@2867..2871
+ IDENT@2867..2871 "join"
+ ARGS_DESC@2871..3135
+ L_PAREN@2871..2872 "("
+ ARG@2872..2874
+ EXPR_ARRAY@2872..2874
+ L_BRACK@2872..2873 "["
+ R_BRACK@2873..2874 "]"
+ COMMA@2874..2875 ","
+ WHITESPACE@2875..2876 " "
+ ARG@2876..3134
+ EXPR_ARRAY_COMP@2876..3134
+ L_BRACK@2876..2877 "["
+ WHITESPACE@2877..2886 "\n "
+ EXPR_LOCAL@2886..3085
+ LOCAL_KW@2886..2891 "local"
+ WHITESPACE@2891..2892 " "
+ BIND_DESTRUCT@2892..2917
+ DESTRUCT_FULL@2892..2907
+ NAME@2892..2907
+ IDENT@2892..2907 "value_or_values"
+ WHITESPACE@2907..2908 " "
+ ASSIGN@2908..2909 "="
+ WHITESPACE@2909..2910 " "
+ EXPR_INDEX_EXPR@2910..2917
+ LHS_EXPR@2910..2914
+ EXPR_VAR@2910..2914
+ NAME@2910..2914
+ IDENT@2910..2914 "body"
+ L_BRACK@2914..2915 "["
+ EXPR_VAR@2915..2916
+ NAME@2915..2916
+ IDENT@2915..2916 "k"
+ R_BRACK@2916..2917 "]"
+ SEMI@2917..2918 ";"
+ WHITESPACE@2918..2927 "\n "
+ EXPR_IF_THEN_ELSE@2927..3085
+ IF_KW@2927..2929 "if"
+ WHITESPACE@2929..2930 " "
+ EXPR_APPLY@2930..2958
+ EXPR_INDEX@2930..2941
+ EXPR_VAR@2930..2933
+ NAME@2930..2933
+ IDENT@2930..2933 "std"
+ DOT@2933..2934 "."
+ NAME@2934..2941
+ IDENT@2934..2941 "isArray"
+ ARGS_DESC@2941..2958
+ L_PAREN@2941..2942 "("
+ ARG@2942..2957
+ EXPR_VAR@2942..2957
+ NAME@2942..2957
+ IDENT@2942..2957 "value_or_values"
+ R_PAREN@2957..2958 ")"
+ WHITESPACE@2958..2959 " "
+ THEN_KW@2959..2963 "then"
+ WHITESPACE@2963..2974 "\n "
+ TRUE_EXPR@2974..3027
+ EXPR_ARRAY_COMP@2974..3027
+ L_BRACK@2974..2975 "["
+ EXPR_BINARY@2975..2997
+ LHS_EXPR@2975..2984
+ EXPR_STRING@2975..2984
+ STRING_SINGLE@2975..2984 "'%s = %s'"
+ WHITESPACE@2984..2985 " "
+ MODULO@2985..2986 "%"
+ WHITESPACE@2986..2987 " "
+ EXPR_ARRAY@2987..2997
+ L_BRACK@2987..2988 "["
+ EXPR_VAR@2988..2989
+ NAME@2988..2989
+ IDENT@2988..2989 "k"
+ COMMA@2989..2990 ","
WHITESPACE@2990..2991 " "
- MODULO@2991..2992 "%"
- WHITESPACE@2992..2993 " "
- EXPR_ARRAY@2993..3004
- L_BRACK@2993..2994 "["
- EXPR_VAR@2994..2997
- NAME@2994..2997
- IDENT@2994..2997 "str"
- COMMA@2997..2998 ","
- WHITESPACE@2998..2999 " "
- EXPR_VAR@2999..3003
- NAME@2999..3003
- IDENT@2999..3003 "base"
- R_BRACK@3003..3004 "]"
- SEMI@3004..3005 ";"
- WHITESPACE@3005..3012 "\n "
- EXPR_BINARY@3012..3036
- LHS_EXPR@3012..3028
- EXPR_BINARY@3012..3028
- LHS_EXPR@3012..3016
- EXPR_VAR@3012..3016
- NAME@3012..3016
- IDENT@3012..3016 "base"
- WHITESPACE@3016..3017 " "
- MUL@3017..3018 "*"
- WHITESPACE@3018..3019 " "
- EXPR_VAR@3019..3028
- NAME@3019..3028
- IDENT@3019..3028 "aggregate"
- WHITESPACE@3028..3029 " "
- PLUS@3029..3030 "+"
- WHITESPACE@3030..3031 " "
- EXPR_VAR@3031..3036
- NAME@3031..3036
- IDENT@3031..3036 "digit"
- SEMI@3036..3037 ";"
- WHITESPACE@3037..3042 "\n "
- EXPR_APPLY@3042..3086
- EXPR_INDEX@3042..3051
- EXPR_VAR@3042..3045
- NAME@3042..3045
- IDENT@3042..3045 "std"
- DOT@3045..3046 "."
- NAME@3046..3051
- IDENT@3046..3051 "foldl"
- ARGS_DESC@3051..3086
- L_PAREN@3051..3052 "("
- ARG@3052..3060
- EXPR_VAR@3052..3060
- NAME@3052..3060
- IDENT@3052..3060 "addDigit"
- COMMA@3060..3061 ","
- WHITESPACE@3061..3062 " "
- ARG@3062..3082
- EXPR_APPLY@3062..3082
- EXPR_INDEX@3062..3077
- EXPR_VAR@3062..3065
- NAME@3062..3065
- IDENT@3062..3065 "std"
- DOT@3065..3066 "."
- NAME@3066..3077
- IDENT@3066..3077 "stringChars"
- ARGS_DESC@3077..3082
- L_PAREN@3077..3078 "("
- ARG@3078..3081
- EXPR_VAR@3078..3081
- NAME@3078..3081
- IDENT@3078..3081 "str"
- R_PAREN@3081..3082 ")"
- COMMA@3082..3083 ","
- WHITESPACE@3083..3084 " "
- ARG@3084..3085
- EXPR_NUMBER@3084..3085
- FLOAT@3084..3085 "0"
- R_PAREN@3085..3086 ")"
- COMMA@3086..3087 ","
- WHITESPACE@3087..3091 "\n\n "
- MEMBER_FIELD@3091..3347
- FIELD_METHOD@3091..3347
- FIELD_NAME_FIXED@3091..3099
- NAME@3091..3099
- IDENT@3091..3099 "parseInt"
- PARAMS_DESC@3099..3104
- L_PAREN@3099..3100 "("
- PARAM@3100..3103
- DESTRUCT_FULL@3100..3103
- NAME@3100..3103
- IDENT@3100..3103 "str"
- R_PAREN@3103..3104 ")"
- COLONCOLON@3104..3106 "::"
- WHITESPACE@3106..3111 "\n "
- EXPR_ASSERT@3111..3347
- ASSERTION@3111..3177
- ASSERT_KW@3111..3117 "assert"
- WHITESPACE@3117..3118 " "
- LHS_EXPR@3118..3135
- EXPR_APPLY@3118..3135
- EXPR_INDEX@3118..3130
- EXPR_VAR@3118..3121
- NAME@3118..3121
- IDENT@3118..3121 "std"
- DOT@3121..3122 "."
- NAME@3122..3130
- IDENT@3122..3130 "isString"
- ARGS_DESC@3130..3135
- L_PAREN@3130..3131 "("
- ARG@3131..3134
- EXPR_VAR@3131..3134
- NAME@3131..3134
- IDENT@3131..3134 "str"
- R_PAREN@3134..3135 ")"
- WHITESPACE@3135..3136 " "
- COLON@3136..3137 ":"
- WHITESPACE@3137..3138 " "
- EXPR_BINARY@3138..3177
- LHS_EXPR@3138..3161
- EXPR_STRING@3138..3161
- STRING_SINGLE@3138..3161 "'Expected string, got '"
- WHITESPACE@3161..3162 " "
- PLUS@3162..3163 "+"
- WHITESPACE@3163..3164 " "
- EXPR_APPLY@3164..3177
- EXPR_INDEX@3164..3172
- EXPR_VAR@3164..3167
- NAME@3164..3167
- IDENT@3164..3167 "std"
- DOT@3167..3168 "."
- NAME@3168..3172
- IDENT@3168..3172 "type"
- ARGS_DESC@3172..3177
- L_PAREN@3172..3173 "("
- ARG@3173..3176
- EXPR_VAR@3173..3176
- NAME@3173..3176
- IDENT@3173..3176 "str"
- R_PAREN@3176..3177 ")"
- SEMI@3177..3178 ";"
- WHITESPACE@3178..3183 "\n "
- EXPR_ASSERT@3183..3347
- ASSERTION@3183..3256
- ASSERT_KW@3183..3189 "assert"
- WHITESPACE@3189..3190 " "
- LHS_EXPR@3190..3223
- EXPR_BINARY@3190..3223
- LHS_EXPR@3190..3209
- EXPR_BINARY@3190..3209
- LHS_EXPR@3190..3205
- EXPR_APPLY@3190..3205
- EXPR_INDEX@3190..3200
- EXPR_VAR@3190..3193
- NAME@3190..3193
- IDENT@3190..3193 "std"
- DOT@3193..3194 "."
- NAME@3194..3200
- IDENT@3194..3200 "length"
- ARGS_DESC@3200..3205
- L_PAREN@3200..3201 "("
- ARG@3201..3204
- EXPR_VAR@3201..3204
- NAME@3201..3204
- IDENT@3201..3204 "str"
- R_PAREN@3204..3205 ")"
- WHITESPACE@3205..3206 " "
- GT@3206..3207 ">"
- WHITESPACE@3207..3208 " "
- EXPR_NUMBER@3208..3209
- FLOAT@3208..3209 "0"
- WHITESPACE@3209..3210 " "
- AND@3210..3212 "&&"
- WHITESPACE@3212..3213 " "
- EXPR_BINARY@3213..3223
- LHS_EXPR@3213..3216
- EXPR_VAR@3213..3216
- NAME@3213..3216
- IDENT@3213..3216 "str"
- WHITESPACE@3216..3217 " "
- NE@3217..3219 "!="
- WHITESPACE@3219..3220 " "
- EXPR_STRING@3220..3223
- STRING_SINGLE@3220..3223 "'-'"
- WHITESPACE@3223..3224 " "
- COLON@3224..3225 ":"
- WHITESPACE@3225..3226 " "
- EXPR_BINARY@3226..3256
- LHS_EXPR@3226..3248
- EXPR_STRING@3226..3248
- STRING_SINGLE@3226..3248 "'Not an integer: \"%s\"'"
- WHITESPACE@3248..3249 " "
- MODULO@3249..3250 "%"
- WHITESPACE@3250..3251 " "
- EXPR_ARRAY@3251..3256
- L_BRACK@3251..3252 "["
- EXPR_VAR@3252..3255
- NAME@3252..3255
- IDENT@3252..3255 "str"
- R_BRACK@3255..3256 "]"
- SEMI@3256..3257 ";"
- WHITESPACE@3257..3262 "\n "
- EXPR_IF_THEN_ELSE@3262..3347
- IF_KW@3262..3264 "if"
- WHITESPACE@3264..3265 " "
- EXPR_BINARY@3265..3278
- LHS_EXPR@3265..3271
- EXPR_INDEX_EXPR@3265..3271
- LHS_EXPR@3265..3268
- EXPR_VAR@3265..3268
- NAME@3265..3268
- IDENT@3265..3268 "str"
- L_BRACK@3268..3269 "["
- EXPR_NUMBER@3269..3270
- FLOAT@3269..3270 "0"
- R_BRACK@3270..3271 "]"
- WHITESPACE@3271..3272 " "
- EQ@3272..3274 "=="
+ EXPR_VAR@2991..2996
+ NAME@2991..2996
+ IDENT@2991..2996 "value"
+ R_BRACK@2996..2997 "]"
+ WHITESPACE@2997..2998 " "
+ FOR_SPEC@2998..3026
+ FOR_KW@2998..3001 "for"
+ WHITESPACE@3001..3002 " "
+ NAME@3002..3007
+ IDENT@3002..3007 "value"
+ WHITESPACE@3007..3008 " "
+ IN_KW@3008..3010 "in"
+ WHITESPACE@3010..3011 " "
+ EXPR_VAR@3011..3026
+ NAME@3011..3026
+ IDENT@3011..3026 "value_or_values"
+ R_BRACK@3026..3027 "]"
+ WHITESPACE@3027..3036 "\n "
+ ELSE_KW@3036..3040 "else"
+ WHITESPACE@3040..3051 "\n "
+ FALSE_EXPR@3051..3085
+ EXPR_ARRAY@3051..3085
+ L_BRACK@3051..3052 "["
+ EXPR_BINARY@3052..3084
+ LHS_EXPR@3052..3061
+ EXPR_STRING@3052..3061
+ STRING_SINGLE@3052..3061 "'%s = %s'"
+ WHITESPACE@3061..3062 " "
+ MODULO@3062..3063 "%"
+ WHITESPACE@3063..3064 " "
+ EXPR_ARRAY@3064..3084
+ L_BRACK@3064..3065 "["
+ EXPR_VAR@3065..3066
+ NAME@3065..3066
+ IDENT@3065..3066 "k"
+ COMMA@3066..3067 ","
+ WHITESPACE@3067..3068 " "
+ EXPR_VAR@3068..3083
+ NAME@3068..3083
+ IDENT@3068..3083 "value_or_values"
+ R_BRACK@3083..3084 "]"
+ R_BRACK@3084..3085 "]"
+ WHITESPACE@3085..3095 "\n\n "
+ FOR_SPEC@3095..3126
+ FOR_KW@3095..3098 "for"
+ WHITESPACE@3098..3099 " "
+ NAME@3099..3100
+ IDENT@3099..3100 "k"
+ WHITESPACE@3100..3101 " "
+ IN_KW@3101..3103 "in"
+ WHITESPACE@3103..3104 " "
+ EXPR_APPLY@3104..3126
+ EXPR_INDEX@3104..3120
+ EXPR_VAR@3104..3107
+ NAME@3104..3107
+ IDENT@3104..3107 "std"
+ DOT@3107..3108 "."
+ NAME@3108..3120
+ IDENT@3108..3120 "objectFields"
+ ARGS_DESC@3120..3126
+ L_PAREN@3120..3121 "("
+ ARG@3121..3125
+ EXPR_VAR@3121..3125
+ NAME@3121..3125
+ IDENT@3121..3125 "body"
+ R_PAREN@3125..3126 ")"
+ WHITESPACE@3126..3133 "\n "
+ R_BRACK@3133..3134 "]"
+ R_PAREN@3134..3135 ")"
+ SEMI@3135..3136 ";"
+ WHITESPACE@3136..3142 "\n\n "
+ EXPR_LOCAL@3142..3495
+ LOCAL_KW@3142..3147 "local"
+ WHITESPACE@3147..3148 " "
+ BIND_FUNCTION@3148..3216
+ NAME@3148..3161
+ IDENT@3148..3161 "section_lines"
+ PARAMS_DESC@3161..3175
+ L_PAREN@3161..3162 "("
+ PARAM@3162..3167
+ DESTRUCT_FULL@3162..3167
+ NAME@3162..3167
+ IDENT@3162..3167 "sname"
+ COMMA@3167..3168 ","
+ WHITESPACE@3168..3169 " "
+ PARAM@3169..3174
+ DESTRUCT_FULL@3169..3174
+ NAME@3169..3174
+ IDENT@3169..3174 "sbody"
+ R_PAREN@3174..3175 ")"
+ WHITESPACE@3175..3176 " "
+ ASSIGN@3176..3177 "="
+ WHITESPACE@3177..3178 " "
+ EXPR_BINARY@3178..3216
+ LHS_EXPR@3178..3196
+ EXPR_ARRAY@3178..3196
+ L_BRACK@3178..3179 "["
+ EXPR_BINARY@3179..3195
+ LHS_EXPR@3179..3185
+ EXPR_STRING@3179..3185
+ STRING_SINGLE@3179..3185 "'[%s]'"
+ WHITESPACE@3185..3186 " "
+ MODULO@3186..3187 "%"
+ WHITESPACE@3187..3188 " "
+ EXPR_ARRAY@3188..3195
+ L_BRACK@3188..3189 "["
+ EXPR_VAR@3189..3194
+ NAME@3189..3194
+ IDENT@3189..3194 "sname"
+ R_BRACK@3194..3195 "]"
+ R_BRACK@3195..3196 "]"
+ WHITESPACE@3196..3197 " "
+ PLUS@3197..3198 "+"
+ WHITESPACE@3198..3199 " "
+ EXPR_APPLY@3199..3216
+ EXPR_VAR@3199..3209
+ NAME@3199..3209
+ IDENT@3199..3209 "body_lines"
+ ARGS_DESC@3209..3216
+ L_PAREN@3209..3210 "("
+ ARG@3210..3215
+ EXPR_VAR@3210..3215
+ NAME@3210..3215
+ IDENT@3210..3215 "sbody"
+ R_PAREN@3215..3216 ")"
+ COMMA@3216..3217 ","
+ WHITESPACE@3217..3228 "\n "
+ BIND_DESTRUCT@3228..3303
+ DESTRUCT_FULL@3228..3237
+ NAME@3228..3237
+ IDENT@3228..3237 "main_body"
+ WHITESPACE@3237..3238 " "
+ ASSIGN@3238..3239 "="
+ WHITESPACE@3239..3240 " "
+ EXPR_IF_THEN_ELSE@3240..3303
+ IF_KW@3240..3242 "if"
+ WHITESPACE@3242..3243 " "
+ EXPR_APPLY@3243..3269
+ EXPR_INDEX@3243..3256
+ EXPR_VAR@3243..3246
+ NAME@3243..3246
+ IDENT@3243..3246 "std"
+ DOT@3246..3247 "."
+ NAME@3247..3256
+ IDENT@3247..3256 "objectHas"
+ ARGS_DESC@3256..3269
+ L_PAREN@3256..3257 "("
+ ARG@3257..3260
+ EXPR_VAR@3257..3260
+ NAME@3257..3260
+ IDENT@3257..3260 "ini"
+ COMMA@3260..3261 ","
+ WHITESPACE@3261..3262 " "
+ ARG@3262..3268
+ EXPR_STRING@3262..3268
+ STRING_SINGLE@3262..3268 "'main'"
+ R_PAREN@3268..3269 ")"
+ WHITESPACE@3269..3270 " "
+ THEN_KW@3270..3274 "then"
WHITESPACE@3274..3275 " "
- EXPR_STRING@3275..3278
- STRING_SINGLE@3275..3278 "'-'"
- WHITESPACE@3278..3279 " "
- THEN_KW@3279..3283 "then"
- WHITESPACE@3283..3290 "\n "
- TRUE_EXPR@3290..3313
- EXPR_UNARY@3290..3313
- MINUS@3290..3291 "-"
- EXPR_APPLY@3291..3313
- EXPR_VAR@3291..3300
- NAME@3291..3300
- IDENT@3291..3300 "parse_nat"
- ARGS_DESC@3300..3313
- L_PAREN@3300..3301 "("
- ARG@3301..3308
- EXPR_SLICE@3301..3308
- EXPR_VAR@3301..3304
- NAME@3301..3304
- IDENT@3301..3304 "str"
- SLICE_DESC@3304..3308
- L_BRACK@3304..3305 "["
- EXPR_NUMBER@3305..3306
- FLOAT@3305..3306 "1"
- COLON@3306..3307 ":"
- R_BRACK@3307..3308 "]"
- COMMA@3308..3309 ","
- WHITESPACE@3309..3310 " "
- ARG@3310..3312
- EXPR_NUMBER@3310..3312
- FLOAT@3310..3312 "10"
- R_PAREN@3312..3313 ")"
- WHITESPACE@3313..3318 "\n "
- ELSE_KW@3318..3322 "else"
- WHITESPACE@3322..3329 "\n "
- FALSE_EXPR@3329..3347
- EXPR_APPLY@3329..3347
- EXPR_VAR@3329..3338
- NAME@3329..3338
- IDENT@3329..3338 "parse_nat"
- ARGS_DESC@3338..3347
- L_PAREN@3338..3339 "("
- ARG@3339..3342
- EXPR_VAR@3339..3342
- NAME@3339..3342
- IDENT@3339..3342 "str"
- COMMA@3342..3343 ","
- WHITESPACE@3343..3344 " "
- ARG@3344..3346
- EXPR_NUMBER@3344..3346
- FLOAT@3344..3346 "10"
- R_PAREN@3346..3347 ")"
- COMMA@3347..3348 ","
- WHITESPACE@3348..3352 "\n\n "
- MEMBER_FIELD@3352..3523
- FIELD_METHOD@3352..3523
- FIELD_NAME_FIXED@3352..3362
- NAME@3352..3362
- IDENT@3352..3362 "parseOctal"
- PARAMS_DESC@3362..3367
- L_PAREN@3362..3363 "("
- PARAM@3363..3366
- DESTRUCT_FULL@3363..3366
- NAME@3363..3366
- IDENT@3363..3366 "str"
- R_PAREN@3366..3367 ")"
- COLONCOLON@3367..3369 "::"
- WHITESPACE@3369..3374 "\n "
- EXPR_ASSERT@3374..3523
- ASSERTION@3374..3440
- ASSERT_KW@3374..3380 "assert"
- WHITESPACE@3380..3381 " "
- LHS_EXPR@3381..3398
- EXPR_APPLY@3381..3398
- EXPR_INDEX@3381..3393
- EXPR_VAR@3381..3384
- NAME@3381..3384
- IDENT@3381..3384 "std"
- DOT@3384..3385 "."
- NAME@3385..3393
- IDENT@3385..3393 "isString"
- ARGS_DESC@3393..3398
- L_PAREN@3393..3394 "("
- ARG@3394..3397
- EXPR_VAR@3394..3397
- NAME@3394..3397
- IDENT@3394..3397 "str"
- R_PAREN@3397..3398 ")"
- WHITESPACE@3398..3399 " "
- COLON@3399..3400 ":"
- WHITESPACE@3400..3401 " "
- EXPR_BINARY@3401..3440
- LHS_EXPR@3401..3424
- EXPR_STRING@3401..3424
- STRING_SINGLE@3401..3424 "'Expected string, got '"
- WHITESPACE@3424..3425 " "
- PLUS@3425..3426 "+"
- WHITESPACE@3426..3427 " "
- EXPR_APPLY@3427..3440
- EXPR_INDEX@3427..3435
- EXPR_VAR@3427..3430
- NAME@3427..3430
- IDENT@3427..3430 "std"
- DOT@3430..3431 "."
- NAME@3431..3435
- IDENT@3431..3435 "type"
- ARGS_DESC@3435..3440
- L_PAREN@3435..3436 "("
- ARG@3436..3439
- EXPR_VAR@3436..3439
- NAME@3436..3439
- IDENT@3436..3439 "str"
- R_PAREN@3439..3440 ")"
- SEMI@3440..3441 ";"
- WHITESPACE@3441..3446 "\n "
- EXPR_ASSERT@3446..3523
- ASSERTION@3446..3500
- ASSERT_KW@3446..3452 "assert"
- WHITESPACE@3452..3453 " "
- LHS_EXPR@3453..3472
- EXPR_BINARY@3453..3472
- LHS_EXPR@3453..3468
- EXPR_APPLY@3453..3468
- EXPR_INDEX@3453..3463
- EXPR_VAR@3453..3456
- NAME@3453..3456
- IDENT@3453..3456 "std"
- DOT@3456..3457 "."
- NAME@3457..3463
- IDENT@3457..3463 "length"
- ARGS_DESC@3463..3468
- L_PAREN@3463..3464 "("
- ARG@3464..3467
- EXPR_VAR@3464..3467
- NAME@3464..3467
- IDENT@3464..3467 "str"
- R_PAREN@3467..3468 ")"
- WHITESPACE@3468..3469 " "
- GT@3469..3470 ">"
- WHITESPACE@3470..3471 " "
- EXPR_NUMBER@3471..3472
- FLOAT@3471..3472 "0"
- WHITESPACE@3472..3473 " "
- COLON@3473..3474 ":"
- WHITESPACE@3474..3475 " "
- EXPR_STRING@3475..3500
- STRING_SINGLE@3475..3500 "'Not an octal number: ..."
- SEMI@3500..3501 ";"
- WHITESPACE@3501..3506 "\n "
- EXPR_APPLY@3506..3523
- EXPR_VAR@3506..3515
- NAME@3506..3515
- IDENT@3506..3515 "parse_nat"
- ARGS_DESC@3515..3523
- L_PAREN@3515..3516 "("
- ARG@3516..3519
- EXPR_VAR@3516..3519
- NAME@3516..3519
- IDENT@3516..3519 "str"
- COMMA@3519..3520 ","
- WHITESPACE@3520..3521 " "
- ARG@3521..3522
- EXPR_NUMBER@3521..3522
- FLOAT@3521..3522 "8"
- R_PAREN@3522..3523 ")"
- COMMA@3523..3524 ","
- WHITESPACE@3524..3528 "\n\n "
- MEMBER_FIELD@3528..3694
- FIELD_METHOD@3528..3694
- FIELD_NAME_FIXED@3528..3536
- NAME@3528..3536
- IDENT@3528..3536 "parseHex"
- PARAMS_DESC@3536..3541
- L_PAREN@3536..3537 "("
- PARAM@3537..3540
- DESTRUCT_FULL@3537..3540
- NAME@3537..3540
- IDENT@3537..3540 "str"
- R_PAREN@3540..3541 ")"
- COLONCOLON@3541..3543 "::"
- WHITESPACE@3543..3548 "\n "
- EXPR_ASSERT@3548..3694
- ASSERTION@3548..3614
- ASSERT_KW@3548..3554 "assert"
- WHITESPACE@3554..3555 " "
- LHS_EXPR@3555..3572
- EXPR_APPLY@3555..3572
- EXPR_INDEX@3555..3567
- EXPR_VAR@3555..3558
- NAME@3555..3558
- IDENT@3555..3558 "std"
- DOT@3558..3559 "."
- NAME@3559..3567
- IDENT@3559..3567 "isString"
- ARGS_DESC@3567..3572
- L_PAREN@3567..3568 "("
- ARG@3568..3571
- EXPR_VAR@3568..3571
- NAME@3568..3571
- IDENT@3568..3571 "str"
- R_PAREN@3571..3572 ")"
- WHITESPACE@3572..3573 " "
- COLON@3573..3574 ":"
- WHITESPACE@3574..3575 " "
- EXPR_BINARY@3575..3614
- LHS_EXPR@3575..3598
- EXPR_STRING@3575..3598
- STRING_SINGLE@3575..3598 "'Expected string, got '"
- WHITESPACE@3598..3599 " "
- PLUS@3599..3600 "+"
- WHITESPACE@3600..3601 " "
- EXPR_APPLY@3601..3614
- EXPR_INDEX@3601..3609
- EXPR_VAR@3601..3604
- NAME@3601..3604
- IDENT@3601..3604 "std"
- DOT@3604..3605 "."
- NAME@3605..3609
- IDENT@3605..3609 "type"
- ARGS_DESC@3609..3614
- L_PAREN@3609..3610 "("
- ARG@3610..3613
- EXPR_VAR@3610..3613
- NAME@3610..3613
- IDENT@3610..3613 "str"
- R_PAREN@3613..3614 ")"
- SEMI@3614..3615 ";"
- WHITESPACE@3615..3620 "\n "
- EXPR_ASSERT@3620..3694
- ASSERTION@3620..3670
- ASSERT_KW@3620..3626 "assert"
- WHITESPACE@3626..3627 " "
- LHS_EXPR@3627..3646
- EXPR_BINARY@3627..3646
- LHS_EXPR@3627..3642
- EXPR_APPLY@3627..3642
- EXPR_INDEX@3627..3637
- EXPR_VAR@3627..3630
- NAME@3627..3630
- IDENT@3627..3630 "std"
- DOT@3630..3631 "."
- NAME@3631..3637
- IDENT@3631..3637 "length"
- ARGS_DESC@3637..3642
- L_PAREN@3637..3638 "("
- ARG@3638..3641
- EXPR_VAR@3638..3641
- NAME@3638..3641
- IDENT@3638..3641 "str"
- R_PAREN@3641..3642 ")"
- WHITESPACE@3642..3643 " "
- GT@3643..3644 ">"
- WHITESPACE@3644..3645 " "
- EXPR_NUMBER@3645..3646
- FLOAT@3645..3646 "0"
- WHITESPACE@3646..3647 " "
- COLON@3647..3648 ":"
- WHITESPACE@3648..3649 " "
- EXPR_STRING@3649..3670
- STRING_SINGLE@3649..3670 "'Not hexadecimal: \"\"'"
- SEMI@3670..3671 ";"
- WHITESPACE@3671..3676 "\n "
- EXPR_APPLY@3676..3694
- EXPR_VAR@3676..3685
- NAME@3676..3685
- IDENT@3676..3685 "parse_nat"
- ARGS_DESC@3685..3694
- L_PAREN@3685..3686 "("
- ARG@3686..3689
- EXPR_VAR@3686..3689
- NAME@3686..3689
- IDENT@3686..3689 "str"
- COMMA@3689..3690 ","
- WHITESPACE@3690..3691 " "
- ARG@3691..3693
- EXPR_NUMBER@3691..3693
- FLOAT@3691..3693 "16"
- R_PAREN@3693..3694 ")"
- COMMA@3694..3695 ","
- WHITESPACE@3695..3699 "\n\n "
- MEMBER_FIELD@3699..3741
- FIELD_METHOD@3699..3741
- FIELD_NAME_FIXED@3699..3704
- NAME@3699..3704
- IDENT@3699..3704 "split"
- PARAMS_DESC@3704..3712
- L_PAREN@3704..3705 "("
- PARAM@3705..3708
- DESTRUCT_FULL@3705..3708
- NAME@3705..3708
- IDENT@3705..3708 "str"
- COMMA@3708..3709 ","
- WHITESPACE@3709..3710 " "
- PARAM@3710..3711
- DESTRUCT_FULL@3710..3711
- NAME@3710..3711
- IDENT@3710..3711 "c"
- R_PAREN@3711..3712 ")"
- COLONCOLON@3712..3714 "::"
- WHITESPACE@3714..3715 " "
- EXPR_APPLY@3715..3741
- EXPR_INDEX@3715..3729
- EXPR_VAR@3715..3718
- NAME@3715..3718
- IDENT@3715..3718 "std"
- DOT@3718..3719 "."
- NAME@3719..3729
- IDENT@3719..3729 "splitLimit"
- ARGS_DESC@3729..3741
- L_PAREN@3729..3730 "("
- ARG@3730..3733
- EXPR_VAR@3730..3733
- NAME@3730..3733
- IDENT@3730..3733 "str"
- COMMA@3733..3734 ","
- WHITESPACE@3734..3735 " "
- ARG@3735..3736
- EXPR_VAR@3735..3736
- NAME@3735..3736
- IDENT@3735..3736 "c"
- COMMA@3736..3737 ","
- WHITESPACE@3737..3738 " "
- ARG@3738..3740
- EXPR_UNARY@3738..3740
- MINUS@3738..3739 "-"
- EXPR_NUMBER@3739..3740
- FLOAT@3739..3740 "1"
- R_PAREN@3740..3741 ")"
- COMMA@3741..3742 ","
- WHITESPACE@3742..3746 "\n\n "
- MEMBER_FIELD@3746..3781
- FIELD_NORMAL@3746..3781
- FIELD_NAME_FIXED@3746..3756
- NAME@3746..3756
- IDENT@3746..3756 "splitLimit"
- COLONCOLON@3756..3758 "::"
- WHITESPACE@3758..3759 " "
- EXPR_INTRINSIC@3759..3781
- INTRINSIC@3759..3769 "$intrinsic"
- L_PAREN@3769..3770 "("
- NAME@3770..3780
- IDENT@3770..3780 "splitLimit"
- R_PAREN@3780..3781 ")"
- COMMA@3781..3782 ","
- WHITESPACE@3782..3786 "\n\n "
- MEMBER_FIELD@3786..3821
- FIELD_NORMAL@3786..3821
- FIELD_NAME_FIXED@3786..3796
- NAME@3786..3796
- IDENT@3786..3796 "strReplace"
- COLONCOLON@3796..3798 "::"
- WHITESPACE@3798..3799 " "
- EXPR_INTRINSIC@3799..3821
- INTRINSIC@3799..3809 "$intrinsic"
- L_PAREN@3809..3810 "("
- NAME@3810..3820
- IDENT@3810..3820 "strReplace"
- R_PAREN@3820..3821 ")"
- COMMA@3821..3822 ","
- WHITESPACE@3822..3826 "\n\n "
- MEMBER_FIELD@3826..3861
- FIELD_NORMAL@3826..3861
- FIELD_NAME_FIXED@3826..3836
- NAME@3826..3836
- IDENT@3826..3836 "asciiUpper"
- COLONCOLON@3836..3838 "::"
- WHITESPACE@3838..3839 " "
- EXPR_INTRINSIC@3839..3861
- INTRINSIC@3839..3849 "$intrinsic"
- L_PAREN@3849..3850 "("
- NAME@3850..3860
- IDENT@3850..3860 "asciiUpper"
- R_PAREN@3860..3861 ")"
- COMMA@3861..3862 ","
- WHITESPACE@3862..3866 "\n\n "
- MEMBER_FIELD@3866..3901
- FIELD_NORMAL@3866..3901
- FIELD_NAME_FIXED@3866..3876
- NAME@3866..3876
- IDENT@3866..3876 "asciiLower"
- COLONCOLON@3876..3878 "::"
- WHITESPACE@3878..3879 " "
- EXPR_INTRINSIC@3879..3901
- INTRINSIC@3879..3889 "$intrinsic"
- L_PAREN@3889..3890 "("
- NAME@3890..3900
- IDENT@3890..3900 "asciiLower"
- R_PAREN@3900..3901 ")"
- COMMA@3901..3902 ","
- WHITESPACE@3902..3906 "\n\n "
- MEMBER_FIELD@3906..3931
- FIELD_NORMAL@3906..3931
- FIELD_NAME_FIXED@3906..3911
- NAME@3906..3911
- IDENT@3906..3911 "range"
- COLONCOLON@3911..3913 "::"
- WHITESPACE@3913..3914 " "
- EXPR_INTRINSIC@3914..3931
- INTRINSIC@3914..3924 "$intrinsic"
- L_PAREN@3924..3925 "("
- NAME@3925..3930
- IDENT@3925..3930 "range"
- R_PAREN@3930..3931 ")"
- COMMA@3931..3932 ","
- WHITESPACE@3932..3936 "\n\n "
- MEMBER_FIELD@3936..4188
- FIELD_METHOD@3936..4188
- FIELD_NAME_FIXED@3936..3942
- NAME@3936..3942
- IDENT@3936..3942 "repeat"
- PARAMS_DESC@3942..3955
- L_PAREN@3942..3943 "("
- PARAM@3943..3947
- DESTRUCT_FULL@3943..3947
- NAME@3943..3947
- IDENT@3943..3947 "what"
- COMMA@3947..3948 ","
- WHITESPACE@3948..3949 " "
- PARAM@3949..3954
- DESTRUCT_FULL@3949..3954
- NAME@3949..3954
- IDENT@3949..3954 "count"
- R_PAREN@3954..3955 ")"
- COLONCOLON@3955..3957 "::"
- WHITESPACE@3957..3962 "\n "
- EXPR_LOCAL@3962..4188
- LOCAL_KW@3962..3967 "local"
- WHITESPACE@3967..3968 " "
- BIND_DESTRUCT@3968..4126
- DESTRUCT_FULL@3968..3974
- NAME@3968..3974
- IDENT@3968..3974 "joiner"
- WHITESPACE@3974..3975 " "
- ASSIGN@3975..3976 "="
- WHITESPACE@3976..3983 "\n "
- EXPR_IF_THEN_ELSE@3983..4126
- IF_KW@3983..3985 "if"
- WHITESPACE@3985..3986 " "
- EXPR_APPLY@3986..4004
- EXPR_INDEX@3986..3998
- EXPR_VAR@3986..3989
- NAME@3986..3989
- IDENT@3986..3989 "std"
- DOT@3989..3990 "."
- NAME@3990..3998
- IDENT@3990..3998 "isString"
- ARGS_DESC@3998..4004
- L_PAREN@3998..3999 "("
- ARG@3999..4003
- EXPR_VAR@3999..4003
- NAME@3999..4003
- IDENT@3999..4003 "what"
- R_PAREN@4003..4004 ")"
- WHITESPACE@4004..4005 " "
- THEN_KW@4005..4009 "then"
- WHITESPACE@4009..4010 " "
- TRUE_EXPR@4010..4012
- EXPR_STRING@4010..4012
- STRING_SINGLE@4010..4012 "''"
- WHITESPACE@4012..4019 "\n "
- ELSE_KW@4019..4023 "else"
- WHITESPACE@4023..4024 " "
- FALSE_EXPR@4024..4126
- EXPR_IF_THEN_ELSE@4024..4126
- IF_KW@4024..4026 "if"
- WHITESPACE@4026..4027 " "
- EXPR_APPLY@4027..4044
- EXPR_INDEX@4027..4038
- EXPR_VAR@4027..4030
- NAME@4027..4030
- IDENT@4027..4030 "std"
- DOT@4030..4031 "."
- NAME@4031..4038
- IDENT@4031..4038 "isArray"
- ARGS_DESC@4038..4044
- L_PAREN@4038..4039 "("
- ARG@4039..4043
- EXPR_VAR@4039..4043
- NAME@4039..4043
- IDENT@4039..4043 "what"
- R_PAREN@4043..4044 ")"
- WHITESPACE@4044..4045 " "
- THEN_KW@4045..4049 "then"
- WHITESPACE@4049..4050 " "
- TRUE_EXPR@4050..4052
- EXPR_ARRAY@4050..4052
- L_BRACK@4050..4051 "["
- R_BRACK@4051..4052 "]"
- WHITESPACE@4052..4059 "\n "
- ELSE_KW@4059..4063 "else"
- WHITESPACE@4063..4064 " "
- FALSE_EXPR@4064..4126
- EXPR_ERROR@4064..4126
- ERROR_KW@4064..4069 "error"
- WHITESPACE@4069..4070 " "
- EXPR_STRING@4070..4126
- STRING_SINGLE@4070..4126 "'std.repeat first arg ..."
- SEMI@4126..4127 ";"
- WHITESPACE@4127..4132 "\n "
- EXPR_APPLY@4132..4188
- EXPR_INDEX@4132..4140
- EXPR_VAR@4132..4135
- NAME@4132..4135
- IDENT@4132..4135 "std"
- DOT@4135..4136 "."
- NAME@4136..4140
- IDENT@4136..4140 "join"
- ARGS_DESC@4140..4188
- L_PAREN@4140..4141 "("
- ARG@4141..4147
- EXPR_VAR@4141..4147
- NAME@4141..4147
- IDENT@4141..4147 "joiner"
- COMMA@4147..4148 ","
- WHITESPACE@4148..4149 " "
- ARG@4149..4187
- EXPR_APPLY@4149..4187
- EXPR_INDEX@4149..4162
- EXPR_VAR@4149..4152
- NAME@4149..4152
- IDENT@4149..4152 "std"
- DOT@4152..4153 "."
- NAME@4153..4162
- IDENT@4153..4162 "makeArray"
- ARGS_DESC@4162..4187
- L_PAREN@4162..4163 "("
- ARG@4163..4168
- EXPR_VAR@4163..4168
- NAME@4163..4168
- IDENT@4163..4168 "count"
- COMMA@4168..4169 ","
- WHITESPACE@4169..4170 " "
- ARG@4170..4186
- EXPR_FUNCTION@4170..4186
- FUNCTION_KW@4170..4178 "function"
- PARAMS_DESC@4178..4181
- L_PAREN@4178..4179 "("
- PARAM@4179..4180
- DESTRUCT_FULL@4179..4180
- NAME@4179..4180
- IDENT@4179..4180 "i"
- R_PAREN@4180..4181 ")"
- WHITESPACE@4181..4182 " "
- EXPR_VAR@4182..4186
- NAME@4182..4186
- IDENT@4182..4186 "what"
- R_PAREN@4186..4187 ")"
- R_PAREN@4187..4188 ")"
- COMMA@4188..4189 ","
- WHITESPACE@4189..4193 "\n\n "
- MEMBER_FIELD@4193..4218
- FIELD_NORMAL@4193..4218
- FIELD_NAME_FIXED@4193..4198
- NAME@4193..4198
- IDENT@4193..4198 "slice"
- COLONCOLON@4198..4200 "::"
- WHITESPACE@4200..4201 " "
- EXPR_INTRINSIC@4201..4218
- INTRINSIC@4201..4211 "$intrinsic"
- L_PAREN@4211..4212 "("
- NAME@4212..4217
- IDENT@4212..4217 "slice"
- R_PAREN@4217..4218 ")"
- COMMA@4218..4219 ","
- WHITESPACE@4219..4223 "\n\n "
- MEMBER_FIELD@4223..4250
- FIELD_NORMAL@4223..4250
- FIELD_NAME_FIXED@4223..4229
- NAME@4223..4229
- IDENT@4223..4229 "member"
- COLONCOLON@4229..4231 "::"
- WHITESPACE@4231..4232 " "
- EXPR_INTRINSIC@4232..4250
- INTRINSIC@4232..4242 "$intrinsic"
- L_PAREN@4242..4243 "("
- NAME@4243..4249
- IDENT@4243..4249 "member"
- R_PAREN@4249..4250 ")"
- COMMA@4250..4251 ","
- WHITESPACE@4251..4255 "\n\n "
- MEMBER_FIELD@4255..4280
- FIELD_NORMAL@4255..4280
- FIELD_NAME_FIXED@4255..4260
- NAME@4255..4260
- IDENT@4255..4260 "count"
- COLONCOLON@4260..4262 "::"
- WHITESPACE@4262..4263 " "
- EXPR_INTRINSIC@4263..4280
- INTRINSIC@4263..4273 "$intrinsic"
- L_PAREN@4273..4274 "("
- NAME@4274..4279
- IDENT@4274..4279 "count"
- R_PAREN@4279..4280 ")"
- COMMA@4280..4281 ","
- WHITESPACE@4281..4285 "\n\n "
- MEMBER_FIELD@4285..4306
- FIELD_NORMAL@4285..4306
- FIELD_NAME_FIXED@4285..4288
- NAME@4285..4288
- IDENT@4285..4288 "mod"
- COLONCOLON@4288..4290 "::"
- WHITESPACE@4290..4291 " "
- EXPR_INTRINSIC@4291..4306
- INTRINSIC@4291..4301 "$intrinsic"
- L_PAREN@4301..4302 "("
- NAME@4302..4305
- IDENT@4302..4305 "mod"
- R_PAREN@4305..4306 ")"
- COMMA@4306..4307 ","
- WHITESPACE@4307..4311 "\n\n "
- MEMBER_FIELD@4311..4332
- FIELD_NORMAL@4311..4332
- FIELD_NAME_FIXED@4311..4314
- NAME@4311..4314
- IDENT@4311..4314 "map"
- COLONCOLON@4314..4316 "::"
- WHITESPACE@4316..4317 " "
- EXPR_INTRINSIC@4317..4332
- INTRINSIC@4317..4327 "$intrinsic"
- L_PAREN@4327..4328 "("
- NAME@4328..4331
- IDENT@4328..4331 "map"
- R_PAREN@4331..4332 ")"
- COMMA@4332..4333 ","
- WHITESPACE@4333..4337 "\n\n "
- MEMBER_FIELD@4337..4695
- FIELD_METHOD@4337..4695
- FIELD_NAME_FIXED@4337..4349
- NAME@4337..4349
- IDENT@4337..4349 "mapWithIndex"
- PARAMS_DESC@4349..4360
- L_PAREN@4349..4350 "("
- PARAM@4350..4354
- DESTRUCT_FULL@4350..4354
- NAME@4350..4354
- IDENT@4350..4354 "func"
- COMMA@4354..4355 ","
- WHITESPACE@4355..4356 " "
- PARAM@4356..4359
- DESTRUCT_FULL@4356..4359
- NAME@4356..4359
- IDENT@4356..4359 "arr"
- R_PAREN@4359..4360 ")"
- COLONCOLON@4360..4362 "::"
- WHITESPACE@4362..4367 "\n "
- EXPR_IF_THEN_ELSE@4367..4695
- IF_KW@4367..4369 "if"
- WHITESPACE@4369..4370 " "
- EXPR_UNARY@4370..4391
- NOT@4370..4371 "!"
- EXPR_APPLY@4371..4391
- EXPR_INDEX@4371..4385
- EXPR_VAR@4371..4374
- NAME@4371..4374
- IDENT@4371..4374 "std"
- DOT@4374..4375 "."
- NAME@4375..4385
- IDENT@4375..4385 "isFunction"
- ARGS_DESC@4385..4391
- L_PAREN@4385..4386 "("
- ARG@4386..4390
- EXPR_VAR@4386..4390
- NAME@4386..4390
- IDENT@4386..4390 "func"
- R_PAREN@4390..4391 ")"
- WHITESPACE@4391..4392 " "
- THEN_KW@4392..4396 "then"
- WHITESPACE@4396..4403 "\n "
- TRUE_EXPR@4403..4481
- EXPR_ERROR@4403..4481
- ERROR_KW@4403..4408 "error"
- WHITESPACE@4408..4409 " "
- EXPR_PARENED@4409..4481
- L_PAREN@4409..4410 "("
- EXPR_BINARY@4410..4480
- LHS_EXPR@4410..4463
- EXPR_STRING@4410..4463
- STRING_SINGLE@4410..4463 "'std.mapWithIndex fir ..."
- WHITESPACE@4463..4464 " "
- PLUS@4464..4465 "+"
- WHITESPACE@4465..4466 " "
- EXPR_APPLY@4466..4480
- EXPR_INDEX@4466..4474
- EXPR_VAR@4466..4469
- NAME@4466..4469
- IDENT@4466..4469 "std"
- DOT@4469..4470 "."
- NAME@4470..4474
- IDENT@4470..4474 "type"
- ARGS_DESC@4474..4480
- L_PAREN@4474..4475 "("
- ARG@4475..4479
- EXPR_VAR@4475..4479
- NAME@4475..4479
- IDENT@4475..4479 "func"
- R_PAREN@4479..4480 ")"
- R_PAREN@4480..4481 ")"
- WHITESPACE@4481..4486 "\n "
- ELSE_KW@4486..4490 "else"
- WHITESPACE@4490..4491 " "
- FALSE_EXPR@4491..4695
- EXPR_IF_THEN_ELSE@4491..4695
- IF_KW@4491..4493 "if"
- WHITESPACE@4493..4494 " "
- EXPR_BINARY@4494..4533
- LHS_EXPR@4494..4511
- EXPR_UNARY@4494..4511
- NOT@4494..4495 "!"
- EXPR_APPLY@4495..4511
- EXPR_INDEX@4495..4506
- EXPR_VAR@4495..4498
- NAME@4495..4498
- IDENT@4495..4498 "std"
- DOT@4498..4499 "."
- NAME@4499..4506
- IDENT@4499..4506 "isArray"
- ARGS_DESC@4506..4511
- L_PAREN@4506..4507 "("
- ARG@4507..4510
- EXPR_VAR@4507..4510
- NAME@4507..4510
- IDENT@4507..4510 "arr"
- R_PAREN@4510..4511 ")"
- WHITESPACE@4511..4512 " "
- AND@4512..4514 "&&"
- WHITESPACE@4514..4515 " "
- EXPR_UNARY@4515..4533
- NOT@4515..4516 "!"
- EXPR_APPLY@4516..4533
- EXPR_INDEX@4516..4528
- EXPR_VAR@4516..4519
- NAME@4516..4519
- IDENT@4516..4519 "std"
- DOT@4519..4520 "."
- NAME@4520..4528
- IDENT@4520..4528 "isString"
- ARGS_DESC@4528..4533
- L_PAREN@4528..4529 "("
- ARG@4529..4532
- EXPR_VAR@4529..4532
- NAME@4529..4532
- IDENT@4529..4532 "arr"
- R_PAREN@4532..4533 ")"
- WHITESPACE@4533..4534 " "
- THEN_KW@4534..4538 "then"
- WHITESPACE@4538..4545 "\n "
- TRUE_EXPR@4545..4620
- EXPR_ERROR@4545..4620
- ERROR_KW@4545..4550 "error"
- WHITESPACE@4550..4551 " "
- EXPR_PARENED@4551..4620
- L_PAREN@4551..4552 "("
- EXPR_BINARY@4552..4619
- LHS_EXPR@4552..4603
- EXPR_STRING@4552..4603
- STRING_SINGLE@4552..4603 "'std.mapWithIndex sec ..."
- WHITESPACE@4603..4604 " "
- PLUS@4604..4605 "+"
- WHITESPACE@4605..4606 " "
- EXPR_APPLY@4606..4619
- EXPR_INDEX@4606..4614
- EXPR_VAR@4606..4609
- NAME@4606..4609
- IDENT@4606..4609 "std"
- DOT@4609..4610 "."
- NAME@4610..4614
- IDENT@4610..4614 "type"
- ARGS_DESC@4614..4619
- L_PAREN@4614..4615 "("
- ARG@4615..4618
- EXPR_VAR@4615..4618
- NAME@4615..4618
- IDENT@4615..4618 "arr"
- R_PAREN@4618..4619 ")"
- R_PAREN@4619..4620 ")"
- WHITESPACE@4620..4625 "\n "
- ELSE_KW@4625..4629 "else"
- WHITESPACE@4629..4636 "\n "
- FALSE_EXPR@4636..4695
- EXPR_APPLY@4636..4695
- EXPR_INDEX@4636..4649
- EXPR_VAR@4636..4639
- NAME@4636..4639
- IDENT@4636..4639 "std"
- DOT@4639..4640 "."
- NAME@4640..4649
- IDENT@4640..4649 "makeArray"
- ARGS_DESC@4649..4695
- L_PAREN@4649..4650 "("
- ARG@4650..4665
- EXPR_APPLY@4650..4665
- EXPR_INDEX@4650..4660
- EXPR_VAR@4650..4653
- NAME@4650..4653
- IDENT@4650..4653 "std"
- DOT@4653..4654 "."
- NAME@4654..4660
- IDENT@4654..4660 "length"
- ARGS_DESC@4660..4665
- L_PAREN@4660..4661 "("
- ARG@4661..4664
- EXPR_VAR@4661..4664
- NAME@4661..4664
- IDENT@4661..4664 "arr"
- R_PAREN@4664..4665 ")"
- COMMA@4665..4666 ","
- WHITESPACE@4666..4667 " "
- ARG@4667..4694
- EXPR_FUNCTION@4667..4694
- FUNCTION_KW@4667..4675 "function"
- PARAMS_DESC@4675..4678
- L_PAREN@4675..4676 "("
- PARAM@4676..4677
- DESTRUCT_FULL@4676..4677
- NAME@4676..4677
- IDENT@4676..4677 "i"
- R_PAREN@4677..4678 ")"
- WHITESPACE@4678..4679 " "
- EXPR_APPLY@4679..4694
- EXPR_VAR@4679..4683
- NAME@4679..4683
- IDENT@4679..4683 "func"
- ARGS_DESC@4683..4694
- L_PAREN@4683..4684 "("
- ARG@4684..4685
- EXPR_VAR@4684..4685
- NAME@4684..4685
- IDENT@4684..4685 "i"
- COMMA@4685..4686 ","
- WHITESPACE@4686..4687 " "
- ARG@4687..4693
- EXPR_INDEX_EXPR@4687..4693
- LHS_EXPR@4687..4690
- EXPR_VAR@4687..4690
- NAME@4687..4690
- IDENT@4687..4690 "arr"
- L_BRACK@4690..4691 "["
- EXPR_VAR@4691..4692
- NAME@4691..4692
- IDENT@4691..4692 "i"
- R_BRACK@4692..4693 "]"
- R_PAREN@4693..4694 ")"
- R_PAREN@4694..4695 ")"
- COMMA@4695..4696 ","
- WHITESPACE@4696..4700 "\n\n "
- MEMBER_FIELD@4700..5028
- FIELD_METHOD@4700..5028
- FIELD_NAME_FIXED@4700..4710
- NAME@4700..4710
- IDENT@4700..4710 "mapWithKey"
- PARAMS_DESC@4710..4721
- L_PAREN@4710..4711 "("
- PARAM@4711..4715
- DESTRUCT_FULL@4711..4715
- NAME@4711..4715
- IDENT@4711..4715 "func"
- COMMA@4715..4716 ","
- WHITESPACE@4716..4717 " "
- PARAM@4717..4720
- DESTRUCT_FULL@4717..4720
- NAME@4717..4720
- IDENT@4717..4720 "obj"
- R_PAREN@4720..4721 ")"
- COLONCOLON@4721..4723 "::"
- WHITESPACE@4723..4728 "\n "
- EXPR_IF_THEN_ELSE@4728..5028
- IF_KW@4728..4730 "if"
- WHITESPACE@4730..4731 " "
- EXPR_UNARY@4731..4752
- NOT@4731..4732 "!"
- EXPR_APPLY@4732..4752
- EXPR_INDEX@4732..4746
- EXPR_VAR@4732..4735
- NAME@4732..4735
- IDENT@4732..4735 "std"
- DOT@4735..4736 "."
- NAME@4736..4746
- IDENT@4736..4746 "isFunction"
- ARGS_DESC@4746..4752
- L_PAREN@4746..4747 "("
- ARG@4747..4751
- EXPR_VAR@4747..4751
- NAME@4747..4751
- IDENT@4747..4751 "func"
- R_PAREN@4751..4752 ")"
- WHITESPACE@4752..4753 " "
- THEN_KW@4753..4757 "then"
- WHITESPACE@4757..4764 "\n "
- TRUE_EXPR@4764..4840
- EXPR_ERROR@4764..4840
- ERROR_KW@4764..4769 "error"
- WHITESPACE@4769..4770 " "
- EXPR_PARENED@4770..4840
- L_PAREN@4770..4771 "("
- EXPR_BINARY@4771..4839
- LHS_EXPR@4771..4822
- EXPR_STRING@4771..4822
- STRING_SINGLE@4771..4822 "'std.mapWithKey first ..."
- WHITESPACE@4822..4823 " "
- PLUS@4823..4824 "+"
- WHITESPACE@4824..4825 " "
- EXPR_APPLY@4825..4839
- EXPR_INDEX@4825..4833
- EXPR_VAR@4825..4828
- NAME@4825..4828
- IDENT@4825..4828 "std"
- DOT@4828..4829 "."
- NAME@4829..4833
- IDENT@4829..4833 "type"
- ARGS_DESC@4833..4839
- L_PAREN@4833..4834 "("
- ARG@4834..4838
- EXPR_VAR@4834..4838
- NAME@4834..4838
- IDENT@4834..4838 "func"
- R_PAREN@4838..4839 ")"
- R_PAREN@4839..4840 ")"
- WHITESPACE@4840..4845 "\n "
- ELSE_KW@4845..4849 "else"
- WHITESPACE@4849..4850 " "
- FALSE_EXPR@4850..5028
- EXPR_IF_THEN_ELSE@4850..5028
- IF_KW@4850..4852 "if"
- WHITESPACE@4852..4853 " "
- EXPR_UNARY@4853..4871
- NOT@4853..4854 "!"
- EXPR_APPLY@4854..4871
- EXPR_INDEX@4854..4866
- EXPR_VAR@4854..4857
- NAME@4854..4857
- IDENT@4854..4857 "std"
- DOT@4857..4858 "."
- NAME@4858..4866
- IDENT@4858..4866 "isObject"
- ARGS_DESC@4866..4871
- L_PAREN@4866..4867 "("
- ARG@4867..4870
- EXPR_VAR@4867..4870
- NAME@4867..4870
- IDENT@4867..4870 "obj"
- R_PAREN@4870..4871 ")"
- WHITESPACE@4871..4872 " "
- THEN_KW@4872..4876 "then"
- WHITESPACE@4876..4883 "\n "
- TRUE_EXPR@4883..4957
- EXPR_ERROR@4883..4957
- ERROR_KW@4883..4888 "error"
- WHITESPACE@4888..4889 " "
- EXPR_PARENED@4889..4957
- L_PAREN@4889..4890 "("
- EXPR_BINARY@4890..4956
- LHS_EXPR@4890..4940
- EXPR_STRING@4890..4940
- STRING_SINGLE@4890..4940 "'std.mapWithKey secon ..."
- WHITESPACE@4940..4941 " "
- PLUS@4941..4942 "+"
- WHITESPACE@4942..4943 " "
- EXPR_APPLY@4943..4956
- EXPR_INDEX@4943..4951
- EXPR_VAR@4943..4946
- NAME@4943..4946
- IDENT@4943..4946 "std"
- DOT@4946..4947 "."
- NAME@4947..4951
- IDENT@4947..4951 "type"
- ARGS_DESC@4951..4956
- L_PAREN@4951..4952 "("
- ARG@4952..4955
- EXPR_VAR@4952..4955
- NAME@4952..4955
- IDENT@4952..4955 "obj"
- R_PAREN@4955..4956 ")"
- R_PAREN@4956..4957 ")"
- WHITESPACE@4957..4962 "\n "
- ELSE_KW@4962..4966 "else"
- WHITESPACE@4966..4973 "\n "
- FALSE_EXPR@4973..5028
- EXPR_OBJECT@4973..5028
- OBJ_BODY_MEMBER_LIST@4973..5028
- L_BRACE@4973..4974 "{"
- WHITESPACE@4974..4975 " "
- MEMBER_FIELD@4975..5026
- FIELD_NORMAL@4975..4995
- FIELD_NAME_DYNAMIC@4975..4978
- L_BRACK@4975..4976 "["
- EXPR_VAR@4976..4977
- NAME@4976..4977
- IDENT@4976..4977 "k"
- R_BRACK@4977..4978 "]"
- COLON@4978..4979 ":"
- WHITESPACE@4979..4980 " "
- EXPR_APPLY@4980..4995
- EXPR_VAR@4980..4984
- NAME@4980..4984
- IDENT@4980..4984 "func"
- ARGS_DESC@4984..4995
- L_PAREN@4984..4985 "("
- ARG@4985..4986
- EXPR_VAR@4985..4986
- NAME@4985..4986
- IDENT@4985..4986 "k"
- COMMA@4986..4987 ","
- WHITESPACE@4987..4988 " "
- ARG@4988..4994
- EXPR_INDEX_EXPR@4988..4994
- LHS_EXPR@4988..4991
- EXPR_VAR@4988..4991
- NAME@4988..4991
- IDENT@4988..4991 "obj"
- L_BRACK@4991..4992 "["
- EXPR_VAR@4992..4993
- NAME@4992..4993
- IDENT@4992..4993 "k"
- R_BRACK@4993..4994 "]"
- R_PAREN@4994..4995 ")"
- WHITESPACE@4995..4996 " "
- FOR_SPEC@4996..5026
- FOR_KW@4996..4999 "for"
- WHITESPACE@4999..5000 " "
- NAME@5000..5001
- IDENT@5000..5001 "k"
- WHITESPACE@5001..5002 " "
- IN_KW@5002..5004 "in"
- WHITESPACE@5004..5005 " "
- EXPR_APPLY@5005..5026
- EXPR_INDEX@5005..5021
- EXPR_VAR@5005..5008
- NAME@5005..5008
- IDENT@5005..5008 "std"
- DOT@5008..5009 "."
- NAME@5009..5021
- IDENT@5009..5021 "objectFields"
- ARGS_DESC@5021..5026
- L_PAREN@5021..5022 "("
- ARG@5022..5025
- EXPR_VAR@5022..5025
- NAME@5022..5025
- IDENT@5022..5025 "obj"
- R_PAREN@5025..5026 ")"
- WHITESPACE@5026..5027 " "
- R_BRACE@5027..5028 "}"
- COMMA@5028..5029 ","
- WHITESPACE@5029..5033 "\n\n "
- MEMBER_FIELD@5033..5062
- FIELD_NORMAL@5033..5062
- FIELD_NAME_FIXED@5033..5040
- NAME@5033..5040
- IDENT@5033..5040 "flatMap"
- COLONCOLON@5040..5042 "::"
- WHITESPACE@5042..5043 " "
- EXPR_INTRINSIC@5043..5062
- INTRINSIC@5043..5053 "$intrinsic"
- L_PAREN@5053..5054 "("
- NAME@5054..5061
- IDENT@5054..5061 "flatMap"
- R_PAREN@5061..5062 ")"
- COMMA@5062..5063 ","
- WHITESPACE@5063..5067 "\n\n "
- MEMBER_FIELD@5067..5090
- FIELD_NORMAL@5067..5090
- FIELD_NAME_FIXED@5067..5071
- NAME@5067..5071
- IDENT@5067..5071 "join"
- COLONCOLON@5071..5073 "::"
- WHITESPACE@5073..5074 " "
- EXPR_INTRINSIC@5074..5090
- INTRINSIC@5074..5084 "$intrinsic"
- L_PAREN@5084..5085 "("
- NAME@5085..5089
- IDENT@5085..5089 "join"
- R_PAREN@5089..5090 ")"
- COMMA@5090..5091 ","
- WHITESPACE@5091..5095 "\n\n "
- MEMBER_FIELD@5095..5138
- FIELD_METHOD@5095..5138
- FIELD_NAME_FIXED@5095..5100
- NAME@5095..5100
- IDENT@5095..5100 "lines"
- PARAMS_DESC@5100..5105
- L_PAREN@5100..5101 "("
- PARAM@5101..5104
- DESTRUCT_FULL@5101..5104
- NAME@5101..5104
- IDENT@5101..5104 "arr"
- R_PAREN@5104..5105 ")"
- COLONCOLON@5105..5107 "::"
- WHITESPACE@5107..5112 "\n "
- EXPR_APPLY@5112..5138
- EXPR_INDEX@5112..5120
- EXPR_VAR@5112..5115
- NAME@5112..5115
- IDENT@5112..5115 "std"
- DOT@5115..5116 "."
- NAME@5116..5120
- IDENT@5116..5120 "join"
- ARGS_DESC@5120..5138
- L_PAREN@5120..5121 "("
- ARG@5121..5125
- EXPR_STRING@5121..5125
- STRING_SINGLE@5121..5125 "'\\n'"
- COMMA@5125..5126 ","
- WHITESPACE@5126..5127 " "
- ARG@5127..5137
- EXPR_BINARY@5127..5137
- LHS_EXPR@5127..5130
- EXPR_VAR@5127..5130
- NAME@5127..5130
- IDENT@5127..5130 "arr"
- WHITESPACE@5130..5131 " "
- PLUS@5131..5132 "+"
- WHITESPACE@5132..5133 " "
- EXPR_ARRAY@5133..5137
- L_BRACK@5133..5134 "["
- EXPR_STRING@5134..5136
- STRING_SINGLE@5134..5136 "''"
- R_BRACK@5136..5137 "]"
- R_PAREN@5137..5138 ")"
- COMMA@5138..5139 ","
- WHITESPACE@5139..5143 "\n\n "
- MEMBER_FIELD@5143..5355
- FIELD_METHOD@5143..5355
- FIELD_NAME_FIXED@5143..5151
- NAME@5143..5151
- IDENT@5143..5151 "deepJoin"
- PARAMS_DESC@5151..5156
- L_PAREN@5151..5152 "("
- PARAM@5152..5155
- DESTRUCT_FULL@5152..5155
- NAME@5152..5155
- IDENT@5152..5155 "arr"
- R_PAREN@5155..5156 ")"
- COLONCOLON@5156..5158 "::"
- WHITESPACE@5158..5163 "\n "
- EXPR_IF_THEN_ELSE@5163..5355
- IF_KW@5163..5165 "if"
- WHITESPACE@5165..5166 " "
- EXPR_APPLY@5166..5183
- EXPR_INDEX@5166..5178
- EXPR_VAR@5166..5169
- NAME@5166..5169
- IDENT@5166..5169 "std"
- DOT@5169..5170 "."
- NAME@5170..5178
- IDENT@5170..5178 "isString"
- ARGS_DESC@5178..5183
- L_PAREN@5178..5179 "("
- ARG@5179..5182
- EXPR_VAR@5179..5182
- NAME@5179..5182
- IDENT@5179..5182 "arr"
- R_PAREN@5182..5183 ")"
- WHITESPACE@5183..5184 " "
- THEN_KW@5184..5188 "then"
- WHITESPACE@5188..5195 "\n "
- TRUE_EXPR@5195..5198
- EXPR_VAR@5195..5198
- NAME@5195..5198
- IDENT@5195..5198 "arr"
- WHITESPACE@5198..5203 "\n "
- ELSE_KW@5203..5207 "else"
- WHITESPACE@5207..5208 " "
- FALSE_EXPR@5208..5355
- EXPR_IF_THEN_ELSE@5208..5355
- IF_KW@5208..5210 "if"
- WHITESPACE@5210..5211 " "
- EXPR_APPLY@5211..5227
- EXPR_INDEX@5211..5222
- EXPR_VAR@5211..5214
- NAME@5211..5214
- IDENT@5211..5214 "std"
- DOT@5214..5215 "."
- NAME@5215..5222
- IDENT@5215..5222 "isArray"
- ARGS_DESC@5222..5227
- L_PAREN@5222..5223 "("
- ARG@5223..5226
- EXPR_VAR@5223..5226
- NAME@5223..5226
- IDENT@5223..5226 "arr"
- R_PAREN@5226..5227 ")"
- WHITESPACE@5227..5228 " "
- THEN_KW@5228..5232 "then"
- WHITESPACE@5232..5239 "\n "
- TRUE_EXPR@5239..5283
- EXPR_APPLY@5239..5283
- EXPR_INDEX@5239..5247
- EXPR_VAR@5239..5242
- NAME@5239..5242
- IDENT@5239..5242 "std"
- DOT@5242..5243 "."
- NAME@5243..5247
- IDENT@5243..5247 "join"
- ARGS_DESC@5247..5283
- L_PAREN@5247..5248 "("
- ARG@5248..5250
- EXPR_STRING@5248..5250
- STRING_SINGLE@5248..5250 "''"
- COMMA@5250..5251 ","
- WHITESPACE@5251..5252 " "
- ARG@5252..5282
- EXPR_ARRAY_COMP@5252..5282
- L_BRACK@5252..5253 "["
- EXPR_APPLY@5253..5268
- EXPR_INDEX@5253..5265
- EXPR_VAR@5253..5256
- NAME@5253..5256
- IDENT@5253..5256 "std"
- DOT@5256..5257 "."
- NAME@5257..5265
- IDENT@5257..5265 "deepJoin"
- ARGS_DESC@5265..5268
- L_PAREN@5265..5266 "("
- ARG@5266..5267
- EXPR_VAR@5266..5267
- NAME@5266..5267
- IDENT@5266..5267 "x"
- R_PAREN@5267..5268 ")"
- WHITESPACE@5268..5269 " "
- FOR_SPEC@5269..5281
- FOR_KW@5269..5272 "for"
- WHITESPACE@5272..5273 " "
- NAME@5273..5274
- IDENT@5273..5274 "x"
- WHITESPACE@5274..5275 " "
- IN_KW@5275..5277 "in"
- WHITESPACE@5277..5278 " "
- EXPR_VAR@5278..5281
- NAME@5278..5281
- IDENT@5278..5281 "arr"
- R_BRACK@5281..5282 "]"
- R_PAREN@5282..5283 ")"
- WHITESPACE@5283..5288 "\n "
- ELSE_KW@5288..5292 "else"
- WHITESPACE@5292..5299 "\n "
- FALSE_EXPR@5299..5355
- EXPR_ERROR@5299..5355
- ERROR_KW@5299..5304 "error"
- WHITESPACE@5304..5305 " "
- EXPR_BINARY@5305..5355
- LHS_EXPR@5305..5339
- EXPR_STRING@5305..5339
- STRING_SINGLE@5305..5339 "'Expected string or a ..."
- WHITESPACE@5339..5340 " "
- MODULO@5340..5341 "%"
- WHITESPACE@5341..5342 " "
- EXPR_APPLY@5342..5355
- EXPR_INDEX@5342..5350
- EXPR_VAR@5342..5345
- NAME@5342..5345
- IDENT@5342..5345 "std"
- DOT@5345..5346 "."
- NAME@5346..5350
- IDENT@5346..5350 "type"
- ARGS_DESC@5350..5355
- L_PAREN@5350..5351 "("
- ARG@5351..5354
- EXPR_VAR@5351..5354
- NAME@5351..5354
- IDENT@5351..5354 "arr"
- R_PAREN@5354..5355 ")"
- COMMA@5355..5356 ","
- WHITESPACE@5356..5361 "\n\n\n "
- MEMBER_FIELD@5361..5388
- FIELD_NORMAL@5361..5388
- FIELD_NAME_FIXED@5361..5367
- NAME@5361..5367
- IDENT@5361..5367 "format"
- COLONCOLON@5367..5369 "::"
- WHITESPACE@5369..5370 " "
- EXPR_INTRINSIC@5370..5388
- INTRINSIC@5370..5380 "$intrinsic"
- L_PAREN@5380..5381 "("
- NAME@5381..5387
- IDENT@5381..5387 "format"
- R_PAREN@5387..5388 ")"
- COMMA@5388..5389 ","
- WHITESPACE@5389..5393 "\n\n "
- MEMBER_FIELD@5393..5418
- FIELD_NORMAL@5393..5418
- FIELD_NAME_FIXED@5393..5398
- NAME@5393..5398
- IDENT@5393..5398 "foldr"
- COLONCOLON@5398..5400 "::"
- WHITESPACE@5400..5401 " "
- EXPR_INTRINSIC@5401..5418
- INTRINSIC@5401..5411 "$intrinsic"
- L_PAREN@5411..5412 "("
- NAME@5412..5417
- IDENT@5412..5417 "foldr"
- R_PAREN@5417..5418 ")"
- COMMA@5418..5419 ","
- WHITESPACE@5419..5423 "\n\n "
- MEMBER_FIELD@5423..5448
- FIELD_NORMAL@5423..5448
- FIELD_NAME_FIXED@5423..5428
- NAME@5423..5428
- IDENT@5423..5428 "foldl"
- COLONCOLON@5428..5430 "::"
- WHITESPACE@5430..5431 " "
- EXPR_INTRINSIC@5431..5448
- INTRINSIC@5431..5441 "$intrinsic"
- L_PAREN@5441..5442 "("
- NAME@5442..5447
- IDENT@5442..5447 "foldl"
- R_PAREN@5447..5448 ")"
- COMMA@5448..5449 ","
- WHITESPACE@5449..5453 "\n\n "
- MEMBER_FIELD@5453..5928
- FIELD_METHOD@5453..5928
- FIELD_NAME_FIXED@5453..5462
- NAME@5453..5462
- IDENT@5453..5462 "filterMap"
- PARAMS_DESC@5462..5490
- L_PAREN@5462..5463 "("
- PARAM@5463..5474
- DESTRUCT_FULL@5463..5474
- NAME@5463..5474
- IDENT@5463..5474 "filter_func"
- COMMA@5474..5475 ","
- WHITESPACE@5475..5476 " "
- PARAM@5476..5484
- DESTRUCT_FULL@5476..5484
- NAME@5476..5484
- IDENT@5476..5484 "map_func"
- COMMA@5484..5485 ","
- WHITESPACE@5485..5486 " "
- PARAM@5486..5489
- DESTRUCT_FULL@5486..5489
- NAME@5486..5489
- IDENT@5486..5489 "arr"
- R_PAREN@5489..5490 ")"
- COLONCOLON@5490..5492 "::"
- WHITESPACE@5492..5497 "\n "
- EXPR_IF_THEN_ELSE@5497..5928
- IF_KW@5497..5499 "if"
- WHITESPACE@5499..5500 " "
- EXPR_UNARY@5500..5528
- NOT@5500..5501 "!"
- EXPR_APPLY@5501..5528
- EXPR_INDEX@5501..5515
- EXPR_VAR@5501..5504
- NAME@5501..5504
- IDENT@5501..5504 "std"
- DOT@5504..5505 "."
- NAME@5505..5515
- IDENT@5505..5515 "isFunction"
- ARGS_DESC@5515..5528
- L_PAREN@5515..5516 "("
- ARG@5516..5527
- EXPR_VAR@5516..5527
- NAME@5516..5527
- IDENT@5516..5527 "filter_func"
- R_PAREN@5527..5528 ")"
- WHITESPACE@5528..5529 " "
- THEN_KW@5529..5533 "then"
- WHITESPACE@5533..5540 "\n "
- TRUE_EXPR@5540..5622
- EXPR_ERROR@5540..5622
- ERROR_KW@5540..5545 "error"
- WHITESPACE@5545..5546 " "
- EXPR_PARENED@5546..5622
- L_PAREN@5546..5547 "("
- EXPR_BINARY@5547..5621
- LHS_EXPR@5547..5597
- EXPR_STRING@5547..5597
- STRING_SINGLE@5547..5597 "'std.filterMap first ..."
- WHITESPACE@5597..5598 " "
- PLUS@5598..5599 "+"
- WHITESPACE@5599..5600 " "
- EXPR_APPLY@5600..5621
- EXPR_INDEX@5600..5608
- EXPR_VAR@5600..5603
- NAME@5600..5603
- IDENT@5600..5603 "std"
- DOT@5603..5604 "."
- NAME@5604..5608
- IDENT@5604..5608 "type"
- ARGS_DESC@5608..5621
- L_PAREN@5608..5609 "("
- ARG@5609..5620
- EXPR_VAR@5609..5620
- NAME@5609..5620
- IDENT@5609..5620 "filter_func"
- R_PAREN@5620..5621 ")"
- R_PAREN@5621..5622 ")"
- WHITESPACE@5622..5627 "\n "
- ELSE_KW@5627..5631 "else"
- WHITESPACE@5631..5632 " "
- FALSE_EXPR@5632..5928
- EXPR_IF_THEN_ELSE@5632..5928
- IF_KW@5632..5634 "if"
- WHITESPACE@5634..5635 " "
- EXPR_UNARY@5635..5660
- NOT@5635..5636 "!"
- EXPR_APPLY@5636..5660
- EXPR_INDEX@5636..5650
- EXPR_VAR@5636..5639
- NAME@5636..5639
- IDENT@5636..5639 "std"
- DOT@5639..5640 "."
- NAME@5640..5650
- IDENT@5640..5650 "isFunction"
- ARGS_DESC@5650..5660
- L_PAREN@5650..5651 "("
- ARG@5651..5659
- EXPR_VAR@5651..5659
- NAME@5651..5659
- IDENT@5651..5659 "map_func"
- R_PAREN@5659..5660 ")"
+ TRUE_EXPR@3275..3295
+ EXPR_APPLY@3275..3295
+ EXPR_VAR@3275..3285
+ NAME@3275..3285
+ IDENT@3275..3285 "body_lines"
+ ARGS_DESC@3285..3295
+ L_PAREN@3285..3286 "("
+ ARG@3286..3294
+ EXPR_INDEX@3286..3294
+ EXPR_VAR@3286..3289
+ NAME@3286..3289
+ IDENT@3286..3289 "ini"
+ DOT@3289..3290 "."
+ NAME@3290..3294
+ IDENT@3290..3294 "main"
+ R_PAREN@3294..3295 ")"
+ WHITESPACE@3295..3296 " "
+ ELSE_KW@3296..3300 "else"
+ WHITESPACE@3300..3301 " "
+ FALSE_EXPR@3301..3303
+ EXPR_ARRAY@3301..3303
+ L_BRACK@3301..3302 "["
+ R_BRACK@3302..3303 "]"
+ COMMA@3303..3304 ","
+ WHITESPACE@3304..3315 "\n "
+ BIND_DESTRUCT@3315..3423
+ DESTRUCT_FULL@3315..3327
+ NAME@3315..3327
+ IDENT@3315..3327 "all_sections"
+ WHITESPACE@3327..3328 " "
+ ASSIGN@3328..3329 "="
+ WHITESPACE@3329..3330 " "
+ EXPR_ARRAY_COMP@3330..3423
+ L_BRACK@3330..3331 "["
+ WHITESPACE@3331..3338 "\n "
+ EXPR_APPLY@3338..3371
+ EXPR_VAR@3338..3351
+ NAME@3338..3351
+ IDENT@3338..3351 "section_lines"
+ ARGS_DESC@3351..3371
+ L_PAREN@3351..3352 "("
+ ARG@3352..3353
+ EXPR_VAR@3352..3353
+ NAME@3352..3353
+ IDENT@3352..3353 "k"
+ COMMA@3353..3354 ","
+ WHITESPACE@3354..3355 " "
+ ARG@3355..3370
+ EXPR_INDEX_EXPR@3355..3370
+ LHS_EXPR@3355..3367
+ EXPR_INDEX@3355..3367
+ EXPR_VAR@3355..3358
+ NAME@3355..3358
+ IDENT@3355..3358 "ini"
+ DOT@3358..3359 "."
+ NAME@3359..3367
+ IDENT@3359..3367 "sections"
+ L_BRACK@3367..3368 "["
+ EXPR_VAR@3368..3369
+ NAME@3368..3369
+ IDENT@3368..3369 "k"
+ R_BRACK@3369..3370 "]"
+ R_PAREN@3370..3371 ")"
+ WHITESPACE@3371..3378 "\n "
+ FOR_SPEC@3378..3417
+ FOR_KW@3378..3381 "for"
+ WHITESPACE@3381..3382 " "
+ NAME@3382..3383
+ IDENT@3382..3383 "k"
+ WHITESPACE@3383..3384 " "
+ IN_KW@3384..3386 "in"
+ WHITESPACE@3386..3387 " "
+ EXPR_APPLY@3387..3417
+ EXPR_INDEX@3387..3403
+ EXPR_VAR@3387..3390
+ NAME@3387..3390
+ IDENT@3387..3390 "std"
+ DOT@3390..3391 "."
+ NAME@3391..3403
+ IDENT@3391..3403 "objectFields"
+ ARGS_DESC@3403..3417
+ L_PAREN@3403..3404 "("
+ ARG@3404..3416
+ EXPR_INDEX@3404..3416
+ EXPR_VAR@3404..3407
+ NAME@3404..3407
+ IDENT@3404..3407 "ini"
+ DOT@3407..3408 "."
+ NAME@3408..3416
+ IDENT@3408..3416 "sections"
+ R_PAREN@3416..3417 ")"
+ WHITESPACE@3417..3422 "\n "
+ R_BRACK@3422..3423 "]"
+ SEMI@3423..3424 ";"
+ WHITESPACE@3424..3429 "\n "
+ EXPR_APPLY@3429..3495
+ EXPR_INDEX@3429..3437
+ EXPR_VAR@3429..3432
+ NAME@3429..3432
+ IDENT@3429..3432 "std"
+ DOT@3432..3433 "."
+ NAME@3433..3437
+ IDENT@3433..3437 "join"
+ ARGS_DESC@3437..3495
+ L_PAREN@3437..3438 "("
+ ARG@3438..3442
+ EXPR_STRING@3438..3442
+ STRING_SINGLE@3438..3442 "'\\n'"
+ COMMA@3442..3443 ","
+ WHITESPACE@3443..3444 " "
+ ARG@3444..3494
+ EXPR_BINARY@3444..3494
+ LHS_EXPR@3444..3487
+ EXPR_BINARY@3444..3487
+ LHS_EXPR@3444..3453
+ EXPR_VAR@3444..3453
+ NAME@3444..3453
+ IDENT@3444..3453 "main_body"
+ WHITESPACE@3453..3454 " "
+ PLUS@3454..3455 "+"
+ WHITESPACE@3455..3456 " "
+ EXPR_APPLY@3456..3487
+ EXPR_INDEX@3456..3473
+ EXPR_VAR@3456..3459
+ NAME@3456..3459
+ IDENT@3456..3459 "std"
+ DOT@3459..3460 "."
+ NAME@3460..3473
+ IDENT@3460..3473 "flattenArrays"
+ ARGS_DESC@3473..3487
+ L_PAREN@3473..3474 "("
+ ARG@3474..3486
+ EXPR_VAR@3474..3486
+ NAME@3474..3486
+ IDENT@3474..3486 "all_sections"
+ R_PAREN@3486..3487 ")"
+ WHITESPACE@3487..3488 " "
+ PLUS@3488..3489 "+"
+ WHITESPACE@3489..3490 " "
+ EXPR_ARRAY@3490..3494
+ L_BRACK@3490..3491 "["
+ EXPR_STRING@3491..3493
+ STRING_SINGLE@3491..3493 "''"
+ R_BRACK@3493..3494 "]"
+ R_PAREN@3494..3495 ")"
+ COMMA@3495..3496 ","
+ WHITESPACE@3496..3500 "\n\n "
+ MEMBER_FIELD@3500..3553
+ FIELD_METHOD@3500..3553
+ FIELD_NAME_FIXED@3500..3512
+ NAME@3500..3512
+ IDENT@3500..3512 "manifestToml"
+ PARAMS_DESC@3512..3519
+ L_PAREN@3512..3513 "("
+ PARAM@3513..3518
+ DESTRUCT_FULL@3513..3518
+ NAME@3513..3518
+ IDENT@3513..3518 "value"
+ R_PAREN@3518..3519 ")"
+ COLONCOLON@3519..3521 "::"
+ WHITESPACE@3521..3522 " "
+ EXPR_APPLY@3522..3553
+ EXPR_INDEX@3522..3540
+ EXPR_VAR@3522..3525
+ NAME@3522..3525
+ IDENT@3522..3525 "std"
+ DOT@3525..3526 "."
+ NAME@3526..3540
+ IDENT@3526..3540 "manifestTomlEx"
+ ARGS_DESC@3540..3553
+ L_PAREN@3540..3541 "("
+ ARG@3541..3546
+ EXPR_VAR@3541..3546
+ NAME@3541..3546
+ IDENT@3541..3546 "value"
+ COMMA@3546..3547 ","
+ WHITESPACE@3547..3548 " "
+ ARG@3548..3552
+ EXPR_STRING@3548..3552
+ STRING_SINGLE@3548..3552 "' '"
+ R_PAREN@3552..3553 ")"
+ COMMA@3553..3554 ","
+ WHITESPACE@3554..3558 "\n\n "
+ MEMBER_FIELD@3558..3613
+ FIELD_METHOD@3558..3613
+ FIELD_NAME_FIXED@3558..3576
+ NAME@3558..3576
+ IDENT@3558..3576 "escapeStringPython"
+ PARAMS_DESC@3576..3581
+ L_PAREN@3576..3577 "("
+ PARAM@3577..3580
+ DESTRUCT_FULL@3577..3580
+ NAME@3577..3580
+ IDENT@3577..3580 "str"
+ R_PAREN@3580..3581 ")"
+ COLONCOLON@3581..3583 "::"
+ WHITESPACE@3583..3588 "\n "
+ EXPR_APPLY@3588..3613
+ EXPR_INDEX@3588..3608
+ EXPR_VAR@3588..3591
+ NAME@3588..3591
+ IDENT@3588..3591 "std"
+ DOT@3591..3592 "."
+ NAME@3592..3608
+ IDENT@3592..3608 "escapeStringJson"
+ ARGS_DESC@3608..3613
+ L_PAREN@3608..3609 "("
+ ARG@3609..3612
+ EXPR_VAR@3609..3612
+ NAME@3609..3612
+ IDENT@3609..3612 "str"
+ R_PAREN@3612..3613 ")"
+ COMMA@3613..3614 ","
+ WHITESPACE@3614..3618 "\n\n "
+ MEMBER_FIELD@3618..3835
+ FIELD_METHOD@3618..3835
+ FIELD_NAME_FIXED@3618..3634
+ NAME@3618..3634
+ IDENT@3618..3634 "escapeStringBash"
+ PARAMS_DESC@3634..3640
+ L_PAREN@3634..3635 "("
+ PARAM@3635..3639
+ DESTRUCT_FULL@3635..3639
+ NAME@3635..3639
+ IDENT@3635..3639 "str_"
+ R_PAREN@3639..3640 ")"
+ COLONCOLON@3640..3642 "::"
+ WHITESPACE@3642..3647 "\n "
+ EXPR_LOCAL@3647..3835
+ LOCAL_KW@3647..3652 "local"
+ WHITESPACE@3652..3653 " "
+ BIND_DESTRUCT@3653..3677
+ DESTRUCT_FULL@3653..3656
+ NAME@3653..3656
+ IDENT@3653..3656 "str"
+ WHITESPACE@3656..3657 " "
+ ASSIGN@3657..3658 "="
+ WHITESPACE@3658..3659 " "
+ EXPR_APPLY@3659..3677
+ EXPR_INDEX@3659..3671
+ EXPR_VAR@3659..3662
+ NAME@3659..3662
+ IDENT@3659..3662 "std"
+ DOT@3662..3663 "."
+ NAME@3663..3671
+ IDENT@3663..3671 "toString"
+ ARGS_DESC@3671..3677
+ L_PAREN@3671..3672 "("
+ ARG@3672..3676
+ EXPR_VAR@3672..3676
+ NAME@3672..3676
+ IDENT@3672..3676 "str_"
+ R_PAREN@3676..3677 ")"
+ SEMI@3677..3678 ";"
+ WHITESPACE@3678..3683 "\n "
+ EXPR_LOCAL@3683..3835
+ LOCAL_KW@3683..3688 "local"
+ WHITESPACE@3688..3689 " "
+ BIND_FUNCTION@3689..3764
+ NAME@3689..3694
+ IDENT@3689..3694 "trans"
+ PARAMS_DESC@3694..3698
+ L_PAREN@3694..3695 "("
+ PARAM@3695..3697
+ DESTRUCT_FULL@3695..3697
+ NAME@3695..3697
+ IDENT@3695..3697 "ch"
+ R_PAREN@3697..3698 ")"
+ WHITESPACE@3698..3699 " "
+ ASSIGN@3699..3700 "="
+ WHITESPACE@3700..3707 "\n "
+ EXPR_IF_THEN_ELSE@3707..3764
+ IF_KW@3707..3709 "if"
+ WHITESPACE@3709..3710 " "
+ EXPR_BINARY@3710..3719
+ LHS_EXPR@3710..3712
+ EXPR_VAR@3710..3712
+ NAME@3710..3712
+ IDENT@3710..3712 "ch"
+ WHITESPACE@3712..3713 " "
+ EQ@3713..3715 "=="
+ WHITESPACE@3715..3716 " "
+ EXPR_STRING@3716..3719
+ STRING_DOUBLE@3716..3719 "\"'\""
+ WHITESPACE@3719..3720 " "
+ THEN_KW@3720..3724 "then"
+ WHITESPACE@3724..3733 "\n "
+ TRUE_EXPR@3733..3742
+ EXPR_STRING@3733..3742
+ STRING_DOUBLE@3733..3742 "\"'\\\"'\\\"'\""
+ WHITESPACE@3742..3749 "\n "
+ ELSE_KW@3749..3753 "else"
+ WHITESPACE@3753..3762 "\n "
+ FALSE_EXPR@3762..3764
+ EXPR_VAR@3762..3764
+ NAME@3762..3764
+ IDENT@3762..3764 "ch"
+ SEMI@3764..3765 ";"
+ WHITESPACE@3765..3770 "\n "
+ EXPR_BINARY@3770..3835
+ LHS_EXPR@3770..3776
+ EXPR_STRING@3770..3776
+ STRING_DOUBLE@3770..3776 "\"'%s'\""
+ WHITESPACE@3776..3777 " "
+ MODULO@3777..3778 "%"
+ WHITESPACE@3778..3779 " "
+ EXPR_APPLY@3779..3835
+ EXPR_INDEX@3779..3787
+ EXPR_VAR@3779..3782
+ NAME@3779..3782
+ IDENT@3779..3782 "std"
+ DOT@3782..3783 "."
+ NAME@3783..3787
+ IDENT@3783..3787 "join"
+ ARGS_DESC@3787..3835
+ L_PAREN@3787..3788 "("
+ ARG@3788..3790
+ EXPR_STRING@3788..3790
+ STRING_SINGLE@3788..3790 "''"
+ COMMA@3790..3791 ","
+ WHITESPACE@3791..3792 " "
+ ARG@3792..3834
+ EXPR_ARRAY_COMP@3792..3834
+ L_BRACK@3792..3793 "["
+ EXPR_APPLY@3793..3802
+ EXPR_VAR@3793..3798
+ NAME@3793..3798
+ IDENT@3793..3798 "trans"
+ ARGS_DESC@3798..3802
+ L_PAREN@3798..3799 "("
+ ARG@3799..3801
+ EXPR_VAR@3799..3801
+ NAME@3799..3801
+ IDENT@3799..3801 "ch"
+ R_PAREN@3801..3802 ")"
+ WHITESPACE@3802..3803 " "
+ FOR_SPEC@3803..3833
+ FOR_KW@3803..3806 "for"
+ WHITESPACE@3806..3807 " "
+ NAME@3807..3809
+ IDENT@3807..3809 "ch"
+ WHITESPACE@3809..3810 " "
+ IN_KW@3810..3812 "in"
+ WHITESPACE@3812..3813 " "
+ EXPR_APPLY@3813..3833
+ EXPR_INDEX@3813..3828
+ EXPR_VAR@3813..3816
+ NAME@3813..3816
+ IDENT@3813..3816 "std"
+ DOT@3816..3817 "."
+ NAME@3817..3828
+ IDENT@3817..3828 "stringChars"
+ ARGS_DESC@3828..3833
+ L_PAREN@3828..3829 "("
+ ARG@3829..3832
+ EXPR_VAR@3829..3832
+ NAME@3829..3832
+ IDENT@3829..3832 "str"
+ R_PAREN@3832..3833 ")"
+ R_BRACK@3833..3834 "]"
+ R_PAREN@3834..3835 ")"
+ COMMA@3835..3836 ","
+ WHITESPACE@3836..3840 "\n\n "
+ MEMBER_FIELD@3840..4054
+ FIELD_METHOD@3840..4054
+ FIELD_NAME_FIXED@3840..3859
+ NAME@3840..3859
+ IDENT@3840..3859 "escapeStringDollars"
+ PARAMS_DESC@3859..3865
+ L_PAREN@3859..3860 "("
+ PARAM@3860..3864
+ DESTRUCT_FULL@3860..3864
+ NAME@3860..3864
+ IDENT@3860..3864 "str_"
+ R_PAREN@3864..3865 ")"
+ COLONCOLON@3865..3867 "::"
+ WHITESPACE@3867..3872 "\n "
+ EXPR_LOCAL@3872..4054
+ LOCAL_KW@3872..3877 "local"
+ WHITESPACE@3877..3878 " "
+ BIND_DESTRUCT@3878..3902
+ DESTRUCT_FULL@3878..3881
+ NAME@3878..3881
+ IDENT@3878..3881 "str"
+ WHITESPACE@3881..3882 " "
+ ASSIGN@3882..3883 "="
+ WHITESPACE@3883..3884 " "
+ EXPR_APPLY@3884..3902
+ EXPR_INDEX@3884..3896
+ EXPR_VAR@3884..3887
+ NAME@3884..3887
+ IDENT@3884..3887 "std"
+ DOT@3887..3888 "."
+ NAME@3888..3896
+ IDENT@3888..3896 "toString"
+ ARGS_DESC@3896..3902
+ L_PAREN@3896..3897 "("
+ ARG@3897..3901
+ EXPR_VAR@3897..3901
+ NAME@3897..3901
+ IDENT@3897..3901 "str_"
+ R_PAREN@3901..3902 ")"
+ SEMI@3902..3903 ";"
+ WHITESPACE@3903..3908 "\n "
+ EXPR_LOCAL@3908..4054
+ LOCAL_KW@3908..3913 "local"
+ WHITESPACE@3913..3914 " "
+ BIND_FUNCTION@3914..3984
+ NAME@3914..3919
+ IDENT@3914..3919 "trans"
+ PARAMS_DESC@3919..3923
+ L_PAREN@3919..3920 "("
+ PARAM@3920..3922
+ DESTRUCT_FULL@3920..3922
+ NAME@3920..3922
+ IDENT@3920..3922 "ch"
+ R_PAREN@3922..3923 ")"
+ WHITESPACE@3923..3924 " "
+ ASSIGN@3924..3925 "="
+ WHITESPACE@3925..3932 "\n "
+ EXPR_IF_THEN_ELSE@3932..3984
+ IF_KW@3932..3934 "if"
+ WHITESPACE@3934..3935 " "
+ EXPR_BINARY@3935..3944
+ LHS_EXPR@3935..3937
+ EXPR_VAR@3935..3937
+ NAME@3935..3937
+ IDENT@3935..3937 "ch"
+ WHITESPACE@3937..3938 " "
+ EQ@3938..3940 "=="
+ WHITESPACE@3940..3941 " "
+ EXPR_STRING@3941..3944
+ STRING_SINGLE@3941..3944 "'$'"
+ WHITESPACE@3944..3945 " "
+ THEN_KW@3945..3949 "then"
+ WHITESPACE@3949..3958 "\n "
+ TRUE_EXPR@3958..3962
+ EXPR_STRING@3958..3962
+ STRING_SINGLE@3958..3962 "'$$'"
+ WHITESPACE@3962..3969 "\n "
+ ELSE_KW@3969..3973 "else"
+ WHITESPACE@3973..3982 "\n "
+ FALSE_EXPR@3982..3984
+ EXPR_VAR@3982..3984
+ NAME@3982..3984
+ IDENT@3982..3984 "ch"
+ SEMI@3984..3985 ";"
+ WHITESPACE@3985..3990 "\n "
+ EXPR_APPLY@3990..4054
+ EXPR_INDEX@3990..3999
+ EXPR_VAR@3990..3993
+ NAME@3990..3993
+ IDENT@3990..3993 "std"
+ DOT@3993..3994 "."
+ NAME@3994..3999
+ IDENT@3994..3999 "foldl"
+ ARGS_DESC@3999..4054
+ L_PAREN@3999..4000 "("
+ ARG@4000..4027
+ EXPR_FUNCTION@4000..4027
+ FUNCTION_KW@4000..4008 "function"
+ PARAMS_DESC@4008..4014
+ L_PAREN@4008..4009 "("
+ PARAM@4009..4010
+ DESTRUCT_FULL@4009..4010
+ NAME@4009..4010
+ IDENT@4009..4010 "a"
+ COMMA@4010..4011 ","
+ WHITESPACE@4011..4012 " "
+ PARAM@4012..4013
+ DESTRUCT_FULL@4012..4013
+ NAME@4012..4013
+ IDENT@4012..4013 "b"
+ R_PAREN@4013..4014 ")"
+ WHITESPACE@4014..4015 " "
+ EXPR_BINARY@4015..4027
+ LHS_EXPR@4015..4016
+ EXPR_VAR@4015..4016
+ NAME@4015..4016
+ IDENT@4015..4016 "a"
+ WHITESPACE@4016..4017 " "
+ PLUS@4017..4018 "+"
+ WHITESPACE@4018..4019 " "
+ EXPR_APPLY@4019..4027
+ EXPR_VAR@4019..4024
+ NAME@4019..4024
+ IDENT@4019..4024 "trans"
+ ARGS_DESC@4024..4027
+ L_PAREN@4024..4025 "("
+ ARG@4025..4026
+ EXPR_VAR@4025..4026
+ NAME@4025..4026
+ IDENT@4025..4026 "b"
+ R_PAREN@4026..4027 ")"
+ COMMA@4027..4028 ","
+ WHITESPACE@4028..4029 " "
+ ARG@4029..4049
+ EXPR_APPLY@4029..4049
+ EXPR_INDEX@4029..4044
+ EXPR_VAR@4029..4032
+ NAME@4029..4032
+ IDENT@4029..4032 "std"
+ DOT@4032..4033 "."
+ NAME@4033..4044
+ IDENT@4033..4044 "stringChars"
+ ARGS_DESC@4044..4049
+ L_PAREN@4044..4045 "("
+ ARG@4045..4048
+ EXPR_VAR@4045..4048
+ NAME@4045..4048
+ IDENT@4045..4048 "str"
+ R_PAREN@4048..4049 ")"
+ COMMA@4049..4050 ","
+ WHITESPACE@4050..4051 " "
+ ARG@4051..4053
+ EXPR_STRING@4051..4053
+ STRING_SINGLE@4051..4053 "''"
+ R_PAREN@4053..4054 ")"
+ COMMA@4054..4055 ","
+ WHITESPACE@4055..4059 "\n\n "
+ MEMBER_BIND_STMT@4059..4174
+ OBJ_LOCAL@4059..4174
+ LOCAL_KW@4059..4064 "local"
+ WHITESPACE@4064..4065 " "
+ BIND_DESTRUCT@4065..4174
+ DESTRUCT_FULL@4065..4076
+ NAME@4065..4076
+ IDENT@4065..4076 "xml_escapes"
+ WHITESPACE@4076..4077 " "
+ ASSIGN@4077..4078 "="
+ WHITESPACE@4078..4079 " "
+ EXPR_OBJECT@4079..4174
+ OBJ_BODY_MEMBER_LIST@4079..4174
+ L_BRACE@4079..4080 "{"
+ WHITESPACE@4080..4085 "\n "
+ MEMBER_FIELD@4085..4096
+ FIELD_NORMAL@4085..4096
+ FIELD_NAME_FIXED@4085..4088
+ STRING_SINGLE@4085..4088 "'<'"
+ COLON@4088..4089 ":"
+ WHITESPACE@4089..4090 " "
+ EXPR_STRING@4090..4096
+ STRING_SINGLE@4090..4096 "'<'"
+ COMMA@4096..4097 ","
+ WHITESPACE@4097..4102 "\n "
+ MEMBER_FIELD@4102..4113
+ FIELD_NORMAL@4102..4113
+ FIELD_NAME_FIXED@4102..4105
+ STRING_SINGLE@4102..4105 "'>'"
+ COLON@4105..4106 ":"
+ WHITESPACE@4106..4107 " "
+ EXPR_STRING@4107..4113
+ STRING_SINGLE@4107..4113 "'>'"
+ COMMA@4113..4114 ","
+ WHITESPACE@4114..4119 "\n "
+ MEMBER_FIELD@4119..4131
+ FIELD_NORMAL@4119..4131
+ FIELD_NAME_FIXED@4119..4122
+ STRING_SINGLE@4119..4122 "'&'"
+ COLON@4122..4123 ":"
+ WHITESPACE@4123..4124 " "
+ EXPR_STRING@4124..4131
+ STRING_SINGLE@4124..4131 "'&'"
+ COMMA@4131..4132 ","
+ WHITESPACE@4132..4137 "\n "
+ MEMBER_FIELD@4137..4150
+ FIELD_NORMAL@4137..4150
+ FIELD_NAME_FIXED@4137..4140
+ STRING_SINGLE@4137..4140 "'\"'"
+ COLON@4140..4141 ":"
+ WHITESPACE@4141..4142 " "
+ EXPR_STRING@4142..4150
+ STRING_SINGLE@4142..4150 "'"'"
+ COMMA@4150..4151 ","
+ WHITESPACE@4151..4156 "\n "
+ MEMBER_FIELD@4156..4169
+ FIELD_NORMAL@4156..4169
+ FIELD_NAME_FIXED@4156..4159
+ STRING_DOUBLE@4156..4159 "\"'\""
+ COLON@4159..4160 ":"
+ WHITESPACE@4160..4161 " "
+ EXPR_STRING@4161..4169
+ STRING_SINGLE@4161..4169 "'''"
+ COMMA@4169..4170 ","
+ WHITESPACE@4170..4173 "\n "
+ R_BRACE@4173..4174 "}"
+ COMMA@4174..4175 ","
+ WHITESPACE@4175..4179 "\n\n "
+ MEMBER_FIELD@4179..4318
+ FIELD_METHOD@4179..4318
+ FIELD_NAME_FIXED@4179..4194
+ NAME@4179..4194
+ IDENT@4179..4194 "escapeStringXML"
+ PARAMS_DESC@4194..4200
+ L_PAREN@4194..4195 "("
+ PARAM@4195..4199
+ DESTRUCT_FULL@4195..4199
+ NAME@4195..4199
+ IDENT@4195..4199 "str_"
+ R_PAREN@4199..4200 ")"
+ COLONCOLON@4200..4202 "::"
+ WHITESPACE@4202..4207 "\n "
+ EXPR_LOCAL@4207..4318
+ LOCAL_KW@4207..4212 "local"
+ WHITESPACE@4212..4213 " "
+ BIND_DESTRUCT@4213..4237
+ DESTRUCT_FULL@4213..4216
+ NAME@4213..4216
+ IDENT@4213..4216 "str"
+ WHITESPACE@4216..4217 " "
+ ASSIGN@4217..4218 "="
+ WHITESPACE@4218..4219 " "
+ EXPR_APPLY@4219..4237
+ EXPR_INDEX@4219..4231
+ EXPR_VAR@4219..4222
+ NAME@4219..4222
+ IDENT@4219..4222 "std"
+ DOT@4222..4223 "."
+ NAME@4223..4231
+ IDENT@4223..4231 "toString"
+ ARGS_DESC@4231..4237
+ L_PAREN@4231..4232 "("
+ ARG@4232..4236
+ EXPR_VAR@4232..4236
+ NAME@4232..4236
+ IDENT@4232..4236 "str_"
+ R_PAREN@4236..4237 ")"
+ SEMI@4237..4238 ";"
+ WHITESPACE@4238..4243 "\n "
+ EXPR_APPLY@4243..4318
+ EXPR_INDEX@4243..4251
+ EXPR_VAR@4243..4246
+ NAME@4243..4246
+ IDENT@4243..4246 "std"
+ DOT@4246..4247 "."
+ NAME@4247..4251
+ IDENT@4247..4251 "join"
+ ARGS_DESC@4251..4318
+ L_PAREN@4251..4252 "("
+ ARG@4252..4254
+ EXPR_STRING@4252..4254
+ STRING_SINGLE@4252..4254 "''"
+ COMMA@4254..4255 ","
+ WHITESPACE@4255..4256 " "
+ ARG@4256..4317
+ EXPR_ARRAY_COMP@4256..4317
+ L_BRACK@4256..4257 "["
+ EXPR_APPLY@4257..4285
+ EXPR_INDEX@4257..4264
+ EXPR_VAR@4257..4260
+ NAME@4257..4260
+ IDENT@4257..4260 "std"
+ DOT@4260..4261 "."
+ NAME@4261..4264
+ IDENT@4261..4264 "get"
+ ARGS_DESC@4264..4285
+ L_PAREN@4264..4265 "("
+ ARG@4265..4276
+ EXPR_VAR@4265..4276
+ NAME@4265..4276
+ IDENT@4265..4276 "xml_escapes"
+ COMMA@4276..4277 ","
+ WHITESPACE@4277..4278 " "
+ ARG@4278..4280
+ EXPR_VAR@4278..4280
+ NAME@4278..4280
+ IDENT@4278..4280 "ch"
+ COMMA@4280..4281 ","
+ WHITESPACE@4281..4282 " "
+ ARG@4282..4284
+ EXPR_VAR@4282..4284
+ NAME@4282..4284
+ IDENT@4282..4284 "ch"
+ R_PAREN@4284..4285 ")"
+ WHITESPACE@4285..4286 " "
+ FOR_SPEC@4286..4316
+ FOR_KW@4286..4289 "for"
+ WHITESPACE@4289..4290 " "
+ NAME@4290..4292
+ IDENT@4290..4292 "ch"
+ WHITESPACE@4292..4293 " "
+ IN_KW@4293..4295 "in"
+ WHITESPACE@4295..4296 " "
+ EXPR_APPLY@4296..4316
+ EXPR_INDEX@4296..4311
+ EXPR_VAR@4296..4299
+ NAME@4296..4299
+ IDENT@4296..4299 "std"
+ DOT@4299..4300 "."
+ NAME@4300..4311
+ IDENT@4300..4311 "stringChars"
+ ARGS_DESC@4311..4316
+ L_PAREN@4311..4312 "("
+ ARG@4312..4315
+ EXPR_VAR@4312..4315
+ NAME@4312..4315
+ IDENT@4312..4315 "str"
+ R_PAREN@4315..4316 ")"
+ R_BRACK@4316..4317 "]"
+ R_PAREN@4317..4318 ")"
+ COMMA@4318..4319 ","
+ WHITESPACE@4319..4323 "\n\n "
+ MEMBER_FIELD@4323..4389
+ FIELD_METHOD@4323..4389
+ FIELD_NAME_FIXED@4323..4335
+ NAME@4323..4335
+ IDENT@4323..4335 "manifestJson"
+ PARAMS_DESC@4335..4342
+ L_PAREN@4335..4336 "("
+ PARAM@4336..4341
+ DESTRUCT_FULL@4336..4341
+ NAME@4336..4341
+ IDENT@4336..4341 "value"
+ R_PAREN@4341..4342 ")"
+ COLONCOLON@4342..4344 "::"
+ WHITESPACE@4344..4345 " "
+ EXPR_APPLY@4345..4389
+ EXPR_INDEX@4345..4363
+ EXPR_VAR@4345..4348
+ NAME@4345..4348
+ IDENT@4345..4348 "std"
+ DOT@4348..4349 "."
+ NAME@4349..4363
+ IDENT@4349..4363 "manifestJsonEx"
+ ARGS_DESC@4363..4389
+ L_PAREN@4363..4364 "("
+ ARG@4364..4369
+ EXPR_VAR@4364..4369
+ NAME@4364..4369
+ IDENT@4364..4369 "value"
+ COMMA@4369..4370 ","
+ WHITESPACE@4370..4371 " "
+ ARG@4371..4377
+ EXPR_STRING@4371..4377
+ STRING_SINGLE@4371..4377 "' '"
+ R_PAREN@4377..4378 ")"
+ WHITESPACE@4378..4379 " "
+ TAILSTRICT_KW@4379..4389 "tailstrict"
+ COMMA@4389..4390 ","
+ WHITESPACE@4390..4394 "\n\n "
+ MEMBER_FIELD@4394..4462
+ FIELD_METHOD@4394..4462
+ FIELD_NAME_FIXED@4394..4414
+ NAME@4394..4414
+ IDENT@4394..4414 "manifestJsonMinified"
+ PARAMS_DESC@4414..4421
+ L_PAREN@4414..4415 "("
+ PARAM@4415..4420
+ DESTRUCT_FULL@4415..4420
+ NAME@4415..4420
+ IDENT@4415..4420 "value"
+ R_PAREN@4420..4421 ")"
+ COLONCOLON@4421..4423 "::"
+ WHITESPACE@4423..4424 " "
+ EXPR_APPLY@4424..4462
+ EXPR_INDEX@4424..4442
+ EXPR_VAR@4424..4427
+ NAME@4424..4427
+ IDENT@4424..4427 "std"
+ DOT@4427..4428 "."
+ NAME@4428..4442
+ IDENT@4428..4442 "manifestJsonEx"
+ ARGS_DESC@4442..4462
+ L_PAREN@4442..4443 "("
+ ARG@4443..4448
+ EXPR_VAR@4443..4448
+ NAME@4443..4448
+ IDENT@4443..4448 "value"
+ COMMA@4448..4449 ","
+ WHITESPACE@4449..4450 " "
+ ARG@4450..4452
+ EXPR_STRING@4450..4452
+ STRING_SINGLE@4450..4452 "''"
+ COMMA@4452..4453 ","
+ WHITESPACE@4453..4454 " "
+ ARG@4454..4456
+ EXPR_STRING@4454..4456
+ STRING_SINGLE@4454..4456 "''"
+ COMMA@4456..4457 ","
+ WHITESPACE@4457..4458 " "
+ ARG@4458..4461
+ EXPR_STRING@4458..4461
+ STRING_SINGLE@4458..4461 "':'"
+ R_PAREN@4461..4462 ")"
+ COMMA@4462..4463 ","
+ WHITESPACE@4463..4467 "\n\n "
+ MEMBER_FIELD@4467..4852
+ FIELD_METHOD@4467..4852
+ FIELD_NAME_FIXED@4467..4485
+ NAME@4467..4485
+ IDENT@4467..4485 "manifestYamlStream"
+ PARAMS_DESC@4485..4560
+ L_PAREN@4485..4486 "("
+ PARAM@4486..4491
+ DESTRUCT_FULL@4486..4491
+ NAME@4486..4491
+ IDENT@4486..4491 "value"
+ COMMA@4491..4492 ","
+ WHITESPACE@4492..4493 " "
+ PARAM@4493..4521
+ DESTRUCT_FULL@4493..4515
+ NAME@4493..4515
+ IDENT@4493..4515 "indent_array_in_object"
+ ASSIGN@4515..4516 "="
+ EXPR_LITERAL@4516..4521
+ FALSE_KW@4516..4521 "false"
+ COMMA@4521..4522 ","
+ WHITESPACE@4522..4523 " "
+ PARAM@4523..4542
+ DESTRUCT_FULL@4523..4537
+ NAME@4523..4537
+ IDENT@4523..4537 "c_document_end"
+ ASSIGN@4537..4538 "="
+ EXPR_LITERAL@4538..4542
+ TRUE_KW@4538..4542 "true"
+ COMMA@4542..4543 ","
+ WHITESPACE@4543..4544 " "
+ PARAM@4544..4559
+ DESTRUCT_FULL@4544..4554
+ NAME@4544..4554
+ IDENT@4544..4554 "quote_keys"
+ ASSIGN@4554..4555 "="
+ EXPR_LITERAL@4555..4559
+ TRUE_KW@4555..4559 "true"
+ R_PAREN@4559..4560 ")"
+ COLONCOLON@4560..4562 "::"
+ WHITESPACE@4562..4567 "\n "
+ EXPR_IF_THEN_ELSE@4567..4852
+ IF_KW@4567..4569 "if"
+ WHITESPACE@4569..4570 " "
+ EXPR_UNARY@4570..4589
+ NOT@4570..4571 "!"
+ EXPR_APPLY@4571..4589
+ EXPR_INDEX@4571..4582
+ EXPR_VAR@4571..4574
+ NAME@4571..4574
+ IDENT@4571..4574 "std"
+ DOT@4574..4575 "."
+ NAME@4575..4582
+ IDENT@4575..4582 "isArray"
+ ARGS_DESC@4582..4589
+ L_PAREN@4582..4583 "("
+ ARG@4583..4588
+ EXPR_VAR@4583..4588
+ NAME@4583..4588
+ IDENT@4583..4588 "value"
+ R_PAREN@4588..4589 ")"
+ WHITESPACE@4589..4590 " "
+ THEN_KW@4590..4594 "then"
+ WHITESPACE@4594..4601 "\n "
+ TRUE_EXPR@4601..4669
+ EXPR_ERROR@4601..4669
+ ERROR_KW@4601..4606 "error"
+ WHITESPACE@4606..4607 " "
+ EXPR_BINARY@4607..4669
+ LHS_EXPR@4607..4651
+ EXPR_STRING@4607..4651
+ STRING_SINGLE@4607..4651 "'manifestYamlStream o ..."
+ WHITESPACE@4651..4652 " "
+ PLUS@4652..4653 "+"
+ WHITESPACE@4653..4654 " "
+ EXPR_APPLY@4654..4669
+ EXPR_INDEX@4654..4662
+ EXPR_VAR@4654..4657
+ NAME@4654..4657
+ IDENT@4654..4657 "std"
+ DOT@4657..4658 "."
+ NAME@4658..4662
+ IDENT@4658..4662 "type"
+ ARGS_DESC@4662..4669
+ L_PAREN@4662..4663 "("
+ ARG@4663..4668
+ EXPR_VAR@4663..4668
+ NAME@4663..4668
+ IDENT@4663..4668 "value"
+ R_PAREN@4668..4669 ")"
+ WHITESPACE@4669..4674 "\n "
+ ELSE_KW@4674..4678 "else"
+ WHITESPACE@4678..4685 "\n "
+ FALSE_EXPR@4685..4852
+ EXPR_BINARY@4685..4852
+ LHS_EXPR@4685..4807
+ EXPR_BINARY@4685..4807
+ LHS_EXPR@4685..4692
+ EXPR_STRING@4685..4692
+ STRING_SINGLE@4685..4692 "'---\\n'"
+ WHITESPACE@4692..4693 " "
+ PLUS@4693..4694 "+"
+ WHITESPACE@4694..4695 " "
+ EXPR_APPLY@4695..4807
+ EXPR_INDEX@4695..4703
+ EXPR_VAR@4695..4698
+ NAME@4695..4698
+ IDENT@4695..4698 "std"
+ DOT@4698..4699 "."
+ NAME@4699..4703
+ IDENT@4699..4703 "join"
+ ARGS_DESC@4703..4807
+ L_PAREN@4703..4704 "("
+ WHITESPACE@4704..4713 "\n "
+ ARG@4713..4722
+ EXPR_STRING@4713..4722
+ STRING_SINGLE@4713..4722 "'\\n---\\n'"
+ COMMA@4722..4723 ","
+ WHITESPACE@4723..4724 " "
+ ARG@4724..4799
+ EXPR_ARRAY_COMP@4724..4799
+ L_BRACK@4724..4725 "["
+ EXPR_APPLY@4725..4783
+ EXPR_INDEX@4725..4744
+ EXPR_VAR@4725..4728
+ NAME@4725..4728
+ IDENT@4725..4728 "std"
+ DOT@4728..4729 "."
+ NAME@4729..4744
+ IDENT@4729..4744 "manifestYamlDoc"
+ ARGS_DESC@4744..4783
+ L_PAREN@4744..4745 "("
+ ARG@4745..4746
+ EXPR_VAR@4745..4746
+ NAME@4745..4746
+ IDENT@4745..4746 "e"
+ COMMA@4746..4747 ","
+ WHITESPACE@4747..4748 " "
+ ARG@4748..4770
+ EXPR_VAR@4748..4770
+ NAME@4748..4770
+ IDENT@4748..4770 "indent_array_in_object"
+ COMMA@4770..4771 ","
+ WHITESPACE@4771..4772 " "
+ ARG@4772..4782
+ EXPR_VAR@4772..4782
+ NAME@4772..4782
+ IDENT@4772..4782 "quote_keys"
+ R_PAREN@4782..4783 ")"
+ WHITESPACE@4783..4784 " "
+ FOR_SPEC@4784..4798
+ FOR_KW@4784..4787 "for"
+ WHITESPACE@4787..4788 " "
+ NAME@4788..4789
+ IDENT@4788..4789 "e"
+ WHITESPACE@4789..4790 " "
+ IN_KW@4790..4792 "in"
+ WHITESPACE@4792..4793 " "
+ EXPR_VAR@4793..4798
+ NAME@4793..4798
+ IDENT@4793..4798 "value"
+ R_BRACK@4798..4799 "]"
+ WHITESPACE@4799..4806 "\n "
+ R_PAREN@4806..4807 ")"
+ WHITESPACE@4807..4808 " "
+ PLUS@4808..4809 "+"
+ WHITESPACE@4809..4810 " "
+ EXPR_IF_THEN_ELSE@4810..4852
+ IF_KW@4810..4812 "if"
+ WHITESPACE@4812..4813 " "
+ EXPR_VAR@4813..4827
+ NAME@4813..4827
+ IDENT@4813..4827 "c_document_end"
+ WHITESPACE@4827..4828 " "
+ THEN_KW@4828..4832 "then"
+ WHITESPACE@4832..4833 " "
+ TRUE_EXPR@4833..4842
+ EXPR_STRING@4833..4842
+ STRING_SINGLE@4833..4842 "'\\n...\\n'"
+ WHITESPACE@4842..4843 " "
+ ELSE_KW@4843..4847 "else"
+ WHITESPACE@4847..4848 " "
+ FALSE_EXPR@4848..4852
+ EXPR_STRING@4848..4852
+ STRING_SINGLE@4848..4852 "'\\n'"
+ COMMA@4852..4853 ","
+ WHITESPACE@4853..4857 "\n\n "
+ MEMBER_FIELD@4857..5513
+ FIELD_METHOD@4857..5513
+ FIELD_NAME_FIXED@4857..4871
+ NAME@4857..4871
+ IDENT@4857..4871 "manifestPython"
+ PARAMS_DESC@4871..4874
+ L_PAREN@4871..4872 "("
+ PARAM@4872..4873
+ DESTRUCT_FULL@4872..4873
+ NAME@4872..4873
+ IDENT@4872..4873 "v"
+ R_PAREN@4873..4874 ")"
+ COLONCOLON@4874..4876 "::"
+ WHITESPACE@4876..4881 "\n "
+ EXPR_IF_THEN_ELSE@4881..5513
+ IF_KW@4881..4883 "if"
+ WHITESPACE@4883..4884 " "
+ EXPR_APPLY@4884..4899
+ EXPR_INDEX@4884..4896
+ EXPR_VAR@4884..4887
+ NAME@4884..4887
+ IDENT@4884..4887 "std"
+ DOT@4887..4888 "."
+ NAME@4888..4896
+ IDENT@4888..4896 "isObject"
+ ARGS_DESC@4896..4899
+ L_PAREN@4896..4897 "("
+ ARG@4897..4898
+ EXPR_VAR@4897..4898
+ NAME@4897..4898
+ IDENT@4897..4898 "v"
+ R_PAREN@4898..4899 ")"
+ WHITESPACE@4899..4900 " "
+ THEN_KW@4900..4904 "then"
+ WHITESPACE@4904..4911 "\n "
+ TRUE_EXPR@4911..5086
+ EXPR_LOCAL@4911..5086
+ LOCAL_KW@4911..4916 "local"
+ WHITESPACE@4916..4917 " "
+ BIND_DESTRUCT@4917..5045
+ DESTRUCT_FULL@4917..4923
+ NAME@4917..4923
+ IDENT@4917..4923 "fields"
+ WHITESPACE@4923..4924 " "
+ ASSIGN@4924..4925 "="
+ WHITESPACE@4925..4926 " "
+ EXPR_ARRAY_COMP@4926..5045
+ L_BRACK@4926..4927 "["
+ WHITESPACE@4927..4936 "\n "
+ EXPR_BINARY@4936..5000
+ LHS_EXPR@4936..4944
+ EXPR_STRING@4936..4944
+ STRING_SINGLE@4936..4944 "'%s: %s'"
+ WHITESPACE@4944..4945 " "
+ MODULO@4945..4946 "%"
+ WHITESPACE@4946..4947 " "
+ EXPR_ARRAY@4947..5000
+ L_BRACK@4947..4948 "["
+ EXPR_APPLY@4948..4973
+ EXPR_INDEX@4948..4970
+ EXPR_VAR@4948..4951
+ NAME@4948..4951
+ IDENT@4948..4951 "std"
+ DOT@4951..4952 "."
+ NAME@4952..4970
+ IDENT@4952..4970 "escapeStringPython"
+ ARGS_DESC@4970..4973
+ L_PAREN@4970..4971 "("
+ ARG@4971..4972
+ EXPR_VAR@4971..4972
+ NAME@4971..4972
+ IDENT@4971..4972 "k"
+ R_PAREN@4972..4973 ")"
+ COMMA@4973..4974 ","
+ WHITESPACE@4974..4975 " "
+ EXPR_APPLY@4975..4999
+ EXPR_INDEX@4975..4993
+ EXPR_VAR@4975..4978
+ NAME@4975..4978
+ IDENT@4975..4978 "std"
+ DOT@4978..4979 "."
+ NAME@4979..4993
+ IDENT@4979..4993 "manifestPython"
+ ARGS_DESC@4993..4999
+ L_PAREN@4993..4994 "("
+ ARG@4994..4998
+ EXPR_INDEX_EXPR@4994..4998
+ LHS_EXPR@4994..4995
+ EXPR_VAR@4994..4995
+ NAME@4994..4995
+ IDENT@4994..4995 "v"
+ L_BRACK@4995..4996 "["
+ EXPR_VAR@4996..4997
+ NAME@4996..4997
+ IDENT@4996..4997 "k"
+ R_BRACK@4997..4998 "]"
+ R_PAREN@4998..4999 ")"
+ R_BRACK@4999..5000 "]"
+ WHITESPACE@5000..5009 "\n "
+ FOR_SPEC@5009..5037
+ FOR_KW@5009..5012 "for"
+ WHITESPACE@5012..5013 " "
+ NAME@5013..5014
+ IDENT@5013..5014 "k"
+ WHITESPACE@5014..5015 " "
+ IN_KW@5015..5017 "in"
+ WHITESPACE@5017..5018 " "
+ EXPR_APPLY@5018..5037
+ EXPR_INDEX@5018..5034
+ EXPR_VAR@5018..5021
+ NAME@5018..5021
+ IDENT@5018..5021 "std"
+ DOT@5021..5022 "."
+ NAME@5022..5034
+ IDENT@5022..5034 "objectFields"
+ ARGS_DESC@5034..5037
+ L_PAREN@5034..5035 "("
+ ARG@5035..5036
+ EXPR_VAR@5035..5036
+ NAME@5035..5036
+ IDENT@5035..5036 "v"
+ R_PAREN@5036..5037 ")"
+ WHITESPACE@5037..5044 "\n "
+ R_BRACK@5044..5045 "]"
+ SEMI@5045..5046 ";"
+ WHITESPACE@5046..5053 "\n "
+ EXPR_BINARY@5053..5086
+ LHS_EXPR@5053..5059
+ EXPR_STRING@5053..5059
+ STRING_SINGLE@5053..5059 "'{%s}'"
+ WHITESPACE@5059..5060 " "
+ MODULO@5060..5061 "%"
+ WHITESPACE@5061..5062 " "
+ EXPR_ARRAY@5062..5086
+ L_BRACK@5062..5063 "["
+ EXPR_APPLY@5063..5085
+ EXPR_INDEX@5063..5071
+ EXPR_VAR@5063..5066
+ NAME@5063..5066
+ IDENT@5063..5066 "std"
+ DOT@5066..5067 "."
+ NAME@5067..5071
+ IDENT@5067..5071 "join"
+ ARGS_DESC@5071..5085
+ L_PAREN@5071..5072 "("
+ ARG@5072..5076
+ EXPR_STRING@5072..5076
+ STRING_SINGLE@5072..5076 "', '"
+ COMMA@5076..5077 ","
+ WHITESPACE@5077..5078 " "
+ ARG@5078..5084
+ EXPR_VAR@5078..5084
+ NAME@5078..5084
+ IDENT@5078..5084 "fields"
+ R_PAREN@5084..5085 ")"
+ R_BRACK@5085..5086 "]"
+ WHITESPACE@5086..5091 "\n "
+ ELSE_KW@5091..5095 "else"
+ WHITESPACE@5095..5096 " "
+ FALSE_EXPR@5096..5513
+ EXPR_IF_THEN_ELSE@5096..5513
+ IF_KW@5096..5098 "if"
+ WHITESPACE@5098..5099 " "
+ EXPR_APPLY@5099..5113
+ EXPR_INDEX@5099..5110
+ EXPR_VAR@5099..5102
+ NAME@5099..5102
+ IDENT@5099..5102 "std"
+ DOT@5102..5103 "."
+ NAME@5103..5110
+ IDENT@5103..5110 "isArray"
+ ARGS_DESC@5110..5113
+ L_PAREN@5110..5111 "("
+ ARG@5111..5112
+ EXPR_VAR@5111..5112
+ NAME@5111..5112
+ IDENT@5111..5112 "v"
+ R_PAREN@5112..5113 ")"
+ WHITESPACE@5113..5114 " "
+ THEN_KW@5114..5118 "then"
+ WHITESPACE@5118..5125 "\n "
+ TRUE_EXPR@5125..5188
+ EXPR_BINARY@5125..5188
+ LHS_EXPR@5125..5131
+ EXPR_STRING@5125..5131
+ STRING_SINGLE@5125..5131 "'[%s]'"
+ WHITESPACE@5131..5132 " "
+ MODULO@5132..5133 "%"
+ WHITESPACE@5133..5134 " "
+ EXPR_ARRAY@5134..5188
+ L_BRACK@5134..5135 "["
+ EXPR_APPLY@5135..5187
+ EXPR_INDEX@5135..5143
+ EXPR_VAR@5135..5138
+ NAME@5135..5138
+ IDENT@5135..5138 "std"
+ DOT@5138..5139 "."
+ NAME@5139..5143
+ IDENT@5139..5143 "join"
+ ARGS_DESC@5143..5187
+ L_PAREN@5143..5144 "("
+ ARG@5144..5148
+ EXPR_STRING@5144..5148
+ STRING_SINGLE@5144..5148 "', '"
+ COMMA@5148..5149 ","
+ WHITESPACE@5149..5150 " "
+ ARG@5150..5186
+ EXPR_ARRAY_COMP@5150..5186
+ L_BRACK@5150..5151 "["
+ EXPR_APPLY@5151..5173
+ EXPR_INDEX@5151..5169
+ EXPR_VAR@5151..5154
+ NAME@5151..5154
+ IDENT@5151..5154 "std"
+ DOT@5154..5155 "."
+ NAME@5155..5169
+ IDENT@5155..5169 "manifestPython"
+ ARGS_DESC@5169..5173
+ L_PAREN@5169..5170 "("
+ ARG@5170..5172
+ EXPR_VAR@5170..5172
+ NAME@5170..5172
+ IDENT@5170..5172 "v2"
+ R_PAREN@5172..5173 ")"
+ WHITESPACE@5173..5174 " "
+ FOR_SPEC@5174..5185
+ FOR_KW@5174..5177 "for"
+ WHITESPACE@5177..5178 " "
+ NAME@5178..5180
+ IDENT@5178..5180 "v2"
+ WHITESPACE@5180..5181 " "
+ IN_KW@5181..5183 "in"
+ WHITESPACE@5183..5184 " "
+ EXPR_VAR@5184..5185
+ NAME@5184..5185
+ IDENT@5184..5185 "v"
+ R_BRACK@5185..5186 "]"
+ R_PAREN@5186..5187 ")"
+ R_BRACK@5187..5188 "]"
+ WHITESPACE@5188..5193 "\n "
+ ELSE_KW@5193..5197 "else"
+ WHITESPACE@5197..5198 " "
+ FALSE_EXPR@5198..5513
+ EXPR_IF_THEN_ELSE@5198..5513
+ IF_KW@5198..5200 "if"
+ WHITESPACE@5200..5201 " "
+ EXPR_APPLY@5201..5216
+ EXPR_INDEX@5201..5213
+ EXPR_VAR@5201..5204
+ NAME@5201..5204
+ IDENT@5201..5204 "std"
+ DOT@5204..5205 "."
+ NAME@5205..5213
+ IDENT@5205..5213 "isString"
+ ARGS_DESC@5213..5216
+ L_PAREN@5213..5214 "("
+ ARG@5214..5215
+ EXPR_VAR@5214..5215
+ NAME@5214..5215
+ IDENT@5214..5215 "v"
+ R_PAREN@5215..5216 ")"
+ WHITESPACE@5216..5217 " "
+ THEN_KW@5217..5221 "then"
+ WHITESPACE@5221..5228 "\n "
+ TRUE_EXPR@5228..5262
+ EXPR_BINARY@5228..5262
+ LHS_EXPR@5228..5232
+ EXPR_STRING@5228..5232
+ STRING_SINGLE@5228..5232 "'%s'"
+ WHITESPACE@5232..5233 " "
+ MODULO@5233..5234 "%"
+ WHITESPACE@5234..5235 " "
+ EXPR_ARRAY@5235..5262
+ L_BRACK@5235..5236 "["
+ EXPR_APPLY@5236..5261
+ EXPR_INDEX@5236..5258
+ EXPR_VAR@5236..5239
+ NAME@5236..5239
+ IDENT@5236..5239 "std"
+ DOT@5239..5240 "."
+ NAME@5240..5258
+ IDENT@5240..5258 "escapeStringPython"
+ ARGS_DESC@5258..5261
+ L_PAREN@5258..5259 "("
+ ARG@5259..5260
+ EXPR_VAR@5259..5260
+ NAME@5259..5260
+ IDENT@5259..5260 "v"
+ R_PAREN@5260..5261 ")"
+ R_BRACK@5261..5262 "]"
+ WHITESPACE@5262..5267 "\n "
+ ELSE_KW@5267..5271 "else"
+ WHITESPACE@5271..5272 " "
+ FALSE_EXPR@5272..5513
+ EXPR_IF_THEN_ELSE@5272..5513
+ IF_KW@5272..5274 "if"
+ WHITESPACE@5274..5275 " "
+ EXPR_APPLY@5275..5292
+ EXPR_INDEX@5275..5289
+ EXPR_VAR@5275..5278
+ NAME@5275..5278
+ IDENT@5275..5278 "std"
+ DOT@5278..5279 "."
+ NAME@5279..5289
+ IDENT@5279..5289 "isFunction"
+ ARGS_DESC@5289..5292
+ L_PAREN@5289..5290 "("
+ ARG@5290..5291
+ EXPR_VAR@5290..5291
+ NAME@5290..5291
+ IDENT@5290..5291 "v"
+ R_PAREN@5291..5292 ")"
+ WHITESPACE@5292..5293 " "
+ THEN_KW@5293..5297 "then"
+ WHITESPACE@5297..5304 "\n "
+ TRUE_EXPR@5304..5336
+ EXPR_ERROR@5304..5336
+ ERROR_KW@5304..5309 "error"
+ WHITESPACE@5309..5310 " "
+ EXPR_STRING@5310..5336
+ STRING_SINGLE@5310..5336 "'cannot manifest func ..."
+ WHITESPACE@5336..5341 "\n "
+ ELSE_KW@5341..5345 "else"
+ WHITESPACE@5345..5346 " "
+ FALSE_EXPR@5346..5513
+ EXPR_IF_THEN_ELSE@5346..5513
+ IF_KW@5346..5348 "if"
+ WHITESPACE@5348..5349 " "
+ EXPR_APPLY@5349..5364
+ EXPR_INDEX@5349..5361
+ EXPR_VAR@5349..5352
+ NAME@5349..5352
+ IDENT@5349..5352 "std"
+ DOT@5352..5353 "."
+ NAME@5353..5361
+ IDENT@5353..5361 "isNumber"
+ ARGS_DESC@5361..5364
+ L_PAREN@5361..5362 "("
+ ARG@5362..5363
+ EXPR_VAR@5362..5363
+ NAME@5362..5363
+ IDENT@5362..5363 "v"
+ R_PAREN@5363..5364 ")"
+ WHITESPACE@5364..5365 " "
+ THEN_KW@5365..5369 "then"
+ WHITESPACE@5369..5376 "\n "
+ TRUE_EXPR@5376..5391
+ EXPR_APPLY@5376..5391
+ EXPR_INDEX@5376..5388
+ EXPR_VAR@5376..5379
+ NAME@5376..5379
+ IDENT@5376..5379 "std"
+ DOT@5379..5380 "."
+ NAME@5380..5388
+ IDENT@5380..5388 "toString"
+ ARGS_DESC@5388..5391
+ L_PAREN@5388..5389 "("
+ ARG@5389..5390
+ EXPR_VAR@5389..5390
+ NAME@5389..5390
+ IDENT@5389..5390 "v"
+ R_PAREN@5390..5391 ")"
+ WHITESPACE@5391..5396 "\n "
+ ELSE_KW@5396..5400 "else"
+ WHITESPACE@5400..5401 " "
+ FALSE_EXPR@5401..5513
+ EXPR_IF_THEN_ELSE@5401..5513
+ IF_KW@5401..5403 "if"
+ WHITESPACE@5403..5404 " "
+ EXPR_BINARY@5404..5413
+ LHS_EXPR@5404..5405
+ EXPR_VAR@5404..5405
+ NAME@5404..5405
+ IDENT@5404..5405 "v"
+ WHITESPACE@5405..5406 " "
+ EQ@5406..5408 "=="
+ WHITESPACE@5408..5409 " "
+ EXPR_LITERAL@5409..5413
+ TRUE_KW@5409..5413 "true"
+ WHITESPACE@5413..5414 " "
+ THEN_KW@5414..5418 "then"
+ WHITESPACE@5418..5425 "\n "
+ TRUE_EXPR@5425..5431
+ EXPR_STRING@5425..5431
+ STRING_SINGLE@5425..5431 "'True'"
+ WHITESPACE@5431..5436 "\n "
+ ELSE_KW@5436..5440 "else"
+ WHITESPACE@5440..5441 " "
+ FALSE_EXPR@5441..5513
+ EXPR_IF_THEN_ELSE@5441..5513
+ IF_KW@5441..5443 "if"
+ WHITESPACE@5443..5444 " "
+ EXPR_BINARY@5444..5454
+ LHS_EXPR@5444..5445
+ EXPR_VAR@5444..5445
+ NAME@5444..5445
+ IDENT@5444..5445 "v"
+ WHITESPACE@5445..5446 " "
+ EQ@5446..5448 "=="
+ WHITESPACE@5448..5449 " "
+ EXPR_LITERAL@5449..5454
+ FALSE_KW@5449..5454 "false"
+ WHITESPACE@5454..5455 " "
+ THEN_KW@5455..5459 "then"
+ WHITESPACE@5459..5466 "\n "
+ TRUE_EXPR@5466..5473
+ EXPR_STRING@5466..5473
+ STRING_SINGLE@5466..5473 "'False'"
+ WHITESPACE@5473..5478 "\n "
+ ELSE_KW@5478..5482 "else"
+ WHITESPACE@5482..5483 " "
+ FALSE_EXPR@5483..5513
+ EXPR_IF_THEN_ELSE@5483..5513
+ IF_KW@5483..5485 "if"
+ WHITESPACE@5485..5486 " "
+ EXPR_BINARY@5486..5495
+ LHS_EXPR@5486..5487
+ EXPR_VAR@5486..5487
+ NAME@5486..5487
+ IDENT@5486..5487 "v"
+ WHITESPACE@5487..5488 " "
+ EQ@5488..5490 "=="
+ WHITESPACE@5490..5491 " "
+ EXPR_LITERAL@5491..5495
+ NULL_KW@5491..5495 "null"
+ WHITESPACE@5495..5496 " "
+ THEN_KW@5496..5500 "then"
+ WHITESPACE@5500..5507 "\n "
+ TRUE_EXPR@5507..5513
+ EXPR_STRING@5507..5513
+ STRING_SINGLE@5507..5513 "'None'"
+ COMMA@5513..5514 ","
+ WHITESPACE@5514..5518 "\n\n "
+ MEMBER_FIELD@5518..5673
+ FIELD_METHOD@5518..5673
+ FIELD_NAME_FIXED@5518..5536
+ NAME@5518..5536
+ IDENT@5518..5536 "manifestPythonVars"
+ PARAMS_DESC@5536..5542
+ L_PAREN@5536..5537 "("
+ PARAM@5537..5541
+ DESTRUCT_FULL@5537..5541
+ NAME@5537..5541
+ IDENT@5537..5541 "conf"
+ R_PAREN@5541..5542 ")"
+ COLONCOLON@5542..5544 "::"
+ WHITESPACE@5544..5549 "\n "
+ EXPR_LOCAL@5549..5673
+ LOCAL_KW@5549..5554 "local"
+ WHITESPACE@5554..5555 " "
+ BIND_DESTRUCT@5555..5640
+ DESTRUCT_FULL@5555..5559
+ NAME@5555..5559
+ IDENT@5555..5559 "vars"
+ WHITESPACE@5559..5560 " "
+ ASSIGN@5560..5561 "="
+ WHITESPACE@5561..5562 " "
+ EXPR_ARRAY_COMP@5562..5640
+ L_BRACK@5562..5563 "["
+ EXPR_BINARY@5563..5607
+ LHS_EXPR@5563..5572
+ EXPR_STRING@5563..5572
+ STRING_SINGLE@5563..5572 "'%s = %s'"
+ WHITESPACE@5572..5573 " "
+ MODULO@5573..5574 "%"
+ WHITESPACE@5574..5575 " "
+ EXPR_ARRAY@5575..5607
+ L_BRACK@5575..5576 "["
+ EXPR_VAR@5576..5577
+ NAME@5576..5577
+ IDENT@5576..5577 "k"
+ COMMA@5577..5578 ","
+ WHITESPACE@5578..5579 " "
+ EXPR_APPLY@5579..5606
+ EXPR_INDEX@5579..5597
+ EXPR_VAR@5579..5582
+ NAME@5579..5582
+ IDENT@5579..5582 "std"
+ DOT@5582..5583 "."
+ NAME@5583..5597
+ IDENT@5583..5597 "manifestPython"
+ ARGS_DESC@5597..5606
+ L_PAREN@5597..5598 "("
+ ARG@5598..5605
+ EXPR_INDEX_EXPR@5598..5605
+ LHS_EXPR@5598..5602
+ EXPR_VAR@5598..5602
+ NAME@5598..5602
+ IDENT@5598..5602 "conf"
+ L_BRACK@5602..5603 "["
+ EXPR_VAR@5603..5604
+ NAME@5603..5604
+ IDENT@5603..5604 "k"
+ R_BRACK@5604..5605 "]"
+ R_PAREN@5605..5606 ")"
+ R_BRACK@5606..5607 "]"
+ WHITESPACE@5607..5608 " "
+ FOR_SPEC@5608..5639
+ FOR_KW@5608..5611 "for"
+ WHITESPACE@5611..5612 " "
+ NAME@5612..5613
+ IDENT@5612..5613 "k"
+ WHITESPACE@5613..5614 " "
+ IN_KW@5614..5616 "in"
+ WHITESPACE@5616..5617 " "
+ EXPR_APPLY@5617..5639
+ EXPR_INDEX@5617..5633
+ EXPR_VAR@5617..5620
+ NAME@5617..5620
+ IDENT@5617..5620 "std"
+ DOT@5620..5621 "."
+ NAME@5621..5633
+ IDENT@5621..5633 "objectFields"
+ ARGS_DESC@5633..5639
+ L_PAREN@5633..5634 "("
+ ARG@5634..5638
+ EXPR_VAR@5634..5638
+ NAME@5634..5638
+ IDENT@5634..5638 "conf"
+ R_PAREN@5638..5639 ")"
+ R_BRACK@5639..5640 "]"
+ SEMI@5640..5641 ";"
+ WHITESPACE@5641..5646 "\n "
+ EXPR_APPLY@5646..5673
+ EXPR_INDEX@5646..5654
+ EXPR_VAR@5646..5649
+ NAME@5646..5649
+ IDENT@5646..5649 "std"
+ DOT@5649..5650 "."
+ NAME@5650..5654
+ IDENT@5650..5654 "join"
+ ARGS_DESC@5654..5673
+ L_PAREN@5654..5655 "("
+ ARG@5655..5659
+ EXPR_STRING@5655..5659
+ STRING_SINGLE@5655..5659 "'\\n'"
+ COMMA@5659..5660 ","
WHITESPACE@5660..5661 " "
- THEN_KW@5661..5665 "then"
- WHITESPACE@5665..5672 "\n "
- TRUE_EXPR@5672..5752
- EXPR_ERROR@5672..5752
- ERROR_KW@5672..5677 "error"
- WHITESPACE@5677..5678 " "
- EXPR_PARENED@5678..5752
- L_PAREN@5678..5679 "("
- EXPR_BINARY@5679..5751
- LHS_EXPR@5679..5730
- EXPR_STRING@5679..5730
- STRING_SINGLE@5679..5730 "'std.filterMap second ..."
- WHITESPACE@5730..5731 " "
- PLUS@5731..5732 "+"
- WHITESPACE@5732..5733 " "
- EXPR_APPLY@5733..5751
- EXPR_INDEX@5733..5741
- EXPR_VAR@5733..5736
- NAME@5733..5736
- IDENT@5733..5736 "std"
- DOT@5736..5737 "."
- NAME@5737..5741
- IDENT@5737..5741 "type"
- ARGS_DESC@5741..5751
- L_PAREN@5741..5742 "("
- ARG@5742..5750
- EXPR_VAR@5742..5750
- NAME@5742..5750
- IDENT@5742..5750 "map_func"
- R_PAREN@5750..5751 ")"
- R_PAREN@5751..5752 ")"
- WHITESPACE@5752..5757 "\n "
- ELSE_KW@5757..5761 "else"
- WHITESPACE@5761..5762 " "
- FALSE_EXPR@5762..5928
- EXPR_IF_THEN_ELSE@5762..5928
- IF_KW@5762..5764 "if"
- WHITESPACE@5764..5765 " "
- EXPR_UNARY@5765..5782
- NOT@5765..5766 "!"
- EXPR_APPLY@5766..5782
- EXPR_INDEX@5766..5777
- EXPR_VAR@5766..5769
- NAME@5766..5769
- IDENT@5766..5769 "std"
- DOT@5769..5770 "."
- NAME@5770..5777
- IDENT@5770..5777 "isArray"
- ARGS_DESC@5777..5782
- L_PAREN@5777..5778 "("
- ARG@5778..5781
- EXPR_VAR@5778..5781
- NAME@5778..5781
- IDENT@5778..5781 "arr"
- R_PAREN@5781..5782 ")"
- WHITESPACE@5782..5783 " "
- THEN_KW@5783..5787 "then"
- WHITESPACE@5787..5794 "\n "
- TRUE_EXPR@5794..5865
- EXPR_ERROR@5794..5865
- ERROR_KW@5794..5799 "error"
- WHITESPACE@5799..5800 " "
- EXPR_PARENED@5800..5865
- L_PAREN@5800..5801 "("
- EXPR_BINARY@5801..5864
- LHS_EXPR@5801..5848
- EXPR_STRING@5801..5848
- STRING_SINGLE@5801..5848 "'std.filterMap third ..."
- WHITESPACE@5848..5849 " "
- PLUS@5849..5850 "+"
- WHITESPACE@5850..5851 " "
- EXPR_APPLY@5851..5864
- EXPR_INDEX@5851..5859
- EXPR_VAR@5851..5854
- NAME@5851..5854
- IDENT@5851..5854 "std"
- DOT@5854..5855 "."
- NAME@5855..5859
- IDENT@5855..5859 "type"
- ARGS_DESC@5859..5864
- L_PAREN@5859..5860 "("
- ARG@5860..5863
- EXPR_VAR@5860..5863
- NAME@5860..5863
- IDENT@5860..5863 "arr"
- R_PAREN@5863..5864 ")"
- R_PAREN@5864..5865 ")"
- WHITESPACE@5865..5870 "\n "
- ELSE_KW@5870..5874 "else"
- WHITESPACE@5874..5881 "\n "
- FALSE_EXPR@5881..5928
- EXPR_APPLY@5881..5928
- EXPR_INDEX@5881..5888
- EXPR_VAR@5881..5884
- NAME@5881..5884
- IDENT@5881..5884 "std"
- DOT@5884..5885 "."
- NAME@5885..5888
- IDENT@5885..5888 "map"
- ARGS_DESC@5888..5928
- L_PAREN@5888..5889 "("
- ARG@5889..5897
- EXPR_VAR@5889..5897
- NAME@5889..5897
- IDENT@5889..5897 "map_func"
- COMMA@5897..5898 ","
- WHITESPACE@5898..5899 " "
- ARG@5899..5927
- EXPR_APPLY@5899..5927
- EXPR_INDEX@5899..5909
- EXPR_VAR@5899..5902
- NAME@5899..5902
- IDENT@5899..5902 "std"
- DOT@5902..5903 "."
- NAME@5903..5909
- IDENT@5903..5909 "filter"
- ARGS_DESC@5909..5927
- L_PAREN@5909..5910 "("
- ARG@5910..5921
- EXPR_VAR@5910..5921
- NAME@5910..5921
- IDENT@5910..5921 "filter_func"
- COMMA@5921..5922 ","
- WHITESPACE@5922..5923 " "
- ARG@5923..5926
- EXPR_VAR@5923..5926
- NAME@5923..5926
- IDENT@5923..5926 "arr"
- R_PAREN@5926..5927 ")"
- R_PAREN@5927..5928 ")"
- COMMA@5928..5929 ","
- WHITESPACE@5929..5933 "\n\n "
- MEMBER_FIELD@5933..6041
- FIELD_METHOD@5933..6041
- FIELD_NAME_FIXED@5933..5944
- NAME@5933..5944
- IDENT@5933..5944 "assertEqual"
- PARAMS_DESC@5944..5950
- L_PAREN@5944..5945 "("
- PARAM@5945..5946
- DESTRUCT_FULL@5945..5946
- NAME@5945..5946
- IDENT@5945..5946 "a"
- COMMA@5946..5947 ","
- WHITESPACE@5947..5948 " "
- PARAM@5948..5949
- DESTRUCT_FULL@5948..5949
- NAME@5948..5949
- IDENT@5948..5949 "b"
- R_PAREN@5949..5950 ")"
- COLONCOLON@5950..5952 "::"
- WHITESPACE@5952..5957 "\n "
- EXPR_IF_THEN_ELSE@5957..6041
- IF_KW@5957..5959 "if"
- WHITESPACE@5959..5960 " "
- EXPR_BINARY@5960..5966
- LHS_EXPR@5960..5961
- EXPR_VAR@5960..5961
- NAME@5960..5961
- IDENT@5960..5961 "a"
- WHITESPACE@5961..5962 " "
- EQ@5962..5964 "=="
- WHITESPACE@5964..5965 " "
- EXPR_VAR@5965..5966
- NAME@5965..5966
- IDENT@5965..5966 "b"
- WHITESPACE@5966..5967 " "
- THEN_KW@5967..5971 "then"
- WHITESPACE@5971..5978 "\n "
- TRUE_EXPR@5978..5982
- EXPR_LITERAL@5978..5982
- TRUE_KW@5978..5982 "true"
- WHITESPACE@5982..5987 "\n "
- ELSE_KW@5987..5991 "else"
- WHITESPACE@5991..5998 "\n "
- FALSE_EXPR@5998..6041
- EXPR_ERROR@5998..6041
- ERROR_KW@5998..6003 "error"
- WHITESPACE@6003..6004 " "
- EXPR_BINARY@6004..6041
- LHS_EXPR@6004..6037
- EXPR_BINARY@6004..6037
- LHS_EXPR@6004..6028
- EXPR_BINARY@6004..6028
- LHS_EXPR@6004..6024
- EXPR_STRING@6004..6024
- STRING_SINGLE@6004..6024 "'Assertion failed. '"
- WHITESPACE@6024..6025 " "
- PLUS@6025..6026 "+"
- WHITESPACE@6026..6027 " "
- EXPR_VAR@6027..6028
- NAME@6027..6028
- IDENT@6027..6028 "a"
- WHITESPACE@6028..6029 " "
- PLUS@6029..6030 "+"
- WHITESPACE@6030..6031 " "
- EXPR_STRING@6031..6037
- STRING_SINGLE@6031..6037 "' != '"
- WHITESPACE@6037..6038 " "
- PLUS@6038..6039 "+"
- WHITESPACE@6039..6040 " "
- EXPR_VAR@6040..6041
- NAME@6040..6041
- IDENT@6040..6041 "b"
- COMMA@6041..6042 ","
- WHITESPACE@6042..6046 "\n\n "
- MEMBER_FIELD@6046..6180
- FIELD_METHOD@6046..6180
- FIELD_NAME_FIXED@6046..6049
- NAME@6046..6049
- IDENT@6046..6049 "abs"
- PARAMS_DESC@6049..6052
- L_PAREN@6049..6050 "("
- PARAM@6050..6051
- DESTRUCT_FULL@6050..6051
- NAME@6050..6051
- IDENT@6050..6051 "n"
- R_PAREN@6051..6052 ")"
- COLONCOLON@6052..6054 "::"
- WHITESPACE@6054..6059 "\n "
- EXPR_IF_THEN_ELSE@6059..6180
- IF_KW@6059..6061 "if"
- WHITESPACE@6061..6062 " "
- EXPR_UNARY@6062..6078
- NOT@6062..6063 "!"
- EXPR_APPLY@6063..6078
- EXPR_INDEX@6063..6075
- EXPR_VAR@6063..6066
- NAME@6063..6066
- IDENT@6063..6066 "std"
- DOT@6066..6067 "."
- NAME@6067..6075
- IDENT@6067..6075 "isNumber"
- ARGS_DESC@6075..6078
- L_PAREN@6075..6076 "("
- ARG@6076..6077
- EXPR_VAR@6076..6077
- NAME@6076..6077
- IDENT@6076..6077 "n"
- R_PAREN@6077..6078 ")"
- WHITESPACE@6078..6079 " "
- THEN_KW@6079..6083 "then"
- WHITESPACE@6083..6090 "\n "
- TRUE_EXPR@6090..6141
- EXPR_ERROR@6090..6141
- ERROR_KW@6090..6095 "error"
- WHITESPACE@6095..6096 " "
- EXPR_BINARY@6096..6141
- LHS_EXPR@6096..6127
- EXPR_STRING@6096..6127
- STRING_SINGLE@6096..6127 "'std.abs expected num ..."
- WHITESPACE@6127..6128 " "
- PLUS@6128..6129 "+"
- WHITESPACE@6129..6130 " "
- EXPR_APPLY@6130..6141
- EXPR_INDEX@6130..6138
- EXPR_VAR@6130..6133
- NAME@6130..6133
- IDENT@6130..6133 "std"
- DOT@6133..6134 "."
- NAME@6134..6138
- IDENT@6134..6138 "type"
- ARGS_DESC@6138..6141
- L_PAREN@6138..6139 "("
- ARG@6139..6140
- EXPR_VAR@6139..6140
- NAME@6139..6140
- IDENT@6139..6140 "n"
- R_PAREN@6140..6141 ")"
- WHITESPACE@6141..6146 "\n "
- ELSE_KW@6146..6150 "else"
- WHITESPACE@6150..6157 "\n "
- FALSE_EXPR@6157..6180
- EXPR_IF_THEN_ELSE@6157..6180
- IF_KW@6157..6159 "if"
- WHITESPACE@6159..6160 " "
- EXPR_BINARY@6160..6165
- LHS_EXPR@6160..6161
- EXPR_VAR@6160..6161
- NAME@6160..6161
- IDENT@6160..6161 "n"
- WHITESPACE@6161..6162 " "
- GT@6162..6163 ">"
- WHITESPACE@6163..6164 " "
- EXPR_NUMBER@6164..6165
- FLOAT@6164..6165 "0"
- WHITESPACE@6165..6166 " "
- THEN_KW@6166..6170 "then"
- WHITESPACE@6170..6171 " "
- TRUE_EXPR@6171..6172
- EXPR_VAR@6171..6172
- NAME@6171..6172
- IDENT@6171..6172 "n"
- WHITESPACE@6172..6173 " "
- ELSE_KW@6173..6177 "else"
- WHITESPACE@6177..6178 " "
- FALSE_EXPR@6178..6180
- EXPR_UNARY@6178..6180
- MINUS@6178..6179 "-"
- EXPR_VAR@6179..6180
- NAME@6179..6180
- IDENT@6179..6180 "n"
- COMMA@6180..6181 ","
- WHITESPACE@6181..6185 "\n\n "
- MEMBER_FIELD@6185..6370
- FIELD_METHOD@6185..6370
- FIELD_NAME_FIXED@6185..6189
- NAME@6185..6189
- IDENT@6185..6189 "sign"
- PARAMS_DESC@6189..6192
- L_PAREN@6189..6190 "("
- PARAM@6190..6191
- DESTRUCT_FULL@6190..6191
- NAME@6190..6191
- IDENT@6190..6191 "n"
- R_PAREN@6191..6192 ")"
- COLONCOLON@6192..6194 "::"
- WHITESPACE@6194..6199 "\n "
- EXPR_IF_THEN_ELSE@6199..6370
- IF_KW@6199..6201 "if"
- WHITESPACE@6201..6202 " "
- EXPR_UNARY@6202..6218
- NOT@6202..6203 "!"
- EXPR_APPLY@6203..6218
- EXPR_INDEX@6203..6215
- EXPR_VAR@6203..6206
- NAME@6203..6206
- IDENT@6203..6206 "std"
- DOT@6206..6207 "."
- NAME@6207..6215
- IDENT@6207..6215 "isNumber"
- ARGS_DESC@6215..6218
- L_PAREN@6215..6216 "("
- ARG@6216..6217
- EXPR_VAR@6216..6217
- NAME@6216..6217
- IDENT@6216..6217 "n"
- R_PAREN@6217..6218 ")"
- WHITESPACE@6218..6219 " "
- THEN_KW@6219..6223 "then"
- WHITESPACE@6223..6230 "\n "
- TRUE_EXPR@6230..6282
- EXPR_ERROR@6230..6282
- ERROR_KW@6230..6235 "error"
- WHITESPACE@6235..6236 " "
- EXPR_BINARY@6236..6282
- LHS_EXPR@6236..6268
- EXPR_STRING@6236..6268
- STRING_SINGLE@6236..6268 "'std.sign expected nu ..."
- WHITESPACE@6268..6269 " "
- PLUS@6269..6270 "+"
- WHITESPACE@6270..6271 " "
- EXPR_APPLY@6271..6282
- EXPR_INDEX@6271..6279
- EXPR_VAR@6271..6274
- NAME@6271..6274
- IDENT@6271..6274 "std"
- DOT@6274..6275 "."
- NAME@6275..6279
- IDENT@6275..6279 "type"
- ARGS_DESC@6279..6282
- L_PAREN@6279..6280 "("
- ARG@6280..6281
- EXPR_VAR@6280..6281
- NAME@6280..6281
- IDENT@6280..6281 "n"
- R_PAREN@6281..6282 ")"
- WHITESPACE@6282..6287 "\n "
- ELSE_KW@6287..6291 "else"
- WHITESPACE@6291..6298 "\n "
- FALSE_EXPR@6298..6370
- EXPR_IF_THEN_ELSE@6298..6370
- IF_KW@6298..6300 "if"
- WHITESPACE@6300..6301 " "
- EXPR_BINARY@6301..6306
- LHS_EXPR@6301..6302
- EXPR_VAR@6301..6302
- NAME@6301..6302
- IDENT@6301..6302 "n"
- WHITESPACE@6302..6303 " "
- GT@6303..6304 ">"
- WHITESPACE@6304..6305 " "
- EXPR_NUMBER@6305..6306
- FLOAT@6305..6306 "0"
- WHITESPACE@6306..6307 " "
- THEN_KW@6307..6311 "then"
- WHITESPACE@6311..6320 "\n "
- TRUE_EXPR@6320..6321
- EXPR_NUMBER@6320..6321
- FLOAT@6320..6321 "1"
- WHITESPACE@6321..6328 "\n "
- ELSE_KW@6328..6332 "else"
- WHITESPACE@6332..6333 " "
- FALSE_EXPR@6333..6370
- EXPR_IF_THEN_ELSE@6333..6370
- IF_KW@6333..6335 "if"
- WHITESPACE@6335..6336 " "
- EXPR_BINARY@6336..6341
- LHS_EXPR@6336..6337
- EXPR_VAR@6336..6337
- NAME@6336..6337
- IDENT@6336..6337 "n"
- WHITESPACE@6337..6338 " "
- LT@6338..6339 "<"
- WHITESPACE@6339..6340 " "
- EXPR_NUMBER@6340..6341
- FLOAT@6340..6341 "0"
- WHITESPACE@6341..6342 " "
- THEN_KW@6342..6346 "then"
- WHITESPACE@6346..6355 "\n "
- TRUE_EXPR@6355..6357
- EXPR_UNARY@6355..6357
- MINUS@6355..6356 "-"
- EXPR_NUMBER@6356..6357
- FLOAT@6356..6357 "1"
- WHITESPACE@6357..6364 "\n "
- ELSE_KW@6364..6368 "else"
- WHITESPACE@6368..6369 " "
- FALSE_EXPR@6369..6370
- EXPR_NUMBER@6369..6370
- FLOAT@6369..6370 "0"
- COMMA@6370..6371 ","
- WHITESPACE@6371..6375 "\n\n "
- MEMBER_FIELD@6375..6628
- FIELD_METHOD@6375..6628
- FIELD_NAME_FIXED@6375..6378
- NAME@6375..6378
- IDENT@6375..6378 "max"
- PARAMS_DESC@6378..6384
- L_PAREN@6378..6379 "("
- PARAM@6379..6380
- DESTRUCT_FULL@6379..6380
- NAME@6379..6380
- IDENT@6379..6380 "a"
- COMMA@6380..6381 ","
- WHITESPACE@6381..6382 " "
- PARAM@6382..6383
- DESTRUCT_FULL@6382..6383
- NAME@6382..6383
- IDENT@6382..6383 "b"
- R_PAREN@6383..6384 ")"
- COLONCOLON@6384..6386 "::"
- WHITESPACE@6386..6391 "\n "
- EXPR_IF_THEN_ELSE@6391..6628
- IF_KW@6391..6393 "if"
- WHITESPACE@6393..6394 " "
- EXPR_UNARY@6394..6410
- NOT@6394..6395 "!"
- EXPR_APPLY@6395..6410
- EXPR_INDEX@6395..6407
- EXPR_VAR@6395..6398
- NAME@6395..6398
- IDENT@6395..6398 "std"
- DOT@6398..6399 "."
- NAME@6399..6407
- IDENT@6399..6407 "isNumber"
- ARGS_DESC@6407..6410
- L_PAREN@6407..6408 "("
- ARG@6408..6409
- EXPR_VAR@6408..6409
- NAME@6408..6409
- IDENT@6408..6409 "a"
- R_PAREN@6409..6410 ")"
- WHITESPACE@6410..6411 " "
- THEN_KW@6411..6415 "then"
- WHITESPACE@6415..6422 "\n "
- TRUE_EXPR@6422..6485
- EXPR_ERROR@6422..6485
- ERROR_KW@6422..6427 "error"
- WHITESPACE@6427..6428 " "
- EXPR_BINARY@6428..6485
- LHS_EXPR@6428..6471
- EXPR_STRING@6428..6471
- STRING_SINGLE@6428..6471 "'std.max first param ..."
- WHITESPACE@6471..6472 " "
- PLUS@6472..6473 "+"
- WHITESPACE@6473..6474 " "
- EXPR_APPLY@6474..6485
- EXPR_INDEX@6474..6482
- EXPR_VAR@6474..6477
- NAME@6474..6477
- IDENT@6474..6477 "std"
- DOT@6477..6478 "."
- NAME@6478..6482
- IDENT@6478..6482 "type"
- ARGS_DESC@6482..6485
- L_PAREN@6482..6483 "("
- ARG@6483..6484
- EXPR_VAR@6483..6484
- NAME@6483..6484
- IDENT@6483..6484 "a"
- R_PAREN@6484..6485 ")"
- WHITESPACE@6485..6490 "\n "
- ELSE_KW@6490..6494 "else"
- WHITESPACE@6494..6495 " "
- FALSE_EXPR@6495..6628
- EXPR_IF_THEN_ELSE@6495..6628
- IF_KW@6495..6497 "if"
- WHITESPACE@6497..6498 " "
- EXPR_UNARY@6498..6514
- NOT@6498..6499 "!"
- EXPR_APPLY@6499..6514
- EXPR_INDEX@6499..6511
- EXPR_VAR@6499..6502
- NAME@6499..6502
- IDENT@6499..6502 "std"
- DOT@6502..6503 "."
- NAME@6503..6511
- IDENT@6503..6511 "isNumber"
- ARGS_DESC@6511..6514
- L_PAREN@6511..6512 "("
- ARG@6512..6513
- EXPR_VAR@6512..6513
- NAME@6512..6513
- IDENT@6512..6513 "b"
- R_PAREN@6513..6514 ")"
- WHITESPACE@6514..6515 " "
- THEN_KW@6515..6519 "then"
- WHITESPACE@6519..6526 "\n "
- TRUE_EXPR@6526..6590
- EXPR_ERROR@6526..6590
- ERROR_KW@6526..6531 "error"
- WHITESPACE@6531..6532 " "
- EXPR_BINARY@6532..6590
- LHS_EXPR@6532..6576
- EXPR_STRING@6532..6576
- STRING_SINGLE@6532..6576 "'std.max second param ..."
- WHITESPACE@6576..6577 " "
- PLUS@6577..6578 "+"
- WHITESPACE@6578..6579 " "
- EXPR_APPLY@6579..6590
- EXPR_INDEX@6579..6587
- EXPR_VAR@6579..6582
- NAME@6579..6582
- IDENT@6579..6582 "std"
- DOT@6582..6583 "."
- NAME@6583..6587
- IDENT@6583..6587 "type"
- ARGS_DESC@6587..6590
- L_PAREN@6587..6588 "("
- ARG@6588..6589
- EXPR_VAR@6588..6589
- NAME@6588..6589
- IDENT@6588..6589 "b"
- R_PAREN@6589..6590 ")"
- WHITESPACE@6590..6595 "\n "
- ELSE_KW@6595..6599 "else"
- WHITESPACE@6599..6606 "\n "
- FALSE_EXPR@6606..6628
- EXPR_IF_THEN_ELSE@6606..6628
- IF_KW@6606..6608 "if"
- WHITESPACE@6608..6609 " "
- EXPR_BINARY@6609..6614
- LHS_EXPR@6609..6610
- EXPR_VAR@6609..6610
- NAME@6609..6610
- IDENT@6609..6610 "a"
- WHITESPACE@6610..6611 " "
- GT@6611..6612 ">"
- WHITESPACE@6612..6613 " "
- EXPR_VAR@6613..6614
- NAME@6613..6614
- IDENT@6613..6614 "b"
- WHITESPACE@6614..6615 " "
- THEN_KW@6615..6619 "then"
- WHITESPACE@6619..6620 " "
- TRUE_EXPR@6620..6621
- EXPR_VAR@6620..6621
- NAME@6620..6621
- IDENT@6620..6621 "a"
- WHITESPACE@6621..6622 " "
- ELSE_KW@6622..6626 "else"
- WHITESPACE@6626..6627 " "
- FALSE_EXPR@6627..6628
- EXPR_VAR@6627..6628
- NAME@6627..6628
- IDENT@6627..6628 "b"
- COMMA@6628..6629 ","
- WHITESPACE@6629..6633 "\n\n "
- MEMBER_FIELD@6633..6886
- FIELD_METHOD@6633..6886
- FIELD_NAME_FIXED@6633..6636
- NAME@6633..6636
- IDENT@6633..6636 "min"
- PARAMS_DESC@6636..6642
- L_PAREN@6636..6637 "("
- PARAM@6637..6638
- DESTRUCT_FULL@6637..6638
- NAME@6637..6638
- IDENT@6637..6638 "a"
- COMMA@6638..6639 ","
- WHITESPACE@6639..6640 " "
- PARAM@6640..6641
- DESTRUCT_FULL@6640..6641
- NAME@6640..6641
- IDENT@6640..6641 "b"
- R_PAREN@6641..6642 ")"
- COLONCOLON@6642..6644 "::"
- WHITESPACE@6644..6649 "\n "
- EXPR_IF_THEN_ELSE@6649..6886
- IF_KW@6649..6651 "if"
- WHITESPACE@6651..6652 " "
- EXPR_UNARY@6652..6668
- NOT@6652..6653 "!"
- EXPR_APPLY@6653..6668
- EXPR_INDEX@6653..6665
- EXPR_VAR@6653..6656
- NAME@6653..6656
- IDENT@6653..6656 "std"
- DOT@6656..6657 "."
- NAME@6657..6665
- IDENT@6657..6665 "isNumber"
- ARGS_DESC@6665..6668
- L_PAREN@6665..6666 "("
- ARG@6666..6667
- EXPR_VAR@6666..6667
- NAME@6666..6667
- IDENT@6666..6667 "a"
- R_PAREN@6667..6668 ")"
- WHITESPACE@6668..6669 " "
- THEN_KW@6669..6673 "then"
- WHITESPACE@6673..6680 "\n "
- TRUE_EXPR@6680..6743
- EXPR_ERROR@6680..6743
- ERROR_KW@6680..6685 "error"
- WHITESPACE@6685..6686 " "
- EXPR_BINARY@6686..6743
- LHS_EXPR@6686..6729
- EXPR_STRING@6686..6729
- STRING_SINGLE@6686..6729 "'std.min first param ..."
- WHITESPACE@6729..6730 " "
- PLUS@6730..6731 "+"
- WHITESPACE@6731..6732 " "
- EXPR_APPLY@6732..6743
- EXPR_INDEX@6732..6740
- EXPR_VAR@6732..6735
- NAME@6732..6735
- IDENT@6732..6735 "std"
- DOT@6735..6736 "."
- NAME@6736..6740
- IDENT@6736..6740 "type"
- ARGS_DESC@6740..6743
- L_PAREN@6740..6741 "("
- ARG@6741..6742
- EXPR_VAR@6741..6742
- NAME@6741..6742
- IDENT@6741..6742 "a"
- R_PAREN@6742..6743 ")"
- WHITESPACE@6743..6748 "\n "
- ELSE_KW@6748..6752 "else"
- WHITESPACE@6752..6753 " "
- FALSE_EXPR@6753..6886
- EXPR_IF_THEN_ELSE@6753..6886
- IF_KW@6753..6755 "if"
- WHITESPACE@6755..6756 " "
- EXPR_UNARY@6756..6772
- NOT@6756..6757 "!"
- EXPR_APPLY@6757..6772
- EXPR_INDEX@6757..6769
- EXPR_VAR@6757..6760
- NAME@6757..6760
- IDENT@6757..6760 "std"
- DOT@6760..6761 "."
- NAME@6761..6769
- IDENT@6761..6769 "isNumber"
- ARGS_DESC@6769..6772
- L_PAREN@6769..6770 "("
- ARG@6770..6771
- EXPR_VAR@6770..6771
- NAME@6770..6771
- IDENT@6770..6771 "b"
- R_PAREN@6771..6772 ")"
- WHITESPACE@6772..6773 " "
- THEN_KW@6773..6777 "then"
- WHITESPACE@6777..6784 "\n "
- TRUE_EXPR@6784..6848
- EXPR_ERROR@6784..6848
- ERROR_KW@6784..6789 "error"
- WHITESPACE@6789..6790 " "
- EXPR_BINARY@6790..6848
- LHS_EXPR@6790..6834
- EXPR_STRING@6790..6834
- STRING_SINGLE@6790..6834 "'std.min second param ..."
- WHITESPACE@6834..6835 " "
- PLUS@6835..6836 "+"
- WHITESPACE@6836..6837 " "
- EXPR_APPLY@6837..6848
- EXPR_INDEX@6837..6845
- EXPR_VAR@6837..6840
- NAME@6837..6840
- IDENT@6837..6840 "std"
- DOT@6840..6841 "."
- NAME@6841..6845
- IDENT@6841..6845 "type"
- ARGS_DESC@6845..6848
- L_PAREN@6845..6846 "("
- ARG@6846..6847
- EXPR_VAR@6846..6847
- NAME@6846..6847
- IDENT@6846..6847 "b"
- R_PAREN@6847..6848 ")"
- WHITESPACE@6848..6853 "\n "
- ELSE_KW@6853..6857 "else"
- WHITESPACE@6857..6864 "\n "
- FALSE_EXPR@6864..6886
- EXPR_IF_THEN_ELSE@6864..6886
- IF_KW@6864..6866 "if"
- WHITESPACE@6866..6867 " "
- EXPR_BINARY@6867..6872
- LHS_EXPR@6867..6868
- EXPR_VAR@6867..6868
- NAME@6867..6868
- IDENT@6867..6868 "a"
- WHITESPACE@6868..6869 " "
- LT@6869..6870 "<"
- WHITESPACE@6870..6871 " "
- EXPR_VAR@6871..6872
- NAME@6871..6872
- IDENT@6871..6872 "b"
- WHITESPACE@6872..6873 " "
- THEN_KW@6873..6877 "then"
- WHITESPACE@6877..6878 " "
- TRUE_EXPR@6878..6879
- EXPR_VAR@6878..6879
- NAME@6878..6879
- IDENT@6878..6879 "a"
- WHITESPACE@6879..6880 " "
- ELSE_KW@6880..6884 "else"
- WHITESPACE@6884..6885 " "
- FALSE_EXPR@6885..6886
- EXPR_VAR@6885..6886
- NAME@6885..6886
- IDENT@6885..6886 "b"
- COMMA@6886..6887 ","
- WHITESPACE@6887..6891 "\n\n "
- MEMBER_FIELD@6891..6993
- FIELD_METHOD@6891..6993
- FIELD_NAME_FIXED@6891..6896
- NAME@6891..6896
- IDENT@6891..6896 "clamp"
- PARAMS_DESC@6896..6915
- L_PAREN@6896..6897 "("
- PARAM@6897..6898
- DESTRUCT_FULL@6897..6898
- NAME@6897..6898
- IDENT@6897..6898 "x"
- COMMA@6898..6899 ","
- WHITESPACE@6899..6900 " "
- PARAM@6900..6906
- DESTRUCT_FULL@6900..6906
- NAME@6900..6906
- IDENT@6900..6906 "minVal"
- COMMA@6906..6907 ","
- WHITESPACE@6907..6908 " "
- PARAM@6908..6914
- DESTRUCT_FULL@6908..6914
- NAME@6908..6914
- IDENT@6908..6914 "maxVal"
- R_PAREN@6914..6915 ")"
- COLONCOLON@6915..6917 "::"
- WHITESPACE@6917..6922 "\n "
- EXPR_IF_THEN_ELSE@6922..6993
- IF_KW@6922..6924 "if"
- WHITESPACE@6924..6925 " "
- EXPR_BINARY@6925..6935
- LHS_EXPR@6925..6926
- EXPR_VAR@6925..6926
- NAME@6925..6926
- IDENT@6925..6926 "x"
- WHITESPACE@6926..6927 " "
- LT@6927..6928 "<"
- WHITESPACE@6928..6929 " "
- EXPR_VAR@6929..6935
- NAME@6929..6935
- IDENT@6929..6935 "minVal"
- WHITESPACE@6935..6936 " "
- THEN_KW@6936..6940 "then"
- WHITESPACE@6940..6941 " "
- TRUE_EXPR@6941..6947
- EXPR_VAR@6941..6947
- NAME@6941..6947
- IDENT@6941..6947 "minVal"
- WHITESPACE@6947..6952 "\n "
- ELSE_KW@6952..6956 "else"
- WHITESPACE@6956..6957 " "
- FALSE_EXPR@6957..6993
- EXPR_IF_THEN_ELSE@6957..6993
- IF_KW@6957..6959 "if"
- WHITESPACE@6959..6960 " "
- EXPR_BINARY@6960..6970
- LHS_EXPR@6960..6961
- EXPR_VAR@6960..6961
- NAME@6960..6961
- IDENT@6960..6961 "x"
- WHITESPACE@6961..6962 " "
- GT@6962..6963 ">"
- WHITESPACE@6963..6964 " "
- EXPR_VAR@6964..6970
- NAME@6964..6970
- IDENT@6964..6970 "maxVal"
- WHITESPACE@6970..6971 " "
- THEN_KW@6971..6975 "then"
- WHITESPACE@6975..6976 " "
- TRUE_EXPR@6976..6982
- EXPR_VAR@6976..6982
- NAME@6976..6982
- IDENT@6976..6982 "maxVal"
- WHITESPACE@6982..6987 "\n "
- ELSE_KW@6987..6991 "else"
- WHITESPACE@6991..6992 " "
- FALSE_EXPR@6992..6993
- EXPR_VAR@6992..6993
- NAME@6992..6993
- IDENT@6992..6993 "x"
- COMMA@6993..6994 ","
- WHITESPACE@6994..6998 "\n\n "
- MEMBER_FIELD@6998..7065
- FIELD_METHOD@6998..7065
- FIELD_NAME_FIXED@6998..7011
- NAME@6998..7011
- IDENT@6998..7011 "flattenArrays"
- PARAMS_DESC@7011..7017
- L_PAREN@7011..7012 "("
- PARAM@7012..7016
- DESTRUCT_FULL@7012..7016
- NAME@7012..7016
- IDENT@7012..7016 "arrs"
- R_PAREN@7016..7017 ")"
- COLONCOLON@7017..7019 "::"
- WHITESPACE@7019..7024 "\n "
- EXPR_APPLY@7024..7065
- EXPR_INDEX@7024..7033
- EXPR_VAR@7024..7027
- NAME@7024..7027
- IDENT@7024..7027 "std"
- DOT@7027..7028 "."
- NAME@7028..7033
- IDENT@7028..7033 "foldl"
- ARGS_DESC@7033..7065
- L_PAREN@7033..7034 "("
- ARG@7034..7054
- EXPR_FUNCTION@7034..7054
- FUNCTION_KW@7034..7042 "function"
- PARAMS_DESC@7042..7048
- L_PAREN@7042..7043 "("
- PARAM@7043..7044
- DESTRUCT_FULL@7043..7044
- NAME@7043..7044
- IDENT@7043..7044 "a"
- COMMA@7044..7045 ","
- WHITESPACE@7045..7046 " "
- PARAM@7046..7047
- DESTRUCT_FULL@7046..7047
- NAME@7046..7047
- IDENT@7046..7047 "b"
- R_PAREN@7047..7048 ")"
- WHITESPACE@7048..7049 " "
- EXPR_BINARY@7049..7054
- LHS_EXPR@7049..7050
- EXPR_VAR@7049..7050
- NAME@7049..7050
- IDENT@7049..7050 "a"
- WHITESPACE@7050..7051 " "
- PLUS@7051..7052 "+"
- WHITESPACE@7052..7053 " "
- EXPR_VAR@7053..7054
- NAME@7053..7054
- IDENT@7053..7054 "b"
- COMMA@7054..7055 ","
- WHITESPACE@7055..7056 " "
- ARG@7056..7060
- EXPR_VAR@7056..7060
- NAME@7056..7060
- IDENT@7056..7060 "arrs"
- COMMA@7060..7061 ","
- WHITESPACE@7061..7062 " "
- ARG@7062..7064
- EXPR_ARRAY@7062..7064
- L_BRACK@7062..7063 "["
- R_BRACK@7063..7064 "]"
- R_PAREN@7064..7065 ")"
- COMMA@7065..7066 ","
- WHITESPACE@7066..7070 "\n\n "
- MEMBER_FIELD@7070..7756
- FIELD_METHOD@7070..7756
- FIELD_NAME_FIXED@7070..7081
- NAME@7070..7081
- IDENT@7070..7081 "manifestIni"
- PARAMS_DESC@7081..7086
- L_PAREN@7081..7082 "("
- PARAM@7082..7085
- DESTRUCT_FULL@7082..7085
- NAME@7082..7085
- IDENT@7082..7085 "ini"
- R_PAREN@7085..7086 ")"
- COLONCOLON@7086..7088 "::"
- WHITESPACE@7088..7093 "\n "
- EXPR_LOCAL@7093..7756
- LOCAL_KW@7093..7098 "local"
- WHITESPACE@7098..7099 " "
- BIND_FUNCTION@7099..7396
- NAME@7099..7109
- IDENT@7099..7109 "body_lines"
- PARAMS_DESC@7109..7115
- L_PAREN@7109..7110 "("
- PARAM@7110..7114
- DESTRUCT_FULL@7110..7114
- NAME@7110..7114
- IDENT@7110..7114 "body"
- R_PAREN@7114..7115 ")"
- WHITESPACE@7115..7116 " "
- ASSIGN@7116..7117 "="
- WHITESPACE@7117..7124 "\n "
- EXPR_APPLY@7124..7396
- EXPR_INDEX@7124..7132
- EXPR_VAR@7124..7127
- NAME@7124..7127
- IDENT@7124..7127 "std"
- DOT@7127..7128 "."
- NAME@7128..7132
- IDENT@7128..7132 "join"
- ARGS_DESC@7132..7396
- L_PAREN@7132..7133 "("
- ARG@7133..7135
- EXPR_ARRAY@7133..7135
- L_BRACK@7133..7134 "["
- R_BRACK@7134..7135 "]"
- COMMA@7135..7136 ","
- WHITESPACE@7136..7137 " "
- ARG@7137..7395
- EXPR_ARRAY_COMP@7137..7395
- L_BRACK@7137..7138 "["
- WHITESPACE@7138..7147 "\n "
- EXPR_LOCAL@7147..7346
- LOCAL_KW@7147..7152 "local"
- WHITESPACE@7152..7153 " "
- BIND_DESTRUCT@7153..7178
- DESTRUCT_FULL@7153..7168
- NAME@7153..7168
- IDENT@7153..7168 "value_or_values"
- WHITESPACE@7168..7169 " "
- ASSIGN@7169..7170 "="
- WHITESPACE@7170..7171 " "
- EXPR_INDEX_EXPR@7171..7178
- LHS_EXPR@7171..7175
- EXPR_VAR@7171..7175
- NAME@7171..7175
- IDENT@7171..7175 "body"
- L_BRACK@7175..7176 "["
- EXPR_VAR@7176..7177
- NAME@7176..7177
- IDENT@7176..7177 "k"
- R_BRACK@7177..7178 "]"
- SEMI@7178..7179 ";"
- WHITESPACE@7179..7188 "\n "
- EXPR_IF_THEN_ELSE@7188..7346
- IF_KW@7188..7190 "if"
- WHITESPACE@7190..7191 " "
- EXPR_APPLY@7191..7219
- EXPR_INDEX@7191..7202
- EXPR_VAR@7191..7194
- NAME@7191..7194
- IDENT@7191..7194 "std"
- DOT@7194..7195 "."
- NAME@7195..7202
- IDENT@7195..7202 "isArray"
- ARGS_DESC@7202..7219
- L_PAREN@7202..7203 "("
- ARG@7203..7218
- EXPR_VAR@7203..7218
- NAME@7203..7218
- IDENT@7203..7218 "value_or_values"
- R_PAREN@7218..7219 ")"
- WHITESPACE@7219..7220 " "
- THEN_KW@7220..7224 "then"
- WHITESPACE@7224..7235 "\n "
- TRUE_EXPR@7235..7288
- EXPR_ARRAY_COMP@7235..7288
- L_BRACK@7235..7236 "["
- EXPR_BINARY@7236..7258
- LHS_EXPR@7236..7245
- EXPR_STRING@7236..7245
- STRING_SINGLE@7236..7245 "'%s = %s'"
- WHITESPACE@7245..7246 " "
- MODULO@7246..7247 "%"
- WHITESPACE@7247..7248 " "
- EXPR_ARRAY@7248..7258
- L_BRACK@7248..7249 "["
- EXPR_VAR@7249..7250
- NAME@7249..7250
- IDENT@7249..7250 "k"
- COMMA@7250..7251 ","
- WHITESPACE@7251..7252 " "
- EXPR_VAR@7252..7257
- NAME@7252..7257
- IDENT@7252..7257 "value"
- R_BRACK@7257..7258 "]"
- WHITESPACE@7258..7259 " "
- FOR_SPEC@7259..7287
- FOR_KW@7259..7262 "for"
- WHITESPACE@7262..7263 " "
- NAME@7263..7268
- IDENT@7263..7268 "value"
- WHITESPACE@7268..7269 " "
- IN_KW@7269..7271 "in"
- WHITESPACE@7271..7272 " "
- EXPR_VAR@7272..7287
- NAME@7272..7287
- IDENT@7272..7287 "value_or_values"
- R_BRACK@7287..7288 "]"
- WHITESPACE@7288..7297 "\n "
- ELSE_KW@7297..7301 "else"
- WHITESPACE@7301..7312 "\n "
- FALSE_EXPR@7312..7346
- EXPR_ARRAY@7312..7346
- L_BRACK@7312..7313 "["
- EXPR_BINARY@7313..7345
- LHS_EXPR@7313..7322
- EXPR_STRING@7313..7322
- STRING_SINGLE@7313..7322 "'%s = %s'"
- WHITESPACE@7322..7323 " "
- MODULO@7323..7324 "%"
- WHITESPACE@7324..7325 " "
- EXPR_ARRAY@7325..7345
- L_BRACK@7325..7326 "["
- EXPR_VAR@7326..7327
- NAME@7326..7327
- IDENT@7326..7327 "k"
- COMMA@7327..7328 ","
- WHITESPACE@7328..7329 " "
- EXPR_VAR@7329..7344
- NAME@7329..7344
- IDENT@7329..7344 "value_or_values"
- R_BRACK@7344..7345 "]"
- R_BRACK@7345..7346 "]"
- WHITESPACE@7346..7356 "\n\n "
- FOR_SPEC@7356..7387
- FOR_KW@7356..7359 "for"
- WHITESPACE@7359..7360 " "
- NAME@7360..7361
- IDENT@7360..7361 "k"
- WHITESPACE@7361..7362 " "
- IN_KW@7362..7364 "in"
- WHITESPACE@7364..7365 " "
- EXPR_APPLY@7365..7387
- EXPR_INDEX@7365..7381
- EXPR_VAR@7365..7368
- NAME@7365..7368
- IDENT@7365..7368 "std"
- DOT@7368..7369 "."
- NAME@7369..7381
- IDENT@7369..7381 "objectFields"
- ARGS_DESC@7381..7387
- L_PAREN@7381..7382 "("
- ARG@7382..7386
- EXPR_VAR@7382..7386
- NAME@7382..7386
- IDENT@7382..7386 "body"
- R_PAREN@7386..7387 ")"
- WHITESPACE@7387..7394 "\n "
- R_BRACK@7394..7395 "]"
- R_PAREN@7395..7396 ")"
- SEMI@7396..7397 ";"
- WHITESPACE@7397..7403 "\n\n "
- EXPR_LOCAL@7403..7756
- LOCAL_KW@7403..7408 "local"
- WHITESPACE@7408..7409 " "
- BIND_FUNCTION@7409..7477
- NAME@7409..7422
- IDENT@7409..7422 "section_lines"
- PARAMS_DESC@7422..7436
- L_PAREN@7422..7423 "("
- PARAM@7423..7428
- DESTRUCT_FULL@7423..7428
- NAME@7423..7428
- IDENT@7423..7428 "sname"
- COMMA@7428..7429 ","
- WHITESPACE@7429..7430 " "
- PARAM@7430..7435
- DESTRUCT_FULL@7430..7435
- NAME@7430..7435
- IDENT@7430..7435 "sbody"
- R_PAREN@7435..7436 ")"
- WHITESPACE@7436..7437 " "
- ASSIGN@7437..7438 "="
- WHITESPACE@7438..7439 " "
- EXPR_BINARY@7439..7477
- LHS_EXPR@7439..7457
- EXPR_ARRAY@7439..7457
- L_BRACK@7439..7440 "["
- EXPR_BINARY@7440..7456
- LHS_EXPR@7440..7446
- EXPR_STRING@7440..7446
- STRING_SINGLE@7440..7446 "'[%s]'"
- WHITESPACE@7446..7447 " "
- MODULO@7447..7448 "%"
- WHITESPACE@7448..7449 " "
- EXPR_ARRAY@7449..7456
- L_BRACK@7449..7450 "["
- EXPR_VAR@7450..7455
- NAME@7450..7455
- IDENT@7450..7455 "sname"
- R_BRACK@7455..7456 "]"
- R_BRACK@7456..7457 "]"
- WHITESPACE@7457..7458 " "
- PLUS@7458..7459 "+"
- WHITESPACE@7459..7460 " "
- EXPR_APPLY@7460..7477
- EXPR_VAR@7460..7470
- NAME@7460..7470
- IDENT@7460..7470 "body_lines"
- ARGS_DESC@7470..7477
- L_PAREN@7470..7471 "("
- ARG@7471..7476
- EXPR_VAR@7471..7476
- NAME@7471..7476
- IDENT@7471..7476 "sbody"
- R_PAREN@7476..7477 ")"
- COMMA@7477..7478 ","
- WHITESPACE@7478..7489 "\n "
- BIND_DESTRUCT@7489..7564
- DESTRUCT_FULL@7489..7498
- NAME@7489..7498
- IDENT@7489..7498 "main_body"
- WHITESPACE@7498..7499 " "
- ASSIGN@7499..7500 "="
- WHITESPACE@7500..7501 " "
- EXPR_IF_THEN_ELSE@7501..7564
- IF_KW@7501..7503 "if"
- WHITESPACE@7503..7504 " "
- EXPR_APPLY@7504..7530
- EXPR_INDEX@7504..7517
- EXPR_VAR@7504..7507
- NAME@7504..7507
- IDENT@7504..7507 "std"
- DOT@7507..7508 "."
- NAME@7508..7517
- IDENT@7508..7517 "objectHas"
- ARGS_DESC@7517..7530
- L_PAREN@7517..7518 "("
- ARG@7518..7521
- EXPR_VAR@7518..7521
- NAME@7518..7521
- IDENT@7518..7521 "ini"
- COMMA@7521..7522 ","
- WHITESPACE@7522..7523 " "
- ARG@7523..7529
- EXPR_STRING@7523..7529
- STRING_SINGLE@7523..7529 "'main'"
- R_PAREN@7529..7530 ")"
- WHITESPACE@7530..7531 " "
- THEN_KW@7531..7535 "then"
- WHITESPACE@7535..7536 " "
- TRUE_EXPR@7536..7556
- EXPR_APPLY@7536..7556
- EXPR_VAR@7536..7546
- NAME@7536..7546
- IDENT@7536..7546 "body_lines"
- ARGS_DESC@7546..7556
- L_PAREN@7546..7547 "("
- ARG@7547..7555
- EXPR_INDEX@7547..7555
- EXPR_VAR@7547..7550
- NAME@7547..7550
- IDENT@7547..7550 "ini"
- DOT@7550..7551 "."
- NAME@7551..7555
- IDENT@7551..7555 "main"
- R_PAREN@7555..7556 ")"
- WHITESPACE@7556..7557 " "
- ELSE_KW@7557..7561 "else"
- WHITESPACE@7561..7562 " "
- FALSE_EXPR@7562..7564
- EXPR_ARRAY@7562..7564
- L_BRACK@7562..7563 "["
- R_BRACK@7563..7564 "]"
- COMMA@7564..7565 ","
- WHITESPACE@7565..7576 "\n "
- BIND_DESTRUCT@7576..7684
- DESTRUCT_FULL@7576..7588
- NAME@7576..7588
- IDENT@7576..7588 "all_sections"
- WHITESPACE@7588..7589 " "
- ASSIGN@7589..7590 "="
- WHITESPACE@7590..7591 " "
- EXPR_ARRAY_COMP@7591..7684
- L_BRACK@7591..7592 "["
- WHITESPACE@7592..7599 "\n "
- EXPR_APPLY@7599..7632
- EXPR_VAR@7599..7612
- NAME@7599..7612
- IDENT@7599..7612 "section_lines"
- ARGS_DESC@7612..7632
- L_PAREN@7612..7613 "("
- ARG@7613..7614
- EXPR_VAR@7613..7614
- NAME@7613..7614
- IDENT@7613..7614 "k"
- COMMA@7614..7615 ","
- WHITESPACE@7615..7616 " "
- ARG@7616..7631
- EXPR_INDEX_EXPR@7616..7631
- LHS_EXPR@7616..7628
- EXPR_INDEX@7616..7628
- EXPR_VAR@7616..7619
- NAME@7616..7619
- IDENT@7616..7619 "ini"
- DOT@7619..7620 "."
- NAME@7620..7628
- IDENT@7620..7628 "sections"
- L_BRACK@7628..7629 "["
- EXPR_VAR@7629..7630
- NAME@7629..7630
- IDENT@7629..7630 "k"
- R_BRACK@7630..7631 "]"
- R_PAREN@7631..7632 ")"
- WHITESPACE@7632..7639 "\n "
- FOR_SPEC@7639..7678
- FOR_KW@7639..7642 "for"
- WHITESPACE@7642..7643 " "
- NAME@7643..7644
- IDENT@7643..7644 "k"
- WHITESPACE@7644..7645 " "
- IN_KW@7645..7647 "in"
- WHITESPACE@7647..7648 " "
- EXPR_APPLY@7648..7678
- EXPR_INDEX@7648..7664
- EXPR_VAR@7648..7651
- NAME@7648..7651
- IDENT@7648..7651 "std"
- DOT@7651..7652 "."
- NAME@7652..7664
- IDENT@7652..7664 "objectFields"
- ARGS_DESC@7664..7678
- L_PAREN@7664..7665 "("
- ARG@7665..7677
- EXPR_INDEX@7665..7677
- EXPR_VAR@7665..7668
- NAME@7665..7668
- IDENT@7665..7668 "ini"
- DOT@7668..7669 "."
- NAME@7669..7677
- IDENT@7669..7677 "sections"
- R_PAREN@7677..7678 ")"
- WHITESPACE@7678..7683 "\n "
- R_BRACK@7683..7684 "]"
- SEMI@7684..7685 ";"
- WHITESPACE@7685..7690 "\n "
- EXPR_APPLY@7690..7756
- EXPR_INDEX@7690..7698
- EXPR_VAR@7690..7693
- NAME@7690..7693
- IDENT@7690..7693 "std"
- DOT@7693..7694 "."
- NAME@7694..7698
- IDENT@7694..7698 "join"
- ARGS_DESC@7698..7756
- L_PAREN@7698..7699 "("
- ARG@7699..7703
- EXPR_STRING@7699..7703
- STRING_SINGLE@7699..7703 "'\\n'"
- COMMA@7703..7704 ","
- WHITESPACE@7704..7705 " "
- ARG@7705..7755
- EXPR_BINARY@7705..7755
- LHS_EXPR@7705..7748
- EXPR_BINARY@7705..7748
- LHS_EXPR@7705..7714
- EXPR_VAR@7705..7714
- NAME@7705..7714
- IDENT@7705..7714 "main_body"
- WHITESPACE@7714..7715 " "
- PLUS@7715..7716 "+"
- WHITESPACE@7716..7717 " "
- EXPR_APPLY@7717..7748
- EXPR_INDEX@7717..7734
- EXPR_VAR@7717..7720
- NAME@7717..7720
- IDENT@7717..7720 "std"
- DOT@7720..7721 "."
- NAME@7721..7734
- IDENT@7721..7734 "flattenArrays"
- ARGS_DESC@7734..7748
- L_PAREN@7734..7735 "("
- ARG@7735..7747
- EXPR_VAR@7735..7747
- NAME@7735..7747
- IDENT@7735..7747 "all_sections"
- R_PAREN@7747..7748 ")"
- WHITESPACE@7748..7749 " "
- PLUS@7749..7750 "+"
- WHITESPACE@7750..7751 " "
- EXPR_ARRAY@7751..7755
- L_BRACK@7751..7752 "["
- EXPR_STRING@7752..7754
- STRING_SINGLE@7752..7754 "''"
- R_BRACK@7754..7755 "]"
- R_PAREN@7755..7756 ")"
- COMMA@7756..7757 ","
- WHITESPACE@7757..7761 "\n\n "
- MEMBER_FIELD@7761..7814
- FIELD_METHOD@7761..7814
- FIELD_NAME_FIXED@7761..7773
- NAME@7761..7773
- IDENT@7761..7773 "manifestToml"
- PARAMS_DESC@7773..7780
- L_PAREN@7773..7774 "("
- PARAM@7774..7779
- DESTRUCT_FULL@7774..7779
- NAME@7774..7779
- IDENT@7774..7779 "value"
- R_PAREN@7779..7780 ")"
- COLONCOLON@7780..7782 "::"
- WHITESPACE@7782..7783 " "
- EXPR_APPLY@7783..7814
- EXPR_INDEX@7783..7801
- EXPR_VAR@7783..7786
- NAME@7783..7786
- IDENT@7783..7786 "std"
- DOT@7786..7787 "."
- NAME@7787..7801
- IDENT@7787..7801 "manifestTomlEx"
- ARGS_DESC@7801..7814
- L_PAREN@7801..7802 "("
- ARG@7802..7807
- EXPR_VAR@7802..7807
- NAME@7802..7807
- IDENT@7802..7807 "value"
- COMMA@7807..7808 ","
- WHITESPACE@7808..7809 " "
- ARG@7809..7813
- EXPR_STRING@7809..7813
- STRING_SINGLE@7809..7813 "' '"
- R_PAREN@7813..7814 ")"
- COMMA@7814..7815 ","
- WHITESPACE@7815..7819 "\n\n "
- MEMBER_FIELD@7819..11476
- FIELD_METHOD@7819..11476
- FIELD_NAME_FIXED@7819..7833
- NAME@7819..7833
- IDENT@7819..7833 "manifestTomlEx"
- PARAMS_DESC@7833..7848
- L_PAREN@7833..7834 "("
- PARAM@7834..7839
- DESTRUCT_FULL@7834..7839
- NAME@7834..7839
- IDENT@7834..7839 "value"
- COMMA@7839..7840 ","
- WHITESPACE@7840..7841 " "
- PARAM@7841..7847
- DESTRUCT_FULL@7841..7847
- NAME@7841..7847
- IDENT@7841..7847 "indent"
- R_PAREN@7847..7848 ")"
- COLONCOLON@7848..7850 "::"
- WHITESPACE@7850..7855 "\n "
- EXPR_LOCAL@7855..11476
- LOCAL_KW@7855..7860 "local"
- WHITESPACE@7860..7867 "\n "
- BIND_DESTRUCT@7867..7906
- DESTRUCT_FULL@7867..7883
- NAME@7867..7883
- IDENT@7867..7883 "escapeStringToml"
- WHITESPACE@7883..7884 " "
- ASSIGN@7884..7885 "="
- WHITESPACE@7885..7886 " "
- EXPR_INDEX@7886..7906
- EXPR_VAR@7886..7889
- NAME@7886..7889
- IDENT@7886..7889 "std"
- DOT@7889..7890 "."
- NAME@7890..7906
- IDENT@7890..7906 "escapeStringJson"
- COMMA@7906..7907 ","
- WHITESPACE@7907..7914 "\n "
- BIND_FUNCTION@7914..8178
- NAME@7914..7927
- IDENT@7914..7927 "escapeKeyToml"
- PARAMS_DESC@7927..7932
- L_PAREN@7927..7928 "("
- PARAM@7928..7931
- DESTRUCT_FULL@7928..7931
- NAME@7928..7931
- IDENT@7928..7931 "key"
- R_PAREN@7931..7932 ")"
- WHITESPACE@7932..7933 " "
- ASSIGN@7933..7934 "="
- WHITESPACE@7934..7943 "\n "
- EXPR_LOCAL@7943..8178
- LOCAL_KW@7943..7948 "local"
- WHITESPACE@7948..7949 " "
- BIND_DESTRUCT@7949..8056
- DESTRUCT_FULL@7949..7961
- NAME@7949..7961
- IDENT@7949..7961 "bare_allowed"
- WHITESPACE@7961..7962 " "
- ASSIGN@7962..7963 "="
- WHITESPACE@7963..7964 " "
- EXPR_APPLY@7964..8056
- EXPR_INDEX@7964..7971
- EXPR_VAR@7964..7967
- NAME@7964..7967
- IDENT@7964..7967 "std"
- DOT@7967..7968 "."
- NAME@7968..7971
- IDENT@7968..7971 "set"
- ARGS_DESC@7971..8056
- L_PAREN@7971..7972 "("
- ARG@7972..8055
- EXPR_APPLY@7972..8055
- EXPR_INDEX@7972..7987
- EXPR_VAR@7972..7975
- NAME@7972..7975
- IDENT@7972..7975 "std"
- DOT@7975..7976 "."
- NAME@7976..7987
- IDENT@7976..7987 "stringChars"
- ARGS_DESC@7987..8055
- L_PAREN@7987..7988 "("
- ARG@7988..8054
- EXPR_STRING@7988..8054
- STRING_SINGLE@7988..8054 "'ABCDEFGHIJKLMNOPQRST ..."
- R_PAREN@8054..8055 ")"
- R_PAREN@8055..8056 ")"
- SEMI@8056..8057 ";"
- WHITESPACE@8057..8066 "\n "
- EXPR_IF_THEN_ELSE@8066..8178
- IF_KW@8066..8068 "if"
- WHITESPACE@8068..8069 " "
- EXPR_BINARY@8069..8142
- LHS_EXPR@8069..8126
- EXPR_APPLY@8069..8126
- EXPR_INDEX@8069..8081
- EXPR_VAR@8069..8072
- NAME@8069..8072
- IDENT@8069..8072 "std"
- DOT@8072..8073 "."
- NAME@8073..8081
- IDENT@8073..8081 "setUnion"
- ARGS_DESC@8081..8126
- L_PAREN@8081..8082 "("
- ARG@8082..8111
- EXPR_APPLY@8082..8111
- EXPR_INDEX@8082..8089
- EXPR_VAR@8082..8085
- NAME@8082..8085
- IDENT@8082..8085 "std"
- DOT@8085..8086 "."
- NAME@8086..8089
- IDENT@8086..8089 "set"
- ARGS_DESC@8089..8111
- L_PAREN@8089..8090 "("
- ARG@8090..8110
- EXPR_APPLY@8090..8110
- EXPR_INDEX@8090..8105
- EXPR_VAR@8090..8093
- NAME@8090..8093
- IDENT@8090..8093 "std"
- DOT@8093..8094 "."
- NAME@8094..8105
- IDENT@8094..8105 "stringChars"
- ARGS_DESC@8105..8110
- L_PAREN@8105..8106 "("
- ARG@8106..8109
- EXPR_VAR@8106..8109
- NAME@8106..8109
- IDENT@8106..8109 "key"
- R_PAREN@8109..8110 ")"
- R_PAREN@8110..8111 ")"
- COMMA@8111..8112 ","
- WHITESPACE@8112..8113 " "
- ARG@8113..8125
- EXPR_VAR@8113..8125
- NAME@8113..8125
- IDENT@8113..8125 "bare_allowed"
- R_PAREN@8125..8126 ")"
- WHITESPACE@8126..8127 " "
- EQ@8127..8129 "=="
- WHITESPACE@8129..8130 " "
- EXPR_VAR@8130..8142
- NAME@8130..8142
- IDENT@8130..8142 "bare_allowed"
- WHITESPACE@8142..8143 " "
- THEN_KW@8143..8147 "then"
- WHITESPACE@8147..8148 " "
- TRUE_EXPR@8148..8151
- EXPR_VAR@8148..8151
- NAME@8148..8151
- IDENT@8148..8151 "key"
- WHITESPACE@8151..8152 " "
- ELSE_KW@8152..8156 "else"
- WHITESPACE@8156..8157 " "
- FALSE_EXPR@8157..8178
- EXPR_APPLY@8157..8178
- EXPR_VAR@8157..8173
- NAME@8157..8173
- IDENT@8157..8173 "escapeStringToml"
- ARGS_DESC@8173..8178
- L_PAREN@8173..8174 "("
- ARG@8174..8177
- EXPR_VAR@8174..8177
- NAME@8174..8177
- IDENT@8174..8177 "key"
- R_PAREN@8177..8178 ")"
- COMMA@8178..8179 ","
- WHITESPACE@8179..8186 "\n "
- BIND_FUNCTION@8186..8298
- NAME@8186..8198
- IDENT@8186..8198 "isTableArray"
- PARAMS_DESC@8198..8201
- L_PAREN@8198..8199 "("
- PARAM@8199..8200
- DESTRUCT_FULL@8199..8200
- NAME@8199..8200
- IDENT@8199..8200 "v"
- R_PAREN@8200..8201 ")"
- WHITESPACE@8201..8202 " "
- ASSIGN@8202..8203 "="
- WHITESPACE@8203..8204 " "
- EXPR_BINARY@8204..8298
- LHS_EXPR@8204..8239
- EXPR_BINARY@8204..8239
- LHS_EXPR@8204..8218
- EXPR_APPLY@8204..8218
- EXPR_INDEX@8204..8215
- EXPR_VAR@8204..8207
- NAME@8204..8207
- IDENT@8204..8207 "std"
- DOT@8207..8208 "."
- NAME@8208..8215
- IDENT@8208..8215 "isArray"
- ARGS_DESC@8215..8218
- L_PAREN@8215..8216 "("
- ARG@8216..8217
- EXPR_VAR@8216..8217
- NAME@8216..8217
- IDENT@8216..8217 "v"
- R_PAREN@8217..8218 ")"
- WHITESPACE@8218..8219 " "
- AND@8219..8221 "&&"
- WHITESPACE@8221..8222 " "
- EXPR_BINARY@8222..8239
- LHS_EXPR@8222..8235
- EXPR_APPLY@8222..8235
- EXPR_INDEX@8222..8232
- EXPR_VAR@8222..8225
- NAME@8222..8225
- IDENT@8222..8225 "std"
- DOT@8225..8226 "."
- NAME@8226..8232
- IDENT@8226..8232 "length"
- ARGS_DESC@8232..8235
- L_PAREN@8232..8233 "("
- ARG@8233..8234
- EXPR_VAR@8233..8234
- NAME@8233..8234
- IDENT@8233..8234 "v"
- R_PAREN@8234..8235 ")"
- WHITESPACE@8235..8236 " "
- GT@8236..8237 ">"
- WHITESPACE@8237..8238 " "
- EXPR_NUMBER@8238..8239
- FLOAT@8238..8239 "0"
- WHITESPACE@8239..8240 " "
- AND@8240..8242 "&&"
- WHITESPACE@8242..8243 " "
- EXPR_APPLY@8243..8298
- EXPR_INDEX@8243..8252
- EXPR_VAR@8243..8246
- NAME@8243..8246
- IDENT@8243..8246 "std"
- DOT@8246..8247 "."
- NAME@8247..8252
- IDENT@8247..8252 "foldl"
- ARGS_DESC@8252..8298
- L_PAREN@8252..8253 "("
- ARG@8253..8288
- EXPR_FUNCTION@8253..8288
- FUNCTION_KW@8253..8261 "function"
- PARAMS_DESC@8261..8267
- L_PAREN@8261..8262 "("
- PARAM@8262..8263
- DESTRUCT_FULL@8262..8263
- NAME@8262..8263
- IDENT@8262..8263 "a"
- COMMA@8263..8264 ","
- WHITESPACE@8264..8265 " "
- PARAM@8265..8266
- DESTRUCT_FULL@8265..8266
- NAME@8265..8266
- IDENT@8265..8266 "b"
- R_PAREN@8266..8267 ")"
- WHITESPACE@8267..8268 " "
- EXPR_BINARY@8268..8288
- LHS_EXPR@8268..8269
- EXPR_VAR@8268..8269
- NAME@8268..8269
- IDENT@8268..8269 "a"
- WHITESPACE@8269..8270 " "
- AND@8270..8272 "&&"
- WHITESPACE@8272..8273 " "
- EXPR_APPLY@8273..8288
- EXPR_INDEX@8273..8285
- EXPR_VAR@8273..8276
- NAME@8273..8276
- IDENT@8273..8276 "std"
- DOT@8276..8277 "."
- NAME@8277..8285
- IDENT@8277..8285 "isObject"
- ARGS_DESC@8285..8288
- L_PAREN@8285..8286 "("
- ARG@8286..8287
- EXPR_VAR@8286..8287
- NAME@8286..8287
- IDENT@8286..8287 "b"
- R_PAREN@8287..8288 ")"
- COMMA@8288..8289 ","
- WHITESPACE@8289..8290 " "
- ARG@8290..8291
- EXPR_VAR@8290..8291
- NAME@8290..8291
- IDENT@8290..8291 "v"
- COMMA@8291..8292 ","
- WHITESPACE@8292..8293 " "
- ARG@8293..8297
- EXPR_LITERAL@8293..8297
- TRUE_KW@8293..8297 "true"
- R_PAREN@8297..8298 ")"
- COMMA@8298..8299 ","
- WHITESPACE@8299..8306 "\n "
- BIND_FUNCTION@8306..8355
- NAME@8306..8315
- IDENT@8306..8315 "isSection"
- PARAMS_DESC@8315..8318
- L_PAREN@8315..8316 "("
- PARAM@8316..8317
- DESTRUCT_FULL@8316..8317
- NAME@8316..8317
- IDENT@8316..8317 "v"
- R_PAREN@8317..8318 ")"
- WHITESPACE@8318..8319 " "
- ASSIGN@8319..8320 "="
- WHITESPACE@8320..8321 " "
- EXPR_BINARY@8321..8355
- LHS_EXPR@8321..8336
- EXPR_APPLY@8321..8336
- EXPR_INDEX@8321..8333
- EXPR_VAR@8321..8324
- NAME@8321..8324
- IDENT@8321..8324 "std"
- DOT@8324..8325 "."
- NAME@8325..8333
- IDENT@8325..8333 "isObject"
- ARGS_DESC@8333..8336
- L_PAREN@8333..8334 "("
- ARG@8334..8335
- EXPR_VAR@8334..8335
- NAME@8334..8335
- IDENT@8334..8335 "v"
- R_PAREN@8335..8336 ")"
- WHITESPACE@8336..8337 " "
- OR@8337..8339 "||"
- WHITESPACE@8339..8340 " "
- EXPR_APPLY@8340..8355
- EXPR_VAR@8340..8352
- NAME@8340..8352
- IDENT@8340..8352 "isTableArray"
- ARGS_DESC@8352..8355
- L_PAREN@8352..8353 "("
- ARG@8353..8354
- EXPR_VAR@8353..8354
- NAME@8353..8354
- IDENT@8353..8354 "v"
- R_PAREN@8354..8355 ")"
- COMMA@8355..8356 ","
- WHITESPACE@8356..8363 "\n "
- BIND_FUNCTION@8363..9990
- NAME@8363..8374
- IDENT@8363..8374 "renderValue"
- PARAMS_DESC@8374..8407
- L_PAREN@8374..8375 "("
- PARAM@8375..8376
- DESTRUCT_FULL@8375..8376
- NAME@8375..8376
- IDENT@8375..8376 "v"
- COMMA@8376..8377 ","
- WHITESPACE@8377..8378 " "
- PARAM@8378..8389
- DESTRUCT_FULL@8378..8389
- NAME@8378..8389
- IDENT@8378..8389 "indexedPath"
- COMMA@8389..8390 ","
- WHITESPACE@8390..8391 " "
- PARAM@8391..8397
- DESTRUCT_FULL@8391..8397
- NAME@8391..8397
- IDENT@8391..8397 "inline"
- COMMA@8397..8398 ","
- WHITESPACE@8398..8399 " "
- PARAM@8399..8406
- DESTRUCT_FULL@8399..8406
- NAME@8399..8406
- IDENT@8399..8406 "cindent"
- R_PAREN@8406..8407 ")"
- WHITESPACE@8407..8408 " "
- ASSIGN@8408..8409 "="
- WHITESPACE@8409..8418 "\n "
- EXPR_IF_THEN_ELSE@8418..9990
- IF_KW@8418..8420 "if"
- WHITESPACE@8420..8421 " "
- EXPR_BINARY@8421..8430
- LHS_EXPR@8421..8422
- EXPR_VAR@8421..8422
- NAME@8421..8422
- IDENT@8421..8422 "v"
- WHITESPACE@8422..8423 " "
- EQ@8423..8425 "=="
- WHITESPACE@8425..8426 " "
- EXPR_LITERAL@8426..8430
- TRUE_KW@8426..8430 "true"
- WHITESPACE@8430..8431 " "
- THEN_KW@8431..8435 "then"
- WHITESPACE@8435..8446 "\n "
- TRUE_EXPR@8446..8452
- EXPR_STRING@8446..8452
- STRING_SINGLE@8446..8452 "'true'"
- WHITESPACE@8452..8461 "\n "
- ELSE_KW@8461..8465 "else"
- WHITESPACE@8465..8466 " "
- FALSE_EXPR@8466..9990
- EXPR_IF_THEN_ELSE@8466..9990
- IF_KW@8466..8468 "if"
- WHITESPACE@8468..8469 " "
- EXPR_BINARY@8469..8479
- LHS_EXPR@8469..8470
- EXPR_VAR@8469..8470
- NAME@8469..8470
- IDENT@8469..8470 "v"
- WHITESPACE@8470..8471 " "
- EQ@8471..8473 "=="
- WHITESPACE@8473..8474 " "
- EXPR_LITERAL@8474..8479
- FALSE_KW@8474..8479 "false"
- WHITESPACE@8479..8480 " "
- THEN_KW@8480..8484 "then"
- WHITESPACE@8484..8495 "\n "
- TRUE_EXPR@8495..8502
- EXPR_STRING@8495..8502
- STRING_SINGLE@8495..8502 "'false'"
- WHITESPACE@8502..8511 "\n "
- ELSE_KW@8511..8515 "else"
- WHITESPACE@8515..8516 " "
- FALSE_EXPR@8516..9990
- EXPR_IF_THEN_ELSE@8516..9990
- IF_KW@8516..8518 "if"
- WHITESPACE@8518..8519 " "
- EXPR_BINARY@8519..8528
- LHS_EXPR@8519..8520
- EXPR_VAR@8519..8520
- NAME@8519..8520
- IDENT@8519..8520 "v"
- WHITESPACE@8520..8521 " "
- EQ@8521..8523 "=="
- WHITESPACE@8523..8524 " "
- EXPR_LITERAL@8524..8528
- NULL_KW@8524..8528 "null"
- WHITESPACE@8528..8529 " "
- THEN_KW@8529..8533 "then"
- WHITESPACE@8533..8544 "\n "
- TRUE_EXPR@8544..8594
- EXPR_ERROR@8544..8594
- ERROR_KW@8544..8549 "error"
- WHITESPACE@8549..8550 " "
- EXPR_BINARY@8550..8594
- LHS_EXPR@8550..8580
- EXPR_STRING@8550..8580
- STRING_SINGLE@8550..8580 "'Tried to manifest \"n ..."
- WHITESPACE@8580..8581 " "
- PLUS@8581..8582 "+"
- WHITESPACE@8582..8583 " "
- EXPR_VAR@8583..8594
- NAME@8583..8594
- IDENT@8583..8594 "indexedPath"
- WHITESPACE@8594..8603 "\n "
- ELSE_KW@8603..8607 "else"
- WHITESPACE@8607..8608 " "
- FALSE_EXPR@8608..9990
- EXPR_IF_THEN_ELSE@8608..9990
- IF_KW@8608..8610 "if"
- WHITESPACE@8610..8611 " "
- EXPR_APPLY@8611..8626
- EXPR_INDEX@8611..8623
- EXPR_VAR@8611..8614
- NAME@8611..8614
- IDENT@8611..8614 "std"
- DOT@8614..8615 "."
- NAME@8615..8623
- IDENT@8615..8623 "isNumber"
- ARGS_DESC@8623..8626
- L_PAREN@8623..8624 "("
- ARG@8624..8625
- EXPR_VAR@8624..8625
- NAME@8624..8625
- IDENT@8624..8625 "v"
- R_PAREN@8625..8626 ")"
- WHITESPACE@8626..8627 " "
- THEN_KW@8627..8631 "then"
- WHITESPACE@8631..8642 "\n "
- TRUE_EXPR@8642..8648
- EXPR_BINARY@8642..8648
- LHS_EXPR@8642..8644
- EXPR_STRING@8642..8644
- STRING_SINGLE@8642..8644 "''"
- WHITESPACE@8644..8645 " "
- PLUS@8645..8646 "+"
- WHITESPACE@8646..8647 " "
- EXPR_VAR@8647..8648
- NAME@8647..8648
- IDENT@8647..8648 "v"
- WHITESPACE@8648..8657 "\n "
- ELSE_KW@8657..8661 "else"
- WHITESPACE@8661..8662 " "
- FALSE_EXPR@8662..9990
- EXPR_IF_THEN_ELSE@8662..9990
- IF_KW@8662..8664 "if"
- WHITESPACE@8664..8665 " "
- EXPR_APPLY@8665..8680
- EXPR_INDEX@8665..8677
- EXPR_VAR@8665..8668
- NAME@8665..8668
- IDENT@8665..8668 "std"
- DOT@8668..8669 "."
- NAME@8669..8677
- IDENT@8669..8677 "isString"
- ARGS_DESC@8677..8680
- L_PAREN@8677..8678 "("
- ARG@8678..8679
- EXPR_VAR@8678..8679
- NAME@8678..8679
- IDENT@8678..8679 "v"
- R_PAREN@8679..8680 ")"
- WHITESPACE@8680..8681 " "
- THEN_KW@8681..8685 "then"
- WHITESPACE@8685..8696 "\n "
- TRUE_EXPR@8696..8715
- EXPR_APPLY@8696..8715
- EXPR_VAR@8696..8712
- NAME@8696..8712
- IDENT@8696..8712 "escapeStringToml"
- ARGS_DESC@8712..8715
- L_PAREN@8712..8713 "("
- ARG@8713..8714
- EXPR_VAR@8713..8714
- NAME@8713..8714
- IDENT@8713..8714 "v"
- R_PAREN@8714..8715 ")"
- WHITESPACE@8715..8724 "\n "
- ELSE_KW@8724..8728 "else"
- WHITESPACE@8728..8729 " "
- FALSE_EXPR@8729..9990
- EXPR_IF_THEN_ELSE@8729..9990
- IF_KW@8729..8731 "if"
- WHITESPACE@8731..8732 " "
- EXPR_APPLY@8732..8749
- EXPR_INDEX@8732..8746
- EXPR_VAR@8732..8735
- NAME@8732..8735
- IDENT@8732..8735 "std"
- DOT@8735..8736 "."
- NAME@8736..8746
- IDENT@8736..8746 "isFunction"
- ARGS_DESC@8746..8749
- L_PAREN@8746..8747 "("
- ARG@8747..8748
- EXPR_VAR@8747..8748
- NAME@8747..8748
- IDENT@8747..8748 "v"
- R_PAREN@8748..8749 ")"
- WHITESPACE@8749..8750 " "
- THEN_KW@8750..8754 "then"
- WHITESPACE@8754..8765 "\n "
- TRUE_EXPR@8765..8817
- EXPR_ERROR@8765..8817
- ERROR_KW@8765..8770 "error"
- WHITESPACE@8770..8771 " "
- EXPR_BINARY@8771..8817
- LHS_EXPR@8771..8803
- EXPR_STRING@8771..8803
- STRING_SINGLE@8771..8803 "'Tried to manifest fu ..."
- WHITESPACE@8803..8804 " "
- PLUS@8804..8805 "+"
- WHITESPACE@8805..8806 " "
- EXPR_VAR@8806..8817
- NAME@8806..8817
- IDENT@8806..8817 "indexedPath"
- WHITESPACE@8817..8826 "\n "
- ELSE_KW@8826..8830 "else"
- WHITESPACE@8830..8831 " "
- FALSE_EXPR@8831..9990
- EXPR_IF_THEN_ELSE@8831..9990
- IF_KW@8831..8833 "if"
- WHITESPACE@8833..8834 " "
- EXPR_APPLY@8834..8848
- EXPR_INDEX@8834..8845
- EXPR_VAR@8834..8837
- NAME@8834..8837
- IDENT@8834..8837 "std"
- DOT@8837..8838 "."
- NAME@8838..8845
- IDENT@8838..8845 "isArray"
- ARGS_DESC@8845..8848
- L_PAREN@8845..8846 "("
- ARG@8846..8847
- EXPR_VAR@8846..8847
- NAME@8846..8847
- IDENT@8846..8847 "v"
- R_PAREN@8847..8848 ")"
- WHITESPACE@8848..8849 " "
- THEN_KW@8849..8853 "then"
- WHITESPACE@8853..8864 "\n "
- TRUE_EXPR@8864..9561
- EXPR_IF_THEN_ELSE@8864..9561
- IF_KW@8864..8866 "if"
- WHITESPACE@8866..8867 " "
- EXPR_BINARY@8867..8885
- LHS_EXPR@8867..8880
- EXPR_APPLY@8867..8880
- EXPR_INDEX@8867..8877
- EXPR_VAR@8867..8870
- NAME@8867..8870
- IDENT@8867..8870 "std"
- DOT@8870..8871 "."
- NAME@8871..8877
- IDENT@8871..8877 "length"
- ARGS_DESC@8877..8880
- L_PAREN@8877..8878 "("
- ARG@8878..8879
- EXPR_VAR@8878..8879
- NAME@8878..8879
- IDENT@8878..8879 "v"
- R_PAREN@8879..8880 ")"
- WHITESPACE@8880..8881 " "
- EQ@8881..8883 "=="
- WHITESPACE@8883..8884 " "
- EXPR_NUMBER@8884..8885
- FLOAT@8884..8885 "0"
- WHITESPACE@8885..8886 " "
- THEN_KW@8886..8890 "then"
- WHITESPACE@8890..8903 "\n "
- TRUE_EXPR@8903..8907
- EXPR_STRING@8903..8907
- STRING_SINGLE@8903..8907 "'[]'"
- WHITESPACE@8907..8918 "\n "
- ELSE_KW@8918..8922 "else"
- WHITESPACE@8922..8935 "\n "
- FALSE_EXPR@8935..9561
- EXPR_LOCAL@8935..9561
- LOCAL_KW@8935..8940 "local"
- WHITESPACE@8940..8941 " "
- BIND_DESTRUCT@8941..8980
- DESTRUCT_FULL@8941..8946
- NAME@8941..8946
- IDENT@8941..8946 "range"
- WHITESPACE@8946..8947 " "
- ASSIGN@8947..8948 "="
- WHITESPACE@8948..8949 " "
- EXPR_APPLY@8949..8980
- EXPR_INDEX@8949..8958
- EXPR_VAR@8949..8952
- NAME@8949..8952
- IDENT@8949..8952 "std"
- DOT@8952..8953 "."
- NAME@8953..8958
- IDENT@8953..8958 "range"
- ARGS_DESC@8958..8980
- L_PAREN@8958..8959 "("
- ARG@8959..8960
- EXPR_NUMBER@8959..8960
- FLOAT@8959..8960 "0"
- COMMA@8960..8961 ","
- WHITESPACE@8961..8962 " "
- ARG@8962..8979
- EXPR_BINARY@8962..8979
- LHS_EXPR@8962..8975
- EXPR_APPLY@8962..8975
- EXPR_INDEX@8962..8972
- EXPR_VAR@8962..8965
- NAME@8962..8965
- IDENT@8962..8965 "std"
- DOT@8965..8966 "."
- NAME@8966..8972
- IDENT@8966..8972 "length"
- ARGS_DESC@8972..8975
- L_PAREN@8972..8973 "("
- ARG@8973..8974
- EXPR_VAR@8973..8974
- NAME@8973..8974
- IDENT@8973..8974 "v"
- R_PAREN@8974..8975 ")"
- WHITESPACE@8975..8976 " "
- MINUS@8976..8977 "-"
- WHITESPACE@8977..8978 " "
- EXPR_NUMBER@8978..8979
- FLOAT@8978..8979 "1"
- R_PAREN@8979..8980 ")"
- SEMI@8980..8981 ";"
- WHITESPACE@8981..8994 "\n "
- EXPR_LOCAL@8994..9561
- LOCAL_KW@8994..8999 "local"
- WHITESPACE@8999..9000 " "
- BIND_DESTRUCT@9000..9052
- DESTRUCT_FULL@9000..9010
- NAME@9000..9010
- IDENT@9000..9010 "new_indent"
- WHITESPACE@9010..9011 " "
- ASSIGN@9011..9012 "="
- WHITESPACE@9012..9013 " "
- EXPR_IF_THEN_ELSE@9013..9052
- IF_KW@9013..9015 "if"
- WHITESPACE@9015..9016 " "
- EXPR_VAR@9016..9022
- NAME@9016..9022
- IDENT@9016..9022 "inline"
- WHITESPACE@9022..9023 " "
- THEN_KW@9023..9027 "then"
- WHITESPACE@9027..9028 " "
- TRUE_EXPR@9028..9030
- EXPR_STRING@9028..9030
- STRING_SINGLE@9028..9030 "''"
- WHITESPACE@9030..9031 " "
- ELSE_KW@9031..9035 "else"
- WHITESPACE@9035..9036 " "
- FALSE_EXPR@9036..9052
- EXPR_BINARY@9036..9052
- LHS_EXPR@9036..9043
- EXPR_VAR@9036..9043
- NAME@9036..9043
- IDENT@9036..9043 "cindent"
- WHITESPACE@9043..9044 " "
- PLUS@9044..9045 "+"
- WHITESPACE@9045..9046 " "
- EXPR_VAR@9046..9052
- NAME@9046..9052
- IDENT@9046..9052 "indent"
- SEMI@9052..9053 ";"
- WHITESPACE@9053..9066 "\n "
- EXPR_LOCAL@9066..9561
- LOCAL_KW@9066..9071 "local"
- WHITESPACE@9071..9072 " "
- BIND_DESTRUCT@9072..9112
- DESTRUCT_FULL@9072..9081
- NAME@9072..9081
- IDENT@9072..9081 "separator"
- WHITESPACE@9081..9082 " "
- ASSIGN@9082..9083 "="
- WHITESPACE@9083..9084 " "
- EXPR_IF_THEN_ELSE@9084..9112
- IF_KW@9084..9086 "if"
- WHITESPACE@9086..9087 " "
- EXPR_VAR@9087..9093
- NAME@9087..9093
- IDENT@9087..9093 "inline"
- WHITESPACE@9093..9094 " "
- THEN_KW@9094..9098 "then"
- WHITESPACE@9098..9099 " "
- TRUE_EXPR@9099..9102
- EXPR_STRING@9099..9102
- STRING_SINGLE@9099..9102 "' '"
- WHITESPACE@9102..9103 " "
- ELSE_KW@9103..9107 "else"
- WHITESPACE@9107..9108 " "
- FALSE_EXPR@9108..9112
- EXPR_STRING@9108..9112
- STRING_SINGLE@9108..9112 "'\\n'"
- SEMI@9112..9113 ";"
- WHITESPACE@9113..9126 "\n "
- EXPR_LOCAL@9126..9561
- LOCAL_KW@9126..9131 "local"
- WHITESPACE@9131..9132 " "
- BIND_DESTRUCT@9132..9528
- DESTRUCT_FULL@9132..9137
- NAME@9132..9137
- IDENT@9132..9137 "lines"
- WHITESPACE@9137..9138 " "
- ASSIGN@9138..9139 "="
- WHITESPACE@9139..9140 " "
- EXPR_BINARY@9140..9528
- LHS_EXPR@9140..9447
- EXPR_BINARY@9140..9447
- LHS_EXPR@9140..9157
- EXPR_ARRAY@9140..9157
- L_BRACK@9140..9141 "["
- EXPR_BINARY@9141..9156
- LHS_EXPR@9141..9144
- EXPR_STRING@9141..9144
- STRING_SINGLE@9141..9144 "'['"
- WHITESPACE@9144..9145 " "
- PLUS@9145..9146 "+"
- WHITESPACE@9146..9147 " "
- EXPR_VAR@9147..9156
- NAME@9147..9156
- IDENT@9147..9156 "separator"
- R_BRACK@9156..9157 "]"
- WHITESPACE@9157..9184 "\n ..."
- PLUS@9184..9185 "+"
- WHITESPACE@9185..9186 " "
- EXPR_APPLY@9186..9447
- EXPR_INDEX@9186..9194
- EXPR_VAR@9186..9189
- NAME@9186..9189
- IDENT@9186..9189 "std"
- DOT@9189..9190 "."
- NAME@9190..9194
- IDENT@9190..9194 "join"
- ARGS_DESC@9194..9447
- L_PAREN@9194..9195 "("
- ARG@9195..9212
- EXPR_ARRAY@9195..9212
- L_BRACK@9195..9196 "["
- EXPR_BINARY@9196..9211
- LHS_EXPR@9196..9199
- EXPR_STRING@9196..9199
- STRING_SINGLE@9196..9199 "','"
- WHITESPACE@9199..9200 " "
- PLUS@9200..9201 "+"
- WHITESPACE@9201..9202 " "
- EXPR_VAR@9202..9211
- NAME@9202..9211
- IDENT@9202..9211 "separator"
- R_BRACK@9211..9212 "]"
- COMMA@9212..9213 ","
- WHITESPACE@9213..9251 "\n ..."
- ARG@9251..9446
- EXPR_ARRAY_COMP@9251..9446
- L_BRACK@9251..9252 "["
- WHITESPACE@9252..9292 "\n ..."
- EXPR_ARRAY@9292..9353
- L_BRACK@9292..9293 "["
- EXPR_BINARY@9293..9352
- LHS_EXPR@9293..9303
- EXPR_VAR@9293..9303
- NAME@9293..9303
- IDENT@9293..9303 "new_indent"
- WHITESPACE@9303..9304 " "
- PLUS@9304..9305 "+"
- WHITESPACE@9305..9306 " "
- EXPR_APPLY@9306..9352
- EXPR_VAR@9306..9317
- NAME@9306..9317
- IDENT@9306..9317 "renderValue"
- ARGS_DESC@9317..9352
- L_PAREN@9317..9318 "("
- ARG@9318..9322
- EXPR_INDEX_EXPR@9318..9322
- LHS_EXPR@9318..9319
- EXPR_VAR@9318..9319
- NAME@9318..9319
- IDENT@9318..9319 "v"
- L_BRACK@9319..9320 "["
- EXPR_VAR@9320..9321
- NAME@9320..9321
- IDENT@9320..9321 "i"
- R_BRACK@9321..9322 "]"
- COMMA@9322..9323 ","
- WHITESPACE@9323..9324 " "
- ARG@9324..9341
- EXPR_BINARY@9324..9341
- LHS_EXPR@9324..9335
- EXPR_VAR@9324..9335
- NAME@9324..9335
- IDENT@9324..9335 "indexedPath"
- WHITESPACE@9335..9336 " "
- PLUS@9336..9337 "+"
- WHITESPACE@9337..9338 " "
- EXPR_ARRAY@9338..9341
- L_BRACK@9338..9339 "["
- EXPR_VAR@9339..9340
- NAME@9339..9340
- IDENT@9339..9340 "i"
- R_BRACK@9340..9341 "]"
- COMMA@9341..9342 ","
- WHITESPACE@9342..9343 " "
- ARG@9343..9347
- EXPR_LITERAL@9343..9347
- TRUE_KW@9343..9347 "true"
- COMMA@9347..9348 ","
- WHITESPACE@9348..9349 " "
- ARG@9349..9351
- EXPR_STRING@9349..9351
- STRING_SINGLE@9349..9351 "''"
- R_PAREN@9351..9352 ")"
- R_BRACK@9352..9353 "]"
- WHITESPACE@9353..9393 "\n ..."
- FOR_SPEC@9393..9407
- FOR_KW@9393..9396 "for"
- WHITESPACE@9396..9397 " "
- NAME@9397..9398
- IDENT@9397..9398 "i"
- WHITESPACE@9398..9399 " "
- IN_KW@9399..9401 "in"
- WHITESPACE@9401..9402 " "
- EXPR_VAR@9402..9407
- NAME@9402..9407
- IDENT@9402..9407 "range"
- WHITESPACE@9407..9445 "\n ..."
- R_BRACK@9445..9446 "]"
- R_PAREN@9446..9447 ")"
- WHITESPACE@9447..9474 "\n ..."
- PLUS@9474..9475 "+"
- WHITESPACE@9475..9476 " "
- EXPR_ARRAY@9476..9528
- L_BRACK@9476..9477 "["
- EXPR_BINARY@9477..9527
- LHS_EXPR@9477..9521
- EXPR_BINARY@9477..9521
- LHS_EXPR@9477..9486
- EXPR_VAR@9477..9486
- NAME@9477..9486
- IDENT@9477..9486 "separator"
- WHITESPACE@9486..9487 " "
- PLUS@9487..9488 "+"
- WHITESPACE@9488..9489 " "
- EXPR_PARENED@9489..9521
- L_PAREN@9489..9490 "("
- EXPR_IF_THEN_ELSE@9490..9520
- IF_KW@9490..9492 "if"
- WHITESPACE@9492..9493 " "
- EXPR_VAR@9493..9499
- NAME@9493..9499
- IDENT@9493..9499 "inline"
- WHITESPACE@9499..9500 " "
- THEN_KW@9500..9504 "then"
- WHITESPACE@9504..9505 " "
- TRUE_EXPR@9505..9507
- EXPR_STRING@9505..9507
- STRING_SINGLE@9505..9507 "''"
- WHITESPACE@9507..9508 " "
- ELSE_KW@9508..9512 "else"
- WHITESPACE@9512..9513 " "
- FALSE_EXPR@9513..9520
- EXPR_VAR@9513..9520
- NAME@9513..9520
- IDENT@9513..9520 "cindent"
- R_PAREN@9520..9521 ")"
- WHITESPACE@9521..9522 " "
- PLUS@9522..9523 "+"
- WHITESPACE@9523..9524 " "
- EXPR_STRING@9524..9527
- STRING_SINGLE@9524..9527 "']'"
- R_BRACK@9527..9528 "]"
- SEMI@9528..9529 ";"
- WHITESPACE@9529..9542 "\n "
- EXPR_APPLY@9542..9561
- EXPR_INDEX@9542..9550
- EXPR_VAR@9542..9545
- NAME@9542..9545
- IDENT@9542..9545 "std"
- DOT@9545..9546 "."
- NAME@9546..9550
- IDENT@9546..9550 "join"
- ARGS_DESC@9550..9561
- L_PAREN@9550..9551 "("
- ARG@9551..9553
- EXPR_STRING@9551..9553
- STRING_SINGLE@9551..9553 "''"
- COMMA@9553..9554 ","
- WHITESPACE@9554..9555 " "
- ARG@9555..9560
- EXPR_VAR@9555..9560
- NAME@9555..9560
- IDENT@9555..9560 "lines"
- R_PAREN@9560..9561 ")"
- WHITESPACE@9561..9570 "\n "
- ELSE_KW@9570..9574 "else"
- WHITESPACE@9574..9575 " "
- FALSE_EXPR@9575..9990
- EXPR_IF_THEN_ELSE@9575..9990
- IF_KW@9575..9577 "if"
- WHITESPACE@9577..9578 " "
- EXPR_APPLY@9578..9593
- EXPR_INDEX@9578..9590
- EXPR_VAR@9578..9581
- NAME@9578..9581
- IDENT@9578..9581 "std"
- DOT@9581..9582 "."
- NAME@9582..9590
- IDENT@9582..9590 "isObject"
- ARGS_DESC@9590..9593
- L_PAREN@9590..9591 "("
- ARG@9591..9592
- EXPR_VAR@9591..9592
- NAME@9591..9592
- IDENT@9591..9592 "v"
- R_PAREN@9592..9593 ")"
- WHITESPACE@9593..9594 " "
- THEN_KW@9594..9598 "then"
- WHITESPACE@9598..9609 "\n "
- TRUE_EXPR@9609..9990
- EXPR_LOCAL@9609..9990
- LOCAL_KW@9609..9614 "local"
- WHITESPACE@9614..9615 " "
- BIND_DESTRUCT@9615..9959
- DESTRUCT_FULL@9615..9620
- NAME@9615..9620
- IDENT@9615..9620 "lines"
- WHITESPACE@9620..9621 " "
- ASSIGN@9621..9622 "="
- WHITESPACE@9622..9623 " "
- EXPR_BINARY@9623..9959
- LHS_EXPR@9623..9926
- EXPR_BINARY@9623..9926
- LHS_EXPR@9623..9629
- EXPR_ARRAY@9623..9629
- L_BRACK@9623..9624 "["
- EXPR_STRING@9624..9628
- STRING_SINGLE@9624..9628 "'{ '"
- R_BRACK@9628..9629 "]"
- WHITESPACE@9629..9654 "\n ..."
- PLUS@9654..9655 "+"
- WHITESPACE@9655..9656 " "
- EXPR_APPLY@9656..9926
- EXPR_INDEX@9656..9664
- EXPR_VAR@9656..9659
- NAME@9656..9659
- IDENT@9656..9659 "std"
- DOT@9659..9660 "."
- NAME@9660..9664
- IDENT@9660..9664 "join"
- ARGS_DESC@9664..9926
- L_PAREN@9664..9665 "("
- ARG@9665..9671
- EXPR_ARRAY@9665..9671
- L_BRACK@9665..9666 "["
- EXPR_STRING@9666..9670
- STRING_SINGLE@9666..9670 "', '"
- R_BRACK@9670..9671 "]"
- COMMA@9671..9672 ","
- WHITESPACE@9672..9708 "\n ..."
- ARG@9708..9925
- EXPR_ARRAY_COMP@9708..9925
- L_BRACK@9708..9709 "["
- WHITESPACE@9709..9747 "\n ..."
- EXPR_ARRAY@9747..9822
- L_BRACK@9747..9748 "["
- EXPR_BINARY@9748..9821
- LHS_EXPR@9748..9772
- EXPR_BINARY@9748..9772
- LHS_EXPR@9748..9764
- EXPR_APPLY@9748..9764
- EXPR_VAR@9748..9761
- NAME@9748..9761
- IDENT@9748..9761 "escapeKeyToml"
- ARGS_DESC@9761..9764
- L_PAREN@9761..9762 "("
- ARG@9762..9763
- EXPR_VAR@9762..9763
- NAME@9762..9763
- IDENT@9762..9763 "k"
- R_PAREN@9763..9764 ")"
- WHITESPACE@9764..9765 " "
- PLUS@9765..9766 "+"
- WHITESPACE@9766..9767 " "
- EXPR_STRING@9767..9772
- STRING_SINGLE@9767..9772 "' = '"
- WHITESPACE@9772..9773 " "
- PLUS@9773..9774 "+"
- WHITESPACE@9774..9775 " "
- EXPR_APPLY@9775..9821
- EXPR_VAR@9775..9786
- NAME@9775..9786
- IDENT@9775..9786 "renderValue"
- ARGS_DESC@9786..9821
- L_PAREN@9786..9787 "("
- ARG@9787..9791
- EXPR_INDEX_EXPR@9787..9791
- LHS_EXPR@9787..9788
- EXPR_VAR@9787..9788
- NAME@9787..9788
- IDENT@9787..9788 "v"
- L_BRACK@9788..9789 "["
- EXPR_VAR@9789..9790
- NAME@9789..9790
- IDENT@9789..9790 "k"
- R_BRACK@9790..9791 "]"
- COMMA@9791..9792 ","
- WHITESPACE@9792..9793 " "
- ARG@9793..9810
- EXPR_BINARY@9793..9810
- LHS_EXPR@9793..9804
- EXPR_VAR@9793..9804
- NAME@9793..9804
- IDENT@9793..9804 "indexedPath"
- WHITESPACE@9804..9805 " "
- PLUS@9805..9806 "+"
- WHITESPACE@9806..9807 " "
- EXPR_ARRAY@9807..9810
- L_BRACK@9807..9808 "["
- EXPR_VAR@9808..9809
- NAME@9808..9809
- IDENT@9808..9809 "k"
- R_BRACK@9809..9810 "]"
- COMMA@9810..9811 ","
- WHITESPACE@9811..9812 " "
- ARG@9812..9816
- EXPR_LITERAL@9812..9816
- TRUE_KW@9812..9816 "true"
- COMMA@9816..9817 ","
- WHITESPACE@9817..9818 " "
- ARG@9818..9820
- EXPR_STRING@9818..9820
- STRING_SINGLE@9818..9820 "''"
- R_PAREN@9820..9821 ")"
- R_BRACK@9821..9822 "]"
- WHITESPACE@9822..9860 "\n ..."
- FOR_SPEC@9860..9888
- FOR_KW@9860..9863 "for"
- WHITESPACE@9863..9864 " "
- NAME@9864..9865
- IDENT@9864..9865 "k"
- WHITESPACE@9865..9866 " "
- IN_KW@9866..9868 "in"
- WHITESPACE@9868..9869 " "
- EXPR_APPLY@9869..9888
- EXPR_INDEX@9869..9885
- EXPR_VAR@9869..9872
- NAME@9869..9872
- IDENT@9869..9872 "std"
- DOT@9872..9873 "."
- NAME@9873..9885
- IDENT@9873..9885 "objectFields"
- ARGS_DESC@9885..9888
- L_PAREN@9885..9886 "("
- ARG@9886..9887
- EXPR_VAR@9886..9887
- NAME@9886..9887
- IDENT@9886..9887 "v"
- R_PAREN@9887..9888 ")"
- WHITESPACE@9888..9924 "\n ..."
- R_BRACK@9924..9925 "]"
- R_PAREN@9925..9926 ")"
- WHITESPACE@9926..9951 "\n ..."
- PLUS@9951..9952 "+"
- WHITESPACE@9952..9953 " "
- EXPR_ARRAY@9953..9959
- L_BRACK@9953..9954 "["
- EXPR_STRING@9954..9958
- STRING_SINGLE@9954..9958 "' }'"
- R_BRACK@9958..9959 "]"
- SEMI@9959..9960 ";"
- WHITESPACE@9960..9971 "\n "
- EXPR_APPLY@9971..9990
- EXPR_INDEX@9971..9979
- EXPR_VAR@9971..9974
- NAME@9971..9974
- IDENT@9971..9974 "std"
- DOT@9974..9975 "."
- NAME@9975..9979
- IDENT@9975..9979 "join"
- ARGS_DESC@9979..9990
- L_PAREN@9979..9980 "("
- ARG@9980..9982
- EXPR_STRING@9980..9982
- STRING_SINGLE@9980..9982 "''"
- COMMA@9982..9983 ","
- WHITESPACE@9983..9984 " "
- ARG@9984..9989
- EXPR_VAR@9984..9989
- NAME@9984..9989
- IDENT@9984..9989 "lines"
- R_PAREN@9989..9990 ")"
- COMMA@9990..9991 ","
- WHITESPACE@9991..9998 "\n "
- BIND_FUNCTION@9998..10667
- NAME@9998..10017
- IDENT@9998..10017 "renderTableInternal"
- PARAMS_DESC@10017..10048
- L_PAREN@10017..10018 "("
- PARAM@10018..10019
- DESTRUCT_FULL@10018..10019
- NAME@10018..10019
- IDENT@10018..10019 "v"
- COMMA@10019..10020 ","
- WHITESPACE@10020..10021 " "
- PARAM@10021..10025
- DESTRUCT_FULL@10021..10025
- NAME@10021..10025
- IDENT@10021..10025 "path"
- COMMA@10025..10026 ","
- WHITESPACE@10026..10027 " "
- PARAM@10027..10038
- DESTRUCT_FULL@10027..10038
- NAME@10027..10038
- IDENT@10027..10038 "indexedPath"
- COMMA@10038..10039 ","
- WHITESPACE@10039..10040 " "
- PARAM@10040..10047
- DESTRUCT_FULL@10040..10047
- NAME@10040..10047
- IDENT@10040..10047 "cindent"
- R_PAREN@10047..10048 ")"
- WHITESPACE@10048..10049 " "
- ASSIGN@10049..10050 "="
- WHITESPACE@10050..10059 "\n "
- EXPR_LOCAL@10059..10667
- LOCAL_KW@10059..10064 "local"
- WHITESPACE@10064..10065 " "
- BIND_DESTRUCT@10065..10272
- DESTRUCT_FULL@10065..10068
- NAME@10065..10068
- IDENT@10065..10068 "kvp"
- WHITESPACE@10068..10069 " "
- ASSIGN@10069..10070 "="
- WHITESPACE@10070..10071 " "
- EXPR_APPLY@10071..10272
- EXPR_INDEX@10071..10088
- EXPR_VAR@10071..10074
- NAME@10071..10074
- IDENT@10071..10074 "std"
- DOT@10074..10075 "."
- NAME@10075..10088
- IDENT@10075..10088 "flattenArrays"
- ARGS_DESC@10088..10272
- L_PAREN@10088..10089 "("
- ARG@10089..10271
- EXPR_ARRAY_COMP@10089..10271
- L_BRACK@10089..10090 "["
- WHITESPACE@10090..10101 "\n "
- EXPR_ARRAY@10101..10192
- L_BRACK@10101..10102 "["
- EXPR_BINARY@10102..10191
- LHS_EXPR@10102..10136
- EXPR_BINARY@10102..10136
- LHS_EXPR@10102..10128
- EXPR_BINARY@10102..10128
- LHS_EXPR@10102..10109
- EXPR_VAR@10102..10109
- NAME@10102..10109
- IDENT@10102..10109 "cindent"
- WHITESPACE@10109..10110 " "
- PLUS@10110..10111 "+"
- WHITESPACE@10111..10112 " "
- EXPR_APPLY@10112..10128
- EXPR_VAR@10112..10125
- NAME@10112..10125
- IDENT@10112..10125 "escapeKeyToml"
- ARGS_DESC@10125..10128
- L_PAREN@10125..10126 "("
- ARG@10126..10127
- EXPR_VAR@10126..10127
- NAME@10126..10127
- IDENT@10126..10127 "k"
- R_PAREN@10127..10128 ")"
- WHITESPACE@10128..10129 " "
- PLUS@10129..10130 "+"
- WHITESPACE@10130..10131 " "
- EXPR_STRING@10131..10136
- STRING_SINGLE@10131..10136 "' = '"
- WHITESPACE@10136..10137 " "
- PLUS@10137..10138 "+"
- WHITESPACE@10138..10139 " "
- EXPR_APPLY@10139..10191
- EXPR_VAR@10139..10150
- NAME@10139..10150
- IDENT@10139..10150 "renderValue"
- ARGS_DESC@10150..10191
- L_PAREN@10150..10151 "("
- ARG@10151..10155
- EXPR_INDEX_EXPR@10151..10155
- LHS_EXPR@10151..10152
- EXPR_VAR@10151..10152
- NAME@10151..10152
- IDENT@10151..10152 "v"
- L_BRACK@10152..10153 "["
- EXPR_VAR@10153..10154
- NAME@10153..10154
- IDENT@10153..10154 "k"
- R_BRACK@10154..10155 "]"
- COMMA@10155..10156 ","
- WHITESPACE@10156..10157 " "
- ARG@10157..10174
- EXPR_BINARY@10157..10174
- LHS_EXPR@10157..10168
- EXPR_VAR@10157..10168
- NAME@10157..10168
- IDENT@10157..10168 "indexedPath"
- WHITESPACE@10168..10169 " "
- PLUS@10169..10170 "+"
- WHITESPACE@10170..10171 " "
- EXPR_ARRAY@10171..10174
- L_BRACK@10171..10172 "["
- EXPR_VAR@10172..10173
- NAME@10172..10173
- IDENT@10172..10173 "k"
- R_BRACK@10173..10174 "]"
- COMMA@10174..10175 ","
- WHITESPACE@10175..10176 " "
- ARG@10176..10181
- EXPR_LITERAL@10176..10181
- FALSE_KW@10176..10181 "false"
- COMMA@10181..10182 ","
- WHITESPACE@10182..10183 " "
- ARG@10183..10190
- EXPR_VAR@10183..10190
- NAME@10183..10190
- IDENT@10183..10190 "cindent"
- R_PAREN@10190..10191 ")"
- R_BRACK@10191..10192 "]"
- WHITESPACE@10192..10203 "\n "
- FOR_SPEC@10203..10231
- FOR_KW@10203..10206 "for"
- WHITESPACE@10206..10207 " "
- NAME@10207..10208
- IDENT@10207..10208 "k"
- WHITESPACE@10208..10209 " "
- IN_KW@10209..10211 "in"
- WHITESPACE@10211..10212 " "
- EXPR_APPLY@10212..10231
- EXPR_INDEX@10212..10228
- EXPR_VAR@10212..10215
- NAME@10212..10215
- IDENT@10212..10215 "std"
- DOT@10215..10216 "."
- NAME@10216..10228
- IDENT@10216..10228 "objectFields"
- ARGS_DESC@10228..10231
- L_PAREN@10228..10229 "("
- ARG@10229..10230
- EXPR_VAR@10229..10230
- NAME@10229..10230
- IDENT@10229..10230 "v"
- R_PAREN@10230..10231 ")"
- WHITESPACE@10231..10242 "\n "
- IF_SPEC@10242..10261
- IF_KW@10242..10244 "if"
- WHITESPACE@10244..10245 " "
- EXPR_UNARY@10245..10261
- NOT@10245..10246 "!"
- EXPR_APPLY@10246..10261
- EXPR_VAR@10246..10255
- NAME@10246..10255
- IDENT@10246..10255 "isSection"
- ARGS_DESC@10255..10261
- L_PAREN@10255..10256 "("
- ARG@10256..10260
- EXPR_INDEX_EXPR@10256..10260
- LHS_EXPR@10256..10257
- EXPR_VAR@10256..10257
- NAME@10256..10257
- IDENT@10256..10257 "v"
- L_BRACK@10257..10258 "["
- EXPR_VAR@10258..10259
- NAME@10258..10259
- IDENT@10258..10259 "k"
- R_BRACK@10259..10260 "]"
- R_PAREN@10260..10261 ")"
- WHITESPACE@10261..10270 "\n "
- R_BRACK@10270..10271 "]"
- R_PAREN@10271..10272 ")"
- SEMI@10272..10273 ";"
- WHITESPACE@10273..10282 "\n "
- EXPR_LOCAL@10282..10667
- LOCAL_KW@10282..10287 "local"
- WHITESPACE@10287..10288 " "
- BIND_DESTRUCT@10288..10631
- DESTRUCT_FULL@10288..10296
- NAME@10288..10296
- IDENT@10288..10296 "sections"
- WHITESPACE@10296..10297 " "
- ASSIGN@10297..10298 "="
- WHITESPACE@10298..10299 " "
- EXPR_BINARY@10299..10631
- LHS_EXPR@10299..10320
- EXPR_ARRAY@10299..10320
- L_BRACK@10299..10300 "["
- EXPR_APPLY@10300..10319
- EXPR_INDEX@10300..10308
- EXPR_VAR@10300..10303
- NAME@10300..10303
- IDENT@10300..10303 "std"
- DOT@10303..10304 "."
- NAME@10304..10308
- IDENT@10304..10308 "join"
- ARGS_DESC@10308..10319
- L_PAREN@10308..10309 "("
- ARG@10309..10313
- EXPR_STRING@10309..10313
- STRING_SINGLE@10309..10313 "'\\n'"
- COMMA@10313..10314 ","
- WHITESPACE@10314..10315 " "
- ARG@10315..10318
- EXPR_VAR@10315..10318
- NAME@10315..10318
- IDENT@10315..10318 "kvp"
- R_PAREN@10318..10319 ")"
- R_BRACK@10319..10320 "]"
- WHITESPACE@10320..10321 " "
- PLUS@10321..10322 "+"
- WHITESPACE@10322..10323 " "
- EXPR_ARRAY_COMP@10323..10631
- L_BRACK@10323..10324 "["
- WHITESPACE@10324..10335 "\n "
- EXPR_PARENED@10335..10553
- L_PAREN@10335..10336 "("
- WHITESPACE@10336..10349 "\n "
- EXPR_IF_THEN_ELSE@10349..10541
- IF_KW@10349..10351 "if"
- WHITESPACE@10351..10352 " "
- EXPR_APPLY@10352..10370
- EXPR_INDEX@10352..10364
- EXPR_VAR@10352..10355
- NAME@10352..10355
- IDENT@10352..10355 "std"
- DOT@10355..10356 "."
- NAME@10356..10364
- IDENT@10356..10364 "isObject"
- ARGS_DESC@10364..10370
- L_PAREN@10364..10365 "("
- ARG@10365..10369
- EXPR_INDEX_EXPR@10365..10369
- LHS_EXPR@10365..10366
- EXPR_VAR@10365..10366
- NAME@10365..10366
- IDENT@10365..10366 "v"
- L_BRACK@10366..10367 "["
- EXPR_VAR@10367..10368
- NAME@10367..10368
- IDENT@10367..10368 "k"
- R_BRACK@10368..10369 "]"
- R_PAREN@10369..10370 ")"
- WHITESPACE@10370..10371 " "
- THEN_KW@10371..10375 "then"
- WHITESPACE@10375..10390 "\n "
- TRUE_EXPR@10390..10447
- EXPR_APPLY@10390..10447
- EXPR_VAR@10390..10401
- NAME@10390..10401
- IDENT@10390..10401 "renderTable"
- ARGS_DESC@10401..10447
- L_PAREN@10401..10402 "("
- ARG@10402..10406
- EXPR_INDEX_EXPR@10402..10406
- LHS_EXPR@10402..10403
- EXPR_VAR@10402..10403
- NAME@10402..10403
- IDENT@10402..10403 "v"
- L_BRACK@10403..10404 "["
- EXPR_VAR@10404..10405
- NAME@10404..10405
- IDENT@10404..10405 "k"
- R_BRACK@10405..10406 "]"
- COMMA@10406..10407 ","
- WHITESPACE@10407..10408 " "
- ARG@10408..10418
- EXPR_BINARY@10408..10418
- LHS_EXPR@10408..10412
- EXPR_VAR@10408..10412
- NAME@10408..10412
- IDENT@10408..10412 "path"
- WHITESPACE@10412..10413 " "
- PLUS@10413..10414 "+"
- WHITESPACE@10414..10415 " "
- EXPR_ARRAY@10415..10418
- L_BRACK@10415..10416 "["
- EXPR_VAR@10416..10417
- NAME@10416..10417
- IDENT@10416..10417 "k"
- R_BRACK@10417..10418 "]"
- COMMA@10418..10419 ","
- WHITESPACE@10419..10420 " "
- ARG@10420..10437
- EXPR_BINARY@10420..10437
- LHS_EXPR@10420..10431
- EXPR_VAR@10420..10431
- NAME@10420..10431
- IDENT@10420..10431 "indexedPath"
- WHITESPACE@10431..10432 " "
- PLUS@10432..10433 "+"
- WHITESPACE@10433..10434 " "
- EXPR_ARRAY@10434..10437
- L_BRACK@10434..10435 "["
- EXPR_VAR@10435..10436
- NAME@10435..10436
- IDENT@10435..10436 "k"
- R_BRACK@10436..10437 "]"
- COMMA@10437..10438 ","
- WHITESPACE@10438..10439 " "
- ARG@10439..10446
- EXPR_VAR@10439..10446
- NAME@10439..10446
- IDENT@10439..10446 "cindent"
- R_PAREN@10446..10447 ")"
- WHITESPACE@10447..10460 "\n "
- ELSE_KW@10460..10464 "else"
- WHITESPACE@10464..10479 "\n "
- FALSE_EXPR@10479..10541
- EXPR_APPLY@10479..10541
- EXPR_VAR@10479..10495
- NAME@10479..10495
- IDENT@10479..10495 "renderTableArray"
- ARGS_DESC@10495..10541
- L_PAREN@10495..10496 "("
- ARG@10496..10500
- EXPR_INDEX_EXPR@10496..10500
- LHS_EXPR@10496..10497
- EXPR_VAR@10496..10497
- NAME@10496..10497
- IDENT@10496..10497 "v"
- L_BRACK@10497..10498 "["
- EXPR_VAR@10498..10499
- NAME@10498..10499
- IDENT@10498..10499 "k"
- R_BRACK@10499..10500 "]"
- COMMA@10500..10501 ","
- WHITESPACE@10501..10502 " "
- ARG@10502..10512
- EXPR_BINARY@10502..10512
- LHS_EXPR@10502..10506
- EXPR_VAR@10502..10506
- NAME@10502..10506
- IDENT@10502..10506 "path"
- WHITESPACE@10506..10507 " "
- PLUS@10507..10508 "+"
- WHITESPACE@10508..10509 " "
- EXPR_ARRAY@10509..10512
- L_BRACK@10509..10510 "["
- EXPR_VAR@10510..10511
- NAME@10510..10511
- IDENT@10510..10511 "k"
- R_BRACK@10511..10512 "]"
- COMMA@10512..10513 ","
- WHITESPACE@10513..10514 " "
- ARG@10514..10531
- EXPR_BINARY@10514..10531
- LHS_EXPR@10514..10525
- EXPR_VAR@10514..10525
- NAME@10514..10525
- IDENT@10514..10525 "indexedPath"
- WHITESPACE@10525..10526 " "
- PLUS@10526..10527 "+"
- WHITESPACE@10527..10528 " "
- EXPR_ARRAY@10528..10531
- L_BRACK@10528..10529 "["
- EXPR_VAR@10529..10530
- NAME@10529..10530
- IDENT@10529..10530 "k"
- R_BRACK@10530..10531 "]"
- COMMA@10531..10532 ","
- WHITESPACE@10532..10533 " "
- ARG@10533..10540
- EXPR_VAR@10533..10540
- NAME@10533..10540
- IDENT@10533..10540 "cindent"
- R_PAREN@10540..10541 ")"
- WHITESPACE@10541..10552 "\n "
- R_PAREN@10552..10553 ")"
- WHITESPACE@10553..10564 "\n "
- FOR_SPEC@10564..10592
- FOR_KW@10564..10567 "for"
- WHITESPACE@10567..10568 " "
- NAME@10568..10569
- IDENT@10568..10569 "k"
- WHITESPACE@10569..10570 " "
- IN_KW@10570..10572 "in"
- WHITESPACE@10572..10573 " "
- EXPR_APPLY@10573..10592
- EXPR_INDEX@10573..10589
- EXPR_VAR@10573..10576
- NAME@10573..10576
- IDENT@10573..10576 "std"
- DOT@10576..10577 "."
- NAME@10577..10589
- IDENT@10577..10589 "objectFields"
- ARGS_DESC@10589..10592
- L_PAREN@10589..10590 "("
- ARG@10590..10591
- EXPR_VAR@10590..10591
- NAME@10590..10591
- IDENT@10590..10591 "v"
- R_PAREN@10591..10592 ")"
- WHITESPACE@10592..10603 "\n "
- IF_SPEC@10603..10621
- IF_KW@10603..10605 "if"
- WHITESPACE@10605..10606 " "
- EXPR_APPLY@10606..10621
- EXPR_VAR@10606..10615
- NAME@10606..10615
- IDENT@10606..10615 "isSection"
- ARGS_DESC@10615..10621
- L_PAREN@10615..10616 "("
- ARG@10616..10620
- EXPR_INDEX_EXPR@10616..10620
- LHS_EXPR@10616..10617
- EXPR_VAR@10616..10617
- NAME@10616..10617
- IDENT@10616..10617 "v"
- L_BRACK@10617..10618 "["
- EXPR_VAR@10618..10619
- NAME@10618..10619
- IDENT@10618..10619 "k"
- R_BRACK@10619..10620 "]"
- R_PAREN@10620..10621 ")"
- WHITESPACE@10621..10630 "\n "
- R_BRACK@10630..10631 "]"
- SEMI@10631..10632 ";"
- WHITESPACE@10632..10641 "\n "
- EXPR_APPLY@10641..10667
- EXPR_INDEX@10641..10649
- EXPR_VAR@10641..10644
- NAME@10641..10644
- IDENT@10641..10644 "std"
- DOT@10644..10645 "."
- NAME@10645..10649
- IDENT@10645..10649 "join"
- ARGS_DESC@10649..10667
- L_PAREN@10649..10650 "("
- ARG@10650..10656
- EXPR_STRING@10650..10656
- STRING_SINGLE@10650..10656 "'\\n\\n'"
- COMMA@10656..10657 ","
- WHITESPACE@10657..10658 " "
- ARG@10658..10666
- EXPR_VAR@10658..10666
- NAME@10658..10666
- IDENT@10658..10666 "sections"
- R_PAREN@10666..10667 ")"
- COMMA@10667..10668 ","
- WHITESPACE@10668..10675 "\n "
- BIND_FUNCTION@10675..10904
- NAME@10675..10686
- IDENT@10675..10686 "renderTable"
- PARAMS_DESC@10686..10717
- L_PAREN@10686..10687 "("
- PARAM@10687..10688
- DESTRUCT_FULL@10687..10688
- NAME@10687..10688
- IDENT@10687..10688 "v"
- COMMA@10688..10689 ","
- WHITESPACE@10689..10690 " "
- PARAM@10690..10694
- DESTRUCT_FULL@10690..10694
- NAME@10690..10694
- IDENT@10690..10694 "path"
- COMMA@10694..10695 ","
- WHITESPACE@10695..10696 " "
- PARAM@10696..10707
- DESTRUCT_FULL@10696..10707
- NAME@10696..10707
- IDENT@10696..10707 "indexedPath"
- COMMA@10707..10708 ","
- WHITESPACE@10708..10709 " "
- PARAM@10709..10716
- DESTRUCT_FULL@10709..10716
- NAME@10709..10716
- IDENT@10709..10716 "cindent"
- R_PAREN@10716..10717 ")"
- WHITESPACE@10717..10718 " "
- ASSIGN@10718..10719 "="
- WHITESPACE@10719..10728 "\n "
- EXPR_BINARY@10728..10904
- LHS_EXPR@10728..10834
- EXPR_BINARY@10728..10834
- LHS_EXPR@10728..10793
- EXPR_BINARY@10728..10793
- LHS_EXPR@10728..10787
- EXPR_BINARY@10728..10787
- LHS_EXPR@10728..10741
- EXPR_BINARY@10728..10741
- LHS_EXPR@10728..10735
- EXPR_VAR@10728..10735
- NAME@10728..10735
- IDENT@10728..10735 "cindent"
- WHITESPACE@10735..10736 " "
- PLUS@10736..10737 "+"
- WHITESPACE@10737..10738 " "
- EXPR_STRING@10738..10741
- STRING_SINGLE@10738..10741 "'['"
- WHITESPACE@10741..10742 " "
- PLUS@10742..10743 "+"
- WHITESPACE@10743..10744 " "
- EXPR_APPLY@10744..10787
- EXPR_INDEX@10744..10752
- EXPR_VAR@10744..10747
- NAME@10744..10747
- IDENT@10744..10747 "std"
- DOT@10747..10748 "."
- NAME@10748..10752
- IDENT@10748..10752 "join"
- ARGS_DESC@10752..10787
- L_PAREN@10752..10753 "("
- ARG@10753..10756
- EXPR_STRING@10753..10756
- STRING_SINGLE@10753..10756 "'.'"
- COMMA@10756..10757 ","
- WHITESPACE@10757..10758 " "
- ARG@10758..10786
- EXPR_APPLY@10758..10786
- EXPR_INDEX@10758..10765
- EXPR_VAR@10758..10761
- NAME@10758..10761
- IDENT@10758..10761 "std"
- DOT@10761..10762 "."
- NAME@10762..10765
- IDENT@10762..10765 "map"
- ARGS_DESC@10765..10786
- L_PAREN@10765..10766 "("
- ARG@10766..10779
- EXPR_VAR@10766..10779
- NAME@10766..10779
- IDENT@10766..10779 "escapeKeyToml"
- COMMA@10779..10780 ","
- WHITESPACE@10780..10781 " "
- ARG@10781..10785
- EXPR_VAR@10781..10785
- NAME@10781..10785
- IDENT@10781..10785 "path"
- R_PAREN@10785..10786 ")"
- R_PAREN@10786..10787 ")"
- WHITESPACE@10787..10788 " "
- PLUS@10788..10789 "+"
- WHITESPACE@10789..10790 " "
- EXPR_STRING@10790..10793
- STRING_SINGLE@10790..10793 "']'"
- WHITESPACE@10793..10802 "\n "
- PLUS@10802..10803 "+"
- WHITESPACE@10803..10804 " "
- EXPR_PARENED@10804..10834
- L_PAREN@10804..10805 "("
- EXPR_IF_THEN_ELSE@10805..10833
- IF_KW@10805..10807 "if"
- WHITESPACE@10807..10808 " "
- EXPR_BINARY@10808..10815
- LHS_EXPR@10808..10809
- EXPR_VAR@10808..10809
- NAME@10808..10809
- IDENT@10808..10809 "v"
- WHITESPACE@10809..10810 " "
- EQ@10810..10812 "=="
- WHITESPACE@10812..10813 " "
- EXPR_OBJECT@10813..10815
- OBJ_BODY_MEMBER_LIST@10813..10815
- L_BRACE@10813..10814 "{"
- R_BRACE@10814..10815 "}"
- WHITESPACE@10815..10816 " "
- THEN_KW@10816..10820 "then"
- WHITESPACE@10820..10821 " "
- TRUE_EXPR@10821..10823
- EXPR_STRING@10821..10823
- STRING_SINGLE@10821..10823 "''"
- WHITESPACE@10823..10824 " "
- ELSE_KW@10824..10828 "else"
- WHITESPACE@10828..10829 " "
- FALSE_EXPR@10829..10833
- EXPR_STRING@10829..10833
- STRING_SINGLE@10829..10833 "'\\n'"
- R_PAREN@10833..10834 ")"
- WHITESPACE@10834..10843 "\n "
- PLUS@10843..10844 "+"
- WHITESPACE@10844..10845 " "
- EXPR_APPLY@10845..10904
- EXPR_VAR@10845..10864
- NAME@10845..10864
- IDENT@10845..10864 "renderTableInternal"
- ARGS_DESC@10864..10904
- L_PAREN@10864..10865 "("
- ARG@10865..10866
- EXPR_VAR@10865..10866
- NAME@10865..10866
- IDENT@10865..10866 "v"
- COMMA@10866..10867 ","
- WHITESPACE@10867..10868 " "
- ARG@10868..10872
- EXPR_VAR@10868..10872
- NAME@10868..10872
- IDENT@10868..10872 "path"
- COMMA@10872..10873 ","
- WHITESPACE@10873..10874 " "
- ARG@10874..10885
- EXPR_VAR@10874..10885
- NAME@10874..10885
- IDENT@10874..10885 "indexedPath"
- COMMA@10885..10886 ","
- WHITESPACE@10886..10887 " "
- ARG@10887..10903
- EXPR_BINARY@10887..10903
- LHS_EXPR@10887..10894
- EXPR_VAR@10887..10894
- NAME@10887..10894
- IDENT@10887..10894 "cindent"
- WHITESPACE@10894..10895 " "
- PLUS@10895..10896 "+"
- WHITESPACE@10896..10897 " "
- EXPR_VAR@10897..10903
- NAME@10897..10903
- IDENT@10897..10903 "indent"
- R_PAREN@10903..10904 ")"
- COMMA@10904..10905 ","
- WHITESPACE@10905..10912 "\n "
- BIND_FUNCTION@10912..11323
- NAME@10912..10928
- IDENT@10912..10928 "renderTableArray"
- PARAMS_DESC@10928..10959
- L_PAREN@10928..10929 "("
- PARAM@10929..10930
- DESTRUCT_FULL@10929..10930
- NAME@10929..10930
- IDENT@10929..10930 "v"
- COMMA@10930..10931 ","
- WHITESPACE@10931..10932 " "
- PARAM@10932..10936
- DESTRUCT_FULL@10932..10936
- NAME@10932..10936
- IDENT@10932..10936 "path"
- COMMA@10936..10937 ","
- WHITESPACE@10937..10938 " "
- PARAM@10938..10949
- DESTRUCT_FULL@10938..10949
- NAME@10938..10949
- IDENT@10938..10949 "indexedPath"
- COMMA@10949..10950 ","
- WHITESPACE@10950..10951 " "
- PARAM@10951..10958
- DESTRUCT_FULL@10951..10958
- NAME@10951..10958
- IDENT@10951..10958 "cindent"
- R_PAREN@10958..10959 ")"
- WHITESPACE@10959..10960 " "
- ASSIGN@10960..10961 "="
- WHITESPACE@10961..10970 "\n "
- EXPR_LOCAL@10970..11323
- LOCAL_KW@10970..10975 "local"
- WHITESPACE@10975..10976 " "
- BIND_DESTRUCT@10976..11015
- DESTRUCT_FULL@10976..10981
- NAME@10976..10981
- IDENT@10976..10981 "range"
- WHITESPACE@10981..10982 " "
- ASSIGN@10982..10983 "="
- WHITESPACE@10983..10984 " "
- EXPR_APPLY@10984..11015
- EXPR_INDEX@10984..10993
- EXPR_VAR@10984..10987
- NAME@10984..10987
- IDENT@10984..10987 "std"
- DOT@10987..10988 "."
- NAME@10988..10993
- IDENT@10988..10993 "range"
- ARGS_DESC@10993..11015
- L_PAREN@10993..10994 "("
- ARG@10994..10995
- EXPR_NUMBER@10994..10995
- FLOAT@10994..10995 "0"
- COMMA@10995..10996 ","
- WHITESPACE@10996..10997 " "
- ARG@10997..11014
- EXPR_BINARY@10997..11014
- LHS_EXPR@10997..11010
- EXPR_APPLY@10997..11010
- EXPR_INDEX@10997..11007
- EXPR_VAR@10997..11000
- NAME@10997..11000
- IDENT@10997..11000 "std"
- DOT@11000..11001 "."
- NAME@11001..11007
- IDENT@11001..11007 "length"
- ARGS_DESC@11007..11010
- L_PAREN@11007..11008 "("
- ARG@11008..11009
- EXPR_VAR@11008..11009
- NAME@11008..11009
- IDENT@11008..11009 "v"
- R_PAREN@11009..11010 ")"
- WHITESPACE@11010..11011 " "
- MINUS@11011..11012 "-"
- WHITESPACE@11012..11013 " "
- EXPR_NUMBER@11013..11014
- FLOAT@11013..11014 "1"
- R_PAREN@11014..11015 ")"
- SEMI@11015..11016 ";"
- WHITESPACE@11016..11025 "\n "
- EXPR_LOCAL@11025..11323
- LOCAL_KW@11025..11030 "local"
- WHITESPACE@11030..11031 " "
- BIND_DESTRUCT@11031..11287
- DESTRUCT_FULL@11031..11039
- NAME@11031..11039
- IDENT@11031..11039 "sections"
- WHITESPACE@11039..11040 " "
- ASSIGN@11040..11041 "="
- WHITESPACE@11041..11042 " "
- EXPR_ARRAY_COMP@11042..11287
- L_BRACK@11042..11043 "["
- WHITESPACE@11043..11054 "\n "
- EXPR_PARENED@11054..11252
- L_PAREN@11054..11055 "("
- EXPR_BINARY@11055..11251
- LHS_EXPR@11055..11169
- EXPR_BINARY@11055..11169
- LHS_EXPR@11055..11122
- EXPR_BINARY@11055..11122
- LHS_EXPR@11055..11115
- EXPR_BINARY@11055..11115
- LHS_EXPR@11055..11069
- EXPR_BINARY@11055..11069
- LHS_EXPR@11055..11062
- EXPR_VAR@11055..11062
- NAME@11055..11062
- IDENT@11055..11062 "cindent"
- WHITESPACE@11062..11063 " "
- PLUS@11063..11064 "+"
- WHITESPACE@11064..11065 " "
- EXPR_STRING@11065..11069
- STRING_SINGLE@11065..11069 "'[['"
- WHITESPACE@11069..11070 " "
- PLUS@11070..11071 "+"
- WHITESPACE@11071..11072 " "
- EXPR_APPLY@11072..11115
- EXPR_INDEX@11072..11080
- EXPR_VAR@11072..11075
- NAME@11072..11075
- IDENT@11072..11075 "std"
- DOT@11075..11076 "."
- NAME@11076..11080
- IDENT@11076..11080 "join"
- ARGS_DESC@11080..11115
- L_PAREN@11080..11081 "("
- ARG@11081..11084
- EXPR_STRING@11081..11084
- STRING_SINGLE@11081..11084 "'.'"
- COMMA@11084..11085 ","
- WHITESPACE@11085..11086 " "
- ARG@11086..11114
- EXPR_APPLY@11086..11114
- EXPR_INDEX@11086..11093
- EXPR_VAR@11086..11089
- NAME@11086..11089
- IDENT@11086..11089 "std"
- DOT@11089..11090 "."
- NAME@11090..11093
- IDENT@11090..11093 "map"
- ARGS_DESC@11093..11114
- L_PAREN@11093..11094 "("
- ARG@11094..11107
- EXPR_VAR@11094..11107
- NAME@11094..11107
- IDENT@11094..11107 "escapeKeyToml"
- COMMA@11107..11108 ","
- WHITESPACE@11108..11109 " "
- ARG@11109..11113
- EXPR_VAR@11109..11113
- NAME@11109..11113
- IDENT@11109..11113 "path"
- R_PAREN@11113..11114 ")"
- R_PAREN@11114..11115 ")"
- WHITESPACE@11115..11116 " "
- PLUS@11116..11117 "+"
- WHITESPACE@11117..11118 " "
- EXPR_STRING@11118..11122
- STRING_SINGLE@11118..11122 "']]'"
- WHITESPACE@11122..11134 "\n "
- PLUS@11134..11135 "+"
- WHITESPACE@11135..11136 " "
- EXPR_PARENED@11136..11169
- L_PAREN@11136..11137 "("
- EXPR_IF_THEN_ELSE@11137..11168
- IF_KW@11137..11139 "if"
- WHITESPACE@11139..11140 " "
- EXPR_BINARY@11140..11150
- LHS_EXPR@11140..11144
- EXPR_INDEX_EXPR@11140..11144
- LHS_EXPR@11140..11141
- EXPR_VAR@11140..11141
- NAME@11140..11141
- IDENT@11140..11141 "v"
- L_BRACK@11141..11142 "["
- EXPR_VAR@11142..11143
- NAME@11142..11143
- IDENT@11142..11143 "i"
- R_BRACK@11143..11144 "]"
- WHITESPACE@11144..11145 " "
- EQ@11145..11147 "=="
- WHITESPACE@11147..11148 " "
- EXPR_OBJECT@11148..11150
- OBJ_BODY_MEMBER_LIST@11148..11150
- L_BRACE@11148..11149 "{"
- R_BRACE@11149..11150 "}"
- WHITESPACE@11150..11151 " "
- THEN_KW@11151..11155 "then"
- WHITESPACE@11155..11156 " "
- TRUE_EXPR@11156..11158
- EXPR_STRING@11156..11158
- STRING_SINGLE@11156..11158 "''"
- WHITESPACE@11158..11159 " "
- ELSE_KW@11159..11163 "else"
- WHITESPACE@11163..11164 " "
- FALSE_EXPR@11164..11168
- EXPR_STRING@11164..11168
- STRING_SINGLE@11164..11168 "'\\n'"
- R_PAREN@11168..11169 ")"
- WHITESPACE@11169..11181 "\n "
- PLUS@11181..11182 "+"
- WHITESPACE@11182..11183 " "
- EXPR_APPLY@11183..11251
- EXPR_VAR@11183..11202
- NAME@11183..11202
- IDENT@11183..11202 "renderTableInternal"
- ARGS_DESC@11202..11251
- L_PAREN@11202..11203 "("
- ARG@11203..11207
- EXPR_INDEX_EXPR@11203..11207
- LHS_EXPR@11203..11204
- EXPR_VAR@11203..11204
- NAME@11203..11204
- IDENT@11203..11204 "v"
- L_BRACK@11204..11205 "["
- EXPR_VAR@11205..11206
- NAME@11205..11206
- IDENT@11205..11206 "i"
- R_BRACK@11206..11207 "]"
- COMMA@11207..11208 ","
- WHITESPACE@11208..11209 " "
- ARG@11209..11213
- EXPR_VAR@11209..11213
- NAME@11209..11213
- IDENT@11209..11213 "path"
- COMMA@11213..11214 ","
- WHITESPACE@11214..11215 " "
- ARG@11215..11232
- EXPR_BINARY@11215..11232
- LHS_EXPR@11215..11226
- EXPR_VAR@11215..11226
- NAME@11215..11226
- IDENT@11215..11226 "indexedPath"
- WHITESPACE@11226..11227 " "
- PLUS@11227..11228 "+"
- WHITESPACE@11228..11229 " "
- EXPR_ARRAY@11229..11232
- L_BRACK@11229..11230 "["
- EXPR_VAR@11230..11231
- NAME@11230..11231
- IDENT@11230..11231 "i"
- R_BRACK@11231..11232 "]"
- COMMA@11232..11233 ","
- WHITESPACE@11233..11234 " "
- ARG@11234..11250
- EXPR_BINARY@11234..11250
- LHS_EXPR@11234..11241
- EXPR_VAR@11234..11241
- NAME@11234..11241
- IDENT@11234..11241 "cindent"
- WHITESPACE@11241..11242 " "
- PLUS@11242..11243 "+"
- WHITESPACE@11243..11244 " "
- EXPR_VAR@11244..11250
- NAME@11244..11250
- IDENT@11244..11250 "indent"
- R_PAREN@11250..11251 ")"
- R_PAREN@11251..11252 ")"
- WHITESPACE@11252..11263 "\n "
- FOR_SPEC@11263..11277
- FOR_KW@11263..11266 "for"
- WHITESPACE@11266..11267 " "
- NAME@11267..11268
- IDENT@11267..11268 "i"
- WHITESPACE@11268..11269 " "
- IN_KW@11269..11271 "in"
- WHITESPACE@11271..11272 " "
- EXPR_VAR@11272..11277
- NAME@11272..11277
- IDENT@11272..11277 "range"
- WHITESPACE@11277..11286 "\n "
- R_BRACK@11286..11287 "]"
- SEMI@11287..11288 ";"
- WHITESPACE@11288..11297 "\n "
- EXPR_APPLY@11297..11323
- EXPR_INDEX@11297..11305
- EXPR_VAR@11297..11300
- NAME@11297..11300
- IDENT@11297..11300 "std"
- DOT@11300..11301 "."
- NAME@11301..11305
- IDENT@11301..11305 "join"
- ARGS_DESC@11305..11323
- L_PAREN@11305..11306 "("
- ARG@11306..11312
- EXPR_STRING@11306..11312
- STRING_SINGLE@11306..11312 "'\\n\\n'"
- COMMA@11312..11313 ","
- WHITESPACE@11313..11314 " "
- ARG@11314..11322
- EXPR_VAR@11314..11322
- NAME@11314..11322
- IDENT@11314..11322 "sections"
- R_PAREN@11322..11323 ")"
- SEMI@11323..11324 ";"
- WHITESPACE@11324..11329 "\n "
- EXPR_IF_THEN_ELSE@11329..11476
- IF_KW@11329..11331 "if"
- WHITESPACE@11331..11332 " "
- EXPR_APPLY@11332..11351
- EXPR_INDEX@11332..11344
- EXPR_VAR@11332..11335
- NAME@11332..11335
- IDENT@11332..11335 "std"
- DOT@11335..11336 "."
- NAME@11336..11344
- IDENT@11336..11344 "isObject"
- ARGS_DESC@11344..11351
- L_PAREN@11344..11345 "("
- ARG@11345..11350
- EXPR_VAR@11345..11350
- NAME@11345..11350
- IDENT@11345..11350 "value"
- R_PAREN@11350..11351 ")"
- WHITESPACE@11351..11352 " "
- THEN_KW@11352..11356 "then"
- WHITESPACE@11356..11363 "\n "
- TRUE_EXPR@11363..11401
- EXPR_APPLY@11363..11401
- EXPR_VAR@11363..11382
- NAME@11363..11382
- IDENT@11363..11382 "renderTableInternal"
- ARGS_DESC@11382..11401
- L_PAREN@11382..11383 "("
- ARG@11383..11388
- EXPR_VAR@11383..11388
- NAME@11383..11388
- IDENT@11383..11388 "value"
- COMMA@11388..11389 ","
- WHITESPACE@11389..11390 " "
- ARG@11390..11392
- EXPR_ARRAY@11390..11392
- L_BRACK@11390..11391 "["
- R_BRACK@11391..11392 "]"
- COMMA@11392..11393 ","
- WHITESPACE@11393..11394 " "
- ARG@11394..11396
- EXPR_ARRAY@11394..11396
- L_BRACK@11394..11395 "["
- R_BRACK@11395..11396 "]"
- COMMA@11396..11397 ","
- WHITESPACE@11397..11398 " "
- ARG@11398..11400
- EXPR_STRING@11398..11400
- STRING_SINGLE@11398..11400 "''"
- R_PAREN@11400..11401 ")"
- WHITESPACE@11401..11406 "\n "
- ELSE_KW@11406..11410 "else"
- WHITESPACE@11410..11417 "\n "
- FALSE_EXPR@11417..11476
- EXPR_ERROR@11417..11476
- ERROR_KW@11417..11422 "error"
- WHITESPACE@11422..11423 " "
- EXPR_BINARY@11423..11476
- LHS_EXPR@11423..11458
- EXPR_STRING@11423..11458
- STRING_SINGLE@11423..11458 "'TOML body must be an ..."
- WHITESPACE@11458..11459 " "
- PLUS@11459..11460 "+"
- WHITESPACE@11460..11461 " "
- EXPR_APPLY@11461..11476
- EXPR_INDEX@11461..11469
- EXPR_VAR@11461..11464
- NAME@11461..11464
- IDENT@11461..11464 "std"
- DOT@11464..11465 "."
- NAME@11465..11469
- IDENT@11465..11469 "type"
- ARGS_DESC@11469..11476
- L_PAREN@11469..11470 "("
- ARG@11470..11475
- EXPR_VAR@11470..11475
- NAME@11470..11475
- IDENT@11470..11475 "value"
- R_PAREN@11475..11476 ")"
- COMMA@11476..11477 ","
- WHITESPACE@11477..11481 "\n\n "
- MEMBER_FIELD@11481..11528
- FIELD_NORMAL@11481..11528
- FIELD_NAME_FIXED@11481..11497
- NAME@11481..11497
- IDENT@11481..11497 "escapeStringJson"
- COLONCOLON@11497..11499 "::"
- WHITESPACE@11499..11500 " "
- EXPR_INTRINSIC@11500..11528
- INTRINSIC@11500..11510 "$intrinsic"
- L_PAREN@11510..11511 "("
- NAME@11511..11527
- IDENT@11511..11527 "escapeStringJson"
- R_PAREN@11527..11528 ")"
- COMMA@11528..11529 ","
- WHITESPACE@11529..11533 "\n\n "
- MEMBER_FIELD@11533..11588
- FIELD_METHOD@11533..11588
- FIELD_NAME_FIXED@11533..11551
- NAME@11533..11551
- IDENT@11533..11551 "escapeStringPython"
- PARAMS_DESC@11551..11556
- L_PAREN@11551..11552 "("
- PARAM@11552..11555
- DESTRUCT_FULL@11552..11555
- NAME@11552..11555
- IDENT@11552..11555 "str"
- R_PAREN@11555..11556 ")"
- COLONCOLON@11556..11558 "::"
- WHITESPACE@11558..11563 "\n "
- EXPR_APPLY@11563..11588
- EXPR_INDEX@11563..11583
- EXPR_VAR@11563..11566
- NAME@11563..11566
- IDENT@11563..11566 "std"
- DOT@11566..11567 "."
- NAME@11567..11583
- IDENT@11567..11583 "escapeStringJson"
- ARGS_DESC@11583..11588
- L_PAREN@11583..11584 "("
- ARG@11584..11587
- EXPR_VAR@11584..11587
- NAME@11584..11587
- IDENT@11584..11587 "str"
- R_PAREN@11587..11588 ")"
- COMMA@11588..11589 ","
- WHITESPACE@11589..11593 "\n\n "
- MEMBER_FIELD@11593..11810
- FIELD_METHOD@11593..11810
- FIELD_NAME_FIXED@11593..11609
- NAME@11593..11609
- IDENT@11593..11609 "escapeStringBash"
- PARAMS_DESC@11609..11615
- L_PAREN@11609..11610 "("
- PARAM@11610..11614
- DESTRUCT_FULL@11610..11614
- NAME@11610..11614
- IDENT@11610..11614 "str_"
- R_PAREN@11614..11615 ")"
- COLONCOLON@11615..11617 "::"
- WHITESPACE@11617..11622 "\n "
- EXPR_LOCAL@11622..11810
- LOCAL_KW@11622..11627 "local"
- WHITESPACE@11627..11628 " "
- BIND_DESTRUCT@11628..11652
- DESTRUCT_FULL@11628..11631
- NAME@11628..11631
- IDENT@11628..11631 "str"
- WHITESPACE@11631..11632 " "
- ASSIGN@11632..11633 "="
- WHITESPACE@11633..11634 " "
- EXPR_APPLY@11634..11652
- EXPR_INDEX@11634..11646
- EXPR_VAR@11634..11637
- NAME@11634..11637
- IDENT@11634..11637 "std"
- DOT@11637..11638 "."
- NAME@11638..11646
- IDENT@11638..11646 "toString"
- ARGS_DESC@11646..11652
- L_PAREN@11646..11647 "("
- ARG@11647..11651
- EXPR_VAR@11647..11651
- NAME@11647..11651
- IDENT@11647..11651 "str_"
- R_PAREN@11651..11652 ")"
- SEMI@11652..11653 ";"
- WHITESPACE@11653..11658 "\n "
- EXPR_LOCAL@11658..11810
- LOCAL_KW@11658..11663 "local"
- WHITESPACE@11663..11664 " "
- BIND_FUNCTION@11664..11739
- NAME@11664..11669
- IDENT@11664..11669 "trans"
- PARAMS_DESC@11669..11673
- L_PAREN@11669..11670 "("
- PARAM@11670..11672
- DESTRUCT_FULL@11670..11672
- NAME@11670..11672
- IDENT@11670..11672 "ch"
- R_PAREN@11672..11673 ")"
- WHITESPACE@11673..11674 " "
- ASSIGN@11674..11675 "="
- WHITESPACE@11675..11682 "\n "
- EXPR_IF_THEN_ELSE@11682..11739
- IF_KW@11682..11684 "if"
- WHITESPACE@11684..11685 " "
- EXPR_BINARY@11685..11694
- LHS_EXPR@11685..11687
- EXPR_VAR@11685..11687
- NAME@11685..11687
- IDENT@11685..11687 "ch"
- WHITESPACE@11687..11688 " "
- EQ@11688..11690 "=="
- WHITESPACE@11690..11691 " "
- EXPR_STRING@11691..11694
- STRING_DOUBLE@11691..11694 "\"'\""
- WHITESPACE@11694..11695 " "
- THEN_KW@11695..11699 "then"
- WHITESPACE@11699..11708 "\n "
- TRUE_EXPR@11708..11717
- EXPR_STRING@11708..11717
- STRING_DOUBLE@11708..11717 "\"'\\\"'\\\"'\""
- WHITESPACE@11717..11724 "\n "
- ELSE_KW@11724..11728 "else"
- WHITESPACE@11728..11737 "\n "
- FALSE_EXPR@11737..11739
- EXPR_VAR@11737..11739
- NAME@11737..11739
- IDENT@11737..11739 "ch"
- SEMI@11739..11740 ";"
- WHITESPACE@11740..11745 "\n "
- EXPR_BINARY@11745..11810
- LHS_EXPR@11745..11751
- EXPR_STRING@11745..11751
- STRING_DOUBLE@11745..11751 "\"'%s'\""
- WHITESPACE@11751..11752 " "
- MODULO@11752..11753 "%"
- WHITESPACE@11753..11754 " "
- EXPR_APPLY@11754..11810
- EXPR_INDEX@11754..11762
- EXPR_VAR@11754..11757
- NAME@11754..11757
- IDENT@11754..11757 "std"
- DOT@11757..11758 "."
- NAME@11758..11762
- IDENT@11758..11762 "join"
- ARGS_DESC@11762..11810
- L_PAREN@11762..11763 "("
- ARG@11763..11765
- EXPR_STRING@11763..11765
- STRING_SINGLE@11763..11765 "''"
- COMMA@11765..11766 ","
- WHITESPACE@11766..11767 " "
- ARG@11767..11809
- EXPR_ARRAY_COMP@11767..11809
- L_BRACK@11767..11768 "["
- EXPR_APPLY@11768..11777
- EXPR_VAR@11768..11773
- NAME@11768..11773
- IDENT@11768..11773 "trans"
- ARGS_DESC@11773..11777
- L_PAREN@11773..11774 "("
- ARG@11774..11776
- EXPR_VAR@11774..11776
- NAME@11774..11776
- IDENT@11774..11776 "ch"
- R_PAREN@11776..11777 ")"
- WHITESPACE@11777..11778 " "
- FOR_SPEC@11778..11808
- FOR_KW@11778..11781 "for"
- WHITESPACE@11781..11782 " "
- NAME@11782..11784
- IDENT@11782..11784 "ch"
- WHITESPACE@11784..11785 " "
- IN_KW@11785..11787 "in"
- WHITESPACE@11787..11788 " "
- EXPR_APPLY@11788..11808
- EXPR_INDEX@11788..11803
- EXPR_VAR@11788..11791
- NAME@11788..11791
- IDENT@11788..11791 "std"
- DOT@11791..11792 "."
- NAME@11792..11803
- IDENT@11792..11803 "stringChars"
- ARGS_DESC@11803..11808
- L_PAREN@11803..11804 "("
- ARG@11804..11807
- EXPR_VAR@11804..11807
- NAME@11804..11807
- IDENT@11804..11807 "str"
- R_PAREN@11807..11808 ")"
- R_BRACK@11808..11809 "]"
- R_PAREN@11809..11810 ")"
- COMMA@11810..11811 ","
- WHITESPACE@11811..11815 "\n\n "
- MEMBER_FIELD@11815..12029
- FIELD_METHOD@11815..12029
- FIELD_NAME_FIXED@11815..11834
- NAME@11815..11834
- IDENT@11815..11834 "escapeStringDollars"
- PARAMS_DESC@11834..11840
- L_PAREN@11834..11835 "("
- PARAM@11835..11839
- DESTRUCT_FULL@11835..11839
- NAME@11835..11839
- IDENT@11835..11839 "str_"
- R_PAREN@11839..11840 ")"
- COLONCOLON@11840..11842 "::"
- WHITESPACE@11842..11847 "\n "
- EXPR_LOCAL@11847..12029
- LOCAL_KW@11847..11852 "local"
- WHITESPACE@11852..11853 " "
- BIND_DESTRUCT@11853..11877
- DESTRUCT_FULL@11853..11856
- NAME@11853..11856
- IDENT@11853..11856 "str"
- WHITESPACE@11856..11857 " "
- ASSIGN@11857..11858 "="
- WHITESPACE@11858..11859 " "
- EXPR_APPLY@11859..11877
- EXPR_INDEX@11859..11871
- EXPR_VAR@11859..11862
- NAME@11859..11862
- IDENT@11859..11862 "std"
- DOT@11862..11863 "."
- NAME@11863..11871
- IDENT@11863..11871 "toString"
- ARGS_DESC@11871..11877
- L_PAREN@11871..11872 "("
- ARG@11872..11876
- EXPR_VAR@11872..11876
- NAME@11872..11876
- IDENT@11872..11876 "str_"
- R_PAREN@11876..11877 ")"
- SEMI@11877..11878 ";"
- WHITESPACE@11878..11883 "\n "
- EXPR_LOCAL@11883..12029
- LOCAL_KW@11883..11888 "local"
- WHITESPACE@11888..11889 " "
- BIND_FUNCTION@11889..11959
- NAME@11889..11894
- IDENT@11889..11894 "trans"
- PARAMS_DESC@11894..11898
- L_PAREN@11894..11895 "("
- PARAM@11895..11897
- DESTRUCT_FULL@11895..11897
- NAME@11895..11897
- IDENT@11895..11897 "ch"
- R_PAREN@11897..11898 ")"
- WHITESPACE@11898..11899 " "
- ASSIGN@11899..11900 "="
- WHITESPACE@11900..11907 "\n "
- EXPR_IF_THEN_ELSE@11907..11959
- IF_KW@11907..11909 "if"
- WHITESPACE@11909..11910 " "
- EXPR_BINARY@11910..11919
- LHS_EXPR@11910..11912
- EXPR_VAR@11910..11912
- NAME@11910..11912
- IDENT@11910..11912 "ch"
- WHITESPACE@11912..11913 " "
- EQ@11913..11915 "=="
- WHITESPACE@11915..11916 " "
- EXPR_STRING@11916..11919
- STRING_SINGLE@11916..11919 "'$'"
- WHITESPACE@11919..11920 " "
- THEN_KW@11920..11924 "then"
- WHITESPACE@11924..11933 "\n "
- TRUE_EXPR@11933..11937
- EXPR_STRING@11933..11937
- STRING_SINGLE@11933..11937 "'$$'"
- WHITESPACE@11937..11944 "\n "
- ELSE_KW@11944..11948 "else"
- WHITESPACE@11948..11957 "\n "
- FALSE_EXPR@11957..11959
- EXPR_VAR@11957..11959
- NAME@11957..11959
- IDENT@11957..11959 "ch"
- SEMI@11959..11960 ";"
- WHITESPACE@11960..11965 "\n "
- EXPR_APPLY@11965..12029
- EXPR_INDEX@11965..11974
- EXPR_VAR@11965..11968
- NAME@11965..11968
- IDENT@11965..11968 "std"
- DOT@11968..11969 "."
- NAME@11969..11974
- IDENT@11969..11974 "foldl"
- ARGS_DESC@11974..12029
- L_PAREN@11974..11975 "("
- ARG@11975..12002
- EXPR_FUNCTION@11975..12002
- FUNCTION_KW@11975..11983 "function"
- PARAMS_DESC@11983..11989
- L_PAREN@11983..11984 "("
- PARAM@11984..11985
- DESTRUCT_FULL@11984..11985
- NAME@11984..11985
- IDENT@11984..11985 "a"
- COMMA@11985..11986 ","
- WHITESPACE@11986..11987 " "
- PARAM@11987..11988
- DESTRUCT_FULL@11987..11988
- NAME@11987..11988
- IDENT@11987..11988 "b"
- R_PAREN@11988..11989 ")"
- WHITESPACE@11989..11990 " "
- EXPR_BINARY@11990..12002
- LHS_EXPR@11990..11991
- EXPR_VAR@11990..11991
- NAME@11990..11991
- IDENT@11990..11991 "a"
- WHITESPACE@11991..11992 " "
- PLUS@11992..11993 "+"
- WHITESPACE@11993..11994 " "
- EXPR_APPLY@11994..12002
- EXPR_VAR@11994..11999
- NAME@11994..11999
- IDENT@11994..11999 "trans"
- ARGS_DESC@11999..12002
- L_PAREN@11999..12000 "("
- ARG@12000..12001
- EXPR_VAR@12000..12001
- NAME@12000..12001
- IDENT@12000..12001 "b"
- R_PAREN@12001..12002 ")"
- COMMA@12002..12003 ","
- WHITESPACE@12003..12004 " "
- ARG@12004..12024
- EXPR_APPLY@12004..12024
- EXPR_INDEX@12004..12019
- EXPR_VAR@12004..12007
- NAME@12004..12007
- IDENT@12004..12007 "std"
- DOT@12007..12008 "."
- NAME@12008..12019
- IDENT@12008..12019 "stringChars"
- ARGS_DESC@12019..12024
- L_PAREN@12019..12020 "("
- ARG@12020..12023
- EXPR_VAR@12020..12023
- NAME@12020..12023
- IDENT@12020..12023 "str"
- R_PAREN@12023..12024 ")"
- COMMA@12024..12025 ","
- WHITESPACE@12025..12026 " "
- ARG@12026..12028
- EXPR_STRING@12026..12028
- STRING_SINGLE@12026..12028 "''"
- R_PAREN@12028..12029 ")"
- COMMA@12029..12030 ","
- WHITESPACE@12030..12034 "\n\n "
- MEMBER_FIELD@12034..12100
- FIELD_METHOD@12034..12100
- FIELD_NAME_FIXED@12034..12046
- NAME@12034..12046
- IDENT@12034..12046 "manifestJson"
- PARAMS_DESC@12046..12053
- L_PAREN@12046..12047 "("
- PARAM@12047..12052
- DESTRUCT_FULL@12047..12052
- NAME@12047..12052
- IDENT@12047..12052 "value"
- R_PAREN@12052..12053 ")"
- COLONCOLON@12053..12055 "::"
- WHITESPACE@12055..12056 " "
- EXPR_APPLY@12056..12100
- EXPR_INDEX@12056..12074
- EXPR_VAR@12056..12059
- NAME@12056..12059
- IDENT@12056..12059 "std"
- DOT@12059..12060 "."
- NAME@12060..12074
- IDENT@12060..12074 "manifestJsonEx"
- ARGS_DESC@12074..12100
- L_PAREN@12074..12075 "("
- ARG@12075..12080
- EXPR_VAR@12075..12080
- NAME@12075..12080
- IDENT@12075..12080 "value"
- COMMA@12080..12081 ","
- WHITESPACE@12081..12082 " "
- ARG@12082..12088
- EXPR_STRING@12082..12088
- STRING_SINGLE@12082..12088 "' '"
- R_PAREN@12088..12089 ")"
- WHITESPACE@12089..12090 " "
- TAILSTRICT_KW@12090..12100 "tailstrict"
- COMMA@12100..12101 ","
- WHITESPACE@12101..12105 "\n\n "
- MEMBER_FIELD@12105..12173
- FIELD_METHOD@12105..12173
- FIELD_NAME_FIXED@12105..12125
- NAME@12105..12125
- IDENT@12105..12125 "manifestJsonMinified"
- PARAMS_DESC@12125..12132
- L_PAREN@12125..12126 "("
- PARAM@12126..12131
- DESTRUCT_FULL@12126..12131
- NAME@12126..12131
- IDENT@12126..12131 "value"
- R_PAREN@12131..12132 ")"
- COLONCOLON@12132..12134 "::"
- WHITESPACE@12134..12135 " "
- EXPR_APPLY@12135..12173
- EXPR_INDEX@12135..12153
- EXPR_VAR@12135..12138
- NAME@12135..12138
- IDENT@12135..12138 "std"
- DOT@12138..12139 "."
- NAME@12139..12153
- IDENT@12139..12153 "manifestJsonEx"
- ARGS_DESC@12153..12173
- L_PAREN@12153..12154 "("
- ARG@12154..12159
- EXPR_VAR@12154..12159
- NAME@12154..12159
- IDENT@12154..12159 "value"
- COMMA@12159..12160 ","
- WHITESPACE@12160..12161 " "
- ARG@12161..12163
- EXPR_STRING@12161..12163
- STRING_SINGLE@12161..12163 "''"
- COMMA@12163..12164 ","
- WHITESPACE@12164..12165 " "
- ARG@12165..12167
- EXPR_STRING@12165..12167
- STRING_SINGLE@12165..12167 "''"
- COMMA@12167..12168 ","
- WHITESPACE@12168..12169 " "
- ARG@12169..12172
- EXPR_STRING@12169..12172
- STRING_SINGLE@12169..12172 "':'"
- R_PAREN@12172..12173 ")"
- COMMA@12173..12174 ","
- WHITESPACE@12174..12178 "\n\n "
- MEMBER_FIELD@12178..12221
- FIELD_NORMAL@12178..12221
- FIELD_NAME_FIXED@12178..12192
- NAME@12178..12192
- IDENT@12178..12192 "manifestJsonEx"
- COLONCOLON@12192..12194 "::"
- WHITESPACE@12194..12195 " "
- EXPR_INTRINSIC@12195..12221
- INTRINSIC@12195..12205 "$intrinsic"
- L_PAREN@12205..12206 "("
- NAME@12206..12220
- IDENT@12206..12220 "manifestJsonEx"
- R_PAREN@12220..12221 ")"
- COMMA@12221..12222 ","
- WHITESPACE@12222..12226 "\n\n "
- MEMBER_FIELD@12226..12271
- FIELD_NORMAL@12226..12271
- FIELD_NAME_FIXED@12226..12241
- NAME@12226..12241
- IDENT@12226..12241 "manifestYamlDoc"
- COLONCOLON@12241..12243 "::"
- WHITESPACE@12243..12244 " "
- EXPR_INTRINSIC@12244..12271
- INTRINSIC@12244..12254 "$intrinsic"
- L_PAREN@12254..12255 "("
- NAME@12255..12270
- IDENT@12255..12270 "manifestYamlDoc"
- R_PAREN@12270..12271 ")"
- COMMA@12271..12272 ","
- WHITESPACE@12272..12276 "\n\n "
- MEMBER_FIELD@12276..12632
- FIELD_METHOD@12276..12632
- FIELD_NAME_FIXED@12276..12294
- NAME@12276..12294
- IDENT@12276..12294 "manifestYamlStream"
- PARAMS_DESC@12294..12352
- L_PAREN@12294..12295 "("
- PARAM@12295..12300
- DESTRUCT_FULL@12295..12300
- NAME@12295..12300
- IDENT@12295..12300 "value"
- COMMA@12300..12301 ","
- WHITESPACE@12301..12302 " "
- PARAM@12302..12330
- DESTRUCT_FULL@12302..12324
- NAME@12302..12324
- IDENT@12302..12324 "indent_array_in_object"
- ASSIGN@12324..12325 "="
- EXPR_LITERAL@12325..12330
- FALSE_KW@12325..12330 "false"
- COMMA@12330..12331 ","
- WHITESPACE@12331..12332 " "
- PARAM@12332..12351
- DESTRUCT_FULL@12332..12346
- NAME@12332..12346
- IDENT@12332..12346 "c_document_end"
- ASSIGN@12346..12347 "="
- EXPR_LITERAL@12347..12351
- TRUE_KW@12347..12351 "true"
- R_PAREN@12351..12352 ")"
- COLONCOLON@12352..12354 "::"
- WHITESPACE@12354..12359 "\n "
- EXPR_IF_THEN_ELSE@12359..12632
- IF_KW@12359..12361 "if"
- WHITESPACE@12361..12362 " "
- EXPR_UNARY@12362..12381
- NOT@12362..12363 "!"
- EXPR_APPLY@12363..12381
- EXPR_INDEX@12363..12374
- EXPR_VAR@12363..12366
- NAME@12363..12366
- IDENT@12363..12366 "std"
- DOT@12366..12367 "."
- NAME@12367..12374
- IDENT@12367..12374 "isArray"
- ARGS_DESC@12374..12381
- L_PAREN@12374..12375 "("
- ARG@12375..12380
- EXPR_VAR@12375..12380
- NAME@12375..12380
- IDENT@12375..12380 "value"
- R_PAREN@12380..12381 ")"
- WHITESPACE@12381..12382 " "
- THEN_KW@12382..12386 "then"
- WHITESPACE@12386..12393 "\n "
- TRUE_EXPR@12393..12461
- EXPR_ERROR@12393..12461
- ERROR_KW@12393..12398 "error"
- WHITESPACE@12398..12399 " "
- EXPR_BINARY@12399..12461
- LHS_EXPR@12399..12443
- EXPR_STRING@12399..12443
- STRING_SINGLE@12399..12443 "'manifestYamlStream o ..."
- WHITESPACE@12443..12444 " "
- PLUS@12444..12445 "+"
- WHITESPACE@12445..12446 " "
- EXPR_APPLY@12446..12461
- EXPR_INDEX@12446..12454
- EXPR_VAR@12446..12449
- NAME@12446..12449
- IDENT@12446..12449 "std"
- DOT@12449..12450 "."
- NAME@12450..12454
- IDENT@12450..12454 "type"
- ARGS_DESC@12454..12461
- L_PAREN@12454..12455 "("
- ARG@12455..12460
- EXPR_VAR@12455..12460
- NAME@12455..12460
- IDENT@12455..12460 "value"
- R_PAREN@12460..12461 ")"
- WHITESPACE@12461..12466 "\n "
- ELSE_KW@12466..12470 "else"
- WHITESPACE@12470..12477 "\n "
- FALSE_EXPR@12477..12632
- EXPR_BINARY@12477..12632
- LHS_EXPR@12477..12587
- EXPR_BINARY@12477..12587
- LHS_EXPR@12477..12484
- EXPR_STRING@12477..12484
- STRING_SINGLE@12477..12484 "'---\\n'"
- WHITESPACE@12484..12485 " "
- PLUS@12485..12486 "+"
- WHITESPACE@12486..12487 " "
- EXPR_APPLY@12487..12587
- EXPR_INDEX@12487..12495
- EXPR_VAR@12487..12490
- NAME@12487..12490
- IDENT@12487..12490 "std"
- DOT@12490..12491 "."
- NAME@12491..12495
- IDENT@12491..12495 "join"
- ARGS_DESC@12495..12587
- L_PAREN@12495..12496 "("
- WHITESPACE@12496..12505 "\n "
- ARG@12505..12514
- EXPR_STRING@12505..12514
- STRING_SINGLE@12505..12514 "'\\n---\\n'"
- COMMA@12514..12515 ","
- WHITESPACE@12515..12516 " "
- ARG@12516..12579
- EXPR_ARRAY_COMP@12516..12579
- L_BRACK@12516..12517 "["
- EXPR_APPLY@12517..12563
- EXPR_INDEX@12517..12536
- EXPR_VAR@12517..12520
- NAME@12517..12520
- IDENT@12517..12520 "std"
- DOT@12520..12521 "."
- NAME@12521..12536
- IDENT@12521..12536 "manifestYamlDoc"
- ARGS_DESC@12536..12563
- L_PAREN@12536..12537 "("
- ARG@12537..12538
- EXPR_VAR@12537..12538
- NAME@12537..12538
- IDENT@12537..12538 "e"
- COMMA@12538..12539 ","
- WHITESPACE@12539..12540 " "
- ARG@12540..12562
- EXPR_VAR@12540..12562
- NAME@12540..12562
- IDENT@12540..12562 "indent_array_in_object"
- R_PAREN@12562..12563 ")"
- WHITESPACE@12563..12564 " "
- FOR_SPEC@12564..12578
- FOR_KW@12564..12567 "for"
- WHITESPACE@12567..12568 " "
- NAME@12568..12569
- IDENT@12568..12569 "e"
- WHITESPACE@12569..12570 " "
- IN_KW@12570..12572 "in"
- WHITESPACE@12572..12573 " "
- EXPR_VAR@12573..12578
- NAME@12573..12578
- IDENT@12573..12578 "value"
- R_BRACK@12578..12579 "]"
- WHITESPACE@12579..12586 "\n "
- R_PAREN@12586..12587 ")"
- WHITESPACE@12587..12588 " "
- PLUS@12588..12589 "+"
- WHITESPACE@12589..12590 " "
- EXPR_IF_THEN_ELSE@12590..12632
- IF_KW@12590..12592 "if"
- WHITESPACE@12592..12593 " "
- EXPR_VAR@12593..12607
- NAME@12593..12607
- IDENT@12593..12607 "c_document_end"
- WHITESPACE@12607..12608 " "
- THEN_KW@12608..12612 "then"
- WHITESPACE@12612..12613 " "
- TRUE_EXPR@12613..12622
- EXPR_STRING@12613..12622
- STRING_SINGLE@12613..12622 "'\\n...\\n'"
- WHITESPACE@12622..12623 " "
- ELSE_KW@12623..12627 "else"
- WHITESPACE@12627..12628 " "
- FALSE_EXPR@12628..12632
- EXPR_STRING@12628..12632
- STRING_SINGLE@12628..12632 "'\\n'"
- COMMA@12632..12633 ","
- WHITESPACE@12633..12638 "\n\n\n "
- MEMBER_FIELD@12638..13294
- FIELD_METHOD@12638..13294
- FIELD_NAME_FIXED@12638..12652
- NAME@12638..12652
- IDENT@12638..12652 "manifestPython"
- PARAMS_DESC@12652..12655
- L_PAREN@12652..12653 "("
- PARAM@12653..12654
- DESTRUCT_FULL@12653..12654
- NAME@12653..12654
- IDENT@12653..12654 "v"
- R_PAREN@12654..12655 ")"
- COLONCOLON@12655..12657 "::"
- WHITESPACE@12657..12662 "\n "
- EXPR_IF_THEN_ELSE@12662..13294
- IF_KW@12662..12664 "if"
- WHITESPACE@12664..12665 " "
- EXPR_APPLY@12665..12680
- EXPR_INDEX@12665..12677
- EXPR_VAR@12665..12668
- NAME@12665..12668
- IDENT@12665..12668 "std"
- DOT@12668..12669 "."
- NAME@12669..12677
- IDENT@12669..12677 "isObject"
- ARGS_DESC@12677..12680
- L_PAREN@12677..12678 "("
- ARG@12678..12679
- EXPR_VAR@12678..12679
- NAME@12678..12679
- IDENT@12678..12679 "v"
- R_PAREN@12679..12680 ")"
- WHITESPACE@12680..12681 " "
- THEN_KW@12681..12685 "then"
- WHITESPACE@12685..12692 "\n "
- TRUE_EXPR@12692..12867
- EXPR_LOCAL@12692..12867
- LOCAL_KW@12692..12697 "local"
- WHITESPACE@12697..12698 " "
- BIND_DESTRUCT@12698..12826
- DESTRUCT_FULL@12698..12704
- NAME@12698..12704
- IDENT@12698..12704 "fields"
- WHITESPACE@12704..12705 " "
- ASSIGN@12705..12706 "="
- WHITESPACE@12706..12707 " "
- EXPR_ARRAY_COMP@12707..12826
- L_BRACK@12707..12708 "["
- WHITESPACE@12708..12717 "\n "
- EXPR_BINARY@12717..12781
- LHS_EXPR@12717..12725
- EXPR_STRING@12717..12725
- STRING_SINGLE@12717..12725 "'%s: %s'"
- WHITESPACE@12725..12726 " "
- MODULO@12726..12727 "%"
- WHITESPACE@12727..12728 " "
- EXPR_ARRAY@12728..12781
- L_BRACK@12728..12729 "["
- EXPR_APPLY@12729..12754
- EXPR_INDEX@12729..12751
- EXPR_VAR@12729..12732
- NAME@12729..12732
- IDENT@12729..12732 "std"
- DOT@12732..12733 "."
- NAME@12733..12751
- IDENT@12733..12751 "escapeStringPython"
- ARGS_DESC@12751..12754
- L_PAREN@12751..12752 "("
- ARG@12752..12753
- EXPR_VAR@12752..12753
- NAME@12752..12753
- IDENT@12752..12753 "k"
- R_PAREN@12753..12754 ")"
- COMMA@12754..12755 ","
- WHITESPACE@12755..12756 " "
- EXPR_APPLY@12756..12780
- EXPR_INDEX@12756..12774
- EXPR_VAR@12756..12759
- NAME@12756..12759
- IDENT@12756..12759 "std"
- DOT@12759..12760 "."
- NAME@12760..12774
- IDENT@12760..12774 "manifestPython"
- ARGS_DESC@12774..12780
- L_PAREN@12774..12775 "("
- ARG@12775..12779
- EXPR_INDEX_EXPR@12775..12779
- LHS_EXPR@12775..12776
- EXPR_VAR@12775..12776
- NAME@12775..12776
- IDENT@12775..12776 "v"
- L_BRACK@12776..12777 "["
- EXPR_VAR@12777..12778
- NAME@12777..12778
- IDENT@12777..12778 "k"
- R_BRACK@12778..12779 "]"
- R_PAREN@12779..12780 ")"
- R_BRACK@12780..12781 "]"
- WHITESPACE@12781..12790 "\n "
- FOR_SPEC@12790..12818
- FOR_KW@12790..12793 "for"
- WHITESPACE@12793..12794 " "
- NAME@12794..12795
- IDENT@12794..12795 "k"
- WHITESPACE@12795..12796 " "
- IN_KW@12796..12798 "in"
- WHITESPACE@12798..12799 " "
- EXPR_APPLY@12799..12818
- EXPR_INDEX@12799..12815
- EXPR_VAR@12799..12802
- NAME@12799..12802
- IDENT@12799..12802 "std"
- DOT@12802..12803 "."
- NAME@12803..12815
- IDENT@12803..12815 "objectFields"
- ARGS_DESC@12815..12818
- L_PAREN@12815..12816 "("
- ARG@12816..12817
- EXPR_VAR@12816..12817
- NAME@12816..12817
- IDENT@12816..12817 "v"
- R_PAREN@12817..12818 ")"
- WHITESPACE@12818..12825 "\n "
- R_BRACK@12825..12826 "]"
- SEMI@12826..12827 ";"
- WHITESPACE@12827..12834 "\n "
- EXPR_BINARY@12834..12867
- LHS_EXPR@12834..12840
- EXPR_STRING@12834..12840
- STRING_SINGLE@12834..12840 "'{%s}'"
- WHITESPACE@12840..12841 " "
- MODULO@12841..12842 "%"
- WHITESPACE@12842..12843 " "
- EXPR_ARRAY@12843..12867
- L_BRACK@12843..12844 "["
- EXPR_APPLY@12844..12866
- EXPR_INDEX@12844..12852
- EXPR_VAR@12844..12847
- NAME@12844..12847
- IDENT@12844..12847 "std"
- DOT@12847..12848 "."
- NAME@12848..12852
- IDENT@12848..12852 "join"
- ARGS_DESC@12852..12866
- L_PAREN@12852..12853 "("
- ARG@12853..12857
- EXPR_STRING@12853..12857
- STRING_SINGLE@12853..12857 "', '"
- COMMA@12857..12858 ","
- WHITESPACE@12858..12859 " "
- ARG@12859..12865
- EXPR_VAR@12859..12865
- NAME@12859..12865
- IDENT@12859..12865 "fields"
- R_PAREN@12865..12866 ")"
- R_BRACK@12866..12867 "]"
- WHITESPACE@12867..12872 "\n "
- ELSE_KW@12872..12876 "else"
- WHITESPACE@12876..12877 " "
- FALSE_EXPR@12877..13294
- EXPR_IF_THEN_ELSE@12877..13294
- IF_KW@12877..12879 "if"
- WHITESPACE@12879..12880 " "
- EXPR_APPLY@12880..12894
- EXPR_INDEX@12880..12891
- EXPR_VAR@12880..12883
- NAME@12880..12883
- IDENT@12880..12883 "std"
- DOT@12883..12884 "."
- NAME@12884..12891
- IDENT@12884..12891 "isArray"
- ARGS_DESC@12891..12894
- L_PAREN@12891..12892 "("
- ARG@12892..12893
- EXPR_VAR@12892..12893
- NAME@12892..12893
- IDENT@12892..12893 "v"
- R_PAREN@12893..12894 ")"
- WHITESPACE@12894..12895 " "
- THEN_KW@12895..12899 "then"
- WHITESPACE@12899..12906 "\n "
- TRUE_EXPR@12906..12969
- EXPR_BINARY@12906..12969
- LHS_EXPR@12906..12912
- EXPR_STRING@12906..12912
- STRING_SINGLE@12906..12912 "'[%s]'"
- WHITESPACE@12912..12913 " "
- MODULO@12913..12914 "%"
- WHITESPACE@12914..12915 " "
- EXPR_ARRAY@12915..12969
- L_BRACK@12915..12916 "["
- EXPR_APPLY@12916..12968
- EXPR_INDEX@12916..12924
- EXPR_VAR@12916..12919
- NAME@12916..12919
- IDENT@12916..12919 "std"
- DOT@12919..12920 "."
- NAME@12920..12924
- IDENT@12920..12924 "join"
- ARGS_DESC@12924..12968
- L_PAREN@12924..12925 "("
- ARG@12925..12929
- EXPR_STRING@12925..12929
- STRING_SINGLE@12925..12929 "', '"
- COMMA@12929..12930 ","
- WHITESPACE@12930..12931 " "
- ARG@12931..12967
- EXPR_ARRAY_COMP@12931..12967
- L_BRACK@12931..12932 "["
- EXPR_APPLY@12932..12954
- EXPR_INDEX@12932..12950
- EXPR_VAR@12932..12935
- NAME@12932..12935
- IDENT@12932..12935 "std"
- DOT@12935..12936 "."
- NAME@12936..12950
- IDENT@12936..12950 "manifestPython"
- ARGS_DESC@12950..12954
- L_PAREN@12950..12951 "("
- ARG@12951..12953
- EXPR_VAR@12951..12953
- NAME@12951..12953
- IDENT@12951..12953 "v2"
- R_PAREN@12953..12954 ")"
- WHITESPACE@12954..12955 " "
- FOR_SPEC@12955..12966
- FOR_KW@12955..12958 "for"
- WHITESPACE@12958..12959 " "
- NAME@12959..12961
- IDENT@12959..12961 "v2"
- WHITESPACE@12961..12962 " "
- IN_KW@12962..12964 "in"
- WHITESPACE@12964..12965 " "
- EXPR_VAR@12965..12966
- NAME@12965..12966
- IDENT@12965..12966 "v"
- R_BRACK@12966..12967 "]"
- R_PAREN@12967..12968 ")"
- R_BRACK@12968..12969 "]"
- WHITESPACE@12969..12974 "\n "
- ELSE_KW@12974..12978 "else"
- WHITESPACE@12978..12979 " "
- FALSE_EXPR@12979..13294
- EXPR_IF_THEN_ELSE@12979..13294
- IF_KW@12979..12981 "if"
- WHITESPACE@12981..12982 " "
- EXPR_APPLY@12982..12997
- EXPR_INDEX@12982..12994
- EXPR_VAR@12982..12985
- NAME@12982..12985
- IDENT@12982..12985 "std"
- DOT@12985..12986 "."
- NAME@12986..12994
- IDENT@12986..12994 "isString"
- ARGS_DESC@12994..12997
- L_PAREN@12994..12995 "("
- ARG@12995..12996
- EXPR_VAR@12995..12996
- NAME@12995..12996
- IDENT@12995..12996 "v"
- R_PAREN@12996..12997 ")"
- WHITESPACE@12997..12998 " "
- THEN_KW@12998..13002 "then"
- WHITESPACE@13002..13009 "\n "
- TRUE_EXPR@13009..13043
- EXPR_BINARY@13009..13043
- LHS_EXPR@13009..13013
- EXPR_STRING@13009..13013
- STRING_SINGLE@13009..13013 "'%s'"
- WHITESPACE@13013..13014 " "
- MODULO@13014..13015 "%"
- WHITESPACE@13015..13016 " "
- EXPR_ARRAY@13016..13043
- L_BRACK@13016..13017 "["
- EXPR_APPLY@13017..13042
- EXPR_INDEX@13017..13039
- EXPR_VAR@13017..13020
- NAME@13017..13020
- IDENT@13017..13020 "std"
- DOT@13020..13021 "."
- NAME@13021..13039
- IDENT@13021..13039 "escapeStringPython"
- ARGS_DESC@13039..13042
- L_PAREN@13039..13040 "("
- ARG@13040..13041
- EXPR_VAR@13040..13041
- NAME@13040..13041
- IDENT@13040..13041 "v"
- R_PAREN@13041..13042 ")"
- R_BRACK@13042..13043 "]"
- WHITESPACE@13043..13048 "\n "
- ELSE_KW@13048..13052 "else"
- WHITESPACE@13052..13053 " "
- FALSE_EXPR@13053..13294
- EXPR_IF_THEN_ELSE@13053..13294
- IF_KW@13053..13055 "if"
- WHITESPACE@13055..13056 " "
- EXPR_APPLY@13056..13073
- EXPR_INDEX@13056..13070
- EXPR_VAR@13056..13059
- NAME@13056..13059
- IDENT@13056..13059 "std"
- DOT@13059..13060 "."
- NAME@13060..13070
- IDENT@13060..13070 "isFunction"
- ARGS_DESC@13070..13073
- L_PAREN@13070..13071 "("
- ARG@13071..13072
- EXPR_VAR@13071..13072
- NAME@13071..13072
- IDENT@13071..13072 "v"
- R_PAREN@13072..13073 ")"
- WHITESPACE@13073..13074 " "
- THEN_KW@13074..13078 "then"
- WHITESPACE@13078..13085 "\n "
- TRUE_EXPR@13085..13117
- EXPR_ERROR@13085..13117
- ERROR_KW@13085..13090 "error"
- WHITESPACE@13090..13091 " "
- EXPR_STRING@13091..13117
- STRING_SINGLE@13091..13117 "'cannot manifest func ..."
- WHITESPACE@13117..13122 "\n "
- ELSE_KW@13122..13126 "else"
- WHITESPACE@13126..13127 " "
- FALSE_EXPR@13127..13294
- EXPR_IF_THEN_ELSE@13127..13294
- IF_KW@13127..13129 "if"
- WHITESPACE@13129..13130 " "
- EXPR_APPLY@13130..13145
- EXPR_INDEX@13130..13142
- EXPR_VAR@13130..13133
- NAME@13130..13133
- IDENT@13130..13133 "std"
- DOT@13133..13134 "."
- NAME@13134..13142
- IDENT@13134..13142 "isNumber"
- ARGS_DESC@13142..13145
- L_PAREN@13142..13143 "("
- ARG@13143..13144
- EXPR_VAR@13143..13144
- NAME@13143..13144
- IDENT@13143..13144 "v"
- R_PAREN@13144..13145 ")"
- WHITESPACE@13145..13146 " "
- THEN_KW@13146..13150 "then"
- WHITESPACE@13150..13157 "\n "
- TRUE_EXPR@13157..13172
- EXPR_APPLY@13157..13172
- EXPR_INDEX@13157..13169
- EXPR_VAR@13157..13160
- NAME@13157..13160
- IDENT@13157..13160 "std"
- DOT@13160..13161 "."
- NAME@13161..13169
- IDENT@13161..13169 "toString"
- ARGS_DESC@13169..13172
- L_PAREN@13169..13170 "("
- ARG@13170..13171
- EXPR_VAR@13170..13171
- NAME@13170..13171
- IDENT@13170..13171 "v"
- R_PAREN@13171..13172 ")"
- WHITESPACE@13172..13177 "\n "
- ELSE_KW@13177..13181 "else"
- WHITESPACE@13181..13182 " "
- FALSE_EXPR@13182..13294
- EXPR_IF_THEN_ELSE@13182..13294
- IF_KW@13182..13184 "if"
- WHITESPACE@13184..13185 " "
- EXPR_BINARY@13185..13194
- LHS_EXPR@13185..13186
- EXPR_VAR@13185..13186
- NAME@13185..13186
- IDENT@13185..13186 "v"
- WHITESPACE@13186..13187 " "
- EQ@13187..13189 "=="
- WHITESPACE@13189..13190 " "
- EXPR_LITERAL@13190..13194
- TRUE_KW@13190..13194 "true"
- WHITESPACE@13194..13195 " "
- THEN_KW@13195..13199 "then"
- WHITESPACE@13199..13206 "\n "
- TRUE_EXPR@13206..13212
- EXPR_STRING@13206..13212
- STRING_SINGLE@13206..13212 "'True'"
- WHITESPACE@13212..13217 "\n "
- ELSE_KW@13217..13221 "else"
- WHITESPACE@13221..13222 " "
- FALSE_EXPR@13222..13294
- EXPR_IF_THEN_ELSE@13222..13294
- IF_KW@13222..13224 "if"
- WHITESPACE@13224..13225 " "
- EXPR_BINARY@13225..13235
- LHS_EXPR@13225..13226
- EXPR_VAR@13225..13226
- NAME@13225..13226
- IDENT@13225..13226 "v"
- WHITESPACE@13226..13227 " "
- EQ@13227..13229 "=="
- WHITESPACE@13229..13230 " "
- EXPR_LITERAL@13230..13235
- FALSE_KW@13230..13235 "false"
- WHITESPACE@13235..13236 " "
- THEN_KW@13236..13240 "then"
- WHITESPACE@13240..13247 "\n "
- TRUE_EXPR@13247..13254
- EXPR_STRING@13247..13254
- STRING_SINGLE@13247..13254 "'False'"
- WHITESPACE@13254..13259 "\n "
- ELSE_KW@13259..13263 "else"
- WHITESPACE@13263..13264 " "
- FALSE_EXPR@13264..13294
- EXPR_IF_THEN_ELSE@13264..13294
- IF_KW@13264..13266 "if"
- WHITESPACE@13266..13267 " "
- EXPR_BINARY@13267..13276
- LHS_EXPR@13267..13268
- EXPR_VAR@13267..13268
- NAME@13267..13268
- IDENT@13267..13268 "v"
- WHITESPACE@13268..13269 " "
- EQ@13269..13271 "=="
- WHITESPACE@13271..13272 " "
- EXPR_LITERAL@13272..13276
- NULL_KW@13272..13276 "null"
- WHITESPACE@13276..13277 " "
- THEN_KW@13277..13281 "then"
- WHITESPACE@13281..13288 "\n "
- TRUE_EXPR@13288..13294
- EXPR_STRING@13288..13294
- STRING_SINGLE@13288..13294 "'None'"
- COMMA@13294..13295 ","
- WHITESPACE@13295..13299 "\n\n "
- MEMBER_FIELD@13299..13454
- FIELD_METHOD@13299..13454
- FIELD_NAME_FIXED@13299..13317
- NAME@13299..13317
- IDENT@13299..13317 "manifestPythonVars"
- PARAMS_DESC@13317..13323
- L_PAREN@13317..13318 "("
- PARAM@13318..13322
- DESTRUCT_FULL@13318..13322
- NAME@13318..13322
- IDENT@13318..13322 "conf"
- R_PAREN@13322..13323 ")"
- COLONCOLON@13323..13325 "::"
- WHITESPACE@13325..13330 "\n "
- EXPR_LOCAL@13330..13454
- LOCAL_KW@13330..13335 "local"
- WHITESPACE@13335..13336 " "
- BIND_DESTRUCT@13336..13421
- DESTRUCT_FULL@13336..13340
- NAME@13336..13340
- IDENT@13336..13340 "vars"
- WHITESPACE@13340..13341 " "
- ASSIGN@13341..13342 "="
- WHITESPACE@13342..13343 " "
- EXPR_ARRAY_COMP@13343..13421
- L_BRACK@13343..13344 "["
- EXPR_BINARY@13344..13388
- LHS_EXPR@13344..13353
- EXPR_STRING@13344..13353
- STRING_SINGLE@13344..13353 "'%s = %s'"
- WHITESPACE@13353..13354 " "
- MODULO@13354..13355 "%"
- WHITESPACE@13355..13356 " "
- EXPR_ARRAY@13356..13388
- L_BRACK@13356..13357 "["
- EXPR_VAR@13357..13358
- NAME@13357..13358
- IDENT@13357..13358 "k"
- COMMA@13358..13359 ","
- WHITESPACE@13359..13360 " "
- EXPR_APPLY@13360..13387
- EXPR_INDEX@13360..13378
- EXPR_VAR@13360..13363
- NAME@13360..13363
- IDENT@13360..13363 "std"
- DOT@13363..13364 "."
- NAME@13364..13378
- IDENT@13364..13378 "manifestPython"
- ARGS_DESC@13378..13387
- L_PAREN@13378..13379 "("
- ARG@13379..13386
- EXPR_INDEX_EXPR@13379..13386
- LHS_EXPR@13379..13383
- EXPR_VAR@13379..13383
- NAME@13379..13383
- IDENT@13379..13383 "conf"
- L_BRACK@13383..13384 "["
- EXPR_VAR@13384..13385
- NAME@13384..13385
- IDENT@13384..13385 "k"
- R_BRACK@13385..13386 "]"
- R_PAREN@13386..13387 ")"
- R_BRACK@13387..13388 "]"
- WHITESPACE@13388..13389 " "
- FOR_SPEC@13389..13420
- FOR_KW@13389..13392 "for"
- WHITESPACE@13392..13393 " "
- NAME@13393..13394
- IDENT@13393..13394 "k"
- WHITESPACE@13394..13395 " "
- IN_KW@13395..13397 "in"
- WHITESPACE@13397..13398 " "
- EXPR_APPLY@13398..13420
- EXPR_INDEX@13398..13414
- EXPR_VAR@13398..13401
- NAME@13398..13401
- IDENT@13398..13401 "std"
- DOT@13401..13402 "."
- NAME@13402..13414
- IDENT@13402..13414 "objectFields"
- ARGS_DESC@13414..13420
- L_PAREN@13414..13415 "("
- ARG@13415..13419
- EXPR_VAR@13415..13419
- NAME@13415..13419
- IDENT@13415..13419 "conf"
- R_PAREN@13419..13420 ")"
- R_BRACK@13420..13421 "]"
- SEMI@13421..13422 ";"
- WHITESPACE@13422..13427 "\n "
- EXPR_APPLY@13427..13454
- EXPR_INDEX@13427..13435
- EXPR_VAR@13427..13430
- NAME@13427..13430
- IDENT@13427..13430 "std"
- DOT@13430..13431 "."
- NAME@13431..13435
- IDENT@13431..13435 "join"
- ARGS_DESC@13435..13454
- L_PAREN@13435..13436 "("
- ARG@13436..13440
- EXPR_STRING@13436..13440
- STRING_SINGLE@13436..13440 "'\\n'"
- COMMA@13440..13441 ","
- WHITESPACE@13441..13442 " "
- ARG@13442..13453
- EXPR_BINARY@13442..13453
- LHS_EXPR@13442..13446
- EXPR_VAR@13442..13446
- NAME@13442..13446
- IDENT@13442..13446 "vars"
- WHITESPACE@13446..13447 " "
- PLUS@13447..13448 "+"
- WHITESPACE@13448..13449 " "
- EXPR_ARRAY@13449..13453
- L_BRACK@13449..13450 "["
- EXPR_STRING@13450..13452
- STRING_SINGLE@13450..13452 "''"
- R_BRACK@13452..13453 "]"
- R_PAREN@13453..13454 ")"
- COMMA@13454..13455 ","
- WHITESPACE@13455..13459 "\n\n "
- MEMBER_FIELD@13459..14126
- FIELD_METHOD@13459..14126
- FIELD_NAME_FIXED@13459..13476
- NAME@13459..13476
- IDENT@13459..13476 "manifestXmlJsonml"
- PARAMS_DESC@13476..13483
- L_PAREN@13476..13477 "("
- PARAM@13477..13482
- DESTRUCT_FULL@13477..13482
- NAME@13477..13482
- IDENT@13477..13482 "value"
- R_PAREN@13482..13483 ")"
- COLONCOLON@13483..13485 "::"
- WHITESPACE@13485..13490 "\n "
- EXPR_IF_THEN_ELSE@13490..14126
- IF_KW@13490..13492 "if"
- WHITESPACE@13492..13493 " "
- EXPR_UNARY@13493..13512
- NOT@13493..13494 "!"
- EXPR_APPLY@13494..13512
- EXPR_INDEX@13494..13505
- EXPR_VAR@13494..13497
- NAME@13494..13497
- IDENT@13494..13497 "std"
- DOT@13497..13498 "."
- NAME@13498..13505
- IDENT@13498..13505 "isArray"
- ARGS_DESC@13505..13512
- L_PAREN@13505..13506 "("
- ARG@13506..13511
- EXPR_VAR@13506..13511
- NAME@13506..13511
- IDENT@13506..13511 "value"
- R_PAREN@13511..13512 ")"
- WHITESPACE@13512..13513 " "
- THEN_KW@13513..13517 "then"
- WHITESPACE@13517..13524 "\n "
- TRUE_EXPR@13524..13592
- EXPR_ERROR@13524..13592
- ERROR_KW@13524..13529 "error"
- WHITESPACE@13529..13530 " "
- EXPR_BINARY@13530..13592
- LHS_EXPR@13530..13574
- EXPR_STRING@13530..13574
- STRING_SINGLE@13530..13574 "'Expected a JSONML va ..."
- WHITESPACE@13574..13575 " "
- MODULO@13575..13576 "%"
- WHITESPACE@13576..13577 " "
- EXPR_APPLY@13577..13592
- EXPR_INDEX@13577..13585
- EXPR_VAR@13577..13580
- NAME@13577..13580
- IDENT@13577..13580 "std"
- DOT@13580..13581 "."
- NAME@13581..13585
- IDENT@13581..13585 "type"
- ARGS_DESC@13585..13592
- L_PAREN@13585..13586 "("
- ARG@13586..13591
- EXPR_VAR@13586..13591
- NAME@13586..13591
- IDENT@13586..13591 "value"
- R_PAREN@13591..13592 ")"
- WHITESPACE@13592..13597 "\n "
- ELSE_KW@13597..13601 "else"
- WHITESPACE@13601..13608 "\n "
- FALSE_EXPR@13608..14126
- EXPR_LOCAL@13608..14126
- LOCAL_KW@13608..13613 "local"
- WHITESPACE@13613..13614 " "
- BIND_FUNCTION@13614..14107
- NAME@13614..13617
- IDENT@13614..13617 "aux"
- PARAMS_DESC@13617..13620
- L_PAREN@13617..13618 "("
- PARAM@13618..13619
- DESTRUCT_FULL@13618..13619
- NAME@13618..13619
- IDENT@13618..13619 "v"
- R_PAREN@13619..13620 ")"
- WHITESPACE@13620..13621 " "
- ASSIGN@13621..13622 "="
- WHITESPACE@13622..13631 "\n "
- EXPR_IF_THEN_ELSE@13631..14107
- IF_KW@13631..13633 "if"
- WHITESPACE@13633..13634 " "
- EXPR_APPLY@13634..13649
- EXPR_INDEX@13634..13646
- EXPR_VAR@13634..13637
- NAME@13634..13637
- IDENT@13634..13637 "std"
- DOT@13637..13638 "."
- NAME@13638..13646
- IDENT@13638..13646 "isString"
- ARGS_DESC@13646..13649
- L_PAREN@13646..13647 "("
- ARG@13647..13648
- EXPR_VAR@13647..13648
- NAME@13647..13648
- IDENT@13647..13648 "v"
- R_PAREN@13648..13649 ")"
- WHITESPACE@13649..13650 " "
- THEN_KW@13650..13654 "then"
- WHITESPACE@13654..13665 "\n "
- TRUE_EXPR@13665..13666
- EXPR_VAR@13665..13666
- NAME@13665..13666
- IDENT@13665..13666 "v"
- WHITESPACE@13666..13675 "\n "
- ELSE_KW@13675..13679 "else"
- WHITESPACE@13679..13690 "\n "
- FALSE_EXPR@13690..14107
- EXPR_LOCAL@13690..14107
- LOCAL_KW@13690..13695 "local"
- WHITESPACE@13695..13696 " "
- BIND_DESTRUCT@13696..13706
- DESTRUCT_FULL@13696..13699
- NAME@13696..13699
- IDENT@13696..13699 "tag"
- WHITESPACE@13699..13700 " "
- ASSIGN@13700..13701 "="
- WHITESPACE@13701..13702 " "
- EXPR_INDEX_EXPR@13702..13706
- LHS_EXPR@13702..13703
- EXPR_VAR@13702..13703
- NAME@13702..13703
- IDENT@13702..13703 "v"
- L_BRACK@13703..13704 "["
- EXPR_NUMBER@13704..13705
- FLOAT@13704..13705 "0"
- R_BRACK@13705..13706 "]"
- SEMI@13706..13707 ";"
- WHITESPACE@13707..13718 "\n "
- EXPR_LOCAL@13718..14107
- LOCAL_KW@13718..13723 "local"
- WHITESPACE@13723..13724 " "
- BIND_DESTRUCT@13724..13775
- DESTRUCT_FULL@13724..13733
- NAME@13724..13733
- IDENT@13724..13733 "has_attrs"
- WHITESPACE@13733..13734 " "
- ASSIGN@13734..13735 "="
- WHITESPACE@13735..13736 " "
- EXPR_BINARY@13736..13775
- LHS_EXPR@13736..13753
- EXPR_BINARY@13736..13753
- LHS_EXPR@13736..13749
- EXPR_APPLY@13736..13749
- EXPR_INDEX@13736..13746
- EXPR_VAR@13736..13739
- NAME@13736..13739
- IDENT@13736..13739 "std"
- DOT@13739..13740 "."
- NAME@13740..13746
- IDENT@13740..13746 "length"
- ARGS_DESC@13746..13749
- L_PAREN@13746..13747 "("
- ARG@13747..13748
- EXPR_VAR@13747..13748
- NAME@13747..13748
- IDENT@13747..13748 "v"
- R_PAREN@13748..13749 ")"
- WHITESPACE@13749..13750 " "
- GT@13750..13751 ">"
- WHITESPACE@13751..13752 " "
- EXPR_NUMBER@13752..13753
- FLOAT@13752..13753 "1"
- WHITESPACE@13753..13754 " "
- AND@13754..13756 "&&"
- WHITESPACE@13756..13757 " "
- EXPR_APPLY@13757..13775
- EXPR_INDEX@13757..13769
- EXPR_VAR@13757..13760
- NAME@13757..13760
- IDENT@13757..13760 "std"
- DOT@13760..13761 "."
- NAME@13761..13769
- IDENT@13761..13769 "isObject"
- ARGS_DESC@13769..13775
- L_PAREN@13769..13770 "("
- ARG@13770..13774
- EXPR_INDEX_EXPR@13770..13774
- LHS_EXPR@13770..13771
- EXPR_VAR@13770..13771
- NAME@13770..13771
- IDENT@13770..13771 "v"
- L_BRACK@13771..13772 "["
- EXPR_NUMBER@13772..13773
- FLOAT@13772..13773 "1"
- R_BRACK@13773..13774 "]"
- R_PAREN@13774..13775 ")"
- SEMI@13775..13776 ";"
- WHITESPACE@13776..13787 "\n "
- EXPR_LOCAL@13787..14107
- LOCAL_KW@13787..13792 "local"
- WHITESPACE@13792..13793 " "
- BIND_DESTRUCT@13793..13831
- DESTRUCT_FULL@13793..13798
- NAME@13793..13798
- IDENT@13793..13798 "attrs"
- WHITESPACE@13798..13799 " "
- ASSIGN@13799..13800 "="
- WHITESPACE@13800..13801 " "
- EXPR_IF_THEN_ELSE@13801..13831
- IF_KW@13801..13803 "if"
- WHITESPACE@13803..13804 " "
- EXPR_VAR@13804..13813
- NAME@13804..13813
- IDENT@13804..13813 "has_attrs"
- WHITESPACE@13813..13814 " "
- THEN_KW@13814..13818 "then"
- WHITESPACE@13818..13819 " "
- TRUE_EXPR@13819..13823
- EXPR_INDEX_EXPR@13819..13823
- LHS_EXPR@13819..13820
- EXPR_VAR@13819..13820
- NAME@13819..13820
- IDENT@13819..13820 "v"
- L_BRACK@13820..13821 "["
- EXPR_NUMBER@13821..13822
- FLOAT@13821..13822 "1"
- R_BRACK@13822..13823 "]"
- WHITESPACE@13823..13824 " "
- ELSE_KW@13824..13828 "else"
- WHITESPACE@13828..13829 " "
- FALSE_EXPR@13829..13831
- EXPR_OBJECT@13829..13831
- OBJ_BODY_MEMBER_LIST@13829..13831
- L_BRACE@13829..13830 "{"
- R_BRACE@13830..13831 "}"
- SEMI@13831..13832 ";"
- WHITESPACE@13832..13843 "\n "
- EXPR_LOCAL@13843..14107
- LOCAL_KW@13843..13848 "local"
- WHITESPACE@13848..13849 " "
- BIND_DESTRUCT@13849..13894
- DESTRUCT_FULL@13849..13857
- NAME@13849..13857
- IDENT@13849..13857 "children"
- WHITESPACE@13857..13858 " "
- ASSIGN@13858..13859 "="
- WHITESPACE@13859..13860 " "
- EXPR_IF_THEN_ELSE@13860..13894
- IF_KW@13860..13862 "if"
- WHITESPACE@13862..13863 " "
- EXPR_VAR@13863..13872
- NAME@13863..13872
- IDENT@13863..13872 "has_attrs"
- WHITESPACE@13872..13873 " "
- THEN_KW@13873..13877 "then"
- WHITESPACE@13877..13878 " "
- TRUE_EXPR@13878..13883
- EXPR_SLICE@13878..13883
- EXPR_VAR@13878..13879
- NAME@13878..13879
- IDENT@13878..13879 "v"
- SLICE_DESC@13879..13883
- L_BRACK@13879..13880 "["
- EXPR_NUMBER@13880..13881
- FLOAT@13880..13881 "2"
- COLON@13881..13882 ":"
- R_BRACK@13882..13883 "]"
- WHITESPACE@13883..13884 " "
- ELSE_KW@13884..13888 "else"
- WHITESPACE@13888..13889 " "
- FALSE_EXPR@13889..13894
- EXPR_SLICE@13889..13894
- EXPR_VAR@13889..13890
- NAME@13889..13890
- IDENT@13889..13890 "v"
- SLICE_DESC@13890..13894
- L_BRACK@13890..13891 "["
- EXPR_NUMBER@13891..13892
- FLOAT@13891..13892 "1"
- COLON@13892..13893 ":"
- R_BRACK@13893..13894 "]"
- SEMI@13894..13895 ";"
- WHITESPACE@13895..13906 "\n "
- EXPR_LOCAL@13906..14107
- LOCAL_KW@13906..13911 "local"
- WHITESPACE@13911..13912 " "
- BIND_DESTRUCT@13912..14011
- DESTRUCT_FULL@13912..13921
- NAME@13912..13921
- IDENT@13912..13921 "attrs_str"
- WHITESPACE@13921..13922 " "
- ASSIGN@13922..13923 "="
- WHITESPACE@13923..13936 "\n "
- EXPR_APPLY@13936..14011
- EXPR_INDEX@13936..13944
- EXPR_VAR@13936..13939
- NAME@13936..13939
- IDENT@13936..13939 "std"
- DOT@13939..13940 "."
- NAME@13940..13944
- IDENT@13940..13944 "join"
- ARGS_DESC@13944..14011
- L_PAREN@13944..13945 "("
- ARG@13945..13947
- EXPR_STRING@13945..13947
- STRING_SINGLE@13945..13947 "''"
- COMMA@13947..13948 ","
- WHITESPACE@13948..13949 " "
- ARG@13949..14010
- EXPR_ARRAY_COMP@13949..14010
- L_BRACK@13949..13950 "["
- EXPR_BINARY@13950..13976
- LHS_EXPR@13950..13960
- EXPR_STRING@13950..13960
- STRING_SINGLE@13950..13960 "' %s=\"%s\"'"
- WHITESPACE@13960..13961 " "
- MODULO@13961..13962 "%"
- WHITESPACE@13962..13963 " "
- EXPR_ARRAY@13963..13976
- L_BRACK@13963..13964 "["
- EXPR_VAR@13964..13965
- NAME@13964..13965
- IDENT@13964..13965 "k"
- COMMA@13965..13966 ","
- WHITESPACE@13966..13967 " "
- EXPR_INDEX_EXPR@13967..13975
- LHS_EXPR@13967..13972
- EXPR_VAR@13967..13972
- NAME@13967..13972
- IDENT@13967..13972 "attrs"
- L_BRACK@13972..13973 "["
- EXPR_VAR@13973..13974
- NAME@13973..13974
- IDENT@13973..13974 "k"
- R_BRACK@13974..13975 "]"
- R_BRACK@13975..13976 "]"
- WHITESPACE@13976..13977 " "
- FOR_SPEC@13977..14009
- FOR_KW@13977..13980 "for"
- WHITESPACE@13980..13981 " "
- NAME@13981..13982
- IDENT@13981..13982 "k"
- WHITESPACE@13982..13983 " "
- IN_KW@13983..13985 "in"
- WHITESPACE@13985..13986 " "
- EXPR_APPLY@13986..14009
- EXPR_INDEX@13986..14002
- EXPR_VAR@13986..13989
- NAME@13986..13989
- IDENT@13986..13989 "std"
- DOT@13989..13990 "."
- NAME@13990..14002
- IDENT@13990..14002 "objectFields"
- ARGS_DESC@14002..14009
- L_PAREN@14002..14003 "("
- ARG@14003..14008
- EXPR_VAR@14003..14008
- NAME@14003..14008
- IDENT@14003..14008 "attrs"
- R_PAREN@14008..14009 ")"
- R_BRACK@14009..14010 "]"
- R_PAREN@14010..14011 ")"
- SEMI@14011..14012 ";"
- WHITESPACE@14012..14023 "\n "
- EXPR_APPLY@14023..14107
- EXPR_INDEX@14023..14035
- EXPR_VAR@14023..14026
- NAME@14023..14026
- IDENT@14023..14026 "std"
- DOT@14026..14027 "."
- NAME@14027..14035
- IDENT@14027..14035 "deepJoin"
- ARGS_DESC@14035..14107
- L_PAREN@14035..14036 "("
- ARG@14036..14106
- EXPR_ARRAY@14036..14106
- L_BRACK@14036..14037 "["
- EXPR_STRING@14037..14040
- STRING_SINGLE@14037..14040 "'<'"
- COMMA@14040..14041 ","
- WHITESPACE@14041..14042 " "
- EXPR_VAR@14042..14045
- NAME@14042..14045
- IDENT@14042..14045 "tag"
- COMMA@14045..14046 ","
- WHITESPACE@14046..14047 " "
- EXPR_VAR@14047..14056
- NAME@14047..14056
- IDENT@14047..14056 "attrs_str"
- COMMA@14056..14057 ","
- WHITESPACE@14057..14058 " "
- EXPR_STRING@14058..14061
- STRING_SINGLE@14058..14061 "'>'"
- COMMA@14061..14062 ","
- WHITESPACE@14062..14063 " "
- EXPR_ARRAY_COMP@14063..14089
- L_BRACK@14063..14064 "["
- EXPR_APPLY@14064..14070
- EXPR_VAR@14064..14067
- NAME@14064..14067
- IDENT@14064..14067 "aux"
- ARGS_DESC@14067..14070
- L_PAREN@14067..14068 "("
- ARG@14068..14069
- EXPR_VAR@14068..14069
- NAME@14068..14069
- IDENT@14068..14069 "x"
- R_PAREN@14069..14070 ")"
- WHITESPACE@14070..14071 " "
- FOR_SPEC@14071..14088
- FOR_KW@14071..14074 "for"
- WHITESPACE@14074..14075 " "
- NAME@14075..14076
- IDENT@14075..14076 "x"
- WHITESPACE@14076..14077 " "
- IN_KW@14077..14079 "in"
- WHITESPACE@14079..14080 " "
- EXPR_VAR@14080..14088
- NAME@14080..14088
- IDENT@14080..14088 "children"
- R_BRACK@14088..14089 "]"
- COMMA@14089..14090 ","
- WHITESPACE@14090..14091 " "
- EXPR_STRING@14091..14095
- STRING_SINGLE@14091..14095 "'</'"
- COMMA@14095..14096 ","
- WHITESPACE@14096..14097 " "
- EXPR_VAR@14097..14100
- NAME@14097..14100
- IDENT@14097..14100 "tag"
- COMMA@14100..14101 ","
- WHITESPACE@14101..14102 " "
- EXPR_STRING@14102..14105
- STRING_SINGLE@14102..14105 "'>'"
- R_BRACK@14105..14106 "]"
- R_PAREN@14106..14107 ")"
- SEMI@14107..14108 ";"
- WHITESPACE@14108..14116 "\n\n "
- EXPR_APPLY@14116..14126
- EXPR_VAR@14116..14119
- NAME@14116..14119
- IDENT@14116..14119 "aux"
- ARGS_DESC@14119..14126
- L_PAREN@14119..14120 "("
- ARG@14120..14125
- EXPR_VAR@14120..14125
- NAME@14120..14125
- IDENT@14120..14125 "value"
- R_PAREN@14125..14126 ")"
- COMMA@14126..14127 ","
- WHITESPACE@14127..14131 "\n\n "
- MEMBER_BIND_STMT@14131..14218
- OBJ_LOCAL@14131..14218
- LOCAL_KW@14131..14136 "local"
- WHITESPACE@14136..14137 " "
- BIND_DESTRUCT@14137..14218
- DESTRUCT_FULL@14137..14149
- NAME@14137..14149
- IDENT@14137..14149 "base64_table"
- WHITESPACE@14149..14150 " "
- ASSIGN@14150..14151 "="
- WHITESPACE@14151..14152 " "
- EXPR_STRING@14152..14218
- STRING_SINGLE@14152..14218 "'ABCDEFGHIJKLMNOPQRST ..."
- COMMA@14218..14219 ","
- WHITESPACE@14219..14222 "\n "
- MEMBER_BIND_STMT@14222..14291
- OBJ_LOCAL@14222..14291
- LOCAL_KW@14222..14227 "local"
- WHITESPACE@14227..14228 " "
- BIND_DESTRUCT@14228..14291
- DESTRUCT_FULL@14228..14238
- NAME@14228..14238
- IDENT@14228..14238 "base64_inv"
- WHITESPACE@14238..14239 " "
- ASSIGN@14239..14240 "="
- WHITESPACE@14240..14241 " "
- EXPR_OBJECT@14241..14291
- OBJ_BODY_MEMBER_LIST@14241..14291
- L_BRACE@14241..14242 "{"
- WHITESPACE@14242..14243 " "
- MEMBER_FIELD@14243..14289
- FIELD_NORMAL@14243..14263
- FIELD_NAME_DYNAMIC@14243..14260
- L_BRACK@14243..14244 "["
- EXPR_INDEX_EXPR@14244..14259
- LHS_EXPR@14244..14256
- EXPR_VAR@14244..14256
- NAME@14244..14256
- IDENT@14244..14256 "base64_table"
- L_BRACK@14256..14257 "["
- EXPR_VAR@14257..14258
- NAME@14257..14258
- IDENT@14257..14258 "i"
- R_BRACK@14258..14259 "]"
- R_BRACK@14259..14260 "]"
- COLON@14260..14261 ":"
- WHITESPACE@14261..14262 " "
- EXPR_VAR@14262..14263
- NAME@14262..14263
- IDENT@14262..14263 "i"
- WHITESPACE@14263..14264 " "
- FOR_SPEC@14264..14289
- FOR_KW@14264..14267 "for"
- WHITESPACE@14267..14268 " "
- NAME@14268..14269
- IDENT@14268..14269 "i"
- WHITESPACE@14269..14270 " "
- IN_KW@14270..14272 "in"
- WHITESPACE@14272..14273 " "
- EXPR_APPLY@14273..14289
- EXPR_INDEX@14273..14282
- EXPR_VAR@14273..14276
- NAME@14273..14276
- IDENT@14273..14276 "std"
- DOT@14276..14277 "."
- NAME@14277..14282
- IDENT@14277..14282 "range"
- ARGS_DESC@14282..14289
- L_PAREN@14282..14283 "("
- ARG@14283..14284
- EXPR_NUMBER@14283..14284
- FLOAT@14283..14284 "0"
- COMMA@14284..14285 ","
- WHITESPACE@14285..14286 " "
- ARG@14286..14288
- EXPR_NUMBER@14286..14288
- FLOAT@14286..14288 "63"
- R_PAREN@14288..14289 ")"
- WHITESPACE@14289..14290 " "
- R_BRACE@14290..14291 "}"
- COMMA@14291..14292 ","
- WHITESPACE@14292..14296 "\n\n "
- MEMBER_FIELD@14296..14323
- FIELD_NORMAL@14296..14323
- FIELD_NAME_FIXED@14296..14302
- NAME@14296..14302
- IDENT@14296..14302 "base64"
- COLONCOLON@14302..14304 "::"
- WHITESPACE@14304..14305 " "
- EXPR_INTRINSIC@14305..14323
- INTRINSIC@14305..14315 "$intrinsic"
- L_PAREN@14315..14316 "("
- NAME@14316..14322
- IDENT@14316..14322 "base64"
- R_PAREN@14322..14323 ")"
- COMMA@14323..14324 ","
- WHITESPACE@14324..14328 "\n\n "
- MEMBER_FIELD@14328..14377
- FIELD_NORMAL@14328..14377
- FIELD_NAME_FIXED@14328..14345
- NAME@14328..14345
- IDENT@14328..14345 "base64DecodeBytes"
- COLONCOLON@14345..14347 "::"
- WHITESPACE@14347..14348 " "
- EXPR_INTRINSIC@14348..14377
- INTRINSIC@14348..14358 "$intrinsic"
- L_PAREN@14358..14359 "("
- NAME@14359..14376
- IDENT@14359..14376 "base64DecodeBytes"
- R_PAREN@14376..14377 ")"
- COMMA@14377..14378 ","
- WHITESPACE@14378..14382 "\n\n "
- MEMBER_FIELD@14382..14421
- FIELD_NORMAL@14382..14421
- FIELD_NAME_FIXED@14382..14394
- NAME@14382..14394
- IDENT@14382..14394 "base64Decode"
- COLONCOLON@14394..14396 "::"
- WHITESPACE@14396..14397 " "
- EXPR_INTRINSIC@14397..14421
- INTRINSIC@14397..14407 "$intrinsic"
- L_PAREN@14407..14408 "("
- NAME@14408..14420
- IDENT@14408..14420 "base64Decode"
- R_PAREN@14420..14421 ")"
- COMMA@14421..14422 ","
- WHITESPACE@14422..14426 "\n\n "
- MEMBER_FIELD@14426..14455
- FIELD_NORMAL@14426..14455
- FIELD_NAME_FIXED@14426..14433
- NAME@14426..14433
- IDENT@14426..14433 "reverse"
- COLONCOLON@14433..14435 "::"
- WHITESPACE@14435..14436 " "
- EXPR_INTRINSIC@14436..14455
- INTRINSIC@14436..14446 "$intrinsic"
- L_PAREN@14446..14447 "("
- NAME@14447..14454
- IDENT@14447..14454 "reverse"
- R_PAREN@14454..14455 ")"
- COMMA@14455..14456 ","
- WHITESPACE@14456..14460 "\n\n "
- MEMBER_FIELD@14460..14483
- FIELD_NORMAL@14460..14483
- FIELD_NAME_FIXED@14460..14464
- NAME@14460..14464
- IDENT@14460..14464 "sort"
- COLONCOLON@14464..14466 "::"
- WHITESPACE@14466..14467 " "
- EXPR_INTRINSIC@14467..14483
- INTRINSIC@14467..14477 "$intrinsic"
- L_PAREN@14477..14478 "("
- NAME@14478..14482
- IDENT@14478..14482 "sort"
- R_PAREN@14482..14483 ")"
- COMMA@14483..14484 ","
- WHITESPACE@14484..14488 "\n\n "
- MEMBER_FIELD@14488..14694
- FIELD_METHOD@14488..14694
- FIELD_NAME_FIXED@14488..14492
- NAME@14488..14492
- IDENT@14488..14492 "uniq"
- PARAMS_DESC@14492..14506
- L_PAREN@14492..14493 "("
- PARAM@14493..14496
- DESTRUCT_FULL@14493..14496
- NAME@14493..14496
- IDENT@14493..14496 "arr"
- COMMA@14496..14497 ","
- WHITESPACE@14497..14498 " "
- PARAM@14498..14505
- DESTRUCT_FULL@14498..14502
- NAME@14498..14502
- IDENT@14498..14502 "keyF"
- ASSIGN@14502..14503 "="
- EXPR_VAR@14503..14505
- NAME@14503..14505
- IDENT@14503..14505 "id"
- R_PAREN@14505..14506 ")"
- COLONCOLON@14506..14508 "::"
- WHITESPACE@14508..14513 "\n "
- EXPR_LOCAL@14513..14694
- LOCAL_KW@14513..14518 "local"
- WHITESPACE@14518..14519 " "
- BIND_FUNCTION@14519..14667
- NAME@14519..14520
- IDENT@14519..14520 "f"
- PARAMS_DESC@14520..14526
- L_PAREN@14520..14521 "("
- PARAM@14521..14522
- DESTRUCT_FULL@14521..14522
- NAME@14521..14522
- IDENT@14521..14522 "a"
- COMMA@14522..14523 ","
- WHITESPACE@14523..14524 " "
- PARAM@14524..14525
- DESTRUCT_FULL@14524..14525
- NAME@14524..14525
- IDENT@14524..14525 "b"
- R_PAREN@14525..14526 ")"
- WHITESPACE@14526..14527 " "
- ASSIGN@14527..14528 "="
- WHITESPACE@14528..14535 "\n "
- EXPR_IF_THEN_ELSE@14535..14667
- IF_KW@14535..14537 "if"
- WHITESPACE@14537..14538 " "
- EXPR_BINARY@14538..14556
- LHS_EXPR@14538..14551
- EXPR_APPLY@14538..14551
- EXPR_INDEX@14538..14548
- EXPR_VAR@14538..14541
- NAME@14538..14541
- IDENT@14538..14541 "std"
- DOT@14541..14542 "."
- NAME@14542..14548
- IDENT@14542..14548 "length"
- ARGS_DESC@14548..14551
- L_PAREN@14548..14549 "("
- ARG@14549..14550
- EXPR_VAR@14549..14550
- NAME@14549..14550
- IDENT@14549..14550 "a"
- R_PAREN@14550..14551 ")"
- WHITESPACE@14551..14552 " "
- EQ@14552..14554 "=="
- WHITESPACE@14554..14555 " "
- EXPR_NUMBER@14555..14556
- FLOAT@14555..14556 "0"
- WHITESPACE@14556..14557 " "
- THEN_KW@14557..14561 "then"
- WHITESPACE@14561..14570 "\n "
- TRUE_EXPR@14570..14573
- EXPR_ARRAY@14570..14573
- L_BRACK@14570..14571 "["
- EXPR_VAR@14571..14572
- NAME@14571..14572
- IDENT@14571..14572 "b"
- R_BRACK@14572..14573 "]"
- WHITESPACE@14573..14580 "\n "
- ELSE_KW@14580..14584 "else"
- WHITESPACE@14584..14585 " "
- FALSE_EXPR@14585..14667
- EXPR_IF_THEN_ELSE@14585..14667
- IF_KW@14585..14587 "if"
- WHITESPACE@14587..14588 " "
- EXPR_BINARY@14588..14625
- LHS_EXPR@14588..14614
- EXPR_APPLY@14588..14614
- EXPR_VAR@14588..14592
- NAME@14588..14592
- IDENT@14588..14592 "keyF"
- ARGS_DESC@14592..14614
- L_PAREN@14592..14593 "("
- ARG@14593..14613
- EXPR_INDEX_EXPR@14593..14613
- LHS_EXPR@14593..14594
- EXPR_VAR@14593..14594
- NAME@14593..14594
- IDENT@14593..14594 "a"
- L_BRACK@14594..14595 "["
- EXPR_BINARY@14595..14612
- LHS_EXPR@14595..14608
- EXPR_APPLY@14595..14608
- EXPR_INDEX@14595..14605
- EXPR_VAR@14595..14598
- NAME@14595..14598
- IDENT@14595..14598 "std"
- DOT@14598..14599 "."
- NAME@14599..14605
- IDENT@14599..14605 "length"
- ARGS_DESC@14605..14608
- L_PAREN@14605..14606 "("
- ARG@14606..14607
- EXPR_VAR@14606..14607
- NAME@14606..14607
- IDENT@14606..14607 "a"
- R_PAREN@14607..14608 ")"
- WHITESPACE@14608..14609 " "
- MINUS@14609..14610 "-"
- WHITESPACE@14610..14611 " "
- EXPR_NUMBER@14611..14612
- FLOAT@14611..14612 "1"
- R_BRACK@14612..14613 "]"
- R_PAREN@14613..14614 ")"
- WHITESPACE@14614..14615 " "
- EQ@14615..14617 "=="
- WHITESPACE@14617..14618 " "
- EXPR_APPLY@14618..14625
- EXPR_VAR@14618..14622
- NAME@14618..14622
- IDENT@14618..14622 "keyF"
- ARGS_DESC@14622..14625
- L_PAREN@14622..14623 "("
- ARG@14623..14624
- EXPR_VAR@14623..14624
- NAME@14623..14624
- IDENT@14623..14624 "b"
- R_PAREN@14624..14625 ")"
- WHITESPACE@14625..14626 " "
- THEN_KW@14626..14630 "then"
- WHITESPACE@14630..14639 "\n "
- TRUE_EXPR@14639..14640
- EXPR_VAR@14639..14640
- NAME@14639..14640
- IDENT@14639..14640 "a"
- WHITESPACE@14640..14647 "\n "
- ELSE_KW@14647..14651 "else"
- WHITESPACE@14651..14660 "\n "
- FALSE_EXPR@14660..14667
- EXPR_BINARY@14660..14667
- LHS_EXPR@14660..14661
- EXPR_VAR@14660..14661
- NAME@14660..14661
- IDENT@14660..14661 "a"
- WHITESPACE@14661..14662 " "
- PLUS@14662..14663 "+"
- WHITESPACE@14663..14664 " "
- EXPR_ARRAY@14664..14667
- L_BRACK@14664..14665 "["
- EXPR_VAR@14665..14666
- NAME@14665..14666
- IDENT@14665..14666 "b"
- R_BRACK@14666..14667 "]"
- SEMI@14667..14668 ";"
- WHITESPACE@14668..14673 "\n "
- EXPR_APPLY@14673..14694
- EXPR_INDEX@14673..14682
- EXPR_VAR@14673..14676
- NAME@14673..14676
- IDENT@14673..14676 "std"
- DOT@14676..14677 "."
- NAME@14677..14682
- IDENT@14677..14682 "foldl"
- ARGS_DESC@14682..14694
- L_PAREN@14682..14683 "("
- ARG@14683..14684
- EXPR_VAR@14683..14684
- NAME@14683..14684
- IDENT@14683..14684 "f"
- COMMA@14684..14685 ","
- WHITESPACE@14685..14686 " "
- ARG@14686..14689
- EXPR_VAR@14686..14689
- NAME@14686..14689
- IDENT@14686..14689 "arr"
- COMMA@14689..14690 ","
- WHITESPACE@14690..14691 " "
- ARG@14691..14693
- EXPR_ARRAY@14691..14693
- L_BRACK@14691..14692 "["
- R_BRACK@14692..14693 "]"
- R_PAREN@14693..14694 ")"
- COMMA@14694..14695 ","
- WHITESPACE@14695..14699 "\n\n "
- MEMBER_FIELD@14699..14758
- FIELD_METHOD@14699..14758
- FIELD_NAME_FIXED@14699..14702
- NAME@14699..14702
- IDENT@14699..14702 "set"
- PARAMS_DESC@14702..14716
- L_PAREN@14702..14703 "("
- PARAM@14703..14706
- DESTRUCT_FULL@14703..14706
- NAME@14703..14706
- IDENT@14703..14706 "arr"
- COMMA@14706..14707 ","
- WHITESPACE@14707..14708 " "
- PARAM@14708..14715
- DESTRUCT_FULL@14708..14712
- NAME@14708..14712
- IDENT@14708..14712 "keyF"
- ASSIGN@14712..14713 "="
- EXPR_VAR@14713..14715
- NAME@14713..14715
- IDENT@14713..14715 "id"
- R_PAREN@14715..14716 ")"
- COLONCOLON@14716..14718 "::"
- WHITESPACE@14718..14723 "\n "
- EXPR_APPLY@14723..14758
- EXPR_INDEX@14723..14731
- EXPR_VAR@14723..14726
- NAME@14723..14726
- IDENT@14723..14726 "std"
- DOT@14726..14727 "."
- NAME@14727..14731
- IDENT@14727..14731 "uniq"
- ARGS_DESC@14731..14758
- L_PAREN@14731..14732 "("
- ARG@14732..14751
- EXPR_APPLY@14732..14751
- EXPR_INDEX@14732..14740
- EXPR_VAR@14732..14735
- NAME@14732..14735
- IDENT@14732..14735 "std"
- DOT@14735..14736 "."
- NAME@14736..14740
- IDENT@14736..14740 "sort"
- ARGS_DESC@14740..14751
- L_PAREN@14740..14741 "("
- ARG@14741..14744
- EXPR_VAR@14741..14744
- NAME@14741..14744
- IDENT@14741..14744 "arr"
- COMMA@14744..14745 ","
- WHITESPACE@14745..14746 " "
- ARG@14746..14750
- EXPR_VAR@14746..14750
- NAME@14746..14750
- IDENT@14746..14750 "keyF"
- R_PAREN@14750..14751 ")"
- COMMA@14751..14752 ","
- WHITESPACE@14752..14753 " "
- ARG@14753..14757
- EXPR_VAR@14753..14757
- NAME@14753..14757
- IDENT@14753..14757 "keyF"
- R_PAREN@14757..14758 ")"
- COMMA@14758..14759 ","
- WHITESPACE@14759..14763 "\n\n "
- MEMBER_FIELD@14763..14898
- FIELD_METHOD@14763..14898
- FIELD_NAME_FIXED@14763..14772
- NAME@14763..14772
- IDENT@14763..14772 "setMember"
- PARAMS_DESC@14772..14789
- L_PAREN@14772..14773 "("
- PARAM@14773..14774
- DESTRUCT_FULL@14773..14774
- NAME@14773..14774
- IDENT@14773..14774 "x"
- COMMA@14774..14775 ","
- WHITESPACE@14775..14776 " "
- PARAM@14776..14779
- DESTRUCT_FULL@14776..14779
- NAME@14776..14779
- IDENT@14776..14779 "arr"
- COMMA@14779..14780 ","
- WHITESPACE@14780..14781 " "
- PARAM@14781..14788
- DESTRUCT_FULL@14781..14785
- NAME@14781..14785
- IDENT@14781..14785 "keyF"
- ASSIGN@14785..14786 "="
- EXPR_VAR@14786..14788
- NAME@14786..14788
- IDENT@14786..14788 "id"
- R_PAREN@14788..14789 ")"
- COLONCOLON@14789..14791 "::"
- WHITESPACE@14791..14796 "\n "
- SINGLE_LINE_SLASH_COMMENT@14796..14850 "// TODO(dcunnin): Bin ..."
- WHITESPACE@14850..14854 " "
- EXPR_BINARY@14854..14898
- LHS_EXPR@14854..14894
- EXPR_APPLY@14854..14894
- EXPR_INDEX@14854..14864
- EXPR_VAR@14854..14857
- NAME@14854..14857
- IDENT@14854..14857 "std"
- DOT@14857..14858 "."
- NAME@14858..14864
- IDENT@14858..14864 "length"
- ARGS_DESC@14864..14894
- L_PAREN@14864..14865 "("
- ARG@14865..14893
- EXPR_APPLY@14865..14893
- EXPR_INDEX@14865..14877
- EXPR_VAR@14865..14868
- NAME@14865..14868
- IDENT@14865..14868 "std"
- DOT@14868..14869 "."
- NAME@14869..14877
- IDENT@14869..14877 "setInter"
- ARGS_DESC@14877..14893
- L_PAREN@14877..14878 "("
- ARG@14878..14881
- EXPR_ARRAY@14878..14881
- L_BRACK@14878..14879 "["
- EXPR_VAR@14879..14880
- NAME@14879..14880
- IDENT@14879..14880 "x"
- R_BRACK@14880..14881 "]"
- COMMA@14881..14882 ","
- WHITESPACE@14882..14883 " "
- ARG@14883..14886
- EXPR_VAR@14883..14886
- NAME@14883..14886
- IDENT@14883..14886 "arr"
- COMMA@14886..14887 ","
- WHITESPACE@14887..14888 " "
- ARG@14888..14892
- EXPR_VAR@14888..14892
- NAME@14888..14892
- IDENT@14888..14892 "keyF"
- R_PAREN@14892..14893 ")"
- R_PAREN@14893..14894 ")"
- WHITESPACE@14894..14895 " "
- GT@14895..14896 ">"
- WHITESPACE@14896..14897 " "
- EXPR_NUMBER@14897..14898
- FLOAT@14897..14898 "0"
- COMMA@14898..14899 ","
- WHITESPACE@14899..14903 "\n\n "
- MEMBER_FIELD@14903..15452
- FIELD_METHOD@14903..15452
- FIELD_NAME_FIXED@14903..14911
- NAME@14903..14911
- IDENT@14903..14911 "setUnion"
- PARAMS_DESC@14911..14926
- L_PAREN@14911..14912 "("
- PARAM@14912..14913
- DESTRUCT_FULL@14912..14913
- NAME@14912..14913
- IDENT@14912..14913 "a"
- COMMA@14913..14914 ","
- WHITESPACE@14914..14915 " "
- PARAM@14915..14916
- DESTRUCT_FULL@14915..14916
- NAME@14915..14916
- IDENT@14915..14916 "b"
- COMMA@14916..14917 ","
- WHITESPACE@14917..14918 " "
- PARAM@14918..14925
- DESTRUCT_FULL@14918..14922
- NAME@14918..14922
- IDENT@14918..14922 "keyF"
- ASSIGN@14922..14923 "="
- EXPR_VAR@14923..14925
- NAME@14923..14925
- IDENT@14923..14925 "id"
- R_PAREN@14925..14926 ")"
- COLONCOLON@14926..14928 "::"
- WHITESPACE@14928..14933 "\n "
- SINGLE_LINE_SLASH_COMMENT@14933..14975 "// NOTE: order matter ..."
- WHITESPACE@14975..14979 " "
- EXPR_LOCAL@14979..15452
- LOCAL_KW@14979..14984 "local"
- WHITESPACE@14984..14985 " "
- BIND_FUNCTION@14985..15427
- NAME@14985..14988
- IDENT@14985..14988 "aux"
- PARAMS_DESC@14988..15005
- L_PAREN@14988..14989 "("
- PARAM@14989..14990
- DESTRUCT_FULL@14989..14990
- NAME@14989..14990
- IDENT@14989..14990 "a"
- COMMA@14990..14991 ","
- WHITESPACE@14991..14992 " "
- PARAM@14992..14993
- DESTRUCT_FULL@14992..14993
- NAME@14992..14993
- IDENT@14992..14993 "b"
- COMMA@14993..14994 ","
- WHITESPACE@14994..14995 " "
- PARAM@14995..14996
- DESTRUCT_FULL@14995..14996
- NAME@14995..14996
- IDENT@14995..14996 "i"
- COMMA@14996..14997 ","
- WHITESPACE@14997..14998 " "
- PARAM@14998..14999
- DESTRUCT_FULL@14998..14999
- NAME@14998..14999
- IDENT@14998..14999 "j"
- COMMA@14999..15000 ","
- WHITESPACE@15000..15001 " "
- PARAM@15001..15004
- DESTRUCT_FULL@15001..15004
- NAME@15001..15004
- IDENT@15001..15004 "acc"
- R_PAREN@15004..15005 ")"
- WHITESPACE@15005..15006 " "
- ASSIGN@15006..15007 "="
- WHITESPACE@15007..15014 "\n "
- EXPR_IF_THEN_ELSE@15014..15427
- IF_KW@15014..15016 "if"
- WHITESPACE@15016..15017 " "
- EXPR_BINARY@15017..15035
- LHS_EXPR@15017..15018
- EXPR_VAR@15017..15018
- NAME@15017..15018
- IDENT@15017..15018 "i"
- WHITESPACE@15018..15019 " "
- GE@15019..15021 ">="
- WHITESPACE@15021..15022 " "
- EXPR_APPLY@15022..15035
- EXPR_INDEX@15022..15032
- EXPR_VAR@15022..15025
- NAME@15022..15025
- IDENT@15022..15025 "std"
- DOT@15025..15026 "."
- NAME@15026..15032
- IDENT@15026..15032 "length"
- ARGS_DESC@15032..15035
- L_PAREN@15032..15033 "("
- ARG@15033..15034
- EXPR_VAR@15033..15034
- NAME@15033..15034
- IDENT@15033..15034 "a"
- R_PAREN@15034..15035 ")"
- WHITESPACE@15035..15036 " "
- THEN_KW@15036..15040 "then"
- WHITESPACE@15040..15049 "\n "
- TRUE_EXPR@15049..15060
- EXPR_BINARY@15049..15060
- LHS_EXPR@15049..15052
- EXPR_VAR@15049..15052
- NAME@15049..15052
- IDENT@15049..15052 "acc"
- WHITESPACE@15052..15053 " "
- PLUS@15053..15054 "+"
- WHITESPACE@15054..15055 " "
- EXPR_SLICE@15055..15060
- EXPR_VAR@15055..15056
- NAME@15055..15056
- IDENT@15055..15056 "b"
- SLICE_DESC@15056..15060
- L_BRACK@15056..15057 "["
- EXPR_VAR@15057..15058
- NAME@15057..15058
- IDENT@15057..15058 "j"
- COLON@15058..15059 ":"
- R_BRACK@15059..15060 "]"
- WHITESPACE@15060..15067 "\n "
- ELSE_KW@15067..15071 "else"
- WHITESPACE@15071..15072 " "
- FALSE_EXPR@15072..15427
- EXPR_IF_THEN_ELSE@15072..15427
- IF_KW@15072..15074 "if"
- WHITESPACE@15074..15075 " "
- EXPR_BINARY@15075..15093
- LHS_EXPR@15075..15076
- EXPR_VAR@15075..15076
- NAME@15075..15076
- IDENT@15075..15076 "j"
- WHITESPACE@15076..15077 " "
- GE@15077..15079 ">="
- WHITESPACE@15079..15080 " "
- EXPR_APPLY@15080..15093
- EXPR_INDEX@15080..15090
- EXPR_VAR@15080..15083
- NAME@15080..15083
- IDENT@15080..15083 "std"
- DOT@15083..15084 "."
- NAME@15084..15090
- IDENT@15084..15090 "length"
- ARGS_DESC@15090..15093
- L_PAREN@15090..15091 "("
- ARG@15091..15092
- EXPR_VAR@15091..15092
- NAME@15091..15092
- IDENT@15091..15092 "b"
- R_PAREN@15092..15093 ")"
- WHITESPACE@15093..15094 " "
- THEN_KW@15094..15098 "then"
- WHITESPACE@15098..15107 "\n "
- TRUE_EXPR@15107..15118
- EXPR_BINARY@15107..15118
- LHS_EXPR@15107..15110
- EXPR_VAR@15107..15110
- NAME@15107..15110
- IDENT@15107..15110 "acc"
- WHITESPACE@15110..15111 " "
- PLUS@15111..15112 "+"
- WHITESPACE@15112..15113 " "
- EXPR_SLICE@15113..15118
- EXPR_VAR@15113..15114
- NAME@15113..15114
- IDENT@15113..15114 "a"
- SLICE_DESC@15114..15118
- L_BRACK@15114..15115 "["
- EXPR_VAR@15115..15116
- NAME@15115..15116
- IDENT@15115..15116 "i"
- COLON@15116..15117 ":"
- R_BRACK@15117..15118 "]"
- WHITESPACE@15118..15125 "\n "
- ELSE_KW@15125..15129 "else"
- WHITESPACE@15129..15138 "\n "
- FALSE_EXPR@15138..15427
- EXPR_LOCAL@15138..15427
- LOCAL_KW@15138..15143 "local"
- WHITESPACE@15143..15144 " "
- BIND_DESTRUCT@15144..15159
- DESTRUCT_FULL@15144..15146
- NAME@15144..15146
- IDENT@15144..15146 "ak"
- WHITESPACE@15146..15147 " "
- ASSIGN@15147..15148 "="
- WHITESPACE@15148..15149 " "
- EXPR_APPLY@15149..15159
- EXPR_VAR@15149..15153
- NAME@15149..15153
- IDENT@15149..15153 "keyF"
- ARGS_DESC@15153..15159
- L_PAREN@15153..15154 "("
- ARG@15154..15158
- EXPR_INDEX_EXPR@15154..15158
- LHS_EXPR@15154..15155
- EXPR_VAR@15154..15155
- NAME@15154..15155
- IDENT@15154..15155 "a"
- L_BRACK@15155..15156 "["
- EXPR_VAR@15156..15157
- NAME@15156..15157
- IDENT@15156..15157 "i"
- R_BRACK@15157..15158 "]"
- R_PAREN@15158..15159 ")"
- SEMI@15159..15160 ";"
- WHITESPACE@15160..15169 "\n "
- EXPR_LOCAL@15169..15427
- LOCAL_KW@15169..15174 "local"
- WHITESPACE@15174..15175 " "
- BIND_DESTRUCT@15175..15190
- DESTRUCT_FULL@15175..15177
- NAME@15175..15177
- IDENT@15175..15177 "bk"
- WHITESPACE@15177..15178 " "
- ASSIGN@15178..15179 "="
- WHITESPACE@15179..15180 " "
- EXPR_APPLY@15180..15190
- EXPR_VAR@15180..15184
- NAME@15180..15184
- IDENT@15180..15184 "keyF"
- ARGS_DESC@15184..15190
- L_PAREN@15184..15185 "("
- ARG@15185..15189
- EXPR_INDEX_EXPR@15185..15189
- LHS_EXPR@15185..15186
- EXPR_VAR@15185..15186
- NAME@15185..15186
- IDENT@15185..15186 "b"
- L_BRACK@15186..15187 "["
- EXPR_VAR@15187..15188
- NAME@15187..15188
- IDENT@15187..15188 "j"
- R_BRACK@15188..15189 "]"
- R_PAREN@15189..15190 ")"
- SEMI@15190..15191 ";"
- WHITESPACE@15191..15200 "\n "
- EXPR_IF_THEN_ELSE@15200..15427
- IF_KW@15200..15202 "if"
- WHITESPACE@15202..15203 " "
- EXPR_BINARY@15203..15211
- LHS_EXPR@15203..15205
- EXPR_VAR@15203..15205
- NAME@15203..15205
- IDENT@15203..15205 "ak"
- WHITESPACE@15205..15206 " "
- EQ@15206..15208 "=="
- WHITESPACE@15208..15209 " "
- EXPR_VAR@15209..15211
- NAME@15209..15211
- IDENT@15209..15211 "bk"
- WHITESPACE@15211..15212 " "
- THEN_KW@15212..15216 "then"
- WHITESPACE@15216..15227 "\n "
- TRUE_EXPR@15227..15275
- EXPR_APPLY@15227..15275
- EXPR_VAR@15227..15230
- NAME@15227..15230
- IDENT@15227..15230 "aux"
- ARGS_DESC@15230..15275
- L_PAREN@15230..15231 "("
- ARG@15231..15232
- EXPR_VAR@15231..15232
- NAME@15231..15232
- IDENT@15231..15232 "a"
- COMMA@15232..15233 ","
- WHITESPACE@15233..15234 " "
- ARG@15234..15235
- EXPR_VAR@15234..15235
- NAME@15234..15235
- IDENT@15234..15235 "b"
- COMMA@15235..15236 ","
- WHITESPACE@15236..15237 " "
- ARG@15237..15242
- EXPR_BINARY@15237..15242
- LHS_EXPR@15237..15238
- EXPR_VAR@15237..15238
- NAME@15237..15238
- IDENT@15237..15238 "i"
- WHITESPACE@15238..15239 " "
- PLUS@15239..15240 "+"
- WHITESPACE@15240..15241 " "
- EXPR_NUMBER@15241..15242
- FLOAT@15241..15242 "1"
- COMMA@15242..15243 ","
- WHITESPACE@15243..15244 " "
- ARG@15244..15249
- EXPR_BINARY@15244..15249
- LHS_EXPR@15244..15245
- EXPR_VAR@15244..15245
- NAME@15244..15245
- IDENT@15244..15245 "j"
- WHITESPACE@15245..15246 " "
- PLUS@15246..15247 "+"
- WHITESPACE@15247..15248 " "
- EXPR_NUMBER@15248..15249
- FLOAT@15248..15249 "1"
- COMMA@15249..15250 ","
- WHITESPACE@15250..15251 " "
- ARG@15251..15263
- EXPR_BINARY@15251..15263
- LHS_EXPR@15251..15254
- EXPR_VAR@15251..15254
- NAME@15251..15254
- IDENT@15251..15254 "acc"
- WHITESPACE@15254..15255 " "
- PLUS@15255..15256 "+"
- WHITESPACE@15256..15257 " "
- EXPR_ARRAY@15257..15263
- L_BRACK@15257..15258 "["
- EXPR_INDEX_EXPR@15258..15262
- LHS_EXPR@15258..15259
- EXPR_VAR@15258..15259
- NAME@15258..15259
- IDENT@15258..15259 "a"
- L_BRACK@15259..15260 "["
- EXPR_VAR@15260..15261
- NAME@15260..15261
- IDENT@15260..15261 "i"
- R_BRACK@15261..15262 "]"
- R_BRACK@15262..15263 "]"
- R_PAREN@15263..15264 ")"
- WHITESPACE@15264..15265 " "
- TAILSTRICT_KW@15265..15275 "tailstrict"
- WHITESPACE@15275..15284 "\n "
- ELSE_KW@15284..15288 "else"
- WHITESPACE@15288..15289 " "
- FALSE_EXPR@15289..15427
- EXPR_IF_THEN_ELSE@15289..15427
- IF_KW@15289..15291 "if"
- WHITESPACE@15291..15292 " "
- EXPR_BINARY@15292..15299
- LHS_EXPR@15292..15294
- EXPR_VAR@15292..15294
- NAME@15292..15294
- IDENT@15292..15294 "ak"
- WHITESPACE@15294..15295 " "
- LT@15295..15296 "<"
- WHITESPACE@15296..15297 " "
- EXPR_VAR@15297..15299
- NAME@15297..15299
- IDENT@15297..15299 "bk"
- WHITESPACE@15299..15300 " "
- THEN_KW@15300..15304 "then"
- WHITESPACE@15304..15315 "\n "
- TRUE_EXPR@15315..15359
- EXPR_APPLY@15315..15359
- EXPR_VAR@15315..15318
- NAME@15315..15318
- IDENT@15315..15318 "aux"
- ARGS_DESC@15318..15359
- L_PAREN@15318..15319 "("
- ARG@15319..15320
- EXPR_VAR@15319..15320
- NAME@15319..15320
- IDENT@15319..15320 "a"
- COMMA@15320..15321 ","
- WHITESPACE@15321..15322 " "
- ARG@15322..15323
- EXPR_VAR@15322..15323
- NAME@15322..15323
- IDENT@15322..15323 "b"
- COMMA@15323..15324 ","
- WHITESPACE@15324..15325 " "
- ARG@15325..15330
- EXPR_BINARY@15325..15330
- LHS_EXPR@15325..15326
- EXPR_VAR@15325..15326
- NAME@15325..15326
- IDENT@15325..15326 "i"
- WHITESPACE@15326..15327 " "
- PLUS@15327..15328 "+"
- WHITESPACE@15328..15329 " "
- EXPR_NUMBER@15329..15330
- FLOAT@15329..15330 "1"
- COMMA@15330..15331 ","
- WHITESPACE@15331..15332 " "
- ARG@15332..15333
- EXPR_VAR@15332..15333
- NAME@15332..15333
- IDENT@15332..15333 "j"
- COMMA@15333..15334 ","
- WHITESPACE@15334..15335 " "
- ARG@15335..15347
- EXPR_BINARY@15335..15347
- LHS_EXPR@15335..15338
- EXPR_VAR@15335..15338
- NAME@15335..15338
- IDENT@15335..15338 "acc"
- WHITESPACE@15338..15339 " "
- PLUS@15339..15340 "+"
- WHITESPACE@15340..15341 " "
- EXPR_ARRAY@15341..15347
- L_BRACK@15341..15342 "["
- EXPR_INDEX_EXPR@15342..15346
- LHS_EXPR@15342..15343
- EXPR_VAR@15342..15343
- NAME@15342..15343
- IDENT@15342..15343 "a"
- L_BRACK@15343..15344 "["
- EXPR_VAR@15344..15345
- NAME@15344..15345
- IDENT@15344..15345 "i"
- R_BRACK@15345..15346 "]"
- R_BRACK@15346..15347 "]"
- R_PAREN@15347..15348 ")"
- WHITESPACE@15348..15349 " "
- TAILSTRICT_KW@15349..15359 "tailstrict"
- WHITESPACE@15359..15368 "\n "
- ELSE_KW@15368..15372 "else"
- WHITESPACE@15372..15383 "\n "
- FALSE_EXPR@15383..15427
- EXPR_APPLY@15383..15427
- EXPR_VAR@15383..15386
- NAME@15383..15386
- IDENT@15383..15386 "aux"
- ARGS_DESC@15386..15427
- L_PAREN@15386..15387 "("
- ARG@15387..15388
- EXPR_VAR@15387..15388
- NAME@15387..15388
- IDENT@15387..15388 "a"
- COMMA@15388..15389 ","
- WHITESPACE@15389..15390 " "
- ARG@15390..15391
- EXPR_VAR@15390..15391
- NAME@15390..15391
- IDENT@15390..15391 "b"
- COMMA@15391..15392 ","
- WHITESPACE@15392..15393 " "
- ARG@15393..15394
- EXPR_VAR@15393..15394
- NAME@15393..15394
- IDENT@15393..15394 "i"
- COMMA@15394..15395 ","
- WHITESPACE@15395..15396 " "
- ARG@15396..15401
- EXPR_BINARY@15396..15401
- LHS_EXPR@15396..15397
- EXPR_VAR@15396..15397
- NAME@15396..15397
- IDENT@15396..15397 "j"
- WHITESPACE@15397..15398 " "
- PLUS@15398..15399 "+"
- WHITESPACE@15399..15400 " "
- EXPR_NUMBER@15400..15401
- FLOAT@15400..15401 "1"
- COMMA@15401..15402 ","
- WHITESPACE@15402..15403 " "
- ARG@15403..15415
- EXPR_BINARY@15403..15415
- LHS_EXPR@15403..15406
- EXPR_VAR@15403..15406
- NAME@15403..15406
- IDENT@15403..15406 "acc"
- WHITESPACE@15406..15407 " "
- PLUS@15407..15408 "+"
- WHITESPACE@15408..15409 " "
- EXPR_ARRAY@15409..15415
- L_BRACK@15409..15410 "["
- EXPR_INDEX_EXPR@15410..15414
- LHS_EXPR@15410..15411
- EXPR_VAR@15410..15411
- NAME@15410..15411
- IDENT@15410..15411 "b"
- L_BRACK@15411..15412 "["
- EXPR_VAR@15412..15413
- NAME@15412..15413
- IDENT@15412..15413 "j"
- R_BRACK@15413..15414 "]"
- R_BRACK@15414..15415 "]"
- R_PAREN@15415..15416 ")"
- WHITESPACE@15416..15417 " "
- TAILSTRICT_KW@15417..15427 "tailstrict"
- SEMI@15427..15428 ";"
- WHITESPACE@15428..15433 "\n "
- EXPR_APPLY@15433..15452
- EXPR_VAR@15433..15436
- NAME@15433..15436
- IDENT@15433..15436 "aux"
- ARGS_DESC@15436..15452
- L_PAREN@15436..15437 "("
- ARG@15437..15438
- EXPR_VAR@15437..15438
- NAME@15437..15438
- IDENT@15437..15438 "a"
- COMMA@15438..15439 ","
- WHITESPACE@15439..15440 " "
- ARG@15440..15441
- EXPR_VAR@15440..15441
- NAME@15440..15441
- IDENT@15440..15441 "b"
- COMMA@15441..15442 ","
- WHITESPACE@15442..15443 " "
- ARG@15443..15444
- EXPR_NUMBER@15443..15444
- FLOAT@15443..15444 "0"
- COMMA@15444..15445 ","
- WHITESPACE@15445..15446 " "
- ARG@15446..15447
- EXPR_NUMBER@15446..15447
- FLOAT@15446..15447 "0"
- COMMA@15447..15448 ","
- WHITESPACE@15448..15449 " "
- ARG@15449..15451
- EXPR_ARRAY@15449..15451
- L_BRACK@15449..15450 "["
- R_BRACK@15450..15451 "]"
- R_PAREN@15451..15452 ")"
- COMMA@15452..15453 ","
- WHITESPACE@15453..15457 "\n\n "
- MEMBER_FIELD@15457..15879
- FIELD_METHOD@15457..15879
- FIELD_NAME_FIXED@15457..15465
- NAME@15457..15465
- IDENT@15457..15465 "setInter"
- PARAMS_DESC@15465..15480
- L_PAREN@15465..15466 "("
- PARAM@15466..15467
- DESTRUCT_FULL@15466..15467
- NAME@15466..15467
- IDENT@15466..15467 "a"
- COMMA@15467..15468 ","
- WHITESPACE@15468..15469 " "
- PARAM@15469..15470
- DESTRUCT_FULL@15469..15470
- NAME@15469..15470
- IDENT@15469..15470 "b"
- COMMA@15470..15471 ","
- WHITESPACE@15471..15472 " "
- PARAM@15472..15479
- DESTRUCT_FULL@15472..15476
- NAME@15472..15476
- IDENT@15472..15476 "keyF"
- ASSIGN@15476..15477 "="
- EXPR_VAR@15477..15479
- NAME@15477..15479
- IDENT@15477..15479 "id"
- R_PAREN@15479..15480 ")"
- COLONCOLON@15480..15482 "::"
- WHITESPACE@15482..15487 "\n "
- EXPR_LOCAL@15487..15879
- LOCAL_KW@15487..15492 "local"
- WHITESPACE@15492..15493 " "
- BIND_FUNCTION@15493..15843
- NAME@15493..15496
- IDENT@15493..15496 "aux"
- PARAMS_DESC@15496..15513
- L_PAREN@15496..15497 "("
- PARAM@15497..15498
- DESTRUCT_FULL@15497..15498
- NAME@15497..15498
- IDENT@15497..15498 "a"
- COMMA@15498..15499 ","
- WHITESPACE@15499..15500 " "
- PARAM@15500..15501
- DESTRUCT_FULL@15500..15501
- NAME@15500..15501
- IDENT@15500..15501 "b"
- COMMA@15501..15502 ","
- WHITESPACE@15502..15503 " "
- PARAM@15503..15504
- DESTRUCT_FULL@15503..15504
- NAME@15503..15504
- IDENT@15503..15504 "i"
- COMMA@15504..15505 ","
- WHITESPACE@15505..15506 " "
- PARAM@15506..15507
- DESTRUCT_FULL@15506..15507
- NAME@15506..15507
- IDENT@15506..15507 "j"
- COMMA@15507..15508 ","
- WHITESPACE@15508..15509 " "
- PARAM@15509..15512
- DESTRUCT_FULL@15509..15512
- NAME@15509..15512
- IDENT@15509..15512 "acc"
- R_PAREN@15512..15513 ")"
- WHITESPACE@15513..15514 " "
- ASSIGN@15514..15515 "="
- WHITESPACE@15515..15522 "\n "
- EXPR_IF_THEN_ELSE@15522..15843
- IF_KW@15522..15524 "if"
- WHITESPACE@15524..15525 " "
- EXPR_BINARY@15525..15565
- LHS_EXPR@15525..15543
- EXPR_BINARY@15525..15543
- LHS_EXPR@15525..15526
- EXPR_VAR@15525..15526
- NAME@15525..15526
- IDENT@15525..15526 "i"
- WHITESPACE@15526..15527 " "
- GE@15527..15529 ">="
- WHITESPACE@15529..15530 " "
- EXPR_APPLY@15530..15543
- EXPR_INDEX@15530..15540
- EXPR_VAR@15530..15533
- NAME@15530..15533
- IDENT@15530..15533 "std"
- DOT@15533..15534 "."
- NAME@15534..15540
- IDENT@15534..15540 "length"
- ARGS_DESC@15540..15543
- L_PAREN@15540..15541 "("
- ARG@15541..15542
- EXPR_VAR@15541..15542
- NAME@15541..15542
- IDENT@15541..15542 "a"
- R_PAREN@15542..15543 ")"
- WHITESPACE@15543..15544 " "
- OR@15544..15546 "||"
- WHITESPACE@15546..15547 " "
- EXPR_BINARY@15547..15565
- LHS_EXPR@15547..15548
- EXPR_VAR@15547..15548
- NAME@15547..15548
- IDENT@15547..15548 "j"
- WHITESPACE@15548..15549 " "
- GE@15549..15551 ">="
- WHITESPACE@15551..15552 " "
- EXPR_APPLY@15552..15565
- EXPR_INDEX@15552..15562
- EXPR_VAR@15552..15555
- NAME@15552..15555
- IDENT@15552..15555 "std"
- DOT@15555..15556 "."
- NAME@15556..15562
- IDENT@15556..15562 "length"
- ARGS_DESC@15562..15565
- L_PAREN@15562..15563 "("
- ARG@15563..15564
- EXPR_VAR@15563..15564
- NAME@15563..15564
- IDENT@15563..15564 "b"
- R_PAREN@15564..15565 ")"
- WHITESPACE@15565..15566 " "
- THEN_KW@15566..15570 "then"
- WHITESPACE@15570..15579 "\n "
- TRUE_EXPR@15579..15582
- EXPR_VAR@15579..15582
- NAME@15579..15582
- IDENT@15579..15582 "acc"
- WHITESPACE@15582..15589 "\n "
- ELSE_KW@15589..15593 "else"
- WHITESPACE@15593..15602 "\n "
- FALSE_EXPR@15602..15843
- EXPR_IF_THEN_ELSE@15602..15843
- IF_KW@15602..15604 "if"
- WHITESPACE@15604..15605 " "
- EXPR_BINARY@15605..15629
- LHS_EXPR@15605..15615
- EXPR_APPLY@15605..15615
- EXPR_VAR@15605..15609
- NAME@15605..15609
- IDENT@15605..15609 "keyF"
- ARGS_DESC@15609..15615
- L_PAREN@15609..15610 "("
- ARG@15610..15614
- EXPR_INDEX_EXPR@15610..15614
- LHS_EXPR@15610..15611
- EXPR_VAR@15610..15611
- NAME@15610..15611
- IDENT@15610..15611 "a"
- L_BRACK@15611..15612 "["
- EXPR_VAR@15612..15613
- NAME@15612..15613
- IDENT@15612..15613 "i"
- R_BRACK@15613..15614 "]"
- R_PAREN@15614..15615 ")"
- WHITESPACE@15615..15616 " "
- EQ@15616..15618 "=="
- WHITESPACE@15618..15619 " "
- EXPR_APPLY@15619..15629
- EXPR_VAR@15619..15623
- NAME@15619..15623
- IDENT@15619..15623 "keyF"
- ARGS_DESC@15623..15629
- L_PAREN@15623..15624 "("
- ARG@15624..15628
- EXPR_INDEX_EXPR@15624..15628
- LHS_EXPR@15624..15625
- EXPR_VAR@15624..15625
- NAME@15624..15625
- IDENT@15624..15625 "b"
- L_BRACK@15625..15626 "["
- EXPR_VAR@15626..15627
- NAME@15626..15627
- IDENT@15626..15627 "j"
- R_BRACK@15627..15628 "]"
- R_PAREN@15628..15629 ")"
- WHITESPACE@15629..15630 " "
- THEN_KW@15630..15634 "then"
- WHITESPACE@15634..15645 "\n "
- TRUE_EXPR@15645..15693
- EXPR_APPLY@15645..15693
- EXPR_VAR@15645..15648
- NAME@15645..15648
- IDENT@15645..15648 "aux"
- ARGS_DESC@15648..15693
- L_PAREN@15648..15649 "("
- ARG@15649..15650
- EXPR_VAR@15649..15650
- NAME@15649..15650
- IDENT@15649..15650 "a"
- COMMA@15650..15651 ","
- WHITESPACE@15651..15652 " "
- ARG@15652..15653
- EXPR_VAR@15652..15653
- NAME@15652..15653
- IDENT@15652..15653 "b"
- COMMA@15653..15654 ","
- WHITESPACE@15654..15655 " "
- ARG@15655..15660
- EXPR_BINARY@15655..15660
- LHS_EXPR@15655..15656
- EXPR_VAR@15655..15656
- NAME@15655..15656
- IDENT@15655..15656 "i"
- WHITESPACE@15656..15657 " "
- PLUS@15657..15658 "+"
- WHITESPACE@15658..15659 " "
- EXPR_NUMBER@15659..15660
- FLOAT@15659..15660 "1"
- COMMA@15660..15661 ","
- WHITESPACE@15661..15662 " "
- ARG@15662..15667
- EXPR_BINARY@15662..15667
- LHS_EXPR@15662..15663
- EXPR_VAR@15662..15663
- NAME@15662..15663
- IDENT@15662..15663 "j"
- WHITESPACE@15663..15664 " "
- PLUS@15664..15665 "+"
- WHITESPACE@15665..15666 " "
- EXPR_NUMBER@15666..15667
- FLOAT@15666..15667 "1"
- COMMA@15667..15668 ","
- WHITESPACE@15668..15669 " "
- ARG@15669..15681
- EXPR_BINARY@15669..15681
- LHS_EXPR@15669..15672
- EXPR_VAR@15669..15672
- NAME@15669..15672
- IDENT@15669..15672 "acc"
- WHITESPACE@15672..15673 " "
- PLUS@15673..15674 "+"
- WHITESPACE@15674..15675 " "
- EXPR_ARRAY@15675..15681
- L_BRACK@15675..15676 "["
- EXPR_INDEX_EXPR@15676..15680
- LHS_EXPR@15676..15677
- EXPR_VAR@15676..15677
- NAME@15676..15677
- IDENT@15676..15677 "a"
- L_BRACK@15677..15678 "["
- EXPR_VAR@15678..15679
- NAME@15678..15679
- IDENT@15678..15679 "i"
- R_BRACK@15679..15680 "]"
- R_BRACK@15680..15681 "]"
- R_PAREN@15681..15682 ")"
- WHITESPACE@15682..15683 " "
- TAILSTRICT_KW@15683..15693 "tailstrict"
- WHITESPACE@15693..15702 "\n "
- ELSE_KW@15702..15706 "else"
- WHITESPACE@15706..15707 " "
- FALSE_EXPR@15707..15843
- EXPR_IF_THEN_ELSE@15707..15843
- IF_KW@15707..15709 "if"
- WHITESPACE@15709..15710 " "
- EXPR_BINARY@15710..15733
- LHS_EXPR@15710..15720
- EXPR_APPLY@15710..15720
- EXPR_VAR@15710..15714
- NAME@15710..15714
- IDENT@15710..15714 "keyF"
- ARGS_DESC@15714..15720
- L_PAREN@15714..15715 "("
- ARG@15715..15719
- EXPR_INDEX_EXPR@15715..15719
- LHS_EXPR@15715..15716
- EXPR_VAR@15715..15716
- NAME@15715..15716
- IDENT@15715..15716 "a"
- L_BRACK@15716..15717 "["
- EXPR_VAR@15717..15718
- NAME@15717..15718
- IDENT@15717..15718 "i"
- R_BRACK@15718..15719 "]"
- R_PAREN@15719..15720 ")"
- WHITESPACE@15720..15721 " "
- LT@15721..15722 "<"
- WHITESPACE@15722..15723 " "
- EXPR_APPLY@15723..15733
- EXPR_VAR@15723..15727
- NAME@15723..15727
- IDENT@15723..15727 "keyF"
- ARGS_DESC@15727..15733
- L_PAREN@15727..15728 "("
- ARG@15728..15732
- EXPR_INDEX_EXPR@15728..15732
- LHS_EXPR@15728..15729
- EXPR_VAR@15728..15729
- NAME@15728..15729
- IDENT@15728..15729 "b"
- L_BRACK@15729..15730 "["
- EXPR_VAR@15730..15731
- NAME@15730..15731
- IDENT@15730..15731 "j"
- R_BRACK@15731..15732 "]"
- R_PAREN@15732..15733 ")"
- WHITESPACE@15733..15734 " "
- THEN_KW@15734..15738 "then"
- WHITESPACE@15738..15749 "\n "
- TRUE_EXPR@15749..15784
- EXPR_APPLY@15749..15784
- EXPR_VAR@15749..15752
- NAME@15749..15752
- IDENT@15749..15752 "aux"
- ARGS_DESC@15752..15784
- L_PAREN@15752..15753 "("
- ARG@15753..15754
- EXPR_VAR@15753..15754
- NAME@15753..15754
- IDENT@15753..15754 "a"
- COMMA@15754..15755 ","
- WHITESPACE@15755..15756 " "
- ARG@15756..15757
- EXPR_VAR@15756..15757
- NAME@15756..15757
- IDENT@15756..15757 "b"
- COMMA@15757..15758 ","
- WHITESPACE@15758..15759 " "
- ARG@15759..15764
- EXPR_BINARY@15759..15764
- LHS_EXPR@15759..15760
- EXPR_VAR@15759..15760
- NAME@15759..15760
- IDENT@15759..15760 "i"
- WHITESPACE@15760..15761 " "
- PLUS@15761..15762 "+"
- WHITESPACE@15762..15763 " "
- EXPR_NUMBER@15763..15764
- FLOAT@15763..15764 "1"
- COMMA@15764..15765 ","
- WHITESPACE@15765..15766 " "
- ARG@15766..15767
- EXPR_VAR@15766..15767
- NAME@15766..15767
- IDENT@15766..15767 "j"
- COMMA@15767..15768 ","
- WHITESPACE@15768..15769 " "
- ARG@15769..15772
- EXPR_VAR@15769..15772
- NAME@15769..15772
- IDENT@15769..15772 "acc"
- R_PAREN@15772..15773 ")"
- WHITESPACE@15773..15774 " "
- TAILSTRICT_KW@15774..15784 "tailstrict"
- WHITESPACE@15784..15793 "\n "
- ELSE_KW@15793..15797 "else"
- WHITESPACE@15797..15808 "\n "
- FALSE_EXPR@15808..15843
- EXPR_APPLY@15808..15843
- EXPR_VAR@15808..15811
- NAME@15808..15811
- IDENT@15808..15811 "aux"
- ARGS_DESC@15811..15843
- L_PAREN@15811..15812 "("
- ARG@15812..15813
- EXPR_VAR@15812..15813
- NAME@15812..15813
- IDENT@15812..15813 "a"
- COMMA@15813..15814 ","
- WHITESPACE@15814..15815 " "
- ARG@15815..15816
- EXPR_VAR@15815..15816
- NAME@15815..15816
- IDENT@15815..15816 "b"
- COMMA@15816..15817 ","
- WHITESPACE@15817..15818 " "
- ARG@15818..15819
- EXPR_VAR@15818..15819
- NAME@15818..15819
- IDENT@15818..15819 "i"
- COMMA@15819..15820 ","
- WHITESPACE@15820..15821 " "
- ARG@15821..15826
- EXPR_BINARY@15821..15826
- LHS_EXPR@15821..15822
- EXPR_VAR@15821..15822
- NAME@15821..15822
- IDENT@15821..15822 "j"
- WHITESPACE@15822..15823 " "
- PLUS@15823..15824 "+"
- WHITESPACE@15824..15825 " "
- EXPR_NUMBER@15825..15826
- FLOAT@15825..15826 "1"
- COMMA@15826..15827 ","
- WHITESPACE@15827..15828 " "
- ARG@15828..15831
- EXPR_VAR@15828..15831
- NAME@15828..15831
- IDENT@15828..15831 "acc"
- R_PAREN@15831..15832 ")"
- WHITESPACE@15832..15833 " "
- TAILSTRICT_KW@15833..15843 "tailstrict"
- SEMI@15843..15844 ";"
- WHITESPACE@15844..15849 "\n "
- EXPR_APPLY@15849..15879
- EXPR_VAR@15849..15852
- NAME@15849..15852
- IDENT@15849..15852 "aux"
- ARGS_DESC@15852..15879
- L_PAREN@15852..15853 "("
- ARG@15853..15854
- EXPR_VAR@15853..15854
- NAME@15853..15854
- IDENT@15853..15854 "a"
- COMMA@15854..15855 ","
- WHITESPACE@15855..15856 " "
- ARG@15856..15857
- EXPR_VAR@15856..15857
- NAME@15856..15857
- IDENT@15856..15857 "b"
- COMMA@15857..15858 ","
- WHITESPACE@15858..15859 " "
- ARG@15859..15860
- EXPR_NUMBER@15859..15860
- FLOAT@15859..15860 "0"
- COMMA@15860..15861 ","
- WHITESPACE@15861..15862 " "
- ARG@15862..15863
- EXPR_NUMBER@15862..15863
- FLOAT@15862..15863 "0"
- COMMA@15863..15864 ","
- WHITESPACE@15864..15865 " "
- ARG@15865..15867
- EXPR_ARRAY@15865..15867
- L_BRACK@15865..15866 "["
- R_BRACK@15866..15867 "]"
- R_PAREN@15867..15868 ")"
- WHITESPACE@15868..15869 " "
- TAILSTRICT_KW@15869..15879 "tailstrict"
- COMMA@15879..15880 ","
- WHITESPACE@15880..15884 "\n\n "
- MEMBER_FIELD@15884..16341
- FIELD_METHOD@15884..16341
- FIELD_NAME_FIXED@15884..15891
- NAME@15884..15891
- IDENT@15884..15891 "setDiff"
- PARAMS_DESC@15891..15906
- L_PAREN@15891..15892 "("
- PARAM@15892..15893
- DESTRUCT_FULL@15892..15893
- NAME@15892..15893
- IDENT@15892..15893 "a"
- COMMA@15893..15894 ","
- WHITESPACE@15894..15895 " "
- PARAM@15895..15896
- DESTRUCT_FULL@15895..15896
- NAME@15895..15896
- IDENT@15895..15896 "b"
- COMMA@15896..15897 ","
- WHITESPACE@15897..15898 " "
- PARAM@15898..15905
- DESTRUCT_FULL@15898..15902
- NAME@15898..15902
- IDENT@15898..15902 "keyF"
- ASSIGN@15902..15903 "="
- EXPR_VAR@15903..15905
- NAME@15903..15905
- IDENT@15903..15905 "id"
- R_PAREN@15905..15906 ")"
- COLONCOLON@15906..15908 "::"
- WHITESPACE@15908..15913 "\n "
- EXPR_LOCAL@15913..16341
- LOCAL_KW@15913..15918 "local"
- WHITESPACE@15918..15919 " "
- BIND_FUNCTION@15919..16305
- NAME@15919..15922
- IDENT@15919..15922 "aux"
- PARAMS_DESC@15922..15939
- L_PAREN@15922..15923 "("
- PARAM@15923..15924
- DESTRUCT_FULL@15923..15924
- NAME@15923..15924
- IDENT@15923..15924 "a"
- COMMA@15924..15925 ","
- WHITESPACE@15925..15926 " "
- PARAM@15926..15927
- DESTRUCT_FULL@15926..15927
- NAME@15926..15927
- IDENT@15926..15927 "b"
- COMMA@15927..15928 ","
- WHITESPACE@15928..15929 " "
- PARAM@15929..15930
- DESTRUCT_FULL@15929..15930
- NAME@15929..15930
- IDENT@15929..15930 "i"
- COMMA@15930..15931 ","
- WHITESPACE@15931..15932 " "
- PARAM@15932..15933
- DESTRUCT_FULL@15932..15933
- NAME@15932..15933
- IDENT@15932..15933 "j"
- COMMA@15933..15934 ","
- WHITESPACE@15934..15935 " "
- PARAM@15935..15938
- DESTRUCT_FULL@15935..15938
- NAME@15935..15938
- IDENT@15935..15938 "acc"
- R_PAREN@15938..15939 ")"
- WHITESPACE@15939..15940 " "
- ASSIGN@15940..15941 "="
- WHITESPACE@15941..15948 "\n "
- EXPR_IF_THEN_ELSE@15948..16305
- IF_KW@15948..15950 "if"
- WHITESPACE@15950..15951 " "
- EXPR_BINARY@15951..15969
- LHS_EXPR@15951..15952
- EXPR_VAR@15951..15952
- NAME@15951..15952
- IDENT@15951..15952 "i"
- WHITESPACE@15952..15953 " "
- GE@15953..15955 ">="
- WHITESPACE@15955..15956 " "
- EXPR_APPLY@15956..15969
- EXPR_INDEX@15956..15966
- EXPR_VAR@15956..15959
- NAME@15956..15959
- IDENT@15956..15959 "std"
- DOT@15959..15960 "."
- NAME@15960..15966
- IDENT@15960..15966 "length"
- ARGS_DESC@15966..15969
- L_PAREN@15966..15967 "("
- ARG@15967..15968
- EXPR_VAR@15967..15968
- NAME@15967..15968
- IDENT@15967..15968 "a"
- R_PAREN@15968..15969 ")"
- WHITESPACE@15969..15970 " "
- THEN_KW@15970..15974 "then"
- WHITESPACE@15974..15983 "\n "
- TRUE_EXPR@15983..15986
- EXPR_VAR@15983..15986
- NAME@15983..15986
- IDENT@15983..15986 "acc"
- WHITESPACE@15986..15993 "\n "
- ELSE_KW@15993..15997 "else"
- WHITESPACE@15997..15998 " "
- FALSE_EXPR@15998..16305
- EXPR_IF_THEN_ELSE@15998..16305
- IF_KW@15998..16000 "if"
- WHITESPACE@16000..16001 " "
- EXPR_BINARY@16001..16019
- LHS_EXPR@16001..16002
- EXPR_VAR@16001..16002
- NAME@16001..16002
- IDENT@16001..16002 "j"
- WHITESPACE@16002..16003 " "
- GE@16003..16005 ">="
- WHITESPACE@16005..16006 " "
- EXPR_APPLY@16006..16019
- EXPR_INDEX@16006..16016
- EXPR_VAR@16006..16009
- NAME@16006..16009
- IDENT@16006..16009 "std"
- DOT@16009..16010 "."
- NAME@16010..16016
- IDENT@16010..16016 "length"
- ARGS_DESC@16016..16019
- L_PAREN@16016..16017 "("
- ARG@16017..16018
- EXPR_VAR@16017..16018
- NAME@16017..16018
- IDENT@16017..16018 "b"
- R_PAREN@16018..16019 ")"
- WHITESPACE@16019..16020 " "
- THEN_KW@16020..16024 "then"
- WHITESPACE@16024..16033 "\n "
- TRUE_EXPR@16033..16044
- EXPR_BINARY@16033..16044
- LHS_EXPR@16033..16036
- EXPR_VAR@16033..16036
- NAME@16033..16036
- IDENT@16033..16036 "acc"
- WHITESPACE@16036..16037 " "
- PLUS@16037..16038 "+"
- WHITESPACE@16038..16039 " "
- EXPR_SLICE@16039..16044
- EXPR_VAR@16039..16040
- NAME@16039..16040
- IDENT@16039..16040 "a"
- SLICE_DESC@16040..16044
- L_BRACK@16040..16041 "["
- EXPR_VAR@16041..16042
- NAME@16041..16042
- IDENT@16041..16042 "i"
- COLON@16042..16043 ":"
- R_BRACK@16043..16044 "]"
- WHITESPACE@16044..16051 "\n "
- ELSE_KW@16051..16055 "else"
- WHITESPACE@16055..16064 "\n "
- FALSE_EXPR@16064..16305
- EXPR_IF_THEN_ELSE@16064..16305
- IF_KW@16064..16066 "if"
- WHITESPACE@16066..16067 " "
- EXPR_BINARY@16067..16091
- LHS_EXPR@16067..16077
- EXPR_APPLY@16067..16077
- EXPR_VAR@16067..16071
- NAME@16067..16071
- IDENT@16067..16071 "keyF"
- ARGS_DESC@16071..16077
- L_PAREN@16071..16072 "("
- ARG@16072..16076
- EXPR_INDEX_EXPR@16072..16076
- LHS_EXPR@16072..16073
- EXPR_VAR@16072..16073
- NAME@16072..16073
- IDENT@16072..16073 "a"
- L_BRACK@16073..16074 "["
- EXPR_VAR@16074..16075
- NAME@16074..16075
- IDENT@16074..16075 "i"
- R_BRACK@16075..16076 "]"
- R_PAREN@16076..16077 ")"
- WHITESPACE@16077..16078 " "
- EQ@16078..16080 "=="
- WHITESPACE@16080..16081 " "
- EXPR_APPLY@16081..16091
- EXPR_VAR@16081..16085
- NAME@16081..16085
- IDENT@16081..16085 "keyF"
- ARGS_DESC@16085..16091
- L_PAREN@16085..16086 "("
- ARG@16086..16090
- EXPR_INDEX_EXPR@16086..16090
- LHS_EXPR@16086..16087
- EXPR_VAR@16086..16087
- NAME@16086..16087
- IDENT@16086..16087 "b"
- L_BRACK@16087..16088 "["
- EXPR_VAR@16088..16089
- NAME@16088..16089
- IDENT@16088..16089 "j"
- R_BRACK@16089..16090 "]"
- R_PAREN@16090..16091 ")"
- WHITESPACE@16091..16092 " "
- THEN_KW@16092..16096 "then"
- WHITESPACE@16096..16107 "\n "
- TRUE_EXPR@16107..16146
- EXPR_APPLY@16107..16146
- EXPR_VAR@16107..16110
- NAME@16107..16110
- IDENT@16107..16110 "aux"
- ARGS_DESC@16110..16146
- L_PAREN@16110..16111 "("
- ARG@16111..16112
- EXPR_VAR@16111..16112
- NAME@16111..16112
- IDENT@16111..16112 "a"
- COMMA@16112..16113 ","
- WHITESPACE@16113..16114 " "
- ARG@16114..16115
- EXPR_VAR@16114..16115
- NAME@16114..16115
- IDENT@16114..16115 "b"
- COMMA@16115..16116 ","
- WHITESPACE@16116..16117 " "
- ARG@16117..16122
- EXPR_BINARY@16117..16122
- LHS_EXPR@16117..16118
- EXPR_VAR@16117..16118
- NAME@16117..16118
- IDENT@16117..16118 "i"
- WHITESPACE@16118..16119 " "
- PLUS@16119..16120 "+"
- WHITESPACE@16120..16121 " "
- EXPR_NUMBER@16121..16122
- FLOAT@16121..16122 "1"
- COMMA@16122..16123 ","
- WHITESPACE@16123..16124 " "
- ARG@16124..16129
- EXPR_BINARY@16124..16129
- LHS_EXPR@16124..16125
- EXPR_VAR@16124..16125
- NAME@16124..16125
- IDENT@16124..16125 "j"
- WHITESPACE@16125..16126 " "
- PLUS@16126..16127 "+"
- WHITESPACE@16127..16128 " "
- EXPR_NUMBER@16128..16129
- FLOAT@16128..16129 "1"
- COMMA@16129..16130 ","
- WHITESPACE@16130..16131 " "
- ARG@16131..16134
- EXPR_VAR@16131..16134
- NAME@16131..16134
- IDENT@16131..16134 "acc"
- R_PAREN@16134..16135 ")"
- WHITESPACE@16135..16136 " "
- TAILSTRICT_KW@16136..16146 "tailstrict"
- WHITESPACE@16146..16155 "\n "
- ELSE_KW@16155..16159 "else"
- WHITESPACE@16159..16160 " "
- FALSE_EXPR@16160..16305
- EXPR_IF_THEN_ELSE@16160..16305
- IF_KW@16160..16162 "if"
- WHITESPACE@16162..16163 " "
- EXPR_BINARY@16163..16186
- LHS_EXPR@16163..16173
- EXPR_APPLY@16163..16173
- EXPR_VAR@16163..16167
- NAME@16163..16167
- IDENT@16163..16167 "keyF"
- ARGS_DESC@16167..16173
- L_PAREN@16167..16168 "("
- ARG@16168..16172
- EXPR_INDEX_EXPR@16168..16172
- LHS_EXPR@16168..16169
- EXPR_VAR@16168..16169
- NAME@16168..16169
- IDENT@16168..16169 "a"
- L_BRACK@16169..16170 "["
- EXPR_VAR@16170..16171
- NAME@16170..16171
- IDENT@16170..16171 "i"
- R_BRACK@16171..16172 "]"
- R_PAREN@16172..16173 ")"
- WHITESPACE@16173..16174 " "
- LT@16174..16175 "<"
- WHITESPACE@16175..16176 " "
- EXPR_APPLY@16176..16186
- EXPR_VAR@16176..16180
- NAME@16176..16180
- IDENT@16176..16180 "keyF"
- ARGS_DESC@16180..16186
- L_PAREN@16180..16181 "("
- ARG@16181..16185
- EXPR_INDEX_EXPR@16181..16185
- LHS_EXPR@16181..16182
- EXPR_VAR@16181..16182
- NAME@16181..16182
- IDENT@16181..16182 "b"
- L_BRACK@16182..16183 "["
- EXPR_VAR@16183..16184
- NAME@16183..16184
- IDENT@16183..16184 "j"
- R_BRACK@16184..16185 "]"
- R_PAREN@16185..16186 ")"
- WHITESPACE@16186..16187 " "
- THEN_KW@16187..16191 "then"
- WHITESPACE@16191..16202 "\n "
- TRUE_EXPR@16202..16246
- EXPR_APPLY@16202..16246
- EXPR_VAR@16202..16205
- NAME@16202..16205
- IDENT@16202..16205 "aux"
- ARGS_DESC@16205..16246
- L_PAREN@16205..16206 "("
- ARG@16206..16207
- EXPR_VAR@16206..16207
- NAME@16206..16207
- IDENT@16206..16207 "a"
- COMMA@16207..16208 ","
- WHITESPACE@16208..16209 " "
- ARG@16209..16210
- EXPR_VAR@16209..16210
- NAME@16209..16210
- IDENT@16209..16210 "b"
- COMMA@16210..16211 ","
- WHITESPACE@16211..16212 " "
- ARG@16212..16217
- EXPR_BINARY@16212..16217
- LHS_EXPR@16212..16213
- EXPR_VAR@16212..16213
- NAME@16212..16213
- IDENT@16212..16213 "i"
- WHITESPACE@16213..16214 " "
- PLUS@16214..16215 "+"
- WHITESPACE@16215..16216 " "
- EXPR_NUMBER@16216..16217
- FLOAT@16216..16217 "1"
- COMMA@16217..16218 ","
- WHITESPACE@16218..16219 " "
- ARG@16219..16220
- EXPR_VAR@16219..16220
- NAME@16219..16220
- IDENT@16219..16220 "j"
- COMMA@16220..16221 ","
- WHITESPACE@16221..16222 " "
- ARG@16222..16234
- EXPR_BINARY@16222..16234
- LHS_EXPR@16222..16225
- EXPR_VAR@16222..16225
- NAME@16222..16225
- IDENT@16222..16225 "acc"
- WHITESPACE@16225..16226 " "
- PLUS@16226..16227 "+"
- WHITESPACE@16227..16228 " "
- EXPR_ARRAY@16228..16234
- L_BRACK@16228..16229 "["
- EXPR_INDEX_EXPR@16229..16233
- LHS_EXPR@16229..16230
- EXPR_VAR@16229..16230
- NAME@16229..16230
- IDENT@16229..16230 "a"
- L_BRACK@16230..16231 "["
- EXPR_VAR@16231..16232
- NAME@16231..16232
- IDENT@16231..16232 "i"
- R_BRACK@16232..16233 "]"
- R_BRACK@16233..16234 "]"
- R_PAREN@16234..16235 ")"
- WHITESPACE@16235..16236 " "
- TAILSTRICT_KW@16236..16246 "tailstrict"
- WHITESPACE@16246..16255 "\n "
- ELSE_KW@16255..16259 "else"
- WHITESPACE@16259..16270 "\n "
- FALSE_EXPR@16270..16305
- EXPR_APPLY@16270..16305
- EXPR_VAR@16270..16273
- NAME@16270..16273
- IDENT@16270..16273 "aux"
- ARGS_DESC@16273..16305
- L_PAREN@16273..16274 "("
- ARG@16274..16275
- EXPR_VAR@16274..16275
- NAME@16274..16275
- IDENT@16274..16275 "a"
- COMMA@16275..16276 ","
- WHITESPACE@16276..16277 " "
- ARG@16277..16278
- EXPR_VAR@16277..16278
- NAME@16277..16278
- IDENT@16277..16278 "b"
- COMMA@16278..16279 ","
- WHITESPACE@16279..16280 " "
- ARG@16280..16281
- EXPR_VAR@16280..16281
- NAME@16280..16281
- IDENT@16280..16281 "i"
- COMMA@16281..16282 ","
- WHITESPACE@16282..16283 " "
- ARG@16283..16288
- EXPR_BINARY@16283..16288
- LHS_EXPR@16283..16284
- EXPR_VAR@16283..16284
- NAME@16283..16284
- IDENT@16283..16284 "j"
- WHITESPACE@16284..16285 " "
- PLUS@16285..16286 "+"
- WHITESPACE@16286..16287 " "
- EXPR_NUMBER@16287..16288
- FLOAT@16287..16288 "1"
- COMMA@16288..16289 ","
- WHITESPACE@16289..16290 " "
- ARG@16290..16293
- EXPR_VAR@16290..16293
- NAME@16290..16293
- IDENT@16290..16293 "acc"
- R_PAREN@16293..16294 ")"
- WHITESPACE@16294..16295 " "
- TAILSTRICT_KW@16295..16305 "tailstrict"
- SEMI@16305..16306 ";"
- WHITESPACE@16306..16311 "\n "
- EXPR_APPLY@16311..16341
- EXPR_VAR@16311..16314
- NAME@16311..16314
- IDENT@16311..16314 "aux"
- ARGS_DESC@16314..16341
- L_PAREN@16314..16315 "("
- ARG@16315..16316
- EXPR_VAR@16315..16316
- NAME@16315..16316
- IDENT@16315..16316 "a"
- COMMA@16316..16317 ","
- WHITESPACE@16317..16318 " "
- ARG@16318..16319
- EXPR_VAR@16318..16319
- NAME@16318..16319
- IDENT@16318..16319 "b"
- COMMA@16319..16320 ","
- WHITESPACE@16320..16321 " "
- ARG@16321..16322
- EXPR_NUMBER@16321..16322
- FLOAT@16321..16322 "0"
- COMMA@16322..16323 ","
- WHITESPACE@16323..16324 " "
- ARG@16324..16325
- EXPR_NUMBER@16324..16325
- FLOAT@16324..16325 "0"
- COMMA@16325..16326 ","
- WHITESPACE@16326..16327 " "
- ARG@16327..16329
- EXPR_ARRAY@16327..16329
- L_BRACK@16327..16328 "["
- R_BRACK@16328..16329 "]"
- R_PAREN@16329..16330 ")"
- WHITESPACE@16330..16331 " "
- TAILSTRICT_KW@16331..16341 "tailstrict"
- COMMA@16341..16342 ","
- WHITESPACE@16342..16346 "\n\n "
- MEMBER_FIELD@16346..17134
- FIELD_METHOD@16346..17134
- FIELD_NAME_FIXED@16346..16356
- NAME@16346..16356
- IDENT@16346..16356 "mergePatch"
- PARAMS_DESC@16356..16371
- L_PAREN@16356..16357 "("
- PARAM@16357..16363
- DESTRUCT_FULL@16357..16363
- NAME@16357..16363
- IDENT@16357..16363 "target"
- COMMA@16363..16364 ","
- WHITESPACE@16364..16365 " "
- PARAM@16365..16370
- DESTRUCT_FULL@16365..16370
- NAME@16365..16370
- IDENT@16365..16370 "patch"
- R_PAREN@16370..16371 ")"
- COLONCOLON@16371..16373 "::"
- WHITESPACE@16373..16378 "\n "
- EXPR_IF_THEN_ELSE@16378..17134
- IF_KW@16378..16380 "if"
- WHITESPACE@16380..16381 " "
- EXPR_APPLY@16381..16400
- EXPR_INDEX@16381..16393
- EXPR_VAR@16381..16384
- NAME@16381..16384
- IDENT@16381..16384 "std"
- DOT@16384..16385 "."
- NAME@16385..16393
- IDENT@16385..16393 "isObject"
- ARGS_DESC@16393..16400
- L_PAREN@16393..16394 "("
- ARG@16394..16399
- EXPR_VAR@16394..16399
- NAME@16394..16399
- IDENT@16394..16399 "patch"
- R_PAREN@16399..16400 ")"
- WHITESPACE@16400..16401 " "
- THEN_KW@16401..16405 "then"
- WHITESPACE@16405..16412 "\n "
- TRUE_EXPR@16412..17113
- EXPR_LOCAL@16412..17113
- LOCAL_KW@16412..16417 "local"
- WHITESPACE@16417..16418 " "
- BIND_DESTRUCT@16418..16485
- DESTRUCT_FULL@16418..16431
- NAME@16418..16431
- IDENT@16418..16431 "target_object"
- WHITESPACE@16431..16432 " "
- ASSIGN@16432..16433 "="
- WHITESPACE@16433..16442 "\n "
- EXPR_IF_THEN_ELSE@16442..16485
- IF_KW@16442..16444 "if"
- WHITESPACE@16444..16445 " "
- EXPR_APPLY@16445..16465
- EXPR_INDEX@16445..16457
- EXPR_VAR@16445..16448
- NAME@16445..16448
- IDENT@16445..16448 "std"
- DOT@16448..16449 "."
- NAME@16449..16457
- IDENT@16449..16457 "isObject"
- ARGS_DESC@16457..16465
- L_PAREN@16457..16458 "("
- ARG@16458..16464
- EXPR_VAR@16458..16464
- NAME@16458..16464
- IDENT@16458..16464 "target"
- R_PAREN@16464..16465 ")"
- WHITESPACE@16465..16466 " "
- THEN_KW@16466..16470 "then"
- WHITESPACE@16470..16471 " "
- TRUE_EXPR@16471..16477
- EXPR_VAR@16471..16477
- NAME@16471..16477
- IDENT@16471..16477 "target"
- WHITESPACE@16477..16478 " "
- ELSE_KW@16478..16482 "else"
- WHITESPACE@16482..16483 " "
- FALSE_EXPR@16483..16485
- EXPR_OBJECT@16483..16485
- OBJ_BODY_MEMBER_LIST@16483..16485
- L_BRACE@16483..16484 "{"
- R_BRACE@16484..16485 "}"
- SEMI@16485..16486 ";"
- WHITESPACE@16486..16494 "\n\n "
- EXPR_LOCAL@16494..17113
- LOCAL_KW@16494..16499 "local"
- WHITESPACE@16499..16500 " "
- BIND_DESTRUCT@16500..16599
- DESTRUCT_FULL@16500..16513
- NAME@16500..16513
- IDENT@16500..16513 "target_fields"
- WHITESPACE@16513..16514 " "
- ASSIGN@16514..16515 "="
- WHITESPACE@16515..16524 "\n "
- EXPR_IF_THEN_ELSE@16524..16599
- IF_KW@16524..16526 "if"
- WHITESPACE@16526..16527 " "
- EXPR_APPLY@16527..16554
- EXPR_INDEX@16527..16539
- EXPR_VAR@16527..16530
- NAME@16527..16530
- IDENT@16527..16530 "std"
- DOT@16530..16531 "."
- NAME@16531..16539
- IDENT@16531..16539 "isObject"
- ARGS_DESC@16539..16554
- L_PAREN@16539..16540 "("
- ARG@16540..16553
- EXPR_VAR@16540..16553
- NAME@16540..16553
- IDENT@16540..16553 "target_object"
- R_PAREN@16553..16554 ")"
- WHITESPACE@16554..16555 " "
- THEN_KW@16555..16559 "then"
- WHITESPACE@16559..16560 " "
- TRUE_EXPR@16560..16591
- EXPR_APPLY@16560..16591
- EXPR_INDEX@16560..16576
- EXPR_VAR@16560..16563
- NAME@16560..16563
- IDENT@16560..16563 "std"
- DOT@16563..16564 "."
- NAME@16564..16576
- IDENT@16564..16576 "objectFields"
- ARGS_DESC@16576..16591
- L_PAREN@16576..16577 "("
- ARG@16577..16590
- EXPR_VAR@16577..16590
- NAME@16577..16590
- IDENT@16577..16590 "target_object"
- R_PAREN@16590..16591 ")"
- WHITESPACE@16591..16592 " "
- ELSE_KW@16592..16596 "else"
- WHITESPACE@16596..16597 " "
- FALSE_EXPR@16597..16599
- EXPR_ARRAY@16597..16599
- L_BRACK@16597..16598 "["
- R_BRACK@16598..16599 "]"
- SEMI@16599..16600 ";"
- WHITESPACE@16600..16608 "\n\n "
- EXPR_LOCAL@16608..17113
- LOCAL_KW@16608..16613 "local"
- WHITESPACE@16613..16614 " "
- BIND_DESTRUCT@16614..16684
- DESTRUCT_FULL@16614..16625
- NAME@16614..16625
- IDENT@16614..16625 "null_fields"
- WHITESPACE@16625..16626 " "
- ASSIGN@16626..16627 "="
- WHITESPACE@16627..16628 " "
- EXPR_ARRAY_COMP@16628..16684
- L_BRACK@16628..16629 "["
- EXPR_VAR@16629..16630
- NAME@16629..16630
- IDENT@16629..16630 "k"
- WHITESPACE@16630..16631 " "
- FOR_SPEC@16631..16663
- FOR_KW@16631..16634 "for"
- WHITESPACE@16634..16635 " "
- NAME@16635..16636
- IDENT@16635..16636 "k"
- WHITESPACE@16636..16637 " "
- IN_KW@16637..16639 "in"
- WHITESPACE@16639..16640 " "
- EXPR_APPLY@16640..16663
- EXPR_INDEX@16640..16656
- EXPR_VAR@16640..16643
- NAME@16640..16643
- IDENT@16640..16643 "std"
- DOT@16643..16644 "."
- NAME@16644..16656
- IDENT@16644..16656 "objectFields"
- ARGS_DESC@16656..16663
- L_PAREN@16656..16657 "("
- ARG@16657..16662
- EXPR_VAR@16657..16662
- NAME@16657..16662
- IDENT@16657..16662 "patch"
- R_PAREN@16662..16663 ")"
- WHITESPACE@16663..16664 " "
- IF_SPEC@16664..16683
- IF_KW@16664..16666 "if"
- WHITESPACE@16666..16667 " "
- EXPR_BINARY@16667..16683
- LHS_EXPR@16667..16675
- EXPR_INDEX_EXPR@16667..16675
- LHS_EXPR@16667..16672
- EXPR_VAR@16667..16672
- NAME@16667..16672
- IDENT@16667..16672 "patch"
- L_BRACK@16672..16673 "["
- EXPR_VAR@16673..16674
- NAME@16673..16674
- IDENT@16673..16674 "k"
- R_BRACK@16674..16675 "]"
- WHITESPACE@16675..16676 " "
- EQ@16676..16678 "=="
- WHITESPACE@16678..16679 " "
- EXPR_LITERAL@16679..16683
- NULL_KW@16679..16683 "null"
- R_BRACK@16683..16684 "]"
- SEMI@16684..16685 ";"
- WHITESPACE@16685..16692 "\n "
- EXPR_LOCAL@16692..17113
- LOCAL_KW@16692..16697 "local"
- WHITESPACE@16697..16698 " "
- BIND_DESTRUCT@16698..16764
- DESTRUCT_FULL@16698..16709
- NAME@16698..16709
- IDENT@16698..16709 "both_fields"
- WHITESPACE@16709..16710 " "
- ASSIGN@16710..16711 "="
- WHITESPACE@16711..16712 " "
- EXPR_APPLY@16712..16764
- EXPR_INDEX@16712..16724
- EXPR_VAR@16712..16715
- NAME@16712..16715
- IDENT@16712..16715 "std"
- DOT@16715..16716 "."
- NAME@16716..16724
- IDENT@16716..16724 "setUnion"
- ARGS_DESC@16724..16764
- L_PAREN@16724..16725 "("
- ARG@16725..16738
- EXPR_VAR@16725..16738
- NAME@16725..16738
- IDENT@16725..16738 "target_fields"
- COMMA@16738..16739 ","
- WHITESPACE@16739..16740 " "
- ARG@16740..16763
- EXPR_APPLY@16740..16763
- EXPR_INDEX@16740..16756
- EXPR_VAR@16740..16743
- NAME@16740..16743
- IDENT@16740..16743 "std"
- DOT@16743..16744 "."
- NAME@16744..16756
- IDENT@16744..16756 "objectFields"
- ARGS_DESC@16756..16763
- L_PAREN@16756..16757 "("
- ARG@16757..16762
- EXPR_VAR@16757..16762
- NAME@16757..16762
- IDENT@16757..16762 "patch"
- R_PAREN@16762..16763 ")"
- R_PAREN@16763..16764 ")"
- SEMI@16764..16765 ";"
- WHITESPACE@16765..16773 "\n\n "
- EXPR_OBJECT@16773..17113
- OBJ_BODY_MEMBER_LIST@16773..17113
- L_BRACE@16773..16774 "{"
- WHITESPACE@16774..16783 "\n "
- MEMBER_FIELD@16783..17105
- FIELD_NORMAL@16783..17050
- FIELD_NAME_DYNAMIC@16783..16786
- L_BRACK@16783..16784 "["
- EXPR_VAR@16784..16785
- NAME@16784..16785
- IDENT@16784..16785 "k"
- R_BRACK@16785..16786 "]"
- COLON@16786..16787 ":"
- WHITESPACE@16787..16798 "\n "
- EXPR_IF_THEN_ELSE@16798..17050
- IF_KW@16798..16800 "if"
- WHITESPACE@16800..16801 " "
- EXPR_UNARY@16801..16825
- NOT@16801..16802 "!"
- EXPR_APPLY@16802..16825
- EXPR_INDEX@16802..16815
- EXPR_VAR@16802..16805
- NAME@16802..16805
- IDENT@16802..16805 "std"
- DOT@16805..16806 "."
- NAME@16806..16815
- IDENT@16806..16815 "objectHas"
- ARGS_DESC@16815..16825
- L_PAREN@16815..16816 "("
- ARG@16816..16821
- EXPR_VAR@16816..16821
- NAME@16816..16821
- IDENT@16816..16821 "patch"
- COMMA@16821..16822 ","
- WHITESPACE@16822..16823 " "
- ARG@16823..16824
- EXPR_VAR@16823..16824
- NAME@16823..16824
- IDENT@16823..16824 "k"
- R_PAREN@16824..16825 ")"
- WHITESPACE@16825..16826 " "
- THEN_KW@16826..16830 "then"
- WHITESPACE@16830..16843 "\n "
- TRUE_EXPR@16843..16859
- EXPR_INDEX_EXPR@16843..16859
- LHS_EXPR@16843..16856
- EXPR_VAR@16843..16856
- NAME@16843..16856
- IDENT@16843..16856 "target_object"
- L_BRACK@16856..16857 "["
- EXPR_VAR@16857..16858
- NAME@16857..16858
- IDENT@16857..16858 "k"
- R_BRACK@16858..16859 "]"
- WHITESPACE@16859..16870 "\n "
- ELSE_KW@16870..16874 "else"
- WHITESPACE@16874..16875 " "
- FALSE_EXPR@16875..17050
- EXPR_IF_THEN_ELSE@16875..17050
- IF_KW@16875..16877 "if"
- WHITESPACE@16877..16878 " "
- EXPR_UNARY@16878..16910
- NOT@16878..16879 "!"
- EXPR_APPLY@16879..16910
- EXPR_INDEX@16879..16892
- EXPR_VAR@16879..16882
- NAME@16879..16882
- IDENT@16879..16882 "std"
- DOT@16882..16883 "."
- NAME@16883..16892
- IDENT@16883..16892 "objectHas"
- ARGS_DESC@16892..16910
- L_PAREN@16892..16893 "("
- ARG@16893..16906
- EXPR_VAR@16893..16906
- NAME@16893..16906
- IDENT@16893..16906 "target_object"
- COMMA@16906..16907 ","
- WHITESPACE@16907..16908 " "
- ARG@16908..16909
- EXPR_VAR@16908..16909
- NAME@16908..16909
- IDENT@16908..16909 "k"
- R_PAREN@16909..16910 ")"
- WHITESPACE@16910..16911 " "
- THEN_KW@16911..16915 "then"
- WHITESPACE@16915..16928 "\n "
- TRUE_EXPR@16928..16969
- EXPR_APPLY@16928..16969
- EXPR_INDEX@16928..16942
- EXPR_VAR@16928..16931
- NAME@16928..16931
- IDENT@16928..16931 "std"
- DOT@16931..16932 "."
- NAME@16932..16942
- IDENT@16932..16942 "mergePatch"
- ARGS_DESC@16942..16969
- L_PAREN@16942..16943 "("
- ARG@16943..16947
- EXPR_LITERAL@16943..16947
- NULL_KW@16943..16947 "null"
- COMMA@16947..16948 ","
- WHITESPACE@16948..16949 " "
- ARG@16949..16957
- EXPR_INDEX_EXPR@16949..16957
- LHS_EXPR@16949..16954
- EXPR_VAR@16949..16954
- NAME@16949..16954
- IDENT@16949..16954 "patch"
- L_BRACK@16954..16955 "["
- EXPR_VAR@16955..16956
- NAME@16955..16956
- IDENT@16955..16956 "k"
- R_BRACK@16956..16957 "]"
- R_PAREN@16957..16958 ")"
- WHITESPACE@16958..16959 " "
- TAILSTRICT_KW@16959..16969 "tailstrict"
- WHITESPACE@16969..16980 "\n "
- ELSE_KW@16980..16984 "else"
- WHITESPACE@16984..16997 "\n "
- FALSE_EXPR@16997..17050
- EXPR_APPLY@16997..17050
- EXPR_INDEX@16997..17011
- EXPR_VAR@16997..17000
- NAME@16997..17000
- IDENT@16997..17000 "std"
- DOT@17000..17001 "."
- NAME@17001..17011
- IDENT@17001..17011 "mergePatch"
- ARGS_DESC@17011..17050
- L_PAREN@17011..17012 "("
- ARG@17012..17028
- EXPR_INDEX_EXPR@17012..17028
- LHS_EXPR@17012..17025
- EXPR_VAR@17012..17025
- NAME@17012..17025
- IDENT@17012..17025 "target_object"
- L_BRACK@17025..17026 "["
- EXPR_VAR@17026..17027
- NAME@17026..17027
- IDENT@17026..17027 "k"
- R_BRACK@17027..17028 "]"
- COMMA@17028..17029 ","
- WHITESPACE@17029..17030 " "
- ARG@17030..17038
- EXPR_INDEX_EXPR@17030..17038
- LHS_EXPR@17030..17035
- EXPR_VAR@17030..17035
- NAME@17030..17035
- IDENT@17030..17035 "patch"
- L_BRACK@17035..17036 "["
- EXPR_VAR@17036..17037
- NAME@17036..17037
- IDENT@17036..17037 "k"
- R_BRACK@17037..17038 "]"
- R_PAREN@17038..17039 ")"
- WHITESPACE@17039..17040 " "
- TAILSTRICT_KW@17040..17050 "tailstrict"
- WHITESPACE@17050..17059 "\n "
- FOR_SPEC@17059..17105
- FOR_KW@17059..17062 "for"
- WHITESPACE@17062..17063 " "
- NAME@17063..17064
- IDENT@17063..17064 "k"
- WHITESPACE@17064..17065 " "
- IN_KW@17065..17067 "in"
- WHITESPACE@17067..17068 " "
- EXPR_APPLY@17068..17105
- EXPR_INDEX@17068..17079
- EXPR_VAR@17068..17071
- NAME@17068..17071
- IDENT@17068..17071 "std"
- DOT@17071..17072 "."
- NAME@17072..17079
- IDENT@17072..17079 "setDiff"
- ARGS_DESC@17079..17105
- L_PAREN@17079..17080 "("
- ARG@17080..17091
- EXPR_VAR@17080..17091
- NAME@17080..17091
- IDENT@17080..17091 "both_fields"
- COMMA@17091..17092 ","
- WHITESPACE@17092..17093 " "
- ARG@17093..17104
- EXPR_VAR@17093..17104
- NAME@17093..17104
- IDENT@17093..17104 "null_fields"
- R_PAREN@17104..17105 ")"
- WHITESPACE@17105..17112 "\n "
- R_BRACE@17112..17113 "}"
- WHITESPACE@17113..17118 "\n "
- ELSE_KW@17118..17122 "else"
- WHITESPACE@17122..17129 "\n "
- FALSE_EXPR@17129..17134
- EXPR_VAR@17129..17134
- NAME@17129..17134
- IDENT@17129..17134 "patch"
- COMMA@17134..17135 ","
- WHITESPACE@17135..17139 "\n\n "
- MEMBER_FIELD@17139..17249
- FIELD_METHOD@17139..17249
- FIELD_NAME_FIXED@17139..17142
- NAME@17139..17142
- IDENT@17139..17142 "get"
- PARAMS_DESC@17142..17183
- L_PAREN@17142..17143 "("
- PARAM@17143..17144
- DESTRUCT_FULL@17143..17144
- NAME@17143..17144
- IDENT@17143..17144 "o"
- COMMA@17144..17145 ","
- WHITESPACE@17145..17146 " "
- PARAM@17146..17147
- DESTRUCT_FULL@17146..17147
- NAME@17146..17147
- IDENT@17146..17147 "f"
- COMMA@17147..17148 ","
- WHITESPACE@17148..17149 " "
- PARAM@17149..17163
- DESTRUCT_FULL@17149..17156
- NAME@17149..17156
- IDENT@17149..17156 "default"
- WHITESPACE@17156..17157 " "
- ASSIGN@17157..17158 "="
- WHITESPACE@17158..17159 " "
- EXPR_LITERAL@17159..17163
- NULL_KW@17159..17163 "null"
- COMMA@17163..17164 ","
- WHITESPACE@17164..17165 " "
- PARAM@17165..17182
- DESTRUCT_FULL@17165..17175
- NAME@17165..17175
- IDENT@17165..17175 "inc_hidden"
- WHITESPACE@17175..17176 " "
- ASSIGN@17176..17177 "="
- WHITESPACE@17177..17178 " "
- EXPR_LITERAL@17178..17182
- TRUE_KW@17178..17182 "true"
- R_PAREN@17182..17183 ")"
- COLONCOLON@17183..17185 "::"
- WHITESPACE@17185..17190 "\n "
- EXPR_IF_THEN_ELSE@17190..17249
- IF_KW@17190..17192 "if"
- WHITESPACE@17192..17193 " "
- EXPR_APPLY@17193..17226
- EXPR_INDEX@17193..17208
- EXPR_VAR@17193..17196
- NAME@17193..17196
- IDENT@17193..17196 "std"
- DOT@17196..17197 "."
- NAME@17197..17208
- IDENT@17197..17208 "objectHasEx"
- ARGS_DESC@17208..17226
- L_PAREN@17208..17209 "("
- ARG@17209..17210
- EXPR_VAR@17209..17210
- NAME@17209..17210
- IDENT@17209..17210 "o"
- COMMA@17210..17211 ","
- WHITESPACE@17211..17212 " "
- ARG@17212..17213
- EXPR_VAR@17212..17213
- NAME@17212..17213
- IDENT@17212..17213 "f"
- COMMA@17213..17214 ","
- WHITESPACE@17214..17215 " "
- ARG@17215..17225
- EXPR_VAR@17215..17225
- NAME@17215..17225
- IDENT@17215..17225 "inc_hidden"
- R_PAREN@17225..17226 ")"
- WHITESPACE@17226..17227 " "
- THEN_KW@17227..17231 "then"
- WHITESPACE@17231..17232 " "
- TRUE_EXPR@17232..17236
- EXPR_INDEX_EXPR@17232..17236
- LHS_EXPR@17232..17233
- EXPR_VAR@17232..17233
- NAME@17232..17233
- IDENT@17232..17233 "o"
- L_BRACK@17233..17234 "["
- EXPR_VAR@17234..17235
- NAME@17234..17235
- IDENT@17234..17235 "f"
- R_BRACK@17235..17236 "]"
- WHITESPACE@17236..17237 " "
- ELSE_KW@17237..17241 "else"
- WHITESPACE@17241..17242 " "
- FALSE_EXPR@17242..17249
- EXPR_VAR@17242..17249
- NAME@17242..17249
- IDENT@17242..17249 "default"
- COMMA@17249..17250 ","
- WHITESPACE@17250..17254 "\n\n "
- MEMBER_FIELD@17254..17304
- FIELD_METHOD@17254..17304
- FIELD_NAME_FIXED@17254..17266
- NAME@17254..17266
- IDENT@17254..17266 "objectFields"
- PARAMS_DESC@17266..17269
- L_PAREN@17266..17267 "("
- PARAM@17267..17268
- DESTRUCT_FULL@17267..17268
- NAME@17267..17268
- IDENT@17267..17268 "o"
- R_PAREN@17268..17269 ")"
- COLONCOLON@17269..17271 "::"
- WHITESPACE@17271..17276 "\n "
- EXPR_APPLY@17276..17304
- EXPR_INDEX@17276..17294
- EXPR_VAR@17276..17279
- NAME@17276..17279
- IDENT@17276..17279 "std"
- DOT@17279..17280 "."
- NAME@17280..17294
- IDENT@17280..17294 "objectFieldsEx"
- ARGS_DESC@17294..17304
- L_PAREN@17294..17295 "("
- ARG@17295..17296
- EXPR_VAR@17295..17296
- NAME@17295..17296
- IDENT@17295..17296 "o"
- COMMA@17296..17297 ","
- WHITESPACE@17297..17298 " "
- ARG@17298..17303
- EXPR_LITERAL@17298..17303
- FALSE_KW@17298..17303 "false"
- R_PAREN@17303..17304 ")"
- COMMA@17304..17305 ","
- WHITESPACE@17305..17309 "\n\n "
- MEMBER_FIELD@17309..17361
- FIELD_METHOD@17309..17361
- FIELD_NAME_FIXED@17309..17324
- NAME@17309..17324
- IDENT@17309..17324 "objectFieldsAll"
- PARAMS_DESC@17324..17327
- L_PAREN@17324..17325 "("
- PARAM@17325..17326
- DESTRUCT_FULL@17325..17326
- NAME@17325..17326
- IDENT@17325..17326 "o"
- R_PAREN@17326..17327 ")"
- COLONCOLON@17327..17329 "::"
- WHITESPACE@17329..17334 "\n "
- EXPR_APPLY@17334..17361
- EXPR_INDEX@17334..17352
- EXPR_VAR@17334..17337
- NAME@17334..17337
- IDENT@17334..17337 "std"
- DOT@17337..17338 "."
- NAME@17338..17352
- IDENT@17338..17352 "objectFieldsEx"
- ARGS_DESC@17352..17361
- L_PAREN@17352..17353 "("
- ARG@17353..17354
- EXPR_VAR@17353..17354
- NAME@17353..17354
- IDENT@17353..17354 "o"
- COMMA@17354..17355 ","
- WHITESPACE@17355..17356 " "
- ARG@17356..17360
- EXPR_LITERAL@17356..17360
- TRUE_KW@17356..17360 "true"
- R_PAREN@17360..17361 ")"
- COMMA@17361..17362 ","
- WHITESPACE@17362..17366 "\n\n "
- MEMBER_FIELD@17366..17416
- FIELD_METHOD@17366..17416
- FIELD_NAME_FIXED@17366..17375
- NAME@17366..17375
- IDENT@17366..17375 "objectHas"
- PARAMS_DESC@17375..17381
- L_PAREN@17375..17376 "("
- PARAM@17376..17377
- DESTRUCT_FULL@17376..17377
- NAME@17376..17377
- IDENT@17376..17377 "o"
- COMMA@17377..17378 ","
- WHITESPACE@17378..17379 " "
- PARAM@17379..17380
- DESTRUCT_FULL@17379..17380
- NAME@17379..17380
- IDENT@17379..17380 "f"
- R_PAREN@17380..17381 ")"
- COLONCOLON@17381..17383 "::"
- WHITESPACE@17383..17388 "\n "
- EXPR_APPLY@17388..17416
- EXPR_INDEX@17388..17403
- EXPR_VAR@17388..17391
- NAME@17388..17391
- IDENT@17388..17391 "std"
- DOT@17391..17392 "."
- NAME@17392..17403
- IDENT@17392..17403 "objectHasEx"
- ARGS_DESC@17403..17416
- L_PAREN@17403..17404 "("
- ARG@17404..17405
- EXPR_VAR@17404..17405
- NAME@17404..17405
- IDENT@17404..17405 "o"
- COMMA@17405..17406 ","
- WHITESPACE@17406..17407 " "
- ARG@17407..17408
- EXPR_VAR@17407..17408
- NAME@17407..17408
- IDENT@17407..17408 "f"
- COMMA@17408..17409 ","
- WHITESPACE@17409..17410 " "
- ARG@17410..17415
- EXPR_LITERAL@17410..17415
- FALSE_KW@17410..17415 "false"
- R_PAREN@17415..17416 ")"
- COMMA@17416..17417 ","
- WHITESPACE@17417..17421 "\n\n "
- MEMBER_FIELD@17421..17473
- FIELD_METHOD@17421..17473
- FIELD_NAME_FIXED@17421..17433
- NAME@17421..17433
- IDENT@17421..17433 "objectHasAll"
- PARAMS_DESC@17433..17439
- L_PAREN@17433..17434 "("
- PARAM@17434..17435
- DESTRUCT_FULL@17434..17435
- NAME@17434..17435
- IDENT@17434..17435 "o"
- COMMA@17435..17436 ","
- WHITESPACE@17436..17437 " "
- PARAM@17437..17438
- DESTRUCT_FULL@17437..17438
- NAME@17437..17438
- IDENT@17437..17438 "f"
- R_PAREN@17438..17439 ")"
- COLONCOLON@17439..17441 "::"
- WHITESPACE@17441..17446 "\n "
- EXPR_APPLY@17446..17473
- EXPR_INDEX@17446..17461
- EXPR_VAR@17446..17449
- NAME@17446..17449
- IDENT@17446..17449 "std"
- DOT@17449..17450 "."
- NAME@17450..17461
- IDENT@17450..17461 "objectHasEx"
- ARGS_DESC@17461..17473
- L_PAREN@17461..17462 "("
- ARG@17462..17463
- EXPR_VAR@17462..17463
- NAME@17462..17463
- IDENT@17462..17463 "o"
- COMMA@17463..17464 ","
- WHITESPACE@17464..17465 " "
- ARG@17465..17466
- EXPR_VAR@17465..17466
- NAME@17465..17466
- IDENT@17465..17466 "f"
- COMMA@17466..17467 ","
- WHITESPACE@17467..17468 " "
- ARG@17468..17472
- EXPR_LITERAL@17468..17472
- TRUE_KW@17468..17472 "true"
- R_PAREN@17472..17473 ")"
- COMMA@17473..17474 ","
- WHITESPACE@17474..17478 "\n\n "
- MEMBER_FIELD@17478..17535
- FIELD_METHOD@17478..17535
- FIELD_NAME_FIXED@17478..17490
- NAME@17478..17490
- IDENT@17478..17490 "objectValues"
- PARAMS_DESC@17490..17493
- L_PAREN@17490..17491 "("
- PARAM@17491..17492
- DESTRUCT_FULL@17491..17492
- NAME@17491..17492
- IDENT@17491..17492 "o"
- R_PAREN@17492..17493 ")"
- COLONCOLON@17493..17495 "::"
- WHITESPACE@17495..17500 "\n "
- EXPR_ARRAY_COMP@17500..17535
- L_BRACK@17500..17501 "["
- EXPR_INDEX_EXPR@17501..17505
- LHS_EXPR@17501..17502
- EXPR_VAR@17501..17502
- NAME@17501..17502
- IDENT@17501..17502 "o"
- L_BRACK@17502..17503 "["
- EXPR_VAR@17503..17504
- NAME@17503..17504
- IDENT@17503..17504 "k"
- R_BRACK@17504..17505 "]"
- WHITESPACE@17505..17506 " "
- FOR_SPEC@17506..17534
- FOR_KW@17506..17509 "for"
- WHITESPACE@17509..17510 " "
- NAME@17510..17511
- IDENT@17510..17511 "k"
- WHITESPACE@17511..17512 " "
- IN_KW@17512..17514 "in"
- WHITESPACE@17514..17515 " "
- EXPR_APPLY@17515..17534
- EXPR_INDEX@17515..17531
- EXPR_VAR@17515..17518
- NAME@17515..17518
- IDENT@17515..17518 "std"
- DOT@17518..17519 "."
- NAME@17519..17531
- IDENT@17519..17531 "objectFields"
- ARGS_DESC@17531..17534
- L_PAREN@17531..17532 "("
- ARG@17532..17533
- EXPR_VAR@17532..17533
- NAME@17532..17533
- IDENT@17532..17533 "o"
- R_PAREN@17533..17534 ")"
- R_BRACK@17534..17535 "]"
- COMMA@17535..17536 ","
- WHITESPACE@17536..17540 "\n\n "
- MEMBER_FIELD@17540..17603
- FIELD_METHOD@17540..17603
- FIELD_NAME_FIXED@17540..17555
- NAME@17540..17555
- IDENT@17540..17555 "objectValuesAll"
- PARAMS_DESC@17555..17558
- L_PAREN@17555..17556 "("
- PARAM@17556..17557
- DESTRUCT_FULL@17556..17557
- NAME@17556..17557
- IDENT@17556..17557 "o"
- R_PAREN@17557..17558 ")"
- COLONCOLON@17558..17560 "::"
- WHITESPACE@17560..17565 "\n "
- EXPR_ARRAY_COMP@17565..17603
- L_BRACK@17565..17566 "["
- EXPR_INDEX_EXPR@17566..17570
- LHS_EXPR@17566..17567
- EXPR_VAR@17566..17567
- NAME@17566..17567
- IDENT@17566..17567 "o"
- L_BRACK@17567..17568 "["
- EXPR_VAR@17568..17569
- NAME@17568..17569
- IDENT@17568..17569 "k"
- R_BRACK@17569..17570 "]"
- WHITESPACE@17570..17571 " "
- FOR_SPEC@17571..17602
- FOR_KW@17571..17574 "for"
- WHITESPACE@17574..17575 " "
- NAME@17575..17576
- IDENT@17575..17576 "k"
- WHITESPACE@17576..17577 " "
- IN_KW@17577..17579 "in"
- WHITESPACE@17579..17580 " "
- EXPR_APPLY@17580..17602
- EXPR_INDEX@17580..17599
- EXPR_VAR@17580..17583
- NAME@17580..17583
- IDENT@17580..17583 "std"
- DOT@17583..17584 "."
- NAME@17584..17599
- IDENT@17584..17599 "objectFieldsAll"
- ARGS_DESC@17599..17602
- L_PAREN@17599..17600 "("
- ARG@17600..17601
- EXPR_VAR@17600..17601
- NAME@17600..17601
- IDENT@17600..17601 "o"
- R_PAREN@17601..17602 ")"
- R_BRACK@17602..17603 "]"
- COMMA@17603..17604 ","
- WHITESPACE@17604..17608 "\n\n "
- MEMBER_FIELD@17608..17635
- FIELD_NORMAL@17608..17635
- FIELD_NAME_FIXED@17608..17614
- NAME@17608..17614
- IDENT@17608..17614 "equals"
- COLONCOLON@17614..17616 "::"
- WHITESPACE@17616..17617 " "
- EXPR_INTRINSIC@17617..17635
- INTRINSIC@17617..17627 "$intrinsic"
- L_PAREN@17627..17628 "("
- NAME@17628..17634
- IDENT@17628..17634 "equals"
- R_PAREN@17634..17635 ")"
- COMMA@17635..17636 ","
- WHITESPACE@17636..17640 "\n\n "
- MEMBER_FIELD@17640..17774
- FIELD_METHOD@17640..17774
- FIELD_NAME_FIXED@17640..17651
- NAME@17640..17651
- IDENT@17640..17651 "resolvePath"
- PARAMS_DESC@17651..17657
- L_PAREN@17651..17652 "("
- PARAM@17652..17653
- DESTRUCT_FULL@17652..17653
- NAME@17652..17653
- IDENT@17652..17653 "f"
- COMMA@17653..17654 ","
- WHITESPACE@17654..17655 " "
- PARAM@17655..17656
- DESTRUCT_FULL@17655..17656
- NAME@17655..17656
- IDENT@17655..17656 "r"
- R_PAREN@17656..17657 ")"
- COLONCOLON@17657..17659 "::"
- WHITESPACE@17659..17664 "\n "
- EXPR_LOCAL@17664..17774
- LOCAL_KW@17664..17669 "local"
- WHITESPACE@17669..17670 " "
- BIND_DESTRUCT@17670..17693
- DESTRUCT_FULL@17670..17673
- NAME@17670..17673
- IDENT@17670..17673 "arr"
- WHITESPACE@17673..17674 " "
- ASSIGN@17674..17675 "="
- WHITESPACE@17675..17676 " "
- EXPR_APPLY@17676..17693
- EXPR_INDEX@17676..17685
- EXPR_VAR@17676..17679
- NAME@17676..17679
- IDENT@17676..17679 "std"
- DOT@17679..17680 "."
- NAME@17680..17685
- IDENT@17680..17685 "split"
- ARGS_DESC@17685..17693
- L_PAREN@17685..17686 "("
- ARG@17686..17687
- EXPR_VAR@17686..17687
- NAME@17686..17687
- IDENT@17686..17687 "f"
- COMMA@17687..17688 ","
- WHITESPACE@17688..17689 " "
- ARG@17689..17692
- EXPR_STRING@17689..17692
- STRING_SINGLE@17689..17692 "'/'"
- R_PAREN@17692..17693 ")"
- SEMI@17693..17694 ";"
- WHITESPACE@17694..17699 "\n "
- EXPR_APPLY@17699..17774
- EXPR_INDEX@17699..17707
- EXPR_VAR@17699..17702
- NAME@17699..17702
- IDENT@17699..17702 "std"
- DOT@17702..17703 "."
- NAME@17703..17707
- IDENT@17703..17707 "join"
- ARGS_DESC@17707..17774
- L_PAREN@17707..17708 "("
- ARG@17708..17711
- EXPR_STRING@17708..17711
- STRING_SINGLE@17708..17711 "'/'"
- COMMA@17711..17712 ","
- WHITESPACE@17712..17713 " "
- ARG@17713..17773
- EXPR_BINARY@17713..17773
- LHS_EXPR@17713..17767
- EXPR_APPLY@17713..17767
- EXPR_INDEX@17713..17726
- EXPR_VAR@17713..17716
- NAME@17713..17716
- IDENT@17713..17716 "std"
- DOT@17716..17717 "."
- NAME@17717..17726
- IDENT@17717..17726 "makeArray"
- ARGS_DESC@17726..17767
- L_PAREN@17726..17727 "("
- ARG@17727..17746
- EXPR_BINARY@17727..17746
- LHS_EXPR@17727..17742
- EXPR_APPLY@17727..17742
- EXPR_INDEX@17727..17737
- EXPR_VAR@17727..17730
- NAME@17727..17730
- IDENT@17727..17730 "std"
- DOT@17730..17731 "."
- NAME@17731..17737
- IDENT@17731..17737 "length"
- ARGS_DESC@17737..17742
- L_PAREN@17737..17738 "("
- ARG@17738..17741
- EXPR_VAR@17738..17741
- NAME@17738..17741
- IDENT@17738..17741 "arr"
- R_PAREN@17741..17742 ")"
- WHITESPACE@17742..17743 " "
- MINUS@17743..17744 "-"
- WHITESPACE@17744..17745 " "
- EXPR_NUMBER@17745..17746
- FLOAT@17745..17746 "1"
- COMMA@17746..17747 ","
- WHITESPACE@17747..17748 " "
- ARG@17748..17766
- EXPR_FUNCTION@17748..17766
- FUNCTION_KW@17748..17756 "function"
- PARAMS_DESC@17756..17759
- L_PAREN@17756..17757 "("
- PARAM@17757..17758
- DESTRUCT_FULL@17757..17758
- NAME@17757..17758
- IDENT@17757..17758 "i"
- R_PAREN@17758..17759 ")"
- WHITESPACE@17759..17760 " "
- EXPR_INDEX_EXPR@17760..17766
- LHS_EXPR@17760..17763
- EXPR_VAR@17760..17763
- NAME@17760..17763
- IDENT@17760..17763 "arr"
- L_BRACK@17763..17764 "["
- EXPR_VAR@17764..17765
- NAME@17764..17765
- IDENT@17764..17765 "i"
- R_BRACK@17765..17766 "]"
- R_PAREN@17766..17767 ")"
- WHITESPACE@17767..17768 " "
- PLUS@17768..17769 "+"
- WHITESPACE@17769..17770 " "
- EXPR_ARRAY@17770..17773
- L_BRACK@17770..17771 "["
- EXPR_VAR@17771..17772
- NAME@17771..17772
- IDENT@17771..17772 "r"
- R_BRACK@17772..17773 "]"
- R_PAREN@17773..17774 ")"
- COMMA@17774..17775 ","
- WHITESPACE@17775..17779 "\n\n "
- MEMBER_FIELD@17779..18232
- FIELD_METHOD@17779..18232
- FIELD_NAME_FIXED@17779..17784
- NAME@17779..17784
- IDENT@17779..17784 "prune"
- PARAMS_DESC@17784..17787
- L_PAREN@17784..17785 "("
- PARAM@17785..17786
- DESTRUCT_FULL@17785..17786
- NAME@17785..17786
- IDENT@17785..17786 "a"
- R_PAREN@17786..17787 ")"
- COLONCOLON@17787..17789 "::"
- WHITESPACE@17789..17794 "\n "
- EXPR_LOCAL@17794..18232
- LOCAL_KW@17794..17799 "local"
- WHITESPACE@17799..17800 " "
- BIND_FUNCTION@17800..17997
- NAME@17800..17809
- IDENT@17800..17809 "isContent"
- PARAMS_DESC@17809..17812
- L_PAREN@17809..17810 "("
- PARAM@17810..17811
- DESTRUCT_FULL@17810..17811
- NAME@17810..17811
- IDENT@17810..17811 "b"
- R_PAREN@17811..17812 ")"
- WHITESPACE@17812..17813 " "
- ASSIGN@17813..17814 "="
- WHITESPACE@17814..17821 "\n "
- EXPR_IF_THEN_ELSE@17821..17997
- IF_KW@17821..17823 "if"
- WHITESPACE@17823..17824 " "
- EXPR_BINARY@17824..17833
- LHS_EXPR@17824..17825
- EXPR_VAR@17824..17825
- NAME@17824..17825
- IDENT@17824..17825 "b"
- WHITESPACE@17825..17826 " "
- EQ@17826..17828 "=="
- WHITESPACE@17828..17829 " "
- EXPR_LITERAL@17829..17833
- NULL_KW@17829..17833 "null"
- WHITESPACE@17833..17834 " "
- THEN_KW@17834..17838 "then"
- WHITESPACE@17838..17847 "\n "
- TRUE_EXPR@17847..17852
- EXPR_LITERAL@17847..17852
- FALSE_KW@17847..17852 "false"
- WHITESPACE@17852..17859 "\n "
- ELSE_KW@17859..17863 "else"
- WHITESPACE@17863..17864 " "
- FALSE_EXPR@17864..17997
- EXPR_IF_THEN_ELSE@17864..17997
- IF_KW@17864..17866 "if"
- WHITESPACE@17866..17867 " "
- EXPR_APPLY@17867..17881
- EXPR_INDEX@17867..17878
- EXPR_VAR@17867..17870
- NAME@17867..17870
- IDENT@17867..17870 "std"
- DOT@17870..17871 "."
- NAME@17871..17878
- IDENT@17871..17878 "isArray"
- ARGS_DESC@17878..17881
- L_PAREN@17878..17879 "("
- ARG@17879..17880
- EXPR_VAR@17879..17880
- NAME@17879..17880
- IDENT@17879..17880 "b"
- R_PAREN@17880..17881 ")"
- WHITESPACE@17881..17882 " "
- THEN_KW@17882..17886 "then"
- WHITESPACE@17886..17895 "\n "
- TRUE_EXPR@17895..17912
- EXPR_BINARY@17895..17912
- LHS_EXPR@17895..17908
- EXPR_APPLY@17895..17908
- EXPR_INDEX@17895..17905
- EXPR_VAR@17895..17898
- NAME@17895..17898
- IDENT@17895..17898 "std"
- DOT@17898..17899 "."
- NAME@17899..17905
- IDENT@17899..17905 "length"
- ARGS_DESC@17905..17908
- L_PAREN@17905..17906 "("
- ARG@17906..17907
- EXPR_VAR@17906..17907
- NAME@17906..17907
- IDENT@17906..17907 "b"
- R_PAREN@17907..17908 ")"
- WHITESPACE@17908..17909 " "
- GT@17909..17910 ">"
- WHITESPACE@17910..17911 " "
- EXPR_NUMBER@17911..17912
- FLOAT@17911..17912 "0"
- WHITESPACE@17912..17919 "\n "
- ELSE_KW@17919..17923 "else"
- WHITESPACE@17923..17924 " "
- FALSE_EXPR@17924..17997
- EXPR_IF_THEN_ELSE@17924..17997
- IF_KW@17924..17926 "if"
- WHITESPACE@17926..17927 " "
- EXPR_APPLY@17927..17942
- EXPR_INDEX@17927..17939
- EXPR_VAR@17927..17930
- NAME@17927..17930
- IDENT@17927..17930 "std"
- DOT@17930..17931 "."
- NAME@17931..17939
- IDENT@17931..17939 "isObject"
- ARGS_DESC@17939..17942
- L_PAREN@17939..17940 "("
- ARG@17940..17941
- EXPR_VAR@17940..17941
- NAME@17940..17941
- IDENT@17940..17941 "b"
- R_PAREN@17941..17942 ")"
- WHITESPACE@17942..17943 " "
- THEN_KW@17943..17947 "then"
- WHITESPACE@17947..17956 "\n "
- TRUE_EXPR@17956..17973
- EXPR_BINARY@17956..17973
- LHS_EXPR@17956..17969
- EXPR_APPLY@17956..17969
- EXPR_INDEX@17956..17966
- EXPR_VAR@17956..17959
- NAME@17956..17959
- IDENT@17956..17959 "std"
- DOT@17959..17960 "."
- NAME@17960..17966
- IDENT@17960..17966 "length"
- ARGS_DESC@17966..17969
- L_PAREN@17966..17967 "("
- ARG@17967..17968
- EXPR_VAR@17967..17968
- NAME@17967..17968
- IDENT@17967..17968 "b"
- R_PAREN@17968..17969 ")"
- WHITESPACE@17969..17970 " "
- GT@17970..17971 ">"
- WHITESPACE@17971..17972 " "
- EXPR_NUMBER@17972..17973
- FLOAT@17972..17973 "0"
- WHITESPACE@17973..17980 "\n "
- ELSE_KW@17980..17984 "else"
- WHITESPACE@17984..17993 "\n "
- FALSE_EXPR@17993..17997
- EXPR_LITERAL@17993..17997
- TRUE_KW@17993..17997 "true"
- SEMI@17997..17998 ";"
- WHITESPACE@17998..18003 "\n "
- EXPR_IF_THEN_ELSE@18003..18232
- IF_KW@18003..18005 "if"
- WHITESPACE@18005..18006 " "
- EXPR_APPLY@18006..18020
- EXPR_INDEX@18006..18017
- EXPR_VAR@18006..18009
- NAME@18006..18009
- IDENT@18006..18009 "std"
- DOT@18009..18010 "."
- NAME@18010..18017
- IDENT@18010..18017 "isArray"
- ARGS_DESC@18017..18020
- L_PAREN@18017..18018 "("
- ARG@18018..18019
- EXPR_VAR@18018..18019
- NAME@18018..18019
- IDENT@18018..18019 "a"
- R_PAREN@18019..18020 ")"
- WHITESPACE@18020..18021 " "
- THEN_KW@18021..18025 "then"
- WHITESPACE@18025..18032 "\n "
- TRUE_EXPR@18032..18082
- EXPR_ARRAY_COMP@18032..18082
- L_BRACK@18032..18033 "["
- EXPR_APPLY@18033..18045
- EXPR_INDEX@18033..18042
- EXPR_VAR@18033..18036
- NAME@18033..18036
- IDENT@18033..18036 "std"
- DOT@18036..18037 "."
- NAME@18037..18042
- IDENT@18037..18042 "prune"
- ARGS_DESC@18042..18045
- L_PAREN@18042..18043 "("
- ARG@18043..18044
- EXPR_VAR@18043..18044
- NAME@18043..18044
- IDENT@18043..18044 "x"
- R_PAREN@18044..18045 ")"
- WHITESPACE@18045..18046 " "
- FOR_SPEC@18046..18056
- FOR_KW@18046..18049 "for"
- WHITESPACE@18049..18050 " "
- NAME@18050..18051
- IDENT@18050..18051 "x"
- WHITESPACE@18051..18052 " "
- IN_KW@18052..18054 "in"
- WHITESPACE@18054..18055 " "
- EXPR_VAR@18055..18056
- NAME@18055..18056
- IDENT@18055..18056 "a"
- WHITESPACE@18056..18057 " "
- IF_SPEC@18057..18081
- IF_KW@18057..18059 "if"
- WHITESPACE@18059..18060 " "
- EXPR_APPLY@18060..18081
- EXPR_VAR@18060..18069
- NAME@18060..18069
- IDENT@18060..18069 "isContent"
- ARGS_DESC@18069..18081
- L_PAREN@18069..18070 "("
- ARG@18070..18080
- EXPR_APPLY@18070..18080
- EXPR_INDEX@18070..18077
- EXPR_LITERAL@18070..18071
- DOLLAR@18070..18071 "$"
- DOT@18071..18072 "."
- NAME@18072..18077
- IDENT@18072..18077 "prune"
- ARGS_DESC@18077..18080
- L_PAREN@18077..18078 "("
- ARG@18078..18079
- EXPR_VAR@18078..18079
- NAME@18078..18079
- IDENT@18078..18079 "x"
- R_PAREN@18079..18080 ")"
- R_PAREN@18080..18081 ")"
- R_BRACK@18081..18082 "]"
- WHITESPACE@18082..18087 "\n "
- ELSE_KW@18087..18091 "else"
- WHITESPACE@18091..18092 " "
- FALSE_EXPR@18092..18232
- EXPR_IF_THEN_ELSE@18092..18232
- IF_KW@18092..18094 "if"
- WHITESPACE@18094..18095 " "
- EXPR_APPLY@18095..18110
- EXPR_INDEX@18095..18107
- EXPR_VAR@18095..18098
- NAME@18095..18098
- IDENT@18095..18098 "std"
- DOT@18098..18099 "."
- NAME@18099..18107
- IDENT@18099..18107 "isObject"
- ARGS_DESC@18107..18110
- L_PAREN@18107..18108 "("
- ARG@18108..18109
- EXPR_VAR@18108..18109
- NAME@18108..18109
- IDENT@18108..18109 "a"
- R_PAREN@18109..18110 ")"
- WHITESPACE@18110..18111 " "
- THEN_KW@18111..18115 "then"
- WHITESPACE@18115..18116 " "
- TRUE_EXPR@18116..18219
- EXPR_OBJECT@18116..18219
- OBJ_BODY_MEMBER_LIST@18116..18219
- L_BRACE@18116..18117 "{"
- WHITESPACE@18117..18124 "\n "
- MEMBER_FIELD@18124..18213
- FIELD_NORMAL@18124..18142
- FIELD_NAME_DYNAMIC@18124..18127
- L_BRACK@18124..18125 "["
- EXPR_VAR@18125..18126
- NAME@18125..18126
- IDENT@18125..18126 "x"
- R_BRACK@18126..18127 "]"
- COLON@18127..18128 ":"
- WHITESPACE@18128..18129 " "
- EXPR_APPLY@18129..18142
- EXPR_INDEX@18129..18136
- EXPR_LITERAL@18129..18130
- DOLLAR@18129..18130 "$"
- DOT@18130..18131 "."
- NAME@18131..18136
- IDENT@18131..18136 "prune"
- ARGS_DESC@18136..18142
- L_PAREN@18136..18137 "("
- ARG@18137..18141
- EXPR_INDEX_EXPR@18137..18141
- LHS_EXPR@18137..18138
- EXPR_VAR@18137..18138
- NAME@18137..18138
- IDENT@18137..18138 "a"
- L_BRACK@18138..18139 "["
- EXPR_VAR@18139..18140
- NAME@18139..18140
- IDENT@18139..18140 "x"
- R_BRACK@18140..18141 "]"
- R_PAREN@18141..18142 ")"
- WHITESPACE@18142..18149 "\n "
- FOR_SPEC@18149..18177
- FOR_KW@18149..18152 "for"
- WHITESPACE@18152..18153 " "
- NAME@18153..18154
- IDENT@18153..18154 "x"
- WHITESPACE@18154..18155 " "
- IN_KW@18155..18157 "in"
- WHITESPACE@18157..18158 " "
- EXPR_APPLY@18158..18177
- EXPR_INDEX@18158..18174
- EXPR_VAR@18158..18161
- NAME@18158..18161
- IDENT@18158..18161 "std"
- DOT@18161..18162 "."
- NAME@18162..18174
- IDENT@18162..18174 "objectFields"
- ARGS_DESC@18174..18177
- L_PAREN@18174..18175 "("
- ARG@18175..18176
- EXPR_VAR@18175..18176
- NAME@18175..18176
- IDENT@18175..18176 "a"
- R_PAREN@18176..18177 ")"
- WHITESPACE@18177..18184 "\n "
- IF_SPEC@18184..18213
- IF_KW@18184..18186 "if"
- WHITESPACE@18186..18187 " "
- EXPR_APPLY@18187..18213
- EXPR_VAR@18187..18196
- NAME@18187..18196
- IDENT@18187..18196 "isContent"
- ARGS_DESC@18196..18213
- L_PAREN@18196..18197 "("
- ARG@18197..18212
- EXPR_APPLY@18197..18212
- EXPR_INDEX@18197..18206
- EXPR_VAR@18197..18200
- NAME@18197..18200
- IDENT@18197..18200 "std"
- DOT@18200..18201 "."
- NAME@18201..18206
- IDENT@18201..18206 "prune"
- ARGS_DESC@18206..18212
- L_PAREN@18206..18207 "("
- ARG@18207..18211
- EXPR_INDEX_EXPR@18207..18211
- LHS_EXPR@18207..18208
- EXPR_VAR@18207..18208
- NAME@18207..18208
- IDENT@18207..18208 "a"
- L_BRACK@18208..18209 "["
- EXPR_VAR@18209..18210
- NAME@18209..18210
- IDENT@18209..18210 "x"
- R_BRACK@18210..18211 "]"
- R_PAREN@18211..18212 ")"
- R_PAREN@18212..18213 ")"
- WHITESPACE@18213..18218 "\n "
- R_BRACE@18218..18219 "}"
- WHITESPACE@18219..18220 " "
- ELSE_KW@18220..18224 "else"
- WHITESPACE@18224..18231 "\n "
- FALSE_EXPR@18231..18232
- EXPR_VAR@18231..18232
- NAME@18231..18232
- IDENT@18231..18232 "a"
- COMMA@18232..18233 ","
- WHITESPACE@18233..18237 "\n\n "
- MEMBER_FIELD@18237..18755
- FIELD_METHOD@18237..18755
- FIELD_NAME_FIXED@18237..18247
- NAME@18237..18247
- IDENT@18237..18247 "findSubstr"
- PARAMS_DESC@18247..18257
- L_PAREN@18247..18248 "("
- PARAM@18248..18251
- DESTRUCT_FULL@18248..18251
- NAME@18248..18251
- IDENT@18248..18251 "pat"
- COMMA@18251..18252 ","
- WHITESPACE@18252..18253 " "
- PARAM@18253..18256
- DESTRUCT_FULL@18253..18256
- NAME@18253..18256
- IDENT@18253..18256 "str"
- R_PAREN@18256..18257 ")"
- COLONCOLON@18257..18259 "::"
- WHITESPACE@18259..18264 "\n "
- EXPR_IF_THEN_ELSE@18264..18755
- IF_KW@18264..18266 "if"
- WHITESPACE@18266..18267 " "
- EXPR_UNARY@18267..18285
- NOT@18267..18268 "!"
- EXPR_APPLY@18268..18285
- EXPR_INDEX@18268..18280
- EXPR_VAR@18268..18271
- NAME@18268..18271
- IDENT@18268..18271 "std"
- DOT@18271..18272 "."
- NAME@18272..18280
- IDENT@18272..18280 "isString"
- ARGS_DESC@18280..18285
- L_PAREN@18280..18281 "("
- ARG@18281..18284
- EXPR_VAR@18281..18284
- NAME@18281..18284
- IDENT@18281..18284 "pat"
- R_PAREN@18284..18285 ")"
- WHITESPACE@18285..18286 " "
- THEN_KW@18286..18290 "then"
- WHITESPACE@18290..18297 "\n "
- TRUE_EXPR@18297..18372
- EXPR_ERROR@18297..18372
- ERROR_KW@18297..18302 "error"
- WHITESPACE@18302..18303 " "
- EXPR_BINARY@18303..18372
- LHS_EXPR@18303..18356
- EXPR_STRING@18303..18356
- STRING_SINGLE@18303..18356 "'findSubstr first par ..."
- WHITESPACE@18356..18357 " "
- PLUS@18357..18358 "+"
- WHITESPACE@18358..18359 " "
- EXPR_APPLY@18359..18372
- EXPR_INDEX@18359..18367
- EXPR_VAR@18359..18362
- NAME@18359..18362
- IDENT@18359..18362 "std"
- DOT@18362..18363 "."
- NAME@18363..18367
- IDENT@18363..18367 "type"
- ARGS_DESC@18367..18372
- L_PAREN@18367..18368 "("
- ARG@18368..18371
- EXPR_VAR@18368..18371
- NAME@18368..18371
- IDENT@18368..18371 "pat"
- R_PAREN@18371..18372 ")"
- WHITESPACE@18372..18377 "\n "
- ELSE_KW@18377..18381 "else"
- WHITESPACE@18381..18382 " "
- FALSE_EXPR@18382..18755
- EXPR_IF_THEN_ELSE@18382..18755
- IF_KW@18382..18384 "if"
- WHITESPACE@18384..18385 " "
- EXPR_UNARY@18385..18403
- NOT@18385..18386 "!"
- EXPR_APPLY@18386..18403
- EXPR_INDEX@18386..18398
- EXPR_VAR@18386..18389
- NAME@18386..18389
- IDENT@18386..18389 "std"
- DOT@18389..18390 "."
- NAME@18390..18398
- IDENT@18390..18398 "isString"
- ARGS_DESC@18398..18403
- L_PAREN@18398..18399 "("
- ARG@18399..18402
- EXPR_VAR@18399..18402
- NAME@18399..18402
- IDENT@18399..18402 "str"
- R_PAREN@18402..18403 ")"
- WHITESPACE@18403..18404 " "
- THEN_KW@18404..18408 "then"
- WHITESPACE@18408..18415 "\n "
- TRUE_EXPR@18415..18491
- EXPR_ERROR@18415..18491
- ERROR_KW@18415..18420 "error"
- WHITESPACE@18420..18421 " "
- EXPR_BINARY@18421..18491
- LHS_EXPR@18421..18475
- EXPR_STRING@18421..18475
- STRING_SINGLE@18421..18475 "'findSubstr second pa ..."
- WHITESPACE@18475..18476 " "
- PLUS@18476..18477 "+"
- WHITESPACE@18477..18478 " "
- EXPR_APPLY@18478..18491
- EXPR_INDEX@18478..18486
- EXPR_VAR@18478..18481
- NAME@18478..18481
- IDENT@18478..18481 "std"
- DOT@18481..18482 "."
- NAME@18482..18486
- IDENT@18482..18486 "type"
- ARGS_DESC@18486..18491
- L_PAREN@18486..18487 "("
- ARG@18487..18490
- EXPR_VAR@18487..18490
- NAME@18487..18490
- IDENT@18487..18490 "str"
- R_PAREN@18490..18491 ")"
- WHITESPACE@18491..18496 "\n "
- ELSE_KW@18496..18500 "else"
- WHITESPACE@18500..18507 "\n "
- FALSE_EXPR@18507..18755
- EXPR_LOCAL@18507..18755
- LOCAL_KW@18507..18512 "local"
- WHITESPACE@18512..18513 " "
- BIND_DESTRUCT@18513..18538
- DESTRUCT_FULL@18513..18520
- NAME@18513..18520
- IDENT@18513..18520 "pat_len"
- WHITESPACE@18520..18521 " "
- ASSIGN@18521..18522 "="
- WHITESPACE@18522..18523 " "
- EXPR_APPLY@18523..18538
- EXPR_INDEX@18523..18533
- EXPR_VAR@18523..18526
- NAME@18523..18526
- IDENT@18523..18526 "std"
- DOT@18526..18527 "."
- NAME@18527..18533
- IDENT@18527..18533 "length"
- ARGS_DESC@18533..18538
- L_PAREN@18533..18534 "("
- ARG@18534..18537
- EXPR_VAR@18534..18537
- NAME@18534..18537
- IDENT@18534..18537 "pat"
- R_PAREN@18537..18538 ")"
- SEMI@18538..18539 ";"
- WHITESPACE@18539..18546 "\n "
- EXPR_LOCAL@18546..18755
- LOCAL_KW@18546..18551 "local"
- WHITESPACE@18551..18552 " "
- BIND_DESTRUCT@18552..18577
- DESTRUCT_FULL@18552..18559
- NAME@18552..18559
- IDENT@18552..18559 "str_len"
- WHITESPACE@18559..18560 " "
- ASSIGN@18560..18561 "="
- WHITESPACE@18561..18562 " "
- EXPR_APPLY@18562..18577
- EXPR_INDEX@18562..18572
- EXPR_VAR@18562..18565
- NAME@18562..18565
- IDENT@18562..18565 "std"
- DOT@18565..18566 "."
- NAME@18566..18572
- IDENT@18566..18572 "length"
- ARGS_DESC@18572..18577
- L_PAREN@18572..18573 "("
- ARG@18573..18576
- EXPR_VAR@18573..18576
- NAME@18573..18576
- IDENT@18573..18576 "str"
- R_PAREN@18576..18577 ")"
- SEMI@18577..18578 ";"
- WHITESPACE@18578..18585 "\n "
- EXPR_IF_THEN_ELSE@18585..18755
- IF_KW@18585..18587 "if"
- WHITESPACE@18587..18588 " "
- EXPR_BINARY@18588..18637
- LHS_EXPR@18588..18616
- EXPR_BINARY@18588..18616
- LHS_EXPR@18588..18600
- EXPR_BINARY@18588..18600
- LHS_EXPR@18588..18595
- EXPR_VAR@18588..18595
- NAME@18588..18595
- IDENT@18588..18595 "pat_len"
- WHITESPACE@18595..18596 " "
- EQ@18596..18598 "=="
- WHITESPACE@18598..18599 " "
- EXPR_NUMBER@18599..18600
- FLOAT@18599..18600 "0"
- WHITESPACE@18600..18601 " "
- OR@18601..18603 "||"
- WHITESPACE@18603..18604 " "
- EXPR_BINARY@18604..18616
- LHS_EXPR@18604..18611
- EXPR_VAR@18604..18611
- NAME@18604..18611
- IDENT@18604..18611 "str_len"
- WHITESPACE@18611..18612 " "
- EQ@18612..18614 "=="
- WHITESPACE@18614..18615 " "
- EXPR_NUMBER@18615..18616
- FLOAT@18615..18616 "0"
- WHITESPACE@18616..18617 " "
- OR@18617..18619 "||"
- WHITESPACE@18619..18620 " "
- EXPR_BINARY@18620..18637
- LHS_EXPR@18620..18627
- EXPR_VAR@18620..18627
- NAME@18620..18627
- IDENT@18620..18627 "pat_len"
- WHITESPACE@18627..18628 " "
- GT@18628..18629 ">"
- WHITESPACE@18629..18630 " "
- EXPR_VAR@18630..18637
- NAME@18630..18637
- IDENT@18630..18637 "str_len"
- WHITESPACE@18637..18638 " "
- THEN_KW@18638..18642 "then"
- WHITESPACE@18642..18651 "\n "
- TRUE_EXPR@18651..18653
- EXPR_ARRAY@18651..18653
- L_BRACK@18651..18652 "["
- R_BRACK@18652..18653 "]"
- WHITESPACE@18653..18660 "\n "
- ELSE_KW@18660..18664 "else"
- WHITESPACE@18664..18673 "\n "
- FALSE_EXPR@18673..18755
- EXPR_APPLY@18673..18755
- EXPR_INDEX@18673..18683
- EXPR_VAR@18673..18676
- NAME@18673..18676
- IDENT@18673..18676 "std"
- DOT@18676..18677 "."
- NAME@18677..18683
- IDENT@18677..18683 "filter"
- ARGS_DESC@18683..18755
- L_PAREN@18683..18684 "("
- ARG@18684..18721
- EXPR_FUNCTION@18684..18721
- FUNCTION_KW@18684..18692 "function"
- PARAMS_DESC@18692..18695
- L_PAREN@18692..18693 "("
- PARAM@18693..18694
- DESTRUCT_FULL@18693..18694
- NAME@18693..18694
- IDENT@18693..18694 "i"
- R_PAREN@18694..18695 ")"
- WHITESPACE@18695..18696 " "
- EXPR_BINARY@18696..18721
- LHS_EXPR@18696..18714
- EXPR_SLICE@18696..18714
- EXPR_VAR@18696..18699
- NAME@18696..18699
- IDENT@18696..18699 "str"
- SLICE_DESC@18699..18714
- L_BRACK@18699..18700 "["
- EXPR_VAR@18700..18701
- NAME@18700..18701
- IDENT@18700..18701 "i"
- COLON@18701..18702 ":"
- SLICE_DESC_END@18702..18713
- EXPR_BINARY@18702..18713
- LHS_EXPR@18702..18703
- EXPR_VAR@18702..18703
- NAME@18702..18703
- IDENT@18702..18703 "i"
- WHITESPACE@18703..18704 " "
- PLUS@18704..18705 "+"
- WHITESPACE@18705..18706 " "
- EXPR_VAR@18706..18713
- NAME@18706..18713
- IDENT@18706..18713 "pat_len"
- R_BRACK@18713..18714 "]"
- WHITESPACE@18714..18715 " "
- EQ@18715..18717 "=="
- WHITESPACE@18717..18718 " "
- EXPR_VAR@18718..18721
- NAME@18718..18721
- IDENT@18718..18721 "pat"
- COMMA@18721..18722 ","
- WHITESPACE@18722..18723 " "
- ARG@18723..18754
- EXPR_APPLY@18723..18754
- EXPR_INDEX@18723..18732
- EXPR_VAR@18723..18726
- NAME@18723..18726
- IDENT@18723..18726 "std"
- DOT@18726..18727 "."
- NAME@18727..18732
- IDENT@18727..18732 "range"
- ARGS_DESC@18732..18754
- L_PAREN@18732..18733 "("
- ARG@18733..18734
- EXPR_NUMBER@18733..18734
- FLOAT@18733..18734 "0"
- COMMA@18734..18735 ","
- WHITESPACE@18735..18736 " "
- ARG@18736..18753
- EXPR_BINARY@18736..18753
- LHS_EXPR@18736..18743
- EXPR_VAR@18736..18743
- NAME@18736..18743
- IDENT@18736..18743 "str_len"
- WHITESPACE@18743..18744 " "
- MINUS@18744..18745 "-"
- WHITESPACE@18745..18746 " "
- EXPR_VAR@18746..18753
- NAME@18746..18753
- IDENT@18746..18753 "pat_len"
- R_PAREN@18753..18754 ")"
- R_PAREN@18754..18755 ")"
- COMMA@18755..18756 ","
- WHITESPACE@18756..18760 "\n\n "
- MEMBER_FIELD@18760..18975
- FIELD_METHOD@18760..18975
- FIELD_NAME_FIXED@18760..18764
- NAME@18760..18764
- IDENT@18760..18764 "find"
- PARAMS_DESC@18764..18776
- L_PAREN@18764..18765 "("
- PARAM@18765..18770
- DESTRUCT_FULL@18765..18770
- NAME@18765..18770
- IDENT@18765..18770 "value"
- COMMA@18770..18771 ","
- WHITESPACE@18771..18772 " "
- PARAM@18772..18775
- DESTRUCT_FULL@18772..18775
- NAME@18772..18775
- IDENT@18772..18775 "arr"
- R_PAREN@18775..18776 ")"
- COLONCOLON@18776..18778 "::"
- WHITESPACE@18778..18783 "\n "
- EXPR_IF_THEN_ELSE@18783..18975
- IF_KW@18783..18785 "if"
- WHITESPACE@18785..18786 " "
- EXPR_UNARY@18786..18803
- NOT@18786..18787 "!"
- EXPR_APPLY@18787..18803
- EXPR_INDEX@18787..18798
- EXPR_VAR@18787..18790
- NAME@18787..18790
- IDENT@18787..18790 "std"
- DOT@18790..18791 "."
- NAME@18791..18798
- IDENT@18791..18798 "isArray"
- ARGS_DESC@18798..18803
- L_PAREN@18798..18799 "("
- ARG@18799..18802
- EXPR_VAR@18799..18802
- NAME@18799..18802
- IDENT@18799..18802 "arr"
- R_PAREN@18802..18803 ")"
- WHITESPACE@18803..18804 " "
- THEN_KW@18804..18808 "then"
- WHITESPACE@18808..18815 "\n "
- TRUE_EXPR@18815..18885
- EXPR_ERROR@18815..18885
- ERROR_KW@18815..18820 "error"
- WHITESPACE@18820..18821 " "
- EXPR_BINARY@18821..18885
- LHS_EXPR@18821..18869
- EXPR_STRING@18821..18869
- STRING_SINGLE@18821..18869 "'find second paramete ..."
- WHITESPACE@18869..18870 " "
- PLUS@18870..18871 "+"
- WHITESPACE@18871..18872 " "
- EXPR_APPLY@18872..18885
- EXPR_INDEX@18872..18880
- EXPR_VAR@18872..18875
- NAME@18872..18875
- IDENT@18872..18875 "std"
- DOT@18875..18876 "."
- NAME@18876..18880
- IDENT@18876..18880 "type"
- ARGS_DESC@18880..18885
- L_PAREN@18880..18881 "("
- ARG@18881..18884
- EXPR_VAR@18881..18884
- NAME@18881..18884
- IDENT@18881..18884 "arr"
- R_PAREN@18884..18885 ")"
- WHITESPACE@18885..18890 "\n "
- ELSE_KW@18890..18894 "else"
- WHITESPACE@18894..18901 "\n "
- FALSE_EXPR@18901..18975
- EXPR_APPLY@18901..18975
- EXPR_INDEX@18901..18911
- EXPR_VAR@18901..18904
- NAME@18901..18904
- IDENT@18901..18904 "std"
- DOT@18904..18905 "."
- NAME@18905..18911
- IDENT@18905..18911 "filter"
- ARGS_DESC@18911..18975
- L_PAREN@18911..18912 "("
- ARG@18912..18939
- EXPR_FUNCTION@18912..18939
- FUNCTION_KW@18912..18920 "function"
- PARAMS_DESC@18920..18923
- L_PAREN@18920..18921 "("
- PARAM@18921..18922
- DESTRUCT_FULL@18921..18922
- NAME@18921..18922
- IDENT@18921..18922 "i"
- R_PAREN@18922..18923 ")"
- WHITESPACE@18923..18924 " "
- EXPR_BINARY@18924..18939
- LHS_EXPR@18924..18930
- EXPR_INDEX_EXPR@18924..18930
- LHS_EXPR@18924..18927
- EXPR_VAR@18924..18927
- NAME@18924..18927
- IDENT@18924..18927 "arr"
- L_BRACK@18927..18928 "["
- EXPR_VAR@18928..18929
- NAME@18928..18929
- IDENT@18928..18929 "i"
- R_BRACK@18929..18930 "]"
- WHITESPACE@18930..18931 " "
- EQ@18931..18933 "=="
- WHITESPACE@18933..18934 " "
- EXPR_VAR@18934..18939
- NAME@18934..18939
- IDENT@18934..18939 "value"
- COMMA@18939..18940 ","
- WHITESPACE@18940..18941 " "
- ARG@18941..18974
- EXPR_APPLY@18941..18974
- EXPR_INDEX@18941..18950
- EXPR_VAR@18941..18944
- NAME@18941..18944
- IDENT@18941..18944 "std"
- DOT@18944..18945 "."
- NAME@18945..18950
- IDENT@18945..18950 "range"
- ARGS_DESC@18950..18974
- L_PAREN@18950..18951 "("
- ARG@18951..18952
- EXPR_NUMBER@18951..18952
- FLOAT@18951..18952 "0"
- COMMA@18952..18953 ","
- WHITESPACE@18953..18954 " "
- ARG@18954..18973
- EXPR_BINARY@18954..18973
- LHS_EXPR@18954..18969
- EXPR_APPLY@18954..18969
- EXPR_INDEX@18954..18964
- EXPR_VAR@18954..18957
- NAME@18954..18957
- IDENT@18954..18957 "std"
- DOT@18957..18958 "."
- NAME@18958..18964
- IDENT@18958..18964 "length"
- ARGS_DESC@18964..18969
- L_PAREN@18964..18965 "("
- ARG@18965..18968
- EXPR_VAR@18965..18968
- NAME@18965..18968
- IDENT@18965..18968 "arr"
- R_PAREN@18968..18969 ")"
- WHITESPACE@18969..18970 " "
- MINUS@18970..18971 "-"
- WHITESPACE@18971..18972 " "
- EXPR_NUMBER@18972..18973
- FLOAT@18972..18973 "1"
- R_PAREN@18973..18974 ")"
- R_PAREN@18974..18975 ")"
- COMMA@18975..18976 ","
- WHITESPACE@18976..18977 "\n"
- R_BRACE@18977..18978 "}"
-
+ ARG@5661..5672
+ EXPR_BINARY@5661..5672
+ LHS_EXPR@5661..5665
+ EXPR_VAR@5661..5665
+ NAME@5661..5665
+ IDENT@5661..5665 "vars"
+ WHITESPACE@5665..5666 " "
+ PLUS@5666..5667 "+"
+ WHITESPACE@5667..5668 " "
+ EXPR_ARRAY@5668..5672
+ L_BRACK@5668..5669 "["
+ EXPR_STRING@5669..5671
+ STRING_SINGLE@5669..5671 "''"
+ R_BRACK@5671..5672 "]"
+ R_PAREN@5672..5673 ")"
+ COMMA@5673..5674 ","
+ WHITESPACE@5674..5678 "\n\n "
+ MEMBER_FIELD@5678..6345
+ FIELD_METHOD@5678..6345
+ FIELD_NAME_FIXED@5678..5695
+ NAME@5678..5695
+ IDENT@5678..5695 "manifestXmlJsonml"
+ PARAMS_DESC@5695..5702
+ L_PAREN@5695..5696 "("
+ PARAM@5696..5701
+ DESTRUCT_FULL@5696..5701
+ NAME@5696..5701
+ IDENT@5696..5701 "value"
+ R_PAREN@5701..5702 ")"
+ COLONCOLON@5702..5704 "::"
+ WHITESPACE@5704..5709 "\n "
+ EXPR_IF_THEN_ELSE@5709..6345
+ IF_KW@5709..5711 "if"
+ WHITESPACE@5711..5712 " "
+ EXPR_UNARY@5712..5731
+ NOT@5712..5713 "!"
+ EXPR_APPLY@5713..5731
+ EXPR_INDEX@5713..5724
+ EXPR_VAR@5713..5716
+ NAME@5713..5716
+ IDENT@5713..5716 "std"
+ DOT@5716..5717 "."
+ NAME@5717..5724
+ IDENT@5717..5724 "isArray"
+ ARGS_DESC@5724..5731
+ L_PAREN@5724..5725 "("
+ ARG@5725..5730
+ EXPR_VAR@5725..5730
+ NAME@5725..5730
+ IDENT@5725..5730 "value"
+ R_PAREN@5730..5731 ")"
+ WHITESPACE@5731..5732 " "
+ THEN_KW@5732..5736 "then"
+ WHITESPACE@5736..5743 "\n "
+ TRUE_EXPR@5743..5811
+ EXPR_ERROR@5743..5811
+ ERROR_KW@5743..5748 "error"
+ WHITESPACE@5748..5749 " "
+ EXPR_BINARY@5749..5811
+ LHS_EXPR@5749..5793
+ EXPR_STRING@5749..5793
+ STRING_SINGLE@5749..5793 "'Expected a JSONML va ..."
+ WHITESPACE@5793..5794 " "
+ MODULO@5794..5795 "%"
+ WHITESPACE@5795..5796 " "
+ EXPR_APPLY@5796..5811
+ EXPR_INDEX@5796..5804
+ EXPR_VAR@5796..5799
+ NAME@5796..5799
+ IDENT@5796..5799 "std"
+ DOT@5799..5800 "."
+ NAME@5800..5804
+ IDENT@5800..5804 "type"
+ ARGS_DESC@5804..5811
+ L_PAREN@5804..5805 "("
+ ARG@5805..5810
+ EXPR_VAR@5805..5810
+ NAME@5805..5810
+ IDENT@5805..5810 "value"
+ R_PAREN@5810..5811 ")"
+ WHITESPACE@5811..5816 "\n "
+ ELSE_KW@5816..5820 "else"
+ WHITESPACE@5820..5827 "\n "
+ FALSE_EXPR@5827..6345
+ EXPR_LOCAL@5827..6345
+ LOCAL_KW@5827..5832 "local"
+ WHITESPACE@5832..5833 " "
+ BIND_FUNCTION@5833..6326
+ NAME@5833..5836
+ IDENT@5833..5836 "aux"
+ PARAMS_DESC@5836..5839
+ L_PAREN@5836..5837 "("
+ PARAM@5837..5838
+ DESTRUCT_FULL@5837..5838
+ NAME@5837..5838
+ IDENT@5837..5838 "v"
+ R_PAREN@5838..5839 ")"
+ WHITESPACE@5839..5840 " "
+ ASSIGN@5840..5841 "="
+ WHITESPACE@5841..5850 "\n "
+ EXPR_IF_THEN_ELSE@5850..6326
+ IF_KW@5850..5852 "if"
+ WHITESPACE@5852..5853 " "
+ EXPR_APPLY@5853..5868
+ EXPR_INDEX@5853..5865
+ EXPR_VAR@5853..5856
+ NAME@5853..5856
+ IDENT@5853..5856 "std"
+ DOT@5856..5857 "."
+ NAME@5857..5865
+ IDENT@5857..5865 "isString"
+ ARGS_DESC@5865..5868
+ L_PAREN@5865..5866 "("
+ ARG@5866..5867
+ EXPR_VAR@5866..5867
+ NAME@5866..5867
+ IDENT@5866..5867 "v"
+ R_PAREN@5867..5868 ")"
+ WHITESPACE@5868..5869 " "
+ THEN_KW@5869..5873 "then"
+ WHITESPACE@5873..5884 "\n "
+ TRUE_EXPR@5884..5885
+ EXPR_VAR@5884..5885
+ NAME@5884..5885
+ IDENT@5884..5885 "v"
+ WHITESPACE@5885..5894 "\n "
+ ELSE_KW@5894..5898 "else"
+ WHITESPACE@5898..5909 "\n "
+ FALSE_EXPR@5909..6326
+ EXPR_LOCAL@5909..6326
+ LOCAL_KW@5909..5914 "local"
+ WHITESPACE@5914..5915 " "
+ BIND_DESTRUCT@5915..5925
+ DESTRUCT_FULL@5915..5918
+ NAME@5915..5918
+ IDENT@5915..5918 "tag"
+ WHITESPACE@5918..5919 " "
+ ASSIGN@5919..5920 "="
+ WHITESPACE@5920..5921 " "
+ EXPR_INDEX_EXPR@5921..5925
+ LHS_EXPR@5921..5922
+ EXPR_VAR@5921..5922
+ NAME@5921..5922
+ IDENT@5921..5922 "v"
+ L_BRACK@5922..5923 "["
+ EXPR_NUMBER@5923..5924
+ FLOAT@5923..5924 "0"
+ R_BRACK@5924..5925 "]"
+ SEMI@5925..5926 ";"
+ WHITESPACE@5926..5937 "\n "
+ EXPR_LOCAL@5937..6326
+ LOCAL_KW@5937..5942 "local"
+ WHITESPACE@5942..5943 " "
+ BIND_DESTRUCT@5943..5994
+ DESTRUCT_FULL@5943..5952
+ NAME@5943..5952
+ IDENT@5943..5952 "has_attrs"
+ WHITESPACE@5952..5953 " "
+ ASSIGN@5953..5954 "="
+ WHITESPACE@5954..5955 " "
+ EXPR_BINARY@5955..5994
+ LHS_EXPR@5955..5972
+ EXPR_BINARY@5955..5972
+ LHS_EXPR@5955..5968
+ EXPR_APPLY@5955..5968
+ EXPR_INDEX@5955..5965
+ EXPR_VAR@5955..5958
+ NAME@5955..5958
+ IDENT@5955..5958 "std"
+ DOT@5958..5959 "."
+ NAME@5959..5965
+ IDENT@5959..5965 "length"
+ ARGS_DESC@5965..5968
+ L_PAREN@5965..5966 "("
+ ARG@5966..5967
+ EXPR_VAR@5966..5967
+ NAME@5966..5967
+ IDENT@5966..5967 "v"
+ R_PAREN@5967..5968 ")"
+ WHITESPACE@5968..5969 " "
+ GT@5969..5970 ">"
+ WHITESPACE@5970..5971 " "
+ EXPR_NUMBER@5971..5972
+ FLOAT@5971..5972 "1"
+ WHITESPACE@5972..5973 " "
+ AND@5973..5975 "&&"
+ WHITESPACE@5975..5976 " "
+ EXPR_APPLY@5976..5994
+ EXPR_INDEX@5976..5988
+ EXPR_VAR@5976..5979
+ NAME@5976..5979
+ IDENT@5976..5979 "std"
+ DOT@5979..5980 "."
+ NAME@5980..5988
+ IDENT@5980..5988 "isObject"
+ ARGS_DESC@5988..5994
+ L_PAREN@5988..5989 "("
+ ARG@5989..5993
+ EXPR_INDEX_EXPR@5989..5993
+ LHS_EXPR@5989..5990
+ EXPR_VAR@5989..5990
+ NAME@5989..5990
+ IDENT@5989..5990 "v"
+ L_BRACK@5990..5991 "["
+ EXPR_NUMBER@5991..5992
+ FLOAT@5991..5992 "1"
+ R_BRACK@5992..5993 "]"
+ R_PAREN@5993..5994 ")"
+ SEMI@5994..5995 ";"
+ WHITESPACE@5995..6006 "\n "
+ EXPR_LOCAL@6006..6326
+ LOCAL_KW@6006..6011 "local"
+ WHITESPACE@6011..6012 " "
+ BIND_DESTRUCT@6012..6050
+ DESTRUCT_FULL@6012..6017
+ NAME@6012..6017
+ IDENT@6012..6017 "attrs"
+ WHITESPACE@6017..6018 " "
+ ASSIGN@6018..6019 "="
+ WHITESPACE@6019..6020 " "
+ EXPR_IF_THEN_ELSE@6020..6050
+ IF_KW@6020..6022 "if"
+ WHITESPACE@6022..6023 " "
+ EXPR_VAR@6023..6032
+ NAME@6023..6032
+ IDENT@6023..6032 "has_attrs"
+ WHITESPACE@6032..6033 " "
+ THEN_KW@6033..6037 "then"
+ WHITESPACE@6037..6038 " "
+ TRUE_EXPR@6038..6042
+ EXPR_INDEX_EXPR@6038..6042
+ LHS_EXPR@6038..6039
+ EXPR_VAR@6038..6039
+ NAME@6038..6039
+ IDENT@6038..6039 "v"
+ L_BRACK@6039..6040 "["
+ EXPR_NUMBER@6040..6041
+ FLOAT@6040..6041 "1"
+ R_BRACK@6041..6042 "]"
+ WHITESPACE@6042..6043 " "
+ ELSE_KW@6043..6047 "else"
+ WHITESPACE@6047..6048 " "
+ FALSE_EXPR@6048..6050
+ EXPR_OBJECT@6048..6050
+ OBJ_BODY_MEMBER_LIST@6048..6050
+ L_BRACE@6048..6049 "{"
+ R_BRACE@6049..6050 "}"
+ SEMI@6050..6051 ";"
+ WHITESPACE@6051..6062 "\n "
+ EXPR_LOCAL@6062..6326
+ LOCAL_KW@6062..6067 "local"
+ WHITESPACE@6067..6068 " "
+ BIND_DESTRUCT@6068..6113
+ DESTRUCT_FULL@6068..6076
+ NAME@6068..6076
+ IDENT@6068..6076 "children"
+ WHITESPACE@6076..6077 " "
+ ASSIGN@6077..6078 "="
+ WHITESPACE@6078..6079 " "
+ EXPR_IF_THEN_ELSE@6079..6113
+ IF_KW@6079..6081 "if"
+ WHITESPACE@6081..6082 " "
+ EXPR_VAR@6082..6091
+ NAME@6082..6091
+ IDENT@6082..6091 "has_attrs"
+ WHITESPACE@6091..6092 " "
+ THEN_KW@6092..6096 "then"
+ WHITESPACE@6096..6097 " "
+ TRUE_EXPR@6097..6102
+ EXPR_SLICE@6097..6102
+ EXPR_VAR@6097..6098
+ NAME@6097..6098
+ IDENT@6097..6098 "v"
+ SLICE_DESC@6098..6102
+ L_BRACK@6098..6099 "["
+ EXPR_NUMBER@6099..6100
+ FLOAT@6099..6100 "2"
+ COLON@6100..6101 ":"
+ R_BRACK@6101..6102 "]"
+ WHITESPACE@6102..6103 " "
+ ELSE_KW@6103..6107 "else"
+ WHITESPACE@6107..6108 " "
+ FALSE_EXPR@6108..6113
+ EXPR_SLICE@6108..6113
+ EXPR_VAR@6108..6109
+ NAME@6108..6109
+ IDENT@6108..6109 "v"
+ SLICE_DESC@6109..6113
+ L_BRACK@6109..6110 "["
+ EXPR_NUMBER@6110..6111
+ FLOAT@6110..6111 "1"
+ COLON@6111..6112 ":"
+ R_BRACK@6112..6113 "]"
+ SEMI@6113..6114 ";"
+ WHITESPACE@6114..6125 "\n "
+ EXPR_LOCAL@6125..6326
+ LOCAL_KW@6125..6130 "local"
+ WHITESPACE@6130..6131 " "
+ BIND_DESTRUCT@6131..6230
+ DESTRUCT_FULL@6131..6140
+ NAME@6131..6140
+ IDENT@6131..6140 "attrs_str"
+ WHITESPACE@6140..6141 " "
+ ASSIGN@6141..6142 "="
+ WHITESPACE@6142..6155 "\n "
+ EXPR_APPLY@6155..6230
+ EXPR_INDEX@6155..6163
+ EXPR_VAR@6155..6158
+ NAME@6155..6158
+ IDENT@6155..6158 "std"
+ DOT@6158..6159 "."
+ NAME@6159..6163
+ IDENT@6159..6163 "join"
+ ARGS_DESC@6163..6230
+ L_PAREN@6163..6164 "("
+ ARG@6164..6166
+ EXPR_STRING@6164..6166
+ STRING_SINGLE@6164..6166 "''"
+ COMMA@6166..6167 ","
+ WHITESPACE@6167..6168 " "
+ ARG@6168..6229
+ EXPR_ARRAY_COMP@6168..6229
+ L_BRACK@6168..6169 "["
+ EXPR_BINARY@6169..6195
+ LHS_EXPR@6169..6179
+ EXPR_STRING@6169..6179
+ STRING_SINGLE@6169..6179 "' %s=\"%s\"'"
+ WHITESPACE@6179..6180 " "
+ MODULO@6180..6181 "%"
+ WHITESPACE@6181..6182 " "
+ EXPR_ARRAY@6182..6195
+ L_BRACK@6182..6183 "["
+ EXPR_VAR@6183..6184
+ NAME@6183..6184
+ IDENT@6183..6184 "k"
+ COMMA@6184..6185 ","
+ WHITESPACE@6185..6186 " "
+ EXPR_INDEX_EXPR@6186..6194
+ LHS_EXPR@6186..6191
+ EXPR_VAR@6186..6191
+ NAME@6186..6191
+ IDENT@6186..6191 "attrs"
+ L_BRACK@6191..6192 "["
+ EXPR_VAR@6192..6193
+ NAME@6192..6193
+ IDENT@6192..6193 "k"
+ R_BRACK@6193..6194 "]"
+ R_BRACK@6194..6195 "]"
+ WHITESPACE@6195..6196 " "
+ FOR_SPEC@6196..6228
+ FOR_KW@6196..6199 "for"
+ WHITESPACE@6199..6200 " "
+ NAME@6200..6201
+ IDENT@6200..6201 "k"
+ WHITESPACE@6201..6202 " "
+ IN_KW@6202..6204 "in"
+ WHITESPACE@6204..6205 " "
+ EXPR_APPLY@6205..6228
+ EXPR_INDEX@6205..6221
+ EXPR_VAR@6205..6208
+ NAME@6205..6208
+ IDENT@6205..6208 "std"
+ DOT@6208..6209 "."
+ NAME@6209..6221
+ IDENT@6209..6221 "objectFields"
+ ARGS_DESC@6221..6228
+ L_PAREN@6221..6222 "("
+ ARG@6222..6227
+ EXPR_VAR@6222..6227
+ NAME@6222..6227
+ IDENT@6222..6227 "attrs"
+ R_PAREN@6227..6228 ")"
+ R_BRACK@6228..6229 "]"
+ R_PAREN@6229..6230 ")"
+ SEMI@6230..6231 ";"
+ WHITESPACE@6231..6242 "\n "
+ EXPR_APPLY@6242..6326
+ EXPR_INDEX@6242..6254
+ EXPR_VAR@6242..6245
+ NAME@6242..6245
+ IDENT@6242..6245 "std"
+ DOT@6245..6246 "."
+ NAME@6246..6254
+ IDENT@6246..6254 "deepJoin"
+ ARGS_DESC@6254..6326
+ L_PAREN@6254..6255 "("
+ ARG@6255..6325
+ EXPR_ARRAY@6255..6325
+ L_BRACK@6255..6256 "["
+ EXPR_STRING@6256..6259
+ STRING_SINGLE@6256..6259 "'<'"
+ COMMA@6259..6260 ","
+ WHITESPACE@6260..6261 " "
+ EXPR_VAR@6261..6264
+ NAME@6261..6264
+ IDENT@6261..6264 "tag"
+ COMMA@6264..6265 ","
+ WHITESPACE@6265..6266 " "
+ EXPR_VAR@6266..6275
+ NAME@6266..6275
+ IDENT@6266..6275 "attrs_str"
+ COMMA@6275..6276 ","
+ WHITESPACE@6276..6277 " "
+ EXPR_STRING@6277..6280
+ STRING_SINGLE@6277..6280 "'>'"
+ COMMA@6280..6281 ","
+ WHITESPACE@6281..6282 " "
+ EXPR_ARRAY_COMP@6282..6308
+ L_BRACK@6282..6283 "["
+ EXPR_APPLY@6283..6289
+ EXPR_VAR@6283..6286
+ NAME@6283..6286
+ IDENT@6283..6286 "aux"
+ ARGS_DESC@6286..6289
+ L_PAREN@6286..6287 "("
+ ARG@6287..6288
+ EXPR_VAR@6287..6288
+ NAME@6287..6288
+ IDENT@6287..6288 "x"
+ R_PAREN@6288..6289 ")"
+ WHITESPACE@6289..6290 " "
+ FOR_SPEC@6290..6307
+ FOR_KW@6290..6293 "for"
+ WHITESPACE@6293..6294 " "
+ NAME@6294..6295
+ IDENT@6294..6295 "x"
+ WHITESPACE@6295..6296 " "
+ IN_KW@6296..6298 "in"
+ WHITESPACE@6298..6299 " "
+ EXPR_VAR@6299..6307
+ NAME@6299..6307
+ IDENT@6299..6307 "children"
+ R_BRACK@6307..6308 "]"
+ COMMA@6308..6309 ","
+ WHITESPACE@6309..6310 " "
+ EXPR_STRING@6310..6314
+ STRING_SINGLE@6310..6314 "'</'"
+ COMMA@6314..6315 ","
+ WHITESPACE@6315..6316 " "
+ EXPR_VAR@6316..6319
+ NAME@6316..6319
+ IDENT@6316..6319 "tag"
+ COMMA@6319..6320 ","
+ WHITESPACE@6320..6321 " "
+ EXPR_STRING@6321..6324
+ STRING_SINGLE@6321..6324 "'>'"
+ R_BRACK@6324..6325 "]"
+ R_PAREN@6325..6326 ")"
+ SEMI@6326..6327 ";"
+ WHITESPACE@6327..6335 "\n\n "
+ EXPR_APPLY@6335..6345
+ EXPR_VAR@6335..6338
+ NAME@6335..6338
+ IDENT@6335..6338 "aux"
+ ARGS_DESC@6338..6345
+ L_PAREN@6338..6339 "("
+ ARG@6339..6344
+ EXPR_VAR@6339..6344
+ NAME@6339..6344
+ IDENT@6339..6344 "value"
+ R_PAREN@6344..6345 ")"
+ COMMA@6345..6346 ","
+ WHITESPACE@6346..6350 "\n\n "
+ MEMBER_FIELD@6350..6556
+ FIELD_METHOD@6350..6556
+ FIELD_NAME_FIXED@6350..6354
+ NAME@6350..6354
+ IDENT@6350..6354 "uniq"
+ PARAMS_DESC@6354..6368
+ L_PAREN@6354..6355 "("
+ PARAM@6355..6358
+ DESTRUCT_FULL@6355..6358
+ NAME@6355..6358
+ IDENT@6355..6358 "arr"
+ COMMA@6358..6359 ","
+ WHITESPACE@6359..6360 " "
+ PARAM@6360..6367
+ DESTRUCT_FULL@6360..6364
+ NAME@6360..6364
+ IDENT@6360..6364 "keyF"
+ ASSIGN@6364..6365 "="
+ EXPR_VAR@6365..6367
+ NAME@6365..6367
+ IDENT@6365..6367 "id"
+ R_PAREN@6367..6368 ")"
+ COLONCOLON@6368..6370 "::"
+ WHITESPACE@6370..6375 "\n "
+ EXPR_LOCAL@6375..6556
+ LOCAL_KW@6375..6380 "local"
+ WHITESPACE@6380..6381 " "
+ BIND_FUNCTION@6381..6529
+ NAME@6381..6382
+ IDENT@6381..6382 "f"
+ PARAMS_DESC@6382..6388
+ L_PAREN@6382..6383 "("
+ PARAM@6383..6384
+ DESTRUCT_FULL@6383..6384
+ NAME@6383..6384
+ IDENT@6383..6384 "a"
+ COMMA@6384..6385 ","
+ WHITESPACE@6385..6386 " "
+ PARAM@6386..6387
+ DESTRUCT_FULL@6386..6387
+ NAME@6386..6387
+ IDENT@6386..6387 "b"
+ R_PAREN@6387..6388 ")"
+ WHITESPACE@6388..6389 " "
+ ASSIGN@6389..6390 "="
+ WHITESPACE@6390..6397 "\n "
+ EXPR_IF_THEN_ELSE@6397..6529
+ IF_KW@6397..6399 "if"
+ WHITESPACE@6399..6400 " "
+ EXPR_BINARY@6400..6418
+ LHS_EXPR@6400..6413
+ EXPR_APPLY@6400..6413
+ EXPR_INDEX@6400..6410
+ EXPR_VAR@6400..6403
+ NAME@6400..6403
+ IDENT@6400..6403 "std"
+ DOT@6403..6404 "."
+ NAME@6404..6410
+ IDENT@6404..6410 "length"
+ ARGS_DESC@6410..6413
+ L_PAREN@6410..6411 "("
+ ARG@6411..6412
+ EXPR_VAR@6411..6412
+ NAME@6411..6412
+ IDENT@6411..6412 "a"
+ R_PAREN@6412..6413 ")"
+ WHITESPACE@6413..6414 " "
+ EQ@6414..6416 "=="
+ WHITESPACE@6416..6417 " "
+ EXPR_NUMBER@6417..6418
+ FLOAT@6417..6418 "0"
+ WHITESPACE@6418..6419 " "
+ THEN_KW@6419..6423 "then"
+ WHITESPACE@6423..6432 "\n "
+ TRUE_EXPR@6432..6435
+ EXPR_ARRAY@6432..6435
+ L_BRACK@6432..6433 "["
+ EXPR_VAR@6433..6434
+ NAME@6433..6434
+ IDENT@6433..6434 "b"
+ R_BRACK@6434..6435 "]"
+ WHITESPACE@6435..6442 "\n "
+ ELSE_KW@6442..6446 "else"
+ WHITESPACE@6446..6447 " "
+ FALSE_EXPR@6447..6529
+ EXPR_IF_THEN_ELSE@6447..6529
+ IF_KW@6447..6449 "if"
+ WHITESPACE@6449..6450 " "
+ EXPR_BINARY@6450..6487
+ LHS_EXPR@6450..6476
+ EXPR_APPLY@6450..6476
+ EXPR_VAR@6450..6454
+ NAME@6450..6454
+ IDENT@6450..6454 "keyF"
+ ARGS_DESC@6454..6476
+ L_PAREN@6454..6455 "("
+ ARG@6455..6475
+ EXPR_INDEX_EXPR@6455..6475
+ LHS_EXPR@6455..6456
+ EXPR_VAR@6455..6456
+ NAME@6455..6456
+ IDENT@6455..6456 "a"
+ L_BRACK@6456..6457 "["
+ EXPR_BINARY@6457..6474
+ LHS_EXPR@6457..6470
+ EXPR_APPLY@6457..6470
+ EXPR_INDEX@6457..6467
+ EXPR_VAR@6457..6460
+ NAME@6457..6460
+ IDENT@6457..6460 "std"
+ DOT@6460..6461 "."
+ NAME@6461..6467
+ IDENT@6461..6467 "length"
+ ARGS_DESC@6467..6470
+ L_PAREN@6467..6468 "("
+ ARG@6468..6469
+ EXPR_VAR@6468..6469
+ NAME@6468..6469
+ IDENT@6468..6469 "a"
+ R_PAREN@6469..6470 ")"
+ WHITESPACE@6470..6471 " "
+ MINUS@6471..6472 "-"
+ WHITESPACE@6472..6473 " "
+ EXPR_NUMBER@6473..6474
+ FLOAT@6473..6474 "1"
+ R_BRACK@6474..6475 "]"
+ R_PAREN@6475..6476 ")"
+ WHITESPACE@6476..6477 " "
+ EQ@6477..6479 "=="
+ WHITESPACE@6479..6480 " "
+ EXPR_APPLY@6480..6487
+ EXPR_VAR@6480..6484
+ NAME@6480..6484
+ IDENT@6480..6484 "keyF"
+ ARGS_DESC@6484..6487
+ L_PAREN@6484..6485 "("
+ ARG@6485..6486
+ EXPR_VAR@6485..6486
+ NAME@6485..6486
+ IDENT@6485..6486 "b"
+ R_PAREN@6486..6487 ")"
+ WHITESPACE@6487..6488 " "
+ THEN_KW@6488..6492 "then"
+ WHITESPACE@6492..6501 "\n "
+ TRUE_EXPR@6501..6502
+ EXPR_VAR@6501..6502
+ NAME@6501..6502
+ IDENT@6501..6502 "a"
+ WHITESPACE@6502..6509 "\n "
+ ELSE_KW@6509..6513 "else"
+ WHITESPACE@6513..6522 "\n "
+ FALSE_EXPR@6522..6529
+ EXPR_BINARY@6522..6529
+ LHS_EXPR@6522..6523
+ EXPR_VAR@6522..6523
+ NAME@6522..6523
+ IDENT@6522..6523 "a"
+ WHITESPACE@6523..6524 " "
+ PLUS@6524..6525 "+"
+ WHITESPACE@6525..6526 " "
+ EXPR_ARRAY@6526..6529
+ L_BRACK@6526..6527 "["
+ EXPR_VAR@6527..6528
+ NAME@6527..6528
+ IDENT@6527..6528 "b"
+ R_BRACK@6528..6529 "]"
+ SEMI@6529..6530 ";"
+ WHITESPACE@6530..6535 "\n "
+ EXPR_APPLY@6535..6556
+ EXPR_INDEX@6535..6544
+ EXPR_VAR@6535..6538
+ NAME@6535..6538
+ IDENT@6535..6538 "std"
+ DOT@6538..6539 "."
+ NAME@6539..6544
+ IDENT@6539..6544 "foldl"
+ ARGS_DESC@6544..6556
+ L_PAREN@6544..6545 "("
+ ARG@6545..6546
+ EXPR_VAR@6545..6546
+ NAME@6545..6546
+ IDENT@6545..6546 "f"
+ COMMA@6546..6547 ","
+ WHITESPACE@6547..6548 " "
+ ARG@6548..6551
+ EXPR_VAR@6548..6551
+ NAME@6548..6551
+ IDENT@6548..6551 "arr"
+ COMMA@6551..6552 ","
+ WHITESPACE@6552..6553 " "
+ ARG@6553..6555
+ EXPR_ARRAY@6553..6555
+ L_BRACK@6553..6554 "["
+ R_BRACK@6554..6555 "]"
+ R_PAREN@6555..6556 ")"
+ COMMA@6556..6557 ","
+ WHITESPACE@6557..6561 "\n\n "
+ MEMBER_FIELD@6561..6620
+ FIELD_METHOD@6561..6620
+ FIELD_NAME_FIXED@6561..6564
+ NAME@6561..6564
+ IDENT@6561..6564 "set"
+ PARAMS_DESC@6564..6578
+ L_PAREN@6564..6565 "("
+ PARAM@6565..6568
+ DESTRUCT_FULL@6565..6568
+ NAME@6565..6568
+ IDENT@6565..6568 "arr"
+ COMMA@6568..6569 ","
+ WHITESPACE@6569..6570 " "
+ PARAM@6570..6577
+ DESTRUCT_FULL@6570..6574
+ NAME@6570..6574
+ IDENT@6570..6574 "keyF"
+ ASSIGN@6574..6575 "="
+ EXPR_VAR@6575..6577
+ NAME@6575..6577
+ IDENT@6575..6577 "id"
+ R_PAREN@6577..6578 ")"
+ COLONCOLON@6578..6580 "::"
+ WHITESPACE@6580..6585 "\n "
+ EXPR_APPLY@6585..6620
+ EXPR_INDEX@6585..6593
+ EXPR_VAR@6585..6588
+ NAME@6585..6588
+ IDENT@6585..6588 "std"
+ DOT@6588..6589 "."
+ NAME@6589..6593
+ IDENT@6589..6593 "uniq"
+ ARGS_DESC@6593..6620
+ L_PAREN@6593..6594 "("
+ ARG@6594..6613
+ EXPR_APPLY@6594..6613
+ EXPR_INDEX@6594..6602
+ EXPR_VAR@6594..6597
+ NAME@6594..6597
+ IDENT@6594..6597 "std"
+ DOT@6597..6598 "."
+ NAME@6598..6602
+ IDENT@6598..6602 "sort"
+ ARGS_DESC@6602..6613
+ L_PAREN@6602..6603 "("
+ ARG@6603..6606
+ EXPR_VAR@6603..6606
+ NAME@6603..6606
+ IDENT@6603..6606 "arr"
+ COMMA@6606..6607 ","
+ WHITESPACE@6607..6608 " "
+ ARG@6608..6612
+ EXPR_VAR@6608..6612
+ NAME@6608..6612
+ IDENT@6608..6612 "keyF"
+ R_PAREN@6612..6613 ")"
+ COMMA@6613..6614 ","
+ WHITESPACE@6614..6615 " "
+ ARG@6615..6619
+ EXPR_VAR@6615..6619
+ NAME@6615..6619
+ IDENT@6615..6619 "keyF"
+ R_PAREN@6619..6620 ")"
+ COMMA@6620..6621 ","
+ WHITESPACE@6621..6625 "\n\n "
+ MEMBER_FIELD@6625..6760
+ FIELD_METHOD@6625..6760
+ FIELD_NAME_FIXED@6625..6634
+ NAME@6625..6634
+ IDENT@6625..6634 "setMember"
+ PARAMS_DESC@6634..6651
+ L_PAREN@6634..6635 "("
+ PARAM@6635..6636
+ DESTRUCT_FULL@6635..6636
+ NAME@6635..6636
+ IDENT@6635..6636 "x"
+ COMMA@6636..6637 ","
+ WHITESPACE@6637..6638 " "
+ PARAM@6638..6641
+ DESTRUCT_FULL@6638..6641
+ NAME@6638..6641
+ IDENT@6638..6641 "arr"
+ COMMA@6641..6642 ","
+ WHITESPACE@6642..6643 " "
+ PARAM@6643..6650
+ DESTRUCT_FULL@6643..6647
+ NAME@6643..6647
+ IDENT@6643..6647 "keyF"
+ ASSIGN@6647..6648 "="
+ EXPR_VAR@6648..6650
+ NAME@6648..6650
+ IDENT@6648..6650 "id"
+ R_PAREN@6650..6651 ")"
+ COLONCOLON@6651..6653 "::"
+ WHITESPACE@6653..6658 "\n "
+ SINGLE_LINE_SLASH_COMMENT@6658..6712 "// TODO(dcunnin): Bin ..."
+ WHITESPACE@6712..6716 " "
+ EXPR_BINARY@6716..6760
+ LHS_EXPR@6716..6756
+ EXPR_APPLY@6716..6756
+ EXPR_INDEX@6716..6726
+ EXPR_VAR@6716..6719
+ NAME@6716..6719
+ IDENT@6716..6719 "std"
+ DOT@6719..6720 "."
+ NAME@6720..6726
+ IDENT@6720..6726 "length"
+ ARGS_DESC@6726..6756
+ L_PAREN@6726..6727 "("
+ ARG@6727..6755
+ EXPR_APPLY@6727..6755
+ EXPR_INDEX@6727..6739
+ EXPR_VAR@6727..6730
+ NAME@6727..6730
+ IDENT@6727..6730 "std"
+ DOT@6730..6731 "."
+ NAME@6731..6739
+ IDENT@6731..6739 "setInter"
+ ARGS_DESC@6739..6755
+ L_PAREN@6739..6740 "("
+ ARG@6740..6743
+ EXPR_ARRAY@6740..6743
+ L_BRACK@6740..6741 "["
+ EXPR_VAR@6741..6742
+ NAME@6741..6742
+ IDENT@6741..6742 "x"
+ R_BRACK@6742..6743 "]"
+ COMMA@6743..6744 ","
+ WHITESPACE@6744..6745 " "
+ ARG@6745..6748
+ EXPR_VAR@6745..6748
+ NAME@6745..6748
+ IDENT@6745..6748 "arr"
+ COMMA@6748..6749 ","
+ WHITESPACE@6749..6750 " "
+ ARG@6750..6754
+ EXPR_VAR@6750..6754
+ NAME@6750..6754
+ IDENT@6750..6754 "keyF"
+ R_PAREN@6754..6755 ")"
+ R_PAREN@6755..6756 ")"
+ WHITESPACE@6756..6757 " "
+ GT@6757..6758 ">"
+ WHITESPACE@6758..6759 " "
+ EXPR_NUMBER@6759..6760
+ FLOAT@6759..6760 "0"
+ COMMA@6760..6761 ","
+ WHITESPACE@6761..6765 "\n\n "
+ MEMBER_FIELD@6765..7314
+ FIELD_METHOD@6765..7314
+ FIELD_NAME_FIXED@6765..6773
+ NAME@6765..6773
+ IDENT@6765..6773 "setUnion"
+ PARAMS_DESC@6773..6788
+ L_PAREN@6773..6774 "("
+ PARAM@6774..6775
+ DESTRUCT_FULL@6774..6775
+ NAME@6774..6775
+ IDENT@6774..6775 "a"
+ COMMA@6775..6776 ","
+ WHITESPACE@6776..6777 " "
+ PARAM@6777..6778
+ DESTRUCT_FULL@6777..6778
+ NAME@6777..6778
+ IDENT@6777..6778 "b"
+ COMMA@6778..6779 ","
+ WHITESPACE@6779..6780 " "
+ PARAM@6780..6787
+ DESTRUCT_FULL@6780..6784
+ NAME@6780..6784
+ IDENT@6780..6784 "keyF"
+ ASSIGN@6784..6785 "="
+ EXPR_VAR@6785..6787
+ NAME@6785..6787
+ IDENT@6785..6787 "id"
+ R_PAREN@6787..6788 ")"
+ COLONCOLON@6788..6790 "::"
+ WHITESPACE@6790..6795 "\n "
+ SINGLE_LINE_SLASH_COMMENT@6795..6837 "// NOTE: order matter ..."
+ WHITESPACE@6837..6841 " "
+ EXPR_LOCAL@6841..7314
+ LOCAL_KW@6841..6846 "local"
+ WHITESPACE@6846..6847 " "
+ BIND_FUNCTION@6847..7289
+ NAME@6847..6850
+ IDENT@6847..6850 "aux"
+ PARAMS_DESC@6850..6867
+ L_PAREN@6850..6851 "("
+ PARAM@6851..6852
+ DESTRUCT_FULL@6851..6852
+ NAME@6851..6852
+ IDENT@6851..6852 "a"
+ COMMA@6852..6853 ","
+ WHITESPACE@6853..6854 " "
+ PARAM@6854..6855
+ DESTRUCT_FULL@6854..6855
+ NAME@6854..6855
+ IDENT@6854..6855 "b"
+ COMMA@6855..6856 ","
+ WHITESPACE@6856..6857 " "
+ PARAM@6857..6858
+ DESTRUCT_FULL@6857..6858
+ NAME@6857..6858
+ IDENT@6857..6858 "i"
+ COMMA@6858..6859 ","
+ WHITESPACE@6859..6860 " "
+ PARAM@6860..6861
+ DESTRUCT_FULL@6860..6861
+ NAME@6860..6861
+ IDENT@6860..6861 "j"
+ COMMA@6861..6862 ","
+ WHITESPACE@6862..6863 " "
+ PARAM@6863..6866
+ DESTRUCT_FULL@6863..6866
+ NAME@6863..6866
+ IDENT@6863..6866 "acc"
+ R_PAREN@6866..6867 ")"
+ WHITESPACE@6867..6868 " "
+ ASSIGN@6868..6869 "="
+ WHITESPACE@6869..6876 "\n "
+ EXPR_IF_THEN_ELSE@6876..7289
+ IF_KW@6876..6878 "if"
+ WHITESPACE@6878..6879 " "
+ EXPR_BINARY@6879..6897
+ LHS_EXPR@6879..6880
+ EXPR_VAR@6879..6880
+ NAME@6879..6880
+ IDENT@6879..6880 "i"
+ WHITESPACE@6880..6881 " "
+ GE@6881..6883 ">="
+ WHITESPACE@6883..6884 " "
+ EXPR_APPLY@6884..6897
+ EXPR_INDEX@6884..6894
+ EXPR_VAR@6884..6887
+ NAME@6884..6887
+ IDENT@6884..6887 "std"
+ DOT@6887..6888 "."
+ NAME@6888..6894
+ IDENT@6888..6894 "length"
+ ARGS_DESC@6894..6897
+ L_PAREN@6894..6895 "("
+ ARG@6895..6896
+ EXPR_VAR@6895..6896
+ NAME@6895..6896
+ IDENT@6895..6896 "a"
+ R_PAREN@6896..6897 ")"
+ WHITESPACE@6897..6898 " "
+ THEN_KW@6898..6902 "then"
+ WHITESPACE@6902..6911 "\n "
+ TRUE_EXPR@6911..6922
+ EXPR_BINARY@6911..6922
+ LHS_EXPR@6911..6914
+ EXPR_VAR@6911..6914
+ NAME@6911..6914
+ IDENT@6911..6914 "acc"
+ WHITESPACE@6914..6915 " "
+ PLUS@6915..6916 "+"
+ WHITESPACE@6916..6917 " "
+ EXPR_SLICE@6917..6922
+ EXPR_VAR@6917..6918
+ NAME@6917..6918
+ IDENT@6917..6918 "b"
+ SLICE_DESC@6918..6922
+ L_BRACK@6918..6919 "["
+ EXPR_VAR@6919..6920
+ NAME@6919..6920
+ IDENT@6919..6920 "j"
+ COLON@6920..6921 ":"
+ R_BRACK@6921..6922 "]"
+ WHITESPACE@6922..6929 "\n "
+ ELSE_KW@6929..6933 "else"
+ WHITESPACE@6933..6934 " "
+ FALSE_EXPR@6934..7289
+ EXPR_IF_THEN_ELSE@6934..7289
+ IF_KW@6934..6936 "if"
+ WHITESPACE@6936..6937 " "
+ EXPR_BINARY@6937..6955
+ LHS_EXPR@6937..6938
+ EXPR_VAR@6937..6938
+ NAME@6937..6938
+ IDENT@6937..6938 "j"
+ WHITESPACE@6938..6939 " "
+ GE@6939..6941 ">="
+ WHITESPACE@6941..6942 " "
+ EXPR_APPLY@6942..6955
+ EXPR_INDEX@6942..6952
+ EXPR_VAR@6942..6945
+ NAME@6942..6945
+ IDENT@6942..6945 "std"
+ DOT@6945..6946 "."
+ NAME@6946..6952
+ IDENT@6946..6952 "length"
+ ARGS_DESC@6952..6955
+ L_PAREN@6952..6953 "("
+ ARG@6953..6954
+ EXPR_VAR@6953..6954
+ NAME@6953..6954
+ IDENT@6953..6954 "b"
+ R_PAREN@6954..6955 ")"
+ WHITESPACE@6955..6956 " "
+ THEN_KW@6956..6960 "then"
+ WHITESPACE@6960..6969 "\n "
+ TRUE_EXPR@6969..6980
+ EXPR_BINARY@6969..6980
+ LHS_EXPR@6969..6972
+ EXPR_VAR@6969..6972
+ NAME@6969..6972
+ IDENT@6969..6972 "acc"
+ WHITESPACE@6972..6973 " "
+ PLUS@6973..6974 "+"
+ WHITESPACE@6974..6975 " "
+ EXPR_SLICE@6975..6980
+ EXPR_VAR@6975..6976
+ NAME@6975..6976
+ IDENT@6975..6976 "a"
+ SLICE_DESC@6976..6980
+ L_BRACK@6976..6977 "["
+ EXPR_VAR@6977..6978
+ NAME@6977..6978
+ IDENT@6977..6978 "i"
+ COLON@6978..6979 ":"
+ R_BRACK@6979..6980 "]"
+ WHITESPACE@6980..6987 "\n "
+ ELSE_KW@6987..6991 "else"
+ WHITESPACE@6991..7000 "\n "
+ FALSE_EXPR@7000..7289
+ EXPR_LOCAL@7000..7289
+ LOCAL_KW@7000..7005 "local"
+ WHITESPACE@7005..7006 " "
+ BIND_DESTRUCT@7006..7021
+ DESTRUCT_FULL@7006..7008
+ NAME@7006..7008
+ IDENT@7006..7008 "ak"
+ WHITESPACE@7008..7009 " "
+ ASSIGN@7009..7010 "="
+ WHITESPACE@7010..7011 " "
+ EXPR_APPLY@7011..7021
+ EXPR_VAR@7011..7015
+ NAME@7011..7015
+ IDENT@7011..7015 "keyF"
+ ARGS_DESC@7015..7021
+ L_PAREN@7015..7016 "("
+ ARG@7016..7020
+ EXPR_INDEX_EXPR@7016..7020
+ LHS_EXPR@7016..7017
+ EXPR_VAR@7016..7017
+ NAME@7016..7017
+ IDENT@7016..7017 "a"
+ L_BRACK@7017..7018 "["
+ EXPR_VAR@7018..7019
+ NAME@7018..7019
+ IDENT@7018..7019 "i"
+ R_BRACK@7019..7020 "]"
+ R_PAREN@7020..7021 ")"
+ SEMI@7021..7022 ";"
+ WHITESPACE@7022..7031 "\n "
+ EXPR_LOCAL@7031..7289
+ LOCAL_KW@7031..7036 "local"
+ WHITESPACE@7036..7037 " "
+ BIND_DESTRUCT@7037..7052
+ DESTRUCT_FULL@7037..7039
+ NAME@7037..7039
+ IDENT@7037..7039 "bk"
+ WHITESPACE@7039..7040 " "
+ ASSIGN@7040..7041 "="
+ WHITESPACE@7041..7042 " "
+ EXPR_APPLY@7042..7052
+ EXPR_VAR@7042..7046
+ NAME@7042..7046
+ IDENT@7042..7046 "keyF"
+ ARGS_DESC@7046..7052
+ L_PAREN@7046..7047 "("
+ ARG@7047..7051
+ EXPR_INDEX_EXPR@7047..7051
+ LHS_EXPR@7047..7048
+ EXPR_VAR@7047..7048
+ NAME@7047..7048
+ IDENT@7047..7048 "b"
+ L_BRACK@7048..7049 "["
+ EXPR_VAR@7049..7050
+ NAME@7049..7050
+ IDENT@7049..7050 "j"
+ R_BRACK@7050..7051 "]"
+ R_PAREN@7051..7052 ")"
+ SEMI@7052..7053 ";"
+ WHITESPACE@7053..7062 "\n "
+ EXPR_IF_THEN_ELSE@7062..7289
+ IF_KW@7062..7064 "if"
+ WHITESPACE@7064..7065 " "
+ EXPR_BINARY@7065..7073
+ LHS_EXPR@7065..7067
+ EXPR_VAR@7065..7067
+ NAME@7065..7067
+ IDENT@7065..7067 "ak"
+ WHITESPACE@7067..7068 " "
+ EQ@7068..7070 "=="
+ WHITESPACE@7070..7071 " "
+ EXPR_VAR@7071..7073
+ NAME@7071..7073
+ IDENT@7071..7073 "bk"
+ WHITESPACE@7073..7074 " "
+ THEN_KW@7074..7078 "then"
+ WHITESPACE@7078..7089 "\n "
+ TRUE_EXPR@7089..7137
+ EXPR_APPLY@7089..7137
+ EXPR_VAR@7089..7092
+ NAME@7089..7092
+ IDENT@7089..7092 "aux"
+ ARGS_DESC@7092..7137
+ L_PAREN@7092..7093 "("
+ ARG@7093..7094
+ EXPR_VAR@7093..7094
+ NAME@7093..7094
+ IDENT@7093..7094 "a"
+ COMMA@7094..7095 ","
+ WHITESPACE@7095..7096 " "
+ ARG@7096..7097
+ EXPR_VAR@7096..7097
+ NAME@7096..7097
+ IDENT@7096..7097 "b"
+ COMMA@7097..7098 ","
+ WHITESPACE@7098..7099 " "
+ ARG@7099..7104
+ EXPR_BINARY@7099..7104
+ LHS_EXPR@7099..7100
+ EXPR_VAR@7099..7100
+ NAME@7099..7100
+ IDENT@7099..7100 "i"
+ WHITESPACE@7100..7101 " "
+ PLUS@7101..7102 "+"
+ WHITESPACE@7102..7103 " "
+ EXPR_NUMBER@7103..7104
+ FLOAT@7103..7104 "1"
+ COMMA@7104..7105 ","
+ WHITESPACE@7105..7106 " "
+ ARG@7106..7111
+ EXPR_BINARY@7106..7111
+ LHS_EXPR@7106..7107
+ EXPR_VAR@7106..7107
+ NAME@7106..7107
+ IDENT@7106..7107 "j"
+ WHITESPACE@7107..7108 " "
+ PLUS@7108..7109 "+"
+ WHITESPACE@7109..7110 " "
+ EXPR_NUMBER@7110..7111
+ FLOAT@7110..7111 "1"
+ COMMA@7111..7112 ","
+ WHITESPACE@7112..7113 " "
+ ARG@7113..7125
+ EXPR_BINARY@7113..7125
+ LHS_EXPR@7113..7116
+ EXPR_VAR@7113..7116
+ NAME@7113..7116
+ IDENT@7113..7116 "acc"
+ WHITESPACE@7116..7117 " "
+ PLUS@7117..7118 "+"
+ WHITESPACE@7118..7119 " "
+ EXPR_ARRAY@7119..7125
+ L_BRACK@7119..7120 "["
+ EXPR_INDEX_EXPR@7120..7124
+ LHS_EXPR@7120..7121
+ EXPR_VAR@7120..7121
+ NAME@7120..7121
+ IDENT@7120..7121 "a"
+ L_BRACK@7121..7122 "["
+ EXPR_VAR@7122..7123
+ NAME@7122..7123
+ IDENT@7122..7123 "i"
+ R_BRACK@7123..7124 "]"
+ R_BRACK@7124..7125 "]"
+ R_PAREN@7125..7126 ")"
+ WHITESPACE@7126..7127 " "
+ TAILSTRICT_KW@7127..7137 "tailstrict"
+ WHITESPACE@7137..7146 "\n "
+ ELSE_KW@7146..7150 "else"
+ WHITESPACE@7150..7151 " "
+ FALSE_EXPR@7151..7289
+ EXPR_IF_THEN_ELSE@7151..7289
+ IF_KW@7151..7153 "if"
+ WHITESPACE@7153..7154 " "
+ EXPR_BINARY@7154..7161
+ LHS_EXPR@7154..7156
+ EXPR_VAR@7154..7156
+ NAME@7154..7156
+ IDENT@7154..7156 "ak"
+ WHITESPACE@7156..7157 " "
+ LT@7157..7158 "<"
+ WHITESPACE@7158..7159 " "
+ EXPR_VAR@7159..7161
+ NAME@7159..7161
+ IDENT@7159..7161 "bk"
+ WHITESPACE@7161..7162 " "
+ THEN_KW@7162..7166 "then"
+ WHITESPACE@7166..7177 "\n "
+ TRUE_EXPR@7177..7221
+ EXPR_APPLY@7177..7221
+ EXPR_VAR@7177..7180
+ NAME@7177..7180
+ IDENT@7177..7180 "aux"
+ ARGS_DESC@7180..7221
+ L_PAREN@7180..7181 "("
+ ARG@7181..7182
+ EXPR_VAR@7181..7182
+ NAME@7181..7182
+ IDENT@7181..7182 "a"
+ COMMA@7182..7183 ","
+ WHITESPACE@7183..7184 " "
+ ARG@7184..7185
+ EXPR_VAR@7184..7185
+ NAME@7184..7185
+ IDENT@7184..7185 "b"
+ COMMA@7185..7186 ","
+ WHITESPACE@7186..7187 " "
+ ARG@7187..7192
+ EXPR_BINARY@7187..7192
+ LHS_EXPR@7187..7188
+ EXPR_VAR@7187..7188
+ NAME@7187..7188
+ IDENT@7187..7188 "i"
+ WHITESPACE@7188..7189 " "
+ PLUS@7189..7190 "+"
+ WHITESPACE@7190..7191 " "
+ EXPR_NUMBER@7191..7192
+ FLOAT@7191..7192 "1"
+ COMMA@7192..7193 ","
+ WHITESPACE@7193..7194 " "
+ ARG@7194..7195
+ EXPR_VAR@7194..7195
+ NAME@7194..7195
+ IDENT@7194..7195 "j"
+ COMMA@7195..7196 ","
+ WHITESPACE@7196..7197 " "
+ ARG@7197..7209
+ EXPR_BINARY@7197..7209
+ LHS_EXPR@7197..7200
+ EXPR_VAR@7197..7200
+ NAME@7197..7200
+ IDENT@7197..7200 "acc"
+ WHITESPACE@7200..7201 " "
+ PLUS@7201..7202 "+"
+ WHITESPACE@7202..7203 " "
+ EXPR_ARRAY@7203..7209
+ L_BRACK@7203..7204 "["
+ EXPR_INDEX_EXPR@7204..7208
+ LHS_EXPR@7204..7205
+ EXPR_VAR@7204..7205
+ NAME@7204..7205
+ IDENT@7204..7205 "a"
+ L_BRACK@7205..7206 "["
+ EXPR_VAR@7206..7207
+ NAME@7206..7207
+ IDENT@7206..7207 "i"
+ R_BRACK@7207..7208 "]"
+ R_BRACK@7208..7209 "]"
+ R_PAREN@7209..7210 ")"
+ WHITESPACE@7210..7211 " "
+ TAILSTRICT_KW@7211..7221 "tailstrict"
+ WHITESPACE@7221..7230 "\n "
+ ELSE_KW@7230..7234 "else"
+ WHITESPACE@7234..7245 "\n "
+ FALSE_EXPR@7245..7289
+ EXPR_APPLY@7245..7289
+ EXPR_VAR@7245..7248
+ NAME@7245..7248
+ IDENT@7245..7248 "aux"
+ ARGS_DESC@7248..7289
+ L_PAREN@7248..7249 "("
+ ARG@7249..7250
+ EXPR_VAR@7249..7250
+ NAME@7249..7250
+ IDENT@7249..7250 "a"
+ COMMA@7250..7251 ","
+ WHITESPACE@7251..7252 " "
+ ARG@7252..7253
+ EXPR_VAR@7252..7253
+ NAME@7252..7253
+ IDENT@7252..7253 "b"
+ COMMA@7253..7254 ","
+ WHITESPACE@7254..7255 " "
+ ARG@7255..7256
+ EXPR_VAR@7255..7256
+ NAME@7255..7256
+ IDENT@7255..7256 "i"
+ COMMA@7256..7257 ","
+ WHITESPACE@7257..7258 " "
+ ARG@7258..7263
+ EXPR_BINARY@7258..7263
+ LHS_EXPR@7258..7259
+ EXPR_VAR@7258..7259
+ NAME@7258..7259
+ IDENT@7258..7259 "j"
+ WHITESPACE@7259..7260 " "
+ PLUS@7260..7261 "+"
+ WHITESPACE@7261..7262 " "
+ EXPR_NUMBER@7262..7263
+ FLOAT@7262..7263 "1"
+ COMMA@7263..7264 ","
+ WHITESPACE@7264..7265 " "
+ ARG@7265..7277
+ EXPR_BINARY@7265..7277
+ LHS_EXPR@7265..7268
+ EXPR_VAR@7265..7268
+ NAME@7265..7268
+ IDENT@7265..7268 "acc"
+ WHITESPACE@7268..7269 " "
+ PLUS@7269..7270 "+"
+ WHITESPACE@7270..7271 " "
+ EXPR_ARRAY@7271..7277
+ L_BRACK@7271..7272 "["
+ EXPR_INDEX_EXPR@7272..7276
+ LHS_EXPR@7272..7273
+ EXPR_VAR@7272..7273
+ NAME@7272..7273
+ IDENT@7272..7273 "b"
+ L_BRACK@7273..7274 "["
+ EXPR_VAR@7274..7275
+ NAME@7274..7275
+ IDENT@7274..7275 "j"
+ R_BRACK@7275..7276 "]"
+ R_BRACK@7276..7277 "]"
+ R_PAREN@7277..7278 ")"
+ WHITESPACE@7278..7279 " "
+ TAILSTRICT_KW@7279..7289 "tailstrict"
+ SEMI@7289..7290 ";"
+ WHITESPACE@7290..7295 "\n "
+ EXPR_APPLY@7295..7314
+ EXPR_VAR@7295..7298
+ NAME@7295..7298
+ IDENT@7295..7298 "aux"
+ ARGS_DESC@7298..7314
+ L_PAREN@7298..7299 "("
+ ARG@7299..7300
+ EXPR_VAR@7299..7300
+ NAME@7299..7300
+ IDENT@7299..7300 "a"
+ COMMA@7300..7301 ","
+ WHITESPACE@7301..7302 " "
+ ARG@7302..7303
+ EXPR_VAR@7302..7303
+ NAME@7302..7303
+ IDENT@7302..7303 "b"
+ COMMA@7303..7304 ","
+ WHITESPACE@7304..7305 " "
+ ARG@7305..7306
+ EXPR_NUMBER@7305..7306
+ FLOAT@7305..7306 "0"
+ COMMA@7306..7307 ","
+ WHITESPACE@7307..7308 " "
+ ARG@7308..7309
+ EXPR_NUMBER@7308..7309
+ FLOAT@7308..7309 "0"
+ COMMA@7309..7310 ","
+ WHITESPACE@7310..7311 " "
+ ARG@7311..7313
+ EXPR_ARRAY@7311..7313
+ L_BRACK@7311..7312 "["
+ R_BRACK@7312..7313 "]"
+ R_PAREN@7313..7314 ")"
+ COMMA@7314..7315 ","
+ WHITESPACE@7315..7319 "\n\n "
+ MEMBER_FIELD@7319..7741
+ FIELD_METHOD@7319..7741
+ FIELD_NAME_FIXED@7319..7327
+ NAME@7319..7327
+ IDENT@7319..7327 "setInter"
+ PARAMS_DESC@7327..7342
+ L_PAREN@7327..7328 "("
+ PARAM@7328..7329
+ DESTRUCT_FULL@7328..7329
+ NAME@7328..7329
+ IDENT@7328..7329 "a"
+ COMMA@7329..7330 ","
+ WHITESPACE@7330..7331 " "
+ PARAM@7331..7332
+ DESTRUCT_FULL@7331..7332
+ NAME@7331..7332
+ IDENT@7331..7332 "b"
+ COMMA@7332..7333 ","
+ WHITESPACE@7333..7334 " "
+ PARAM@7334..7341
+ DESTRUCT_FULL@7334..7338
+ NAME@7334..7338
+ IDENT@7334..7338 "keyF"
+ ASSIGN@7338..7339 "="
+ EXPR_VAR@7339..7341
+ NAME@7339..7341
+ IDENT@7339..7341 "id"
+ R_PAREN@7341..7342 ")"
+ COLONCOLON@7342..7344 "::"
+ WHITESPACE@7344..7349 "\n "
+ EXPR_LOCAL@7349..7741
+ LOCAL_KW@7349..7354 "local"
+ WHITESPACE@7354..7355 " "
+ BIND_FUNCTION@7355..7705
+ NAME@7355..7358
+ IDENT@7355..7358 "aux"
+ PARAMS_DESC@7358..7375
+ L_PAREN@7358..7359 "("
+ PARAM@7359..7360
+ DESTRUCT_FULL@7359..7360
+ NAME@7359..7360
+ IDENT@7359..7360 "a"
+ COMMA@7360..7361 ","
+ WHITESPACE@7361..7362 " "
+ PARAM@7362..7363
+ DESTRUCT_FULL@7362..7363
+ NAME@7362..7363
+ IDENT@7362..7363 "b"
+ COMMA@7363..7364 ","
+ WHITESPACE@7364..7365 " "
+ PARAM@7365..7366
+ DESTRUCT_FULL@7365..7366
+ NAME@7365..7366
+ IDENT@7365..7366 "i"
+ COMMA@7366..7367 ","
+ WHITESPACE@7367..7368 " "
+ PARAM@7368..7369
+ DESTRUCT_FULL@7368..7369
+ NAME@7368..7369
+ IDENT@7368..7369 "j"
+ COMMA@7369..7370 ","
+ WHITESPACE@7370..7371 " "
+ PARAM@7371..7374
+ DESTRUCT_FULL@7371..7374
+ NAME@7371..7374
+ IDENT@7371..7374 "acc"
+ R_PAREN@7374..7375 ")"
+ WHITESPACE@7375..7376 " "
+ ASSIGN@7376..7377 "="
+ WHITESPACE@7377..7384 "\n "
+ EXPR_IF_THEN_ELSE@7384..7705
+ IF_KW@7384..7386 "if"
+ WHITESPACE@7386..7387 " "
+ EXPR_BINARY@7387..7427
+ LHS_EXPR@7387..7405
+ EXPR_BINARY@7387..7405
+ LHS_EXPR@7387..7388
+ EXPR_VAR@7387..7388
+ NAME@7387..7388
+ IDENT@7387..7388 "i"
+ WHITESPACE@7388..7389 " "
+ GE@7389..7391 ">="
+ WHITESPACE@7391..7392 " "
+ EXPR_APPLY@7392..7405
+ EXPR_INDEX@7392..7402
+ EXPR_VAR@7392..7395
+ NAME@7392..7395
+ IDENT@7392..7395 "std"
+ DOT@7395..7396 "."
+ NAME@7396..7402
+ IDENT@7396..7402 "length"
+ ARGS_DESC@7402..7405
+ L_PAREN@7402..7403 "("
+ ARG@7403..7404
+ EXPR_VAR@7403..7404
+ NAME@7403..7404
+ IDENT@7403..7404 "a"
+ R_PAREN@7404..7405 ")"
+ WHITESPACE@7405..7406 " "
+ OR@7406..7408 "||"
+ WHITESPACE@7408..7409 " "
+ EXPR_BINARY@7409..7427
+ LHS_EXPR@7409..7410
+ EXPR_VAR@7409..7410
+ NAME@7409..7410
+ IDENT@7409..7410 "j"
+ WHITESPACE@7410..7411 " "
+ GE@7411..7413 ">="
+ WHITESPACE@7413..7414 " "
+ EXPR_APPLY@7414..7427
+ EXPR_INDEX@7414..7424
+ EXPR_VAR@7414..7417
+ NAME@7414..7417
+ IDENT@7414..7417 "std"
+ DOT@7417..7418 "."
+ NAME@7418..7424
+ IDENT@7418..7424 "length"
+ ARGS_DESC@7424..7427
+ L_PAREN@7424..7425 "("
+ ARG@7425..7426
+ EXPR_VAR@7425..7426
+ NAME@7425..7426
+ IDENT@7425..7426 "b"
+ R_PAREN@7426..7427 ")"
+ WHITESPACE@7427..7428 " "
+ THEN_KW@7428..7432 "then"
+ WHITESPACE@7432..7441 "\n "
+ TRUE_EXPR@7441..7444
+ EXPR_VAR@7441..7444
+ NAME@7441..7444
+ IDENT@7441..7444 "acc"
+ WHITESPACE@7444..7451 "\n "
+ ELSE_KW@7451..7455 "else"
+ WHITESPACE@7455..7464 "\n "
+ FALSE_EXPR@7464..7705
+ EXPR_IF_THEN_ELSE@7464..7705
+ IF_KW@7464..7466 "if"
+ WHITESPACE@7466..7467 " "
+ EXPR_BINARY@7467..7491
+ LHS_EXPR@7467..7477
+ EXPR_APPLY@7467..7477
+ EXPR_VAR@7467..7471
+ NAME@7467..7471
+ IDENT@7467..7471 "keyF"
+ ARGS_DESC@7471..7477
+ L_PAREN@7471..7472 "("
+ ARG@7472..7476
+ EXPR_INDEX_EXPR@7472..7476
+ LHS_EXPR@7472..7473
+ EXPR_VAR@7472..7473
+ NAME@7472..7473
+ IDENT@7472..7473 "a"
+ L_BRACK@7473..7474 "["
+ EXPR_VAR@7474..7475
+ NAME@7474..7475
+ IDENT@7474..7475 "i"
+ R_BRACK@7475..7476 "]"
+ R_PAREN@7476..7477 ")"
+ WHITESPACE@7477..7478 " "
+ EQ@7478..7480 "=="
+ WHITESPACE@7480..7481 " "
+ EXPR_APPLY@7481..7491
+ EXPR_VAR@7481..7485
+ NAME@7481..7485
+ IDENT@7481..7485 "keyF"
+ ARGS_DESC@7485..7491
+ L_PAREN@7485..7486 "("
+ ARG@7486..7490
+ EXPR_INDEX_EXPR@7486..7490
+ LHS_EXPR@7486..7487
+ EXPR_VAR@7486..7487
+ NAME@7486..7487
+ IDENT@7486..7487 "b"
+ L_BRACK@7487..7488 "["
+ EXPR_VAR@7488..7489
+ NAME@7488..7489
+ IDENT@7488..7489 "j"
+ R_BRACK@7489..7490 "]"
+ R_PAREN@7490..7491 ")"
+ WHITESPACE@7491..7492 " "
+ THEN_KW@7492..7496 "then"
+ WHITESPACE@7496..7507 "\n "
+ TRUE_EXPR@7507..7555
+ EXPR_APPLY@7507..7555
+ EXPR_VAR@7507..7510
+ NAME@7507..7510
+ IDENT@7507..7510 "aux"
+ ARGS_DESC@7510..7555
+ L_PAREN@7510..7511 "("
+ ARG@7511..7512
+ EXPR_VAR@7511..7512
+ NAME@7511..7512
+ IDENT@7511..7512 "a"
+ COMMA@7512..7513 ","
+ WHITESPACE@7513..7514 " "
+ ARG@7514..7515
+ EXPR_VAR@7514..7515
+ NAME@7514..7515
+ IDENT@7514..7515 "b"
+ COMMA@7515..7516 ","
+ WHITESPACE@7516..7517 " "
+ ARG@7517..7522
+ EXPR_BINARY@7517..7522
+ LHS_EXPR@7517..7518
+ EXPR_VAR@7517..7518
+ NAME@7517..7518
+ IDENT@7517..7518 "i"
+ WHITESPACE@7518..7519 " "
+ PLUS@7519..7520 "+"
+ WHITESPACE@7520..7521 " "
+ EXPR_NUMBER@7521..7522
+ FLOAT@7521..7522 "1"
+ COMMA@7522..7523 ","
+ WHITESPACE@7523..7524 " "
+ ARG@7524..7529
+ EXPR_BINARY@7524..7529
+ LHS_EXPR@7524..7525
+ EXPR_VAR@7524..7525
+ NAME@7524..7525
+ IDENT@7524..7525 "j"
+ WHITESPACE@7525..7526 " "
+ PLUS@7526..7527 "+"
+ WHITESPACE@7527..7528 " "
+ EXPR_NUMBER@7528..7529
+ FLOAT@7528..7529 "1"
+ COMMA@7529..7530 ","
+ WHITESPACE@7530..7531 " "
+ ARG@7531..7543
+ EXPR_BINARY@7531..7543
+ LHS_EXPR@7531..7534
+ EXPR_VAR@7531..7534
+ NAME@7531..7534
+ IDENT@7531..7534 "acc"
+ WHITESPACE@7534..7535 " "
+ PLUS@7535..7536 "+"
+ WHITESPACE@7536..7537 " "
+ EXPR_ARRAY@7537..7543
+ L_BRACK@7537..7538 "["
+ EXPR_INDEX_EXPR@7538..7542
+ LHS_EXPR@7538..7539
+ EXPR_VAR@7538..7539
+ NAME@7538..7539
+ IDENT@7538..7539 "a"
+ L_BRACK@7539..7540 "["
+ EXPR_VAR@7540..7541
+ NAME@7540..7541
+ IDENT@7540..7541 "i"
+ R_BRACK@7541..7542 "]"
+ R_BRACK@7542..7543 "]"
+ R_PAREN@7543..7544 ")"
+ WHITESPACE@7544..7545 " "
+ TAILSTRICT_KW@7545..7555 "tailstrict"
+ WHITESPACE@7555..7564 "\n "
+ ELSE_KW@7564..7568 "else"
+ WHITESPACE@7568..7569 " "
+ FALSE_EXPR@7569..7705
+ EXPR_IF_THEN_ELSE@7569..7705
+ IF_KW@7569..7571 "if"
+ WHITESPACE@7571..7572 " "
+ EXPR_BINARY@7572..7595
+ LHS_EXPR@7572..7582
+ EXPR_APPLY@7572..7582
+ EXPR_VAR@7572..7576
+ NAME@7572..7576
+ IDENT@7572..7576 "keyF"
+ ARGS_DESC@7576..7582
+ L_PAREN@7576..7577 "("
+ ARG@7577..7581
+ EXPR_INDEX_EXPR@7577..7581
+ LHS_EXPR@7577..7578
+ EXPR_VAR@7577..7578
+ NAME@7577..7578
+ IDENT@7577..7578 "a"
+ L_BRACK@7578..7579 "["
+ EXPR_VAR@7579..7580
+ NAME@7579..7580
+ IDENT@7579..7580 "i"
+ R_BRACK@7580..7581 "]"
+ R_PAREN@7581..7582 ")"
+ WHITESPACE@7582..7583 " "
+ LT@7583..7584 "<"
+ WHITESPACE@7584..7585 " "
+ EXPR_APPLY@7585..7595
+ EXPR_VAR@7585..7589
+ NAME@7585..7589
+ IDENT@7585..7589 "keyF"
+ ARGS_DESC@7589..7595
+ L_PAREN@7589..7590 "("
+ ARG@7590..7594
+ EXPR_INDEX_EXPR@7590..7594
+ LHS_EXPR@7590..7591
+ EXPR_VAR@7590..7591
+ NAME@7590..7591
+ IDENT@7590..7591 "b"
+ L_BRACK@7591..7592 "["
+ EXPR_VAR@7592..7593
+ NAME@7592..7593
+ IDENT@7592..7593 "j"
+ R_BRACK@7593..7594 "]"
+ R_PAREN@7594..7595 ")"
+ WHITESPACE@7595..7596 " "
+ THEN_KW@7596..7600 "then"
+ WHITESPACE@7600..7611 "\n "
+ TRUE_EXPR@7611..7646
+ EXPR_APPLY@7611..7646
+ EXPR_VAR@7611..7614
+ NAME@7611..7614
+ IDENT@7611..7614 "aux"
+ ARGS_DESC@7614..7646
+ L_PAREN@7614..7615 "("
+ ARG@7615..7616
+ EXPR_VAR@7615..7616
+ NAME@7615..7616
+ IDENT@7615..7616 "a"
+ COMMA@7616..7617 ","
+ WHITESPACE@7617..7618 " "
+ ARG@7618..7619
+ EXPR_VAR@7618..7619
+ NAME@7618..7619
+ IDENT@7618..7619 "b"
+ COMMA@7619..7620 ","
+ WHITESPACE@7620..7621 " "
+ ARG@7621..7626
+ EXPR_BINARY@7621..7626
+ LHS_EXPR@7621..7622
+ EXPR_VAR@7621..7622
+ NAME@7621..7622
+ IDENT@7621..7622 "i"
+ WHITESPACE@7622..7623 " "
+ PLUS@7623..7624 "+"
+ WHITESPACE@7624..7625 " "
+ EXPR_NUMBER@7625..7626
+ FLOAT@7625..7626 "1"
+ COMMA@7626..7627 ","
+ WHITESPACE@7627..7628 " "
+ ARG@7628..7629
+ EXPR_VAR@7628..7629
+ NAME@7628..7629
+ IDENT@7628..7629 "j"
+ COMMA@7629..7630 ","
+ WHITESPACE@7630..7631 " "
+ ARG@7631..7634
+ EXPR_VAR@7631..7634
+ NAME@7631..7634
+ IDENT@7631..7634 "acc"
+ R_PAREN@7634..7635 ")"
+ WHITESPACE@7635..7636 " "
+ TAILSTRICT_KW@7636..7646 "tailstrict"
+ WHITESPACE@7646..7655 "\n "
+ ELSE_KW@7655..7659 "else"
+ WHITESPACE@7659..7670 "\n "
+ FALSE_EXPR@7670..7705
+ EXPR_APPLY@7670..7705
+ EXPR_VAR@7670..7673
+ NAME@7670..7673
+ IDENT@7670..7673 "aux"
+ ARGS_DESC@7673..7705
+ L_PAREN@7673..7674 "("
+ ARG@7674..7675
+ EXPR_VAR@7674..7675
+ NAME@7674..7675
+ IDENT@7674..7675 "a"
+ COMMA@7675..7676 ","
+ WHITESPACE@7676..7677 " "
+ ARG@7677..7678
+ EXPR_VAR@7677..7678
+ NAME@7677..7678
+ IDENT@7677..7678 "b"
+ COMMA@7678..7679 ","
+ WHITESPACE@7679..7680 " "
+ ARG@7680..7681
+ EXPR_VAR@7680..7681
+ NAME@7680..7681
+ IDENT@7680..7681 "i"
+ COMMA@7681..7682 ","
+ WHITESPACE@7682..7683 " "
+ ARG@7683..7688
+ EXPR_BINARY@7683..7688
+ LHS_EXPR@7683..7684
+ EXPR_VAR@7683..7684
+ NAME@7683..7684
+ IDENT@7683..7684 "j"
+ WHITESPACE@7684..7685 " "
+ PLUS@7685..7686 "+"
+ WHITESPACE@7686..7687 " "
+ EXPR_NUMBER@7687..7688
+ FLOAT@7687..7688 "1"
+ COMMA@7688..7689 ","
+ WHITESPACE@7689..7690 " "
+ ARG@7690..7693
+ EXPR_VAR@7690..7693
+ NAME@7690..7693
+ IDENT@7690..7693 "acc"
+ R_PAREN@7693..7694 ")"
+ WHITESPACE@7694..7695 " "
+ TAILSTRICT_KW@7695..7705 "tailstrict"
+ SEMI@7705..7706 ";"
+ WHITESPACE@7706..7711 "\n "
+ EXPR_APPLY@7711..7741
+ EXPR_VAR@7711..7714
+ NAME@7711..7714
+ IDENT@7711..7714 "aux"
+ ARGS_DESC@7714..7741
+ L_PAREN@7714..7715 "("
+ ARG@7715..7716
+ EXPR_VAR@7715..7716
+ NAME@7715..7716
+ IDENT@7715..7716 "a"
+ COMMA@7716..7717 ","
+ WHITESPACE@7717..7718 " "
+ ARG@7718..7719
+ EXPR_VAR@7718..7719
+ NAME@7718..7719
+ IDENT@7718..7719 "b"
+ COMMA@7719..7720 ","
+ WHITESPACE@7720..7721 " "
+ ARG@7721..7722
+ EXPR_NUMBER@7721..7722
+ FLOAT@7721..7722 "0"
+ COMMA@7722..7723 ","
+ WHITESPACE@7723..7724 " "
+ ARG@7724..7725
+ EXPR_NUMBER@7724..7725
+ FLOAT@7724..7725 "0"
+ COMMA@7725..7726 ","
+ WHITESPACE@7726..7727 " "
+ ARG@7727..7729
+ EXPR_ARRAY@7727..7729
+ L_BRACK@7727..7728 "["
+ R_BRACK@7728..7729 "]"
+ R_PAREN@7729..7730 ")"
+ WHITESPACE@7730..7731 " "
+ TAILSTRICT_KW@7731..7741 "tailstrict"
+ COMMA@7741..7742 ","
+ WHITESPACE@7742..7746 "\n\n "
+ MEMBER_FIELD@7746..8203
+ FIELD_METHOD@7746..8203
+ FIELD_NAME_FIXED@7746..7753
+ NAME@7746..7753
+ IDENT@7746..7753 "setDiff"
+ PARAMS_DESC@7753..7768
+ L_PAREN@7753..7754 "("
+ PARAM@7754..7755
+ DESTRUCT_FULL@7754..7755
+ NAME@7754..7755
+ IDENT@7754..7755 "a"
+ COMMA@7755..7756 ","
+ WHITESPACE@7756..7757 " "
+ PARAM@7757..7758
+ DESTRUCT_FULL@7757..7758
+ NAME@7757..7758
+ IDENT@7757..7758 "b"
+ COMMA@7758..7759 ","
+ WHITESPACE@7759..7760 " "
+ PARAM@7760..7767
+ DESTRUCT_FULL@7760..7764
+ NAME@7760..7764
+ IDENT@7760..7764 "keyF"
+ ASSIGN@7764..7765 "="
+ EXPR_VAR@7765..7767
+ NAME@7765..7767
+ IDENT@7765..7767 "id"
+ R_PAREN@7767..7768 ")"
+ COLONCOLON@7768..7770 "::"
+ WHITESPACE@7770..7775 "\n "
+ EXPR_LOCAL@7775..8203
+ LOCAL_KW@7775..7780 "local"
+ WHITESPACE@7780..7781 " "
+ BIND_FUNCTION@7781..8167
+ NAME@7781..7784
+ IDENT@7781..7784 "aux"
+ PARAMS_DESC@7784..7801
+ L_PAREN@7784..7785 "("
+ PARAM@7785..7786
+ DESTRUCT_FULL@7785..7786
+ NAME@7785..7786
+ IDENT@7785..7786 "a"
+ COMMA@7786..7787 ","
+ WHITESPACE@7787..7788 " "
+ PARAM@7788..7789
+ DESTRUCT_FULL@7788..7789
+ NAME@7788..7789
+ IDENT@7788..7789 "b"
+ COMMA@7789..7790 ","
+ WHITESPACE@7790..7791 " "
+ PARAM@7791..7792
+ DESTRUCT_FULL@7791..7792
+ NAME@7791..7792
+ IDENT@7791..7792 "i"
+ COMMA@7792..7793 ","
+ WHITESPACE@7793..7794 " "
+ PARAM@7794..7795
+ DESTRUCT_FULL@7794..7795
+ NAME@7794..7795
+ IDENT@7794..7795 "j"
+ COMMA@7795..7796 ","
+ WHITESPACE@7796..7797 " "
+ PARAM@7797..7800
+ DESTRUCT_FULL@7797..7800
+ NAME@7797..7800
+ IDENT@7797..7800 "acc"
+ R_PAREN@7800..7801 ")"
+ WHITESPACE@7801..7802 " "
+ ASSIGN@7802..7803 "="
+ WHITESPACE@7803..7810 "\n "
+ EXPR_IF_THEN_ELSE@7810..8167
+ IF_KW@7810..7812 "if"
+ WHITESPACE@7812..7813 " "
+ EXPR_BINARY@7813..7831
+ LHS_EXPR@7813..7814
+ EXPR_VAR@7813..7814
+ NAME@7813..7814
+ IDENT@7813..7814 "i"
+ WHITESPACE@7814..7815 " "
+ GE@7815..7817 ">="
+ WHITESPACE@7817..7818 " "
+ EXPR_APPLY@7818..7831
+ EXPR_INDEX@7818..7828
+ EXPR_VAR@7818..7821
+ NAME@7818..7821
+ IDENT@7818..7821 "std"
+ DOT@7821..7822 "."
+ NAME@7822..7828
+ IDENT@7822..7828 "length"
+ ARGS_DESC@7828..7831
+ L_PAREN@7828..7829 "("
+ ARG@7829..7830
+ EXPR_VAR@7829..7830
+ NAME@7829..7830
+ IDENT@7829..7830 "a"
+ R_PAREN@7830..7831 ")"
+ WHITESPACE@7831..7832 " "
+ THEN_KW@7832..7836 "then"
+ WHITESPACE@7836..7845 "\n "
+ TRUE_EXPR@7845..7848
+ EXPR_VAR@7845..7848
+ NAME@7845..7848
+ IDENT@7845..7848 "acc"
+ WHITESPACE@7848..7855 "\n "
+ ELSE_KW@7855..7859 "else"
+ WHITESPACE@7859..7860 " "
+ FALSE_EXPR@7860..8167
+ EXPR_IF_THEN_ELSE@7860..8167
+ IF_KW@7860..7862 "if"
+ WHITESPACE@7862..7863 " "
+ EXPR_BINARY@7863..7881
+ LHS_EXPR@7863..7864
+ EXPR_VAR@7863..7864
+ NAME@7863..7864
+ IDENT@7863..7864 "j"
+ WHITESPACE@7864..7865 " "
+ GE@7865..7867 ">="
+ WHITESPACE@7867..7868 " "
+ EXPR_APPLY@7868..7881
+ EXPR_INDEX@7868..7878
+ EXPR_VAR@7868..7871
+ NAME@7868..7871
+ IDENT@7868..7871 "std"
+ DOT@7871..7872 "."
+ NAME@7872..7878
+ IDENT@7872..7878 "length"
+ ARGS_DESC@7878..7881
+ L_PAREN@7878..7879 "("
+ ARG@7879..7880
+ EXPR_VAR@7879..7880
+ NAME@7879..7880
+ IDENT@7879..7880 "b"
+ R_PAREN@7880..7881 ")"
+ WHITESPACE@7881..7882 " "
+ THEN_KW@7882..7886 "then"
+ WHITESPACE@7886..7895 "\n "
+ TRUE_EXPR@7895..7906
+ EXPR_BINARY@7895..7906
+ LHS_EXPR@7895..7898
+ EXPR_VAR@7895..7898
+ NAME@7895..7898
+ IDENT@7895..7898 "acc"
+ WHITESPACE@7898..7899 " "
+ PLUS@7899..7900 "+"
+ WHITESPACE@7900..7901 " "
+ EXPR_SLICE@7901..7906
+ EXPR_VAR@7901..7902
+ NAME@7901..7902
+ IDENT@7901..7902 "a"
+ SLICE_DESC@7902..7906
+ L_BRACK@7902..7903 "["
+ EXPR_VAR@7903..7904
+ NAME@7903..7904
+ IDENT@7903..7904 "i"
+ COLON@7904..7905 ":"
+ R_BRACK@7905..7906 "]"
+ WHITESPACE@7906..7913 "\n "
+ ELSE_KW@7913..7917 "else"
+ WHITESPACE@7917..7926 "\n "
+ FALSE_EXPR@7926..8167
+ EXPR_IF_THEN_ELSE@7926..8167
+ IF_KW@7926..7928 "if"
+ WHITESPACE@7928..7929 " "
+ EXPR_BINARY@7929..7953
+ LHS_EXPR@7929..7939
+ EXPR_APPLY@7929..7939
+ EXPR_VAR@7929..7933
+ NAME@7929..7933
+ IDENT@7929..7933 "keyF"
+ ARGS_DESC@7933..7939
+ L_PAREN@7933..7934 "("
+ ARG@7934..7938
+ EXPR_INDEX_EXPR@7934..7938
+ LHS_EXPR@7934..7935
+ EXPR_VAR@7934..7935
+ NAME@7934..7935
+ IDENT@7934..7935 "a"
+ L_BRACK@7935..7936 "["
+ EXPR_VAR@7936..7937
+ NAME@7936..7937
+ IDENT@7936..7937 "i"
+ R_BRACK@7937..7938 "]"
+ R_PAREN@7938..7939 ")"
+ WHITESPACE@7939..7940 " "
+ EQ@7940..7942 "=="
+ WHITESPACE@7942..7943 " "
+ EXPR_APPLY@7943..7953
+ EXPR_VAR@7943..7947
+ NAME@7943..7947
+ IDENT@7943..7947 "keyF"
+ ARGS_DESC@7947..7953
+ L_PAREN@7947..7948 "("
+ ARG@7948..7952
+ EXPR_INDEX_EXPR@7948..7952
+ LHS_EXPR@7948..7949
+ EXPR_VAR@7948..7949
+ NAME@7948..7949
+ IDENT@7948..7949 "b"
+ L_BRACK@7949..7950 "["
+ EXPR_VAR@7950..7951
+ NAME@7950..7951
+ IDENT@7950..7951 "j"
+ R_BRACK@7951..7952 "]"
+ R_PAREN@7952..7953 ")"
+ WHITESPACE@7953..7954 " "
+ THEN_KW@7954..7958 "then"
+ WHITESPACE@7958..7969 "\n "
+ TRUE_EXPR@7969..8008
+ EXPR_APPLY@7969..8008
+ EXPR_VAR@7969..7972
+ NAME@7969..7972
+ IDENT@7969..7972 "aux"
+ ARGS_DESC@7972..8008
+ L_PAREN@7972..7973 "("
+ ARG@7973..7974
+ EXPR_VAR@7973..7974
+ NAME@7973..7974
+ IDENT@7973..7974 "a"
+ COMMA@7974..7975 ","
+ WHITESPACE@7975..7976 " "
+ ARG@7976..7977
+ EXPR_VAR@7976..7977
+ NAME@7976..7977
+ IDENT@7976..7977 "b"
+ COMMA@7977..7978 ","
+ WHITESPACE@7978..7979 " "
+ ARG@7979..7984
+ EXPR_BINARY@7979..7984
+ LHS_EXPR@7979..7980
+ EXPR_VAR@7979..7980
+ NAME@7979..7980
+ IDENT@7979..7980 "i"
+ WHITESPACE@7980..7981 " "
+ PLUS@7981..7982 "+"
+ WHITESPACE@7982..7983 " "
+ EXPR_NUMBER@7983..7984
+ FLOAT@7983..7984 "1"
+ COMMA@7984..7985 ","
+ WHITESPACE@7985..7986 " "
+ ARG@7986..7991
+ EXPR_BINARY@7986..7991
+ LHS_EXPR@7986..7987
+ EXPR_VAR@7986..7987
+ NAME@7986..7987
+ IDENT@7986..7987 "j"
+ WHITESPACE@7987..7988 " "
+ PLUS@7988..7989 "+"
+ WHITESPACE@7989..7990 " "
+ EXPR_NUMBER@7990..7991
+ FLOAT@7990..7991 "1"
+ COMMA@7991..7992 ","
+ WHITESPACE@7992..7993 " "
+ ARG@7993..7996
+ EXPR_VAR@7993..7996
+ NAME@7993..7996
+ IDENT@7993..7996 "acc"
+ R_PAREN@7996..7997 ")"
+ WHITESPACE@7997..7998 " "
+ TAILSTRICT_KW@7998..8008 "tailstrict"
+ WHITESPACE@8008..8017 "\n "
+ ELSE_KW@8017..8021 "else"
+ WHITESPACE@8021..8022 " "
+ FALSE_EXPR@8022..8167
+ EXPR_IF_THEN_ELSE@8022..8167
+ IF_KW@8022..8024 "if"
+ WHITESPACE@8024..8025 " "
+ EXPR_BINARY@8025..8048
+ LHS_EXPR@8025..8035
+ EXPR_APPLY@8025..8035
+ EXPR_VAR@8025..8029
+ NAME@8025..8029
+ IDENT@8025..8029 "keyF"
+ ARGS_DESC@8029..8035
+ L_PAREN@8029..8030 "("
+ ARG@8030..8034
+ EXPR_INDEX_EXPR@8030..8034
+ LHS_EXPR@8030..8031
+ EXPR_VAR@8030..8031
+ NAME@8030..8031
+ IDENT@8030..8031 "a"
+ L_BRACK@8031..8032 "["
+ EXPR_VAR@8032..8033
+ NAME@8032..8033
+ IDENT@8032..8033 "i"
+ R_BRACK@8033..8034 "]"
+ R_PAREN@8034..8035 ")"
+ WHITESPACE@8035..8036 " "
+ LT@8036..8037 "<"
+ WHITESPACE@8037..8038 " "
+ EXPR_APPLY@8038..8048
+ EXPR_VAR@8038..8042
+ NAME@8038..8042
+ IDENT@8038..8042 "keyF"
+ ARGS_DESC@8042..8048
+ L_PAREN@8042..8043 "("
+ ARG@8043..8047
+ EXPR_INDEX_EXPR@8043..8047
+ LHS_EXPR@8043..8044
+ EXPR_VAR@8043..8044
+ NAME@8043..8044
+ IDENT@8043..8044 "b"
+ L_BRACK@8044..8045 "["
+ EXPR_VAR@8045..8046
+ NAME@8045..8046
+ IDENT@8045..8046 "j"
+ R_BRACK@8046..8047 "]"
+ R_PAREN@8047..8048 ")"
+ WHITESPACE@8048..8049 " "
+ THEN_KW@8049..8053 "then"
+ WHITESPACE@8053..8064 "\n "
+ TRUE_EXPR@8064..8108
+ EXPR_APPLY@8064..8108
+ EXPR_VAR@8064..8067
+ NAME@8064..8067
+ IDENT@8064..8067 "aux"
+ ARGS_DESC@8067..8108
+ L_PAREN@8067..8068 "("
+ ARG@8068..8069
+ EXPR_VAR@8068..8069
+ NAME@8068..8069
+ IDENT@8068..8069 "a"
+ COMMA@8069..8070 ","
+ WHITESPACE@8070..8071 " "
+ ARG@8071..8072
+ EXPR_VAR@8071..8072
+ NAME@8071..8072
+ IDENT@8071..8072 "b"
+ COMMA@8072..8073 ","
+ WHITESPACE@8073..8074 " "
+ ARG@8074..8079
+ EXPR_BINARY@8074..8079
+ LHS_EXPR@8074..8075
+ EXPR_VAR@8074..8075
+ NAME@8074..8075
+ IDENT@8074..8075 "i"
+ WHITESPACE@8075..8076 " "
+ PLUS@8076..8077 "+"
+ WHITESPACE@8077..8078 " "
+ EXPR_NUMBER@8078..8079
+ FLOAT@8078..8079 "1"
+ COMMA@8079..8080 ","
+ WHITESPACE@8080..8081 " "
+ ARG@8081..8082
+ EXPR_VAR@8081..8082
+ NAME@8081..8082
+ IDENT@8081..8082 "j"
+ COMMA@8082..8083 ","
+ WHITESPACE@8083..8084 " "
+ ARG@8084..8096
+ EXPR_BINARY@8084..8096
+ LHS_EXPR@8084..8087
+ EXPR_VAR@8084..8087
+ NAME@8084..8087
+ IDENT@8084..8087 "acc"
+ WHITESPACE@8087..8088 " "
+ PLUS@8088..8089 "+"
+ WHITESPACE@8089..8090 " "
+ EXPR_ARRAY@8090..8096
+ L_BRACK@8090..8091 "["
+ EXPR_INDEX_EXPR@8091..8095
+ LHS_EXPR@8091..8092
+ EXPR_VAR@8091..8092
+ NAME@8091..8092
+ IDENT@8091..8092 "a"
+ L_BRACK@8092..8093 "["
+ EXPR_VAR@8093..8094
+ NAME@8093..8094
+ IDENT@8093..8094 "i"
+ R_BRACK@8094..8095 "]"
+ R_BRACK@8095..8096 "]"
+ R_PAREN@8096..8097 ")"
+ WHITESPACE@8097..8098 " "
+ TAILSTRICT_KW@8098..8108 "tailstrict"
+ WHITESPACE@8108..8117 "\n "
+ ELSE_KW@8117..8121 "else"
+ WHITESPACE@8121..8132 "\n "
+ FALSE_EXPR@8132..8167
+ EXPR_APPLY@8132..8167
+ EXPR_VAR@8132..8135
+ NAME@8132..8135
+ IDENT@8132..8135 "aux"
+ ARGS_DESC@8135..8167
+ L_PAREN@8135..8136 "("
+ ARG@8136..8137
+ EXPR_VAR@8136..8137
+ NAME@8136..8137
+ IDENT@8136..8137 "a"
+ COMMA@8137..8138 ","
+ WHITESPACE@8138..8139 " "
+ ARG@8139..8140
+ EXPR_VAR@8139..8140
+ NAME@8139..8140
+ IDENT@8139..8140 "b"
+ COMMA@8140..8141 ","
+ WHITESPACE@8141..8142 " "
+ ARG@8142..8143
+ EXPR_VAR@8142..8143
+ NAME@8142..8143
+ IDENT@8142..8143 "i"
+ COMMA@8143..8144 ","
+ WHITESPACE@8144..8145 " "
+ ARG@8145..8150
+ EXPR_BINARY@8145..8150
+ LHS_EXPR@8145..8146
+ EXPR_VAR@8145..8146
+ NAME@8145..8146
+ IDENT@8145..8146 "j"
+ WHITESPACE@8146..8147 " "
+ PLUS@8147..8148 "+"
+ WHITESPACE@8148..8149 " "
+ EXPR_NUMBER@8149..8150
+ FLOAT@8149..8150 "1"
+ COMMA@8150..8151 ","
+ WHITESPACE@8151..8152 " "
+ ARG@8152..8155
+ EXPR_VAR@8152..8155
+ NAME@8152..8155
+ IDENT@8152..8155 "acc"
+ R_PAREN@8155..8156 ")"
+ WHITESPACE@8156..8157 " "
+ TAILSTRICT_KW@8157..8167 "tailstrict"
+ SEMI@8167..8168 ";"
+ WHITESPACE@8168..8173 "\n "
+ EXPR_APPLY@8173..8203
+ EXPR_VAR@8173..8176
+ NAME@8173..8176
+ IDENT@8173..8176 "aux"
+ ARGS_DESC@8176..8203
+ L_PAREN@8176..8177 "("
+ ARG@8177..8178
+ EXPR_VAR@8177..8178
+ NAME@8177..8178
+ IDENT@8177..8178 "a"
+ COMMA@8178..8179 ","
+ WHITESPACE@8179..8180 " "
+ ARG@8180..8181
+ EXPR_VAR@8180..8181
+ NAME@8180..8181
+ IDENT@8180..8181 "b"
+ COMMA@8181..8182 ","
+ WHITESPACE@8182..8183 " "
+ ARG@8183..8184
+ EXPR_NUMBER@8183..8184
+ FLOAT@8183..8184 "0"
+ COMMA@8184..8185 ","
+ WHITESPACE@8185..8186 " "
+ ARG@8186..8187
+ EXPR_NUMBER@8186..8187
+ FLOAT@8186..8187 "0"
+ COMMA@8187..8188 ","
+ WHITESPACE@8188..8189 " "
+ ARG@8189..8191
+ EXPR_ARRAY@8189..8191
+ L_BRACK@8189..8190 "["
+ R_BRACK@8190..8191 "]"
+ R_PAREN@8191..8192 ")"
+ WHITESPACE@8192..8193 " "
+ TAILSTRICT_KW@8193..8203 "tailstrict"
+ COMMA@8203..8204 ","
+ WHITESPACE@8204..8208 "\n\n "
+ MEMBER_FIELD@8208..8996
+ FIELD_METHOD@8208..8996
+ FIELD_NAME_FIXED@8208..8218
+ NAME@8208..8218
+ IDENT@8208..8218 "mergePatch"
+ PARAMS_DESC@8218..8233
+ L_PAREN@8218..8219 "("
+ PARAM@8219..8225
+ DESTRUCT_FULL@8219..8225
+ NAME@8219..8225
+ IDENT@8219..8225 "target"
+ COMMA@8225..8226 ","
+ WHITESPACE@8226..8227 " "
+ PARAM@8227..8232
+ DESTRUCT_FULL@8227..8232
+ NAME@8227..8232
+ IDENT@8227..8232 "patch"
+ R_PAREN@8232..8233 ")"
+ COLONCOLON@8233..8235 "::"
+ WHITESPACE@8235..8240 "\n "
+ EXPR_IF_THEN_ELSE@8240..8996
+ IF_KW@8240..8242 "if"
+ WHITESPACE@8242..8243 " "
+ EXPR_APPLY@8243..8262
+ EXPR_INDEX@8243..8255
+ EXPR_VAR@8243..8246
+ NAME@8243..8246
+ IDENT@8243..8246 "std"
+ DOT@8246..8247 "."
+ NAME@8247..8255
+ IDENT@8247..8255 "isObject"
+ ARGS_DESC@8255..8262
+ L_PAREN@8255..8256 "("
+ ARG@8256..8261
+ EXPR_VAR@8256..8261
+ NAME@8256..8261
+ IDENT@8256..8261 "patch"
+ R_PAREN@8261..8262 ")"
+ WHITESPACE@8262..8263 " "
+ THEN_KW@8263..8267 "then"
+ WHITESPACE@8267..8274 "\n "
+ TRUE_EXPR@8274..8975
+ EXPR_LOCAL@8274..8975
+ LOCAL_KW@8274..8279 "local"
+ WHITESPACE@8279..8280 " "
+ BIND_DESTRUCT@8280..8347
+ DESTRUCT_FULL@8280..8293
+ NAME@8280..8293
+ IDENT@8280..8293 "target_object"
+ WHITESPACE@8293..8294 " "
+ ASSIGN@8294..8295 "="
+ WHITESPACE@8295..8304 "\n "
+ EXPR_IF_THEN_ELSE@8304..8347
+ IF_KW@8304..8306 "if"
+ WHITESPACE@8306..8307 " "
+ EXPR_APPLY@8307..8327
+ EXPR_INDEX@8307..8319
+ EXPR_VAR@8307..8310
+ NAME@8307..8310
+ IDENT@8307..8310 "std"
+ DOT@8310..8311 "."
+ NAME@8311..8319
+ IDENT@8311..8319 "isObject"
+ ARGS_DESC@8319..8327
+ L_PAREN@8319..8320 "("
+ ARG@8320..8326
+ EXPR_VAR@8320..8326
+ NAME@8320..8326
+ IDENT@8320..8326 "target"
+ R_PAREN@8326..8327 ")"
+ WHITESPACE@8327..8328 " "
+ THEN_KW@8328..8332 "then"
+ WHITESPACE@8332..8333 " "
+ TRUE_EXPR@8333..8339
+ EXPR_VAR@8333..8339
+ NAME@8333..8339
+ IDENT@8333..8339 "target"
+ WHITESPACE@8339..8340 " "
+ ELSE_KW@8340..8344 "else"
+ WHITESPACE@8344..8345 " "
+ FALSE_EXPR@8345..8347
+ EXPR_OBJECT@8345..8347
+ OBJ_BODY_MEMBER_LIST@8345..8347
+ L_BRACE@8345..8346 "{"
+ R_BRACE@8346..8347 "}"
+ SEMI@8347..8348 ";"
+ WHITESPACE@8348..8356 "\n\n "
+ EXPR_LOCAL@8356..8975
+ LOCAL_KW@8356..8361 "local"
+ WHITESPACE@8361..8362 " "
+ BIND_DESTRUCT@8362..8461
+ DESTRUCT_FULL@8362..8375
+ NAME@8362..8375
+ IDENT@8362..8375 "target_fields"
+ WHITESPACE@8375..8376 " "
+ ASSIGN@8376..8377 "="
+ WHITESPACE@8377..8386 "\n "
+ EXPR_IF_THEN_ELSE@8386..8461
+ IF_KW@8386..8388 "if"
+ WHITESPACE@8388..8389 " "
+ EXPR_APPLY@8389..8416
+ EXPR_INDEX@8389..8401
+ EXPR_VAR@8389..8392
+ NAME@8389..8392
+ IDENT@8389..8392 "std"
+ DOT@8392..8393 "."
+ NAME@8393..8401
+ IDENT@8393..8401 "isObject"
+ ARGS_DESC@8401..8416
+ L_PAREN@8401..8402 "("
+ ARG@8402..8415
+ EXPR_VAR@8402..8415
+ NAME@8402..8415
+ IDENT@8402..8415 "target_object"
+ R_PAREN@8415..8416 ")"
+ WHITESPACE@8416..8417 " "
+ THEN_KW@8417..8421 "then"
+ WHITESPACE@8421..8422 " "
+ TRUE_EXPR@8422..8453
+ EXPR_APPLY@8422..8453
+ EXPR_INDEX@8422..8438
+ EXPR_VAR@8422..8425
+ NAME@8422..8425
+ IDENT@8422..8425 "std"
+ DOT@8425..8426 "."
+ NAME@8426..8438
+ IDENT@8426..8438 "objectFields"
+ ARGS_DESC@8438..8453
+ L_PAREN@8438..8439 "("
+ ARG@8439..8452
+ EXPR_VAR@8439..8452
+ NAME@8439..8452
+ IDENT@8439..8452 "target_object"
+ R_PAREN@8452..8453 ")"
+ WHITESPACE@8453..8454 " "
+ ELSE_KW@8454..8458 "else"
+ WHITESPACE@8458..8459 " "
+ FALSE_EXPR@8459..8461
+ EXPR_ARRAY@8459..8461
+ L_BRACK@8459..8460 "["
+ R_BRACK@8460..8461 "]"
+ SEMI@8461..8462 ";"
+ WHITESPACE@8462..8470 "\n\n "
+ EXPR_LOCAL@8470..8975
+ LOCAL_KW@8470..8475 "local"
+ WHITESPACE@8475..8476 " "
+ BIND_DESTRUCT@8476..8546
+ DESTRUCT_FULL@8476..8487
+ NAME@8476..8487
+ IDENT@8476..8487 "null_fields"
+ WHITESPACE@8487..8488 " "
+ ASSIGN@8488..8489 "="
+ WHITESPACE@8489..8490 " "
+ EXPR_ARRAY_COMP@8490..8546
+ L_BRACK@8490..8491 "["
+ EXPR_VAR@8491..8492
+ NAME@8491..8492
+ IDENT@8491..8492 "k"
+ WHITESPACE@8492..8493 " "
+ FOR_SPEC@8493..8525
+ FOR_KW@8493..8496 "for"
+ WHITESPACE@8496..8497 " "
+ NAME@8497..8498
+ IDENT@8497..8498 "k"
+ WHITESPACE@8498..8499 " "
+ IN_KW@8499..8501 "in"
+ WHITESPACE@8501..8502 " "
+ EXPR_APPLY@8502..8525
+ EXPR_INDEX@8502..8518
+ EXPR_VAR@8502..8505
+ NAME@8502..8505
+ IDENT@8502..8505 "std"
+ DOT@8505..8506 "."
+ NAME@8506..8518
+ IDENT@8506..8518 "objectFields"
+ ARGS_DESC@8518..8525
+ L_PAREN@8518..8519 "("
+ ARG@8519..8524
+ EXPR_VAR@8519..8524
+ NAME@8519..8524
+ IDENT@8519..8524 "patch"
+ R_PAREN@8524..8525 ")"
+ WHITESPACE@8525..8526 " "
+ IF_SPEC@8526..8545
+ IF_KW@8526..8528 "if"
+ WHITESPACE@8528..8529 " "
+ EXPR_BINARY@8529..8545
+ LHS_EXPR@8529..8537
+ EXPR_INDEX_EXPR@8529..8537
+ LHS_EXPR@8529..8534
+ EXPR_VAR@8529..8534
+ NAME@8529..8534
+ IDENT@8529..8534 "patch"
+ L_BRACK@8534..8535 "["
+ EXPR_VAR@8535..8536
+ NAME@8535..8536
+ IDENT@8535..8536 "k"
+ R_BRACK@8536..8537 "]"
+ WHITESPACE@8537..8538 " "
+ EQ@8538..8540 "=="
+ WHITESPACE@8540..8541 " "
+ EXPR_LITERAL@8541..8545
+ NULL_KW@8541..8545 "null"
+ R_BRACK@8545..8546 "]"
+ SEMI@8546..8547 ";"
+ WHITESPACE@8547..8554 "\n "
+ EXPR_LOCAL@8554..8975
+ LOCAL_KW@8554..8559 "local"
+ WHITESPACE@8559..8560 " "
+ BIND_DESTRUCT@8560..8626
+ DESTRUCT_FULL@8560..8571
+ NAME@8560..8571
+ IDENT@8560..8571 "both_fields"
+ WHITESPACE@8571..8572 " "
+ ASSIGN@8572..8573 "="
+ WHITESPACE@8573..8574 " "
+ EXPR_APPLY@8574..8626
+ EXPR_INDEX@8574..8586
+ EXPR_VAR@8574..8577
+ NAME@8574..8577
+ IDENT@8574..8577 "std"
+ DOT@8577..8578 "."
+ NAME@8578..8586
+ IDENT@8578..8586 "setUnion"
+ ARGS_DESC@8586..8626
+ L_PAREN@8586..8587 "("
+ ARG@8587..8600
+ EXPR_VAR@8587..8600
+ NAME@8587..8600
+ IDENT@8587..8600 "target_fields"
+ COMMA@8600..8601 ","
+ WHITESPACE@8601..8602 " "
+ ARG@8602..8625
+ EXPR_APPLY@8602..8625
+ EXPR_INDEX@8602..8618
+ EXPR_VAR@8602..8605
+ NAME@8602..8605
+ IDENT@8602..8605 "std"
+ DOT@8605..8606 "."
+ NAME@8606..8618
+ IDENT@8606..8618 "objectFields"
+ ARGS_DESC@8618..8625
+ L_PAREN@8618..8619 "("
+ ARG@8619..8624
+ EXPR_VAR@8619..8624
+ NAME@8619..8624
+ IDENT@8619..8624 "patch"
+ R_PAREN@8624..8625 ")"
+ R_PAREN@8625..8626 ")"
+ SEMI@8626..8627 ";"
+ WHITESPACE@8627..8635 "\n\n "
+ EXPR_OBJECT@8635..8975
+ OBJ_BODY_MEMBER_LIST@8635..8975
+ L_BRACE@8635..8636 "{"
+ WHITESPACE@8636..8645 "\n "
+ MEMBER_FIELD@8645..8967
+ FIELD_NORMAL@8645..8912
+ FIELD_NAME_DYNAMIC@8645..8648
+ L_BRACK@8645..8646 "["
+ EXPR_VAR@8646..8647
+ NAME@8646..8647
+ IDENT@8646..8647 "k"
+ R_BRACK@8647..8648 "]"
+ COLON@8648..8649 ":"
+ WHITESPACE@8649..8660 "\n "
+ EXPR_IF_THEN_ELSE@8660..8912
+ IF_KW@8660..8662 "if"
+ WHITESPACE@8662..8663 " "
+ EXPR_UNARY@8663..8687
+ NOT@8663..8664 "!"
+ EXPR_APPLY@8664..8687
+ EXPR_INDEX@8664..8677
+ EXPR_VAR@8664..8667
+ NAME@8664..8667
+ IDENT@8664..8667 "std"
+ DOT@8667..8668 "."
+ NAME@8668..8677
+ IDENT@8668..8677 "objectHas"
+ ARGS_DESC@8677..8687
+ L_PAREN@8677..8678 "("
+ ARG@8678..8683
+ EXPR_VAR@8678..8683
+ NAME@8678..8683
+ IDENT@8678..8683 "patch"
+ COMMA@8683..8684 ","
+ WHITESPACE@8684..8685 " "
+ ARG@8685..8686
+ EXPR_VAR@8685..8686
+ NAME@8685..8686
+ IDENT@8685..8686 "k"
+ R_PAREN@8686..8687 ")"
+ WHITESPACE@8687..8688 " "
+ THEN_KW@8688..8692 "then"
+ WHITESPACE@8692..8705 "\n "
+ TRUE_EXPR@8705..8721
+ EXPR_INDEX_EXPR@8705..8721
+ LHS_EXPR@8705..8718
+ EXPR_VAR@8705..8718
+ NAME@8705..8718
+ IDENT@8705..8718 "target_object"
+ L_BRACK@8718..8719 "["
+ EXPR_VAR@8719..8720
+ NAME@8719..8720
+ IDENT@8719..8720 "k"
+ R_BRACK@8720..8721 "]"
+ WHITESPACE@8721..8732 "\n "
+ ELSE_KW@8732..8736 "else"
+ WHITESPACE@8736..8737 " "
+ FALSE_EXPR@8737..8912
+ EXPR_IF_THEN_ELSE@8737..8912
+ IF_KW@8737..8739 "if"
+ WHITESPACE@8739..8740 " "
+ EXPR_UNARY@8740..8772
+ NOT@8740..8741 "!"
+ EXPR_APPLY@8741..8772
+ EXPR_INDEX@8741..8754
+ EXPR_VAR@8741..8744
+ NAME@8741..8744
+ IDENT@8741..8744 "std"
+ DOT@8744..8745 "."
+ NAME@8745..8754
+ IDENT@8745..8754 "objectHas"
+ ARGS_DESC@8754..8772
+ L_PAREN@8754..8755 "("
+ ARG@8755..8768
+ EXPR_VAR@8755..8768
+ NAME@8755..8768
+ IDENT@8755..8768 "target_object"
+ COMMA@8768..8769 ","
+ WHITESPACE@8769..8770 " "
+ ARG@8770..8771
+ EXPR_VAR@8770..8771
+ NAME@8770..8771
+ IDENT@8770..8771 "k"
+ R_PAREN@8771..8772 ")"
+ WHITESPACE@8772..8773 " "
+ THEN_KW@8773..8777 "then"
+ WHITESPACE@8777..8790 "\n "
+ TRUE_EXPR@8790..8831
+ EXPR_APPLY@8790..8831
+ EXPR_INDEX@8790..8804
+ EXPR_VAR@8790..8793
+ NAME@8790..8793
+ IDENT@8790..8793 "std"
+ DOT@8793..8794 "."
+ NAME@8794..8804
+ IDENT@8794..8804 "mergePatch"
+ ARGS_DESC@8804..8831
+ L_PAREN@8804..8805 "("
+ ARG@8805..8809
+ EXPR_LITERAL@8805..8809
+ NULL_KW@8805..8809 "null"
+ COMMA@8809..8810 ","
+ WHITESPACE@8810..8811 " "
+ ARG@8811..8819
+ EXPR_INDEX_EXPR@8811..8819
+ LHS_EXPR@8811..8816
+ EXPR_VAR@8811..8816
+ NAME@8811..8816
+ IDENT@8811..8816 "patch"
+ L_BRACK@8816..8817 "["
+ EXPR_VAR@8817..8818
+ NAME@8817..8818
+ IDENT@8817..8818 "k"
+ R_BRACK@8818..8819 "]"
+ R_PAREN@8819..8820 ")"
+ WHITESPACE@8820..8821 " "
+ TAILSTRICT_KW@8821..8831 "tailstrict"
+ WHITESPACE@8831..8842 "\n "
+ ELSE_KW@8842..8846 "else"
+ WHITESPACE@8846..8859 "\n "
+ FALSE_EXPR@8859..8912
+ EXPR_APPLY@8859..8912
+ EXPR_INDEX@8859..8873
+ EXPR_VAR@8859..8862
+ NAME@8859..8862
+ IDENT@8859..8862 "std"
+ DOT@8862..8863 "."
+ NAME@8863..8873
+ IDENT@8863..8873 "mergePatch"
+ ARGS_DESC@8873..8912
+ L_PAREN@8873..8874 "("
+ ARG@8874..8890
+ EXPR_INDEX_EXPR@8874..8890
+ LHS_EXPR@8874..8887
+ EXPR_VAR@8874..8887
+ NAME@8874..8887
+ IDENT@8874..8887 "target_object"
+ L_BRACK@8887..8888 "["
+ EXPR_VAR@8888..8889
+ NAME@8888..8889
+ IDENT@8888..8889 "k"
+ R_BRACK@8889..8890 "]"
+ COMMA@8890..8891 ","
+ WHITESPACE@8891..8892 " "
+ ARG@8892..8900
+ EXPR_INDEX_EXPR@8892..8900
+ LHS_EXPR@8892..8897
+ EXPR_VAR@8892..8897
+ NAME@8892..8897
+ IDENT@8892..8897 "patch"
+ L_BRACK@8897..8898 "["
+ EXPR_VAR@8898..8899
+ NAME@8898..8899
+ IDENT@8898..8899 "k"
+ R_BRACK@8899..8900 "]"
+ R_PAREN@8900..8901 ")"
+ WHITESPACE@8901..8902 " "
+ TAILSTRICT_KW@8902..8912 "tailstrict"
+ WHITESPACE@8912..8921 "\n "
+ FOR_SPEC@8921..8967
+ FOR_KW@8921..8924 "for"
+ WHITESPACE@8924..8925 " "
+ NAME@8925..8926
+ IDENT@8925..8926 "k"
+ WHITESPACE@8926..8927 " "
+ IN_KW@8927..8929 "in"
+ WHITESPACE@8929..8930 " "
+ EXPR_APPLY@8930..8967
+ EXPR_INDEX@8930..8941
+ EXPR_VAR@8930..8933
+ NAME@8930..8933
+ IDENT@8930..8933 "std"
+ DOT@8933..8934 "."
+ NAME@8934..8941
+ IDENT@8934..8941 "setDiff"
+ ARGS_DESC@8941..8967
+ L_PAREN@8941..8942 "("
+ ARG@8942..8953
+ EXPR_VAR@8942..8953
+ NAME@8942..8953
+ IDENT@8942..8953 "both_fields"
+ COMMA@8953..8954 ","
+ WHITESPACE@8954..8955 " "
+ ARG@8955..8966
+ EXPR_VAR@8955..8966
+ NAME@8955..8966
+ IDENT@8955..8966 "null_fields"
+ R_PAREN@8966..8967 ")"
+ WHITESPACE@8967..8974 "\n "
+ R_BRACE@8974..8975 "}"
+ WHITESPACE@8975..8980 "\n "
+ ELSE_KW@8980..8984 "else"
+ WHITESPACE@8984..8991 "\n "
+ FALSE_EXPR@8991..8996
+ EXPR_VAR@8991..8996
+ NAME@8991..8996
+ IDENT@8991..8996 "patch"
+ COMMA@8996..8997 ","
+ WHITESPACE@8997..9001 "\n\n "
+ MEMBER_FIELD@9001..9107
+ FIELD_METHOD@9001..9107
+ FIELD_NAME_FIXED@9001..9004
+ NAME@9001..9004
+ IDENT@9001..9004 "get"
+ PARAMS_DESC@9004..9041
+ L_PAREN@9004..9005 "("
+ PARAM@9005..9006
+ DESTRUCT_FULL@9005..9006
+ NAME@9005..9006
+ IDENT@9005..9006 "o"
+ COMMA@9006..9007 ","
+ WHITESPACE@9007..9008 " "
+ PARAM@9008..9009
+ DESTRUCT_FULL@9008..9009
+ NAME@9008..9009
+ IDENT@9008..9009 "f"
+ COMMA@9009..9010 ","
+ WHITESPACE@9010..9011 " "
+ PARAM@9011..9023
+ DESTRUCT_FULL@9011..9018
+ NAME@9011..9018
+ IDENT@9011..9018 "default"
+ ASSIGN@9018..9019 "="
+ EXPR_LITERAL@9019..9023
+ NULL_KW@9019..9023 "null"
+ COMMA@9023..9024 ","
+ WHITESPACE@9024..9025 " "
+ PARAM@9025..9040
+ DESTRUCT_FULL@9025..9035
+ NAME@9025..9035
+ IDENT@9025..9035 "inc_hidden"
+ ASSIGN@9035..9036 "="
+ EXPR_LITERAL@9036..9040
+ TRUE_KW@9036..9040 "true"
+ R_PAREN@9040..9041 ")"
+ COLONCOLON@9041..9043 "::"
+ WHITESPACE@9043..9048 "\n "
+ EXPR_IF_THEN_ELSE@9048..9107
+ IF_KW@9048..9050 "if"
+ WHITESPACE@9050..9051 " "
+ EXPR_APPLY@9051..9084
+ EXPR_INDEX@9051..9066
+ EXPR_VAR@9051..9054
+ NAME@9051..9054
+ IDENT@9051..9054 "std"
+ DOT@9054..9055 "."
+ NAME@9055..9066
+ IDENT@9055..9066 "objectHasEx"
+ ARGS_DESC@9066..9084
+ L_PAREN@9066..9067 "("
+ ARG@9067..9068
+ EXPR_VAR@9067..9068
+ NAME@9067..9068
+ IDENT@9067..9068 "o"
+ COMMA@9068..9069 ","
+ WHITESPACE@9069..9070 " "
+ ARG@9070..9071
+ EXPR_VAR@9070..9071
+ NAME@9070..9071
+ IDENT@9070..9071 "f"
+ COMMA@9071..9072 ","
+ WHITESPACE@9072..9073 " "
+ ARG@9073..9083
+ EXPR_VAR@9073..9083
+ NAME@9073..9083
+ IDENT@9073..9083 "inc_hidden"
+ R_PAREN@9083..9084 ")"
+ WHITESPACE@9084..9085 " "
+ THEN_KW@9085..9089 "then"
+ WHITESPACE@9089..9090 " "
+ TRUE_EXPR@9090..9094
+ EXPR_INDEX_EXPR@9090..9094
+ LHS_EXPR@9090..9091
+ EXPR_VAR@9090..9091
+ NAME@9090..9091
+ IDENT@9090..9091 "o"
+ L_BRACK@9091..9092 "["
+ EXPR_VAR@9092..9093
+ NAME@9092..9093
+ IDENT@9092..9093 "f"
+ R_BRACK@9093..9094 "]"
+ WHITESPACE@9094..9095 " "
+ ELSE_KW@9095..9099 "else"
+ WHITESPACE@9099..9100 " "
+ FALSE_EXPR@9100..9107
+ EXPR_VAR@9100..9107
+ NAME@9100..9107
+ IDENT@9100..9107 "default"
+ COMMA@9107..9108 ","
+ WHITESPACE@9108..9112 "\n\n "
+ MEMBER_FIELD@9112..9162
+ FIELD_METHOD@9112..9162
+ FIELD_NAME_FIXED@9112..9124
+ NAME@9112..9124
+ IDENT@9112..9124 "objectFields"
+ PARAMS_DESC@9124..9127
+ L_PAREN@9124..9125 "("
+ PARAM@9125..9126
+ DESTRUCT_FULL@9125..9126
+ NAME@9125..9126
+ IDENT@9125..9126 "o"
+ R_PAREN@9126..9127 ")"
+ COLONCOLON@9127..9129 "::"
+ WHITESPACE@9129..9134 "\n "
+ EXPR_APPLY@9134..9162
+ EXPR_INDEX@9134..9152
+ EXPR_VAR@9134..9137
+ NAME@9134..9137
+ IDENT@9134..9137 "std"
+ DOT@9137..9138 "."
+ NAME@9138..9152
+ IDENT@9138..9152 "objectFieldsEx"
+ ARGS_DESC@9152..9162
+ L_PAREN@9152..9153 "("
+ ARG@9153..9154
+ EXPR_VAR@9153..9154
+ NAME@9153..9154
+ IDENT@9153..9154 "o"
+ COMMA@9154..9155 ","
+ WHITESPACE@9155..9156 " "
+ ARG@9156..9161
+ EXPR_LITERAL@9156..9161
+ FALSE_KW@9156..9161 "false"
+ R_PAREN@9161..9162 ")"
+ COMMA@9162..9163 ","
+ WHITESPACE@9163..9167 "\n\n "
+ MEMBER_FIELD@9167..9219
+ FIELD_METHOD@9167..9219
+ FIELD_NAME_FIXED@9167..9182
+ NAME@9167..9182
+ IDENT@9167..9182 "objectFieldsAll"
+ PARAMS_DESC@9182..9185
+ L_PAREN@9182..9183 "("
+ PARAM@9183..9184
+ DESTRUCT_FULL@9183..9184
+ NAME@9183..9184
+ IDENT@9183..9184 "o"
+ R_PAREN@9184..9185 ")"
+ COLONCOLON@9185..9187 "::"
+ WHITESPACE@9187..9192 "\n "
+ EXPR_APPLY@9192..9219
+ EXPR_INDEX@9192..9210
+ EXPR_VAR@9192..9195
+ NAME@9192..9195
+ IDENT@9192..9195 "std"
+ DOT@9195..9196 "."
+ NAME@9196..9210
+ IDENT@9196..9210 "objectFieldsEx"
+ ARGS_DESC@9210..9219
+ L_PAREN@9210..9211 "("
+ ARG@9211..9212
+ EXPR_VAR@9211..9212
+ NAME@9211..9212
+ IDENT@9211..9212 "o"
+ COMMA@9212..9213 ","
+ WHITESPACE@9213..9214 " "
+ ARG@9214..9218
+ EXPR_LITERAL@9214..9218
+ TRUE_KW@9214..9218 "true"
+ R_PAREN@9218..9219 ")"
+ COMMA@9219..9220 ","
+ WHITESPACE@9220..9224 "\n\n "
+ MEMBER_FIELD@9224..9274
+ FIELD_METHOD@9224..9274
+ FIELD_NAME_FIXED@9224..9233
+ NAME@9224..9233
+ IDENT@9224..9233 "objectHas"
+ PARAMS_DESC@9233..9239
+ L_PAREN@9233..9234 "("
+ PARAM@9234..9235
+ DESTRUCT_FULL@9234..9235
+ NAME@9234..9235
+ IDENT@9234..9235 "o"
+ COMMA@9235..9236 ","
+ WHITESPACE@9236..9237 " "
+ PARAM@9237..9238
+ DESTRUCT_FULL@9237..9238
+ NAME@9237..9238
+ IDENT@9237..9238 "f"
+ R_PAREN@9238..9239 ")"
+ COLONCOLON@9239..9241 "::"
+ WHITESPACE@9241..9246 "\n "
+ EXPR_APPLY@9246..9274
+ EXPR_INDEX@9246..9261
+ EXPR_VAR@9246..9249
+ NAME@9246..9249
+ IDENT@9246..9249 "std"
+ DOT@9249..9250 "."
+ NAME@9250..9261
+ IDENT@9250..9261 "objectHasEx"
+ ARGS_DESC@9261..9274
+ L_PAREN@9261..9262 "("
+ ARG@9262..9263
+ EXPR_VAR@9262..9263
+ NAME@9262..9263
+ IDENT@9262..9263 "o"
+ COMMA@9263..9264 ","
+ WHITESPACE@9264..9265 " "
+ ARG@9265..9266
+ EXPR_VAR@9265..9266
+ NAME@9265..9266
+ IDENT@9265..9266 "f"
+ COMMA@9266..9267 ","
+ WHITESPACE@9267..9268 " "
+ ARG@9268..9273
+ EXPR_LITERAL@9268..9273
+ FALSE_KW@9268..9273 "false"
+ R_PAREN@9273..9274 ")"
+ COMMA@9274..9275 ","
+ WHITESPACE@9275..9279 "\n\n "
+ MEMBER_FIELD@9279..9331
+ FIELD_METHOD@9279..9331
+ FIELD_NAME_FIXED@9279..9291
+ NAME@9279..9291
+ IDENT@9279..9291 "objectHasAll"
+ PARAMS_DESC@9291..9297
+ L_PAREN@9291..9292 "("
+ PARAM@9292..9293
+ DESTRUCT_FULL@9292..9293
+ NAME@9292..9293
+ IDENT@9292..9293 "o"
+ COMMA@9293..9294 ","
+ WHITESPACE@9294..9295 " "
+ PARAM@9295..9296
+ DESTRUCT_FULL@9295..9296
+ NAME@9295..9296
+ IDENT@9295..9296 "f"
+ R_PAREN@9296..9297 ")"
+ COLONCOLON@9297..9299 "::"
+ WHITESPACE@9299..9304 "\n "
+ EXPR_APPLY@9304..9331
+ EXPR_INDEX@9304..9319
+ EXPR_VAR@9304..9307
+ NAME@9304..9307
+ IDENT@9304..9307 "std"
+ DOT@9307..9308 "."
+ NAME@9308..9319
+ IDENT@9308..9319 "objectHasEx"
+ ARGS_DESC@9319..9331
+ L_PAREN@9319..9320 "("
+ ARG@9320..9321
+ EXPR_VAR@9320..9321
+ NAME@9320..9321
+ IDENT@9320..9321 "o"
+ COMMA@9321..9322 ","
+ WHITESPACE@9322..9323 " "
+ ARG@9323..9324
+ EXPR_VAR@9323..9324
+ NAME@9323..9324
+ IDENT@9323..9324 "f"
+ COMMA@9324..9325 ","
+ WHITESPACE@9325..9326 " "
+ ARG@9326..9330
+ EXPR_LITERAL@9326..9330
+ TRUE_KW@9326..9330 "true"
+ R_PAREN@9330..9331 ")"
+ COMMA@9331..9332 ","
+ WHITESPACE@9332..9336 "\n\n "
+ MEMBER_FIELD@9336..9393
+ FIELD_METHOD@9336..9393
+ FIELD_NAME_FIXED@9336..9348
+ NAME@9336..9348
+ IDENT@9336..9348 "objectValues"
+ PARAMS_DESC@9348..9351
+ L_PAREN@9348..9349 "("
+ PARAM@9349..9350
+ DESTRUCT_FULL@9349..9350
+ NAME@9349..9350
+ IDENT@9349..9350 "o"
+ R_PAREN@9350..9351 ")"
+ COLONCOLON@9351..9353 "::"
+ WHITESPACE@9353..9358 "\n "
+ EXPR_ARRAY_COMP@9358..9393
+ L_BRACK@9358..9359 "["
+ EXPR_INDEX_EXPR@9359..9363
+ LHS_EXPR@9359..9360
+ EXPR_VAR@9359..9360
+ NAME@9359..9360
+ IDENT@9359..9360 "o"
+ L_BRACK@9360..9361 "["
+ EXPR_VAR@9361..9362
+ NAME@9361..9362
+ IDENT@9361..9362 "k"
+ R_BRACK@9362..9363 "]"
+ WHITESPACE@9363..9364 " "
+ FOR_SPEC@9364..9392
+ FOR_KW@9364..9367 "for"
+ WHITESPACE@9367..9368 " "
+ NAME@9368..9369
+ IDENT@9368..9369 "k"
+ WHITESPACE@9369..9370 " "
+ IN_KW@9370..9372 "in"
+ WHITESPACE@9372..9373 " "
+ EXPR_APPLY@9373..9392
+ EXPR_INDEX@9373..9389
+ EXPR_VAR@9373..9376
+ NAME@9373..9376
+ IDENT@9373..9376 "std"
+ DOT@9376..9377 "."
+ NAME@9377..9389
+ IDENT@9377..9389 "objectFields"
+ ARGS_DESC@9389..9392
+ L_PAREN@9389..9390 "("
+ ARG@9390..9391
+ EXPR_VAR@9390..9391
+ NAME@9390..9391
+ IDENT@9390..9391 "o"
+ R_PAREN@9391..9392 ")"
+ R_BRACK@9392..9393 "]"
+ COMMA@9393..9394 ","
+ WHITESPACE@9394..9398 "\n\n "
+ MEMBER_FIELD@9398..9461
+ FIELD_METHOD@9398..9461
+ FIELD_NAME_FIXED@9398..9413
+ NAME@9398..9413
+ IDENT@9398..9413 "objectValuesAll"
+ PARAMS_DESC@9413..9416
+ L_PAREN@9413..9414 "("
+ PARAM@9414..9415
+ DESTRUCT_FULL@9414..9415
+ NAME@9414..9415
+ IDENT@9414..9415 "o"
+ R_PAREN@9415..9416 ")"
+ COLONCOLON@9416..9418 "::"
+ WHITESPACE@9418..9423 "\n "
+ EXPR_ARRAY_COMP@9423..9461
+ L_BRACK@9423..9424 "["
+ EXPR_INDEX_EXPR@9424..9428
+ LHS_EXPR@9424..9425
+ EXPR_VAR@9424..9425
+ NAME@9424..9425
+ IDENT@9424..9425 "o"
+ L_BRACK@9425..9426 "["
+ EXPR_VAR@9426..9427
+ NAME@9426..9427
+ IDENT@9426..9427 "k"
+ R_BRACK@9427..9428 "]"
+ WHITESPACE@9428..9429 " "
+ FOR_SPEC@9429..9460
+ FOR_KW@9429..9432 "for"
+ WHITESPACE@9432..9433 " "
+ NAME@9433..9434
+ IDENT@9433..9434 "k"
+ WHITESPACE@9434..9435 " "
+ IN_KW@9435..9437 "in"
+ WHITESPACE@9437..9438 " "
+ EXPR_APPLY@9438..9460
+ EXPR_INDEX@9438..9457
+ EXPR_VAR@9438..9441
+ NAME@9438..9441
+ IDENT@9438..9441 "std"
+ DOT@9441..9442 "."
+ NAME@9442..9457
+ IDENT@9442..9457 "objectFieldsAll"
+ ARGS_DESC@9457..9460
+ L_PAREN@9457..9458 "("
+ ARG@9458..9459
+ EXPR_VAR@9458..9459
+ NAME@9458..9459
+ IDENT@9458..9459 "o"
+ R_PAREN@9459..9460 ")"
+ R_BRACK@9460..9461 "]"
+ COMMA@9461..9462 ","
+ WHITESPACE@9462..9466 "\n\n "
+ MEMBER_FIELD@9466..9600
+ FIELD_METHOD@9466..9600
+ FIELD_NAME_FIXED@9466..9477
+ NAME@9466..9477
+ IDENT@9466..9477 "resolvePath"
+ PARAMS_DESC@9477..9483
+ L_PAREN@9477..9478 "("
+ PARAM@9478..9479
+ DESTRUCT_FULL@9478..9479
+ NAME@9478..9479
+ IDENT@9478..9479 "f"
+ COMMA@9479..9480 ","
+ WHITESPACE@9480..9481 " "
+ PARAM@9481..9482
+ DESTRUCT_FULL@9481..9482
+ NAME@9481..9482
+ IDENT@9481..9482 "r"
+ R_PAREN@9482..9483 ")"
+ COLONCOLON@9483..9485 "::"
+ WHITESPACE@9485..9490 "\n "
+ EXPR_LOCAL@9490..9600
+ LOCAL_KW@9490..9495 "local"
+ WHITESPACE@9495..9496 " "
+ BIND_DESTRUCT@9496..9519
+ DESTRUCT_FULL@9496..9499
+ NAME@9496..9499
+ IDENT@9496..9499 "arr"
+ WHITESPACE@9499..9500 " "
+ ASSIGN@9500..9501 "="
+ WHITESPACE@9501..9502 " "
+ EXPR_APPLY@9502..9519
+ EXPR_INDEX@9502..9511
+ EXPR_VAR@9502..9505
+ NAME@9502..9505
+ IDENT@9502..9505 "std"
+ DOT@9505..9506 "."
+ NAME@9506..9511
+ IDENT@9506..9511 "split"
+ ARGS_DESC@9511..9519
+ L_PAREN@9511..9512 "("
+ ARG@9512..9513
+ EXPR_VAR@9512..9513
+ NAME@9512..9513
+ IDENT@9512..9513 "f"
+ COMMA@9513..9514 ","
+ WHITESPACE@9514..9515 " "
+ ARG@9515..9518
+ EXPR_STRING@9515..9518
+ STRING_SINGLE@9515..9518 "'/'"
+ R_PAREN@9518..9519 ")"
+ SEMI@9519..9520 ";"
+ WHITESPACE@9520..9525 "\n "
+ EXPR_APPLY@9525..9600
+ EXPR_INDEX@9525..9533
+ EXPR_VAR@9525..9528
+ NAME@9525..9528
+ IDENT@9525..9528 "std"
+ DOT@9528..9529 "."
+ NAME@9529..9533
+ IDENT@9529..9533 "join"
+ ARGS_DESC@9533..9600
+ L_PAREN@9533..9534 "("
+ ARG@9534..9537
+ EXPR_STRING@9534..9537
+ STRING_SINGLE@9534..9537 "'/'"
+ COMMA@9537..9538 ","
+ WHITESPACE@9538..9539 " "
+ ARG@9539..9599
+ EXPR_BINARY@9539..9599
+ LHS_EXPR@9539..9593
+ EXPR_APPLY@9539..9593
+ EXPR_INDEX@9539..9552
+ EXPR_VAR@9539..9542
+ NAME@9539..9542
+ IDENT@9539..9542 "std"
+ DOT@9542..9543 "."
+ NAME@9543..9552
+ IDENT@9543..9552 "makeArray"
+ ARGS_DESC@9552..9593
+ L_PAREN@9552..9553 "("
+ ARG@9553..9572
+ EXPR_BINARY@9553..9572
+ LHS_EXPR@9553..9568
+ EXPR_APPLY@9553..9568
+ EXPR_INDEX@9553..9563
+ EXPR_VAR@9553..9556
+ NAME@9553..9556
+ IDENT@9553..9556 "std"
+ DOT@9556..9557 "."
+ NAME@9557..9563
+ IDENT@9557..9563 "length"
+ ARGS_DESC@9563..9568
+ L_PAREN@9563..9564 "("
+ ARG@9564..9567
+ EXPR_VAR@9564..9567
+ NAME@9564..9567
+ IDENT@9564..9567 "arr"
+ R_PAREN@9567..9568 ")"
+ WHITESPACE@9568..9569 " "
+ MINUS@9569..9570 "-"
+ WHITESPACE@9570..9571 " "
+ EXPR_NUMBER@9571..9572
+ FLOAT@9571..9572 "1"
+ COMMA@9572..9573 ","
+ WHITESPACE@9573..9574 " "
+ ARG@9574..9592
+ EXPR_FUNCTION@9574..9592
+ FUNCTION_KW@9574..9582 "function"
+ PARAMS_DESC@9582..9585
+ L_PAREN@9582..9583 "("
+ PARAM@9583..9584
+ DESTRUCT_FULL@9583..9584
+ NAME@9583..9584
+ IDENT@9583..9584 "i"
+ R_PAREN@9584..9585 ")"
+ WHITESPACE@9585..9586 " "
+ EXPR_INDEX_EXPR@9586..9592
+ LHS_EXPR@9586..9589
+ EXPR_VAR@9586..9589
+ NAME@9586..9589
+ IDENT@9586..9589 "arr"
+ L_BRACK@9589..9590 "["
+ EXPR_VAR@9590..9591
+ NAME@9590..9591
+ IDENT@9590..9591 "i"
+ R_BRACK@9591..9592 "]"
+ R_PAREN@9592..9593 ")"
+ WHITESPACE@9593..9594 " "
+ PLUS@9594..9595 "+"
+ WHITESPACE@9595..9596 " "
+ EXPR_ARRAY@9596..9599
+ L_BRACK@9596..9597 "["
+ EXPR_VAR@9597..9598
+ NAME@9597..9598
+ IDENT@9597..9598 "r"
+ R_BRACK@9598..9599 "]"
+ R_PAREN@9599..9600 ")"
+ COMMA@9600..9601 ","
+ WHITESPACE@9601..9605 "\n\n "
+ MEMBER_FIELD@9605..10058
+ FIELD_METHOD@9605..10058
+ FIELD_NAME_FIXED@9605..9610
+ NAME@9605..9610
+ IDENT@9605..9610 "prune"
+ PARAMS_DESC@9610..9613
+ L_PAREN@9610..9611 "("
+ PARAM@9611..9612
+ DESTRUCT_FULL@9611..9612
+ NAME@9611..9612
+ IDENT@9611..9612 "a"
+ R_PAREN@9612..9613 ")"
+ COLONCOLON@9613..9615 "::"
+ WHITESPACE@9615..9620 "\n "
+ EXPR_LOCAL@9620..10058
+ LOCAL_KW@9620..9625 "local"
+ WHITESPACE@9625..9626 " "
+ BIND_FUNCTION@9626..9823
+ NAME@9626..9635
+ IDENT@9626..9635 "isContent"
+ PARAMS_DESC@9635..9638
+ L_PAREN@9635..9636 "("
+ PARAM@9636..9637
+ DESTRUCT_FULL@9636..9637
+ NAME@9636..9637
+ IDENT@9636..9637 "b"
+ R_PAREN@9637..9638 ")"
+ WHITESPACE@9638..9639 " "
+ ASSIGN@9639..9640 "="
+ WHITESPACE@9640..9647 "\n "
+ EXPR_IF_THEN_ELSE@9647..9823
+ IF_KW@9647..9649 "if"
+ WHITESPACE@9649..9650 " "
+ EXPR_BINARY@9650..9659
+ LHS_EXPR@9650..9651
+ EXPR_VAR@9650..9651
+ NAME@9650..9651
+ IDENT@9650..9651 "b"
+ WHITESPACE@9651..9652 " "
+ EQ@9652..9654 "=="
+ WHITESPACE@9654..9655 " "
+ EXPR_LITERAL@9655..9659
+ NULL_KW@9655..9659 "null"
+ WHITESPACE@9659..9660 " "
+ THEN_KW@9660..9664 "then"
+ WHITESPACE@9664..9673 "\n "
+ TRUE_EXPR@9673..9678
+ EXPR_LITERAL@9673..9678
+ FALSE_KW@9673..9678 "false"
+ WHITESPACE@9678..9685 "\n "
+ ELSE_KW@9685..9689 "else"
+ WHITESPACE@9689..9690 " "
+ FALSE_EXPR@9690..9823
+ EXPR_IF_THEN_ELSE@9690..9823
+ IF_KW@9690..9692 "if"
+ WHITESPACE@9692..9693 " "
+ EXPR_APPLY@9693..9707
+ EXPR_INDEX@9693..9704
+ EXPR_VAR@9693..9696
+ NAME@9693..9696
+ IDENT@9693..9696 "std"
+ DOT@9696..9697 "."
+ NAME@9697..9704
+ IDENT@9697..9704 "isArray"
+ ARGS_DESC@9704..9707
+ L_PAREN@9704..9705 "("
+ ARG@9705..9706
+ EXPR_VAR@9705..9706
+ NAME@9705..9706
+ IDENT@9705..9706 "b"
+ R_PAREN@9706..9707 ")"
+ WHITESPACE@9707..9708 " "
+ THEN_KW@9708..9712 "then"
+ WHITESPACE@9712..9721 "\n "
+ TRUE_EXPR@9721..9738
+ EXPR_BINARY@9721..9738
+ LHS_EXPR@9721..9734
+ EXPR_APPLY@9721..9734
+ EXPR_INDEX@9721..9731
+ EXPR_VAR@9721..9724
+ NAME@9721..9724
+ IDENT@9721..9724 "std"
+ DOT@9724..9725 "."
+ NAME@9725..9731
+ IDENT@9725..9731 "length"
+ ARGS_DESC@9731..9734
+ L_PAREN@9731..9732 "("
+ ARG@9732..9733
+ EXPR_VAR@9732..9733
+ NAME@9732..9733
+ IDENT@9732..9733 "b"
+ R_PAREN@9733..9734 ")"
+ WHITESPACE@9734..9735 " "
+ GT@9735..9736 ">"
+ WHITESPACE@9736..9737 " "
+ EXPR_NUMBER@9737..9738
+ FLOAT@9737..9738 "0"
+ WHITESPACE@9738..9745 "\n "
+ ELSE_KW@9745..9749 "else"
+ WHITESPACE@9749..9750 " "
+ FALSE_EXPR@9750..9823
+ EXPR_IF_THEN_ELSE@9750..9823
+ IF_KW@9750..9752 "if"
+ WHITESPACE@9752..9753 " "
+ EXPR_APPLY@9753..9768
+ EXPR_INDEX@9753..9765
+ EXPR_VAR@9753..9756
+ NAME@9753..9756
+ IDENT@9753..9756 "std"
+ DOT@9756..9757 "."
+ NAME@9757..9765
+ IDENT@9757..9765 "isObject"
+ ARGS_DESC@9765..9768
+ L_PAREN@9765..9766 "("
+ ARG@9766..9767
+ EXPR_VAR@9766..9767
+ NAME@9766..9767
+ IDENT@9766..9767 "b"
+ R_PAREN@9767..9768 ")"
+ WHITESPACE@9768..9769 " "
+ THEN_KW@9769..9773 "then"
+ WHITESPACE@9773..9782 "\n "
+ TRUE_EXPR@9782..9799
+ EXPR_BINARY@9782..9799
+ LHS_EXPR@9782..9795
+ EXPR_APPLY@9782..9795
+ EXPR_INDEX@9782..9792
+ EXPR_VAR@9782..9785
+ NAME@9782..9785
+ IDENT@9782..9785 "std"
+ DOT@9785..9786 "."
+ NAME@9786..9792
+ IDENT@9786..9792 "length"
+ ARGS_DESC@9792..9795
+ L_PAREN@9792..9793 "("
+ ARG@9793..9794
+ EXPR_VAR@9793..9794
+ NAME@9793..9794
+ IDENT@9793..9794 "b"
+ R_PAREN@9794..9795 ")"
+ WHITESPACE@9795..9796 " "
+ GT@9796..9797 ">"
+ WHITESPACE@9797..9798 " "
+ EXPR_NUMBER@9798..9799
+ FLOAT@9798..9799 "0"
+ WHITESPACE@9799..9806 "\n "
+ ELSE_KW@9806..9810 "else"
+ WHITESPACE@9810..9819 "\n "
+ FALSE_EXPR@9819..9823
+ EXPR_LITERAL@9819..9823
+ TRUE_KW@9819..9823 "true"
+ SEMI@9823..9824 ";"
+ WHITESPACE@9824..9829 "\n "
+ EXPR_IF_THEN_ELSE@9829..10058
+ IF_KW@9829..9831 "if"
+ WHITESPACE@9831..9832 " "
+ EXPR_APPLY@9832..9846
+ EXPR_INDEX@9832..9843
+ EXPR_VAR@9832..9835
+ NAME@9832..9835
+ IDENT@9832..9835 "std"
+ DOT@9835..9836 "."
+ NAME@9836..9843
+ IDENT@9836..9843 "isArray"
+ ARGS_DESC@9843..9846
+ L_PAREN@9843..9844 "("
+ ARG@9844..9845
+ EXPR_VAR@9844..9845
+ NAME@9844..9845
+ IDENT@9844..9845 "a"
+ R_PAREN@9845..9846 ")"
+ WHITESPACE@9846..9847 " "
+ THEN_KW@9847..9851 "then"
+ WHITESPACE@9851..9858 "\n "
+ TRUE_EXPR@9858..9908
+ EXPR_ARRAY_COMP@9858..9908
+ L_BRACK@9858..9859 "["
+ EXPR_APPLY@9859..9871
+ EXPR_INDEX@9859..9868
+ EXPR_VAR@9859..9862
+ NAME@9859..9862
+ IDENT@9859..9862 "std"
+ DOT@9862..9863 "."
+ NAME@9863..9868
+ IDENT@9863..9868 "prune"
+ ARGS_DESC@9868..9871
+ L_PAREN@9868..9869 "("
+ ARG@9869..9870
+ EXPR_VAR@9869..9870
+ NAME@9869..9870
+ IDENT@9869..9870 "x"
+ R_PAREN@9870..9871 ")"
+ WHITESPACE@9871..9872 " "
+ FOR_SPEC@9872..9882
+ FOR_KW@9872..9875 "for"
+ WHITESPACE@9875..9876 " "
+ NAME@9876..9877
+ IDENT@9876..9877 "x"
+ WHITESPACE@9877..9878 " "
+ IN_KW@9878..9880 "in"
+ WHITESPACE@9880..9881 " "
+ EXPR_VAR@9881..9882
+ NAME@9881..9882
+ IDENT@9881..9882 "a"
+ WHITESPACE@9882..9883 " "
+ IF_SPEC@9883..9907
+ IF_KW@9883..9885 "if"
+ WHITESPACE@9885..9886 " "
+ EXPR_APPLY@9886..9907
+ EXPR_VAR@9886..9895
+ NAME@9886..9895
+ IDENT@9886..9895 "isContent"
+ ARGS_DESC@9895..9907
+ L_PAREN@9895..9896 "("
+ ARG@9896..9906
+ EXPR_APPLY@9896..9906
+ EXPR_INDEX@9896..9903
+ EXPR_LITERAL@9896..9897
+ DOLLAR@9896..9897 "$"
+ DOT@9897..9898 "."
+ NAME@9898..9903
+ IDENT@9898..9903 "prune"
+ ARGS_DESC@9903..9906
+ L_PAREN@9903..9904 "("
+ ARG@9904..9905
+ EXPR_VAR@9904..9905
+ NAME@9904..9905
+ IDENT@9904..9905 "x"
+ R_PAREN@9905..9906 ")"
+ R_PAREN@9906..9907 ")"
+ R_BRACK@9907..9908 "]"
+ WHITESPACE@9908..9913 "\n "
+ ELSE_KW@9913..9917 "else"
+ WHITESPACE@9917..9918 " "
+ FALSE_EXPR@9918..10058
+ EXPR_IF_THEN_ELSE@9918..10058
+ IF_KW@9918..9920 "if"
+ WHITESPACE@9920..9921 " "
+ EXPR_APPLY@9921..9936
+ EXPR_INDEX@9921..9933
+ EXPR_VAR@9921..9924
+ NAME@9921..9924
+ IDENT@9921..9924 "std"
+ DOT@9924..9925 "."
+ NAME@9925..9933
+ IDENT@9925..9933 "isObject"
+ ARGS_DESC@9933..9936
+ L_PAREN@9933..9934 "("
+ ARG@9934..9935
+ EXPR_VAR@9934..9935
+ NAME@9934..9935
+ IDENT@9934..9935 "a"
+ R_PAREN@9935..9936 ")"
+ WHITESPACE@9936..9937 " "
+ THEN_KW@9937..9941 "then"
+ WHITESPACE@9941..9942 " "
+ TRUE_EXPR@9942..10045
+ EXPR_OBJECT@9942..10045
+ OBJ_BODY_MEMBER_LIST@9942..10045
+ L_BRACE@9942..9943 "{"
+ WHITESPACE@9943..9950 "\n "
+ MEMBER_FIELD@9950..10039
+ FIELD_NORMAL@9950..9968
+ FIELD_NAME_DYNAMIC@9950..9953
+ L_BRACK@9950..9951 "["
+ EXPR_VAR@9951..9952
+ NAME@9951..9952
+ IDENT@9951..9952 "x"
+ R_BRACK@9952..9953 "]"
+ COLON@9953..9954 ":"
+ WHITESPACE@9954..9955 " "
+ EXPR_APPLY@9955..9968
+ EXPR_INDEX@9955..9962
+ EXPR_LITERAL@9955..9956
+ DOLLAR@9955..9956 "$"
+ DOT@9956..9957 "."
+ NAME@9957..9962
+ IDENT@9957..9962 "prune"
+ ARGS_DESC@9962..9968
+ L_PAREN@9962..9963 "("
+ ARG@9963..9967
+ EXPR_INDEX_EXPR@9963..9967
+ LHS_EXPR@9963..9964
+ EXPR_VAR@9963..9964
+ NAME@9963..9964
+ IDENT@9963..9964 "a"
+ L_BRACK@9964..9965 "["
+ EXPR_VAR@9965..9966
+ NAME@9965..9966
+ IDENT@9965..9966 "x"
+ R_BRACK@9966..9967 "]"
+ R_PAREN@9967..9968 ")"
+ WHITESPACE@9968..9975 "\n "
+ FOR_SPEC@9975..10003
+ FOR_KW@9975..9978 "for"
+ WHITESPACE@9978..9979 " "
+ NAME@9979..9980
+ IDENT@9979..9980 "x"
+ WHITESPACE@9980..9981 " "
+ IN_KW@9981..9983 "in"
+ WHITESPACE@9983..9984 " "
+ EXPR_APPLY@9984..10003
+ EXPR_INDEX@9984..10000
+ EXPR_VAR@9984..9987
+ NAME@9984..9987
+ IDENT@9984..9987 "std"
+ DOT@9987..9988 "."
+ NAME@9988..10000
+ IDENT@9988..10000 "objectFields"
+ ARGS_DESC@10000..10003
+ L_PAREN@10000..10001 "("
+ ARG@10001..10002
+ EXPR_VAR@10001..10002
+ NAME@10001..10002
+ IDENT@10001..10002 "a"
+ R_PAREN@10002..10003 ")"
+ WHITESPACE@10003..10010 "\n "
+ IF_SPEC@10010..10039
+ IF_KW@10010..10012 "if"
+ WHITESPACE@10012..10013 " "
+ EXPR_APPLY@10013..10039
+ EXPR_VAR@10013..10022
+ NAME@10013..10022
+ IDENT@10013..10022 "isContent"
+ ARGS_DESC@10022..10039
+ L_PAREN@10022..10023 "("
+ ARG@10023..10038
+ EXPR_APPLY@10023..10038
+ EXPR_INDEX@10023..10032
+ EXPR_VAR@10023..10026
+ NAME@10023..10026
+ IDENT@10023..10026 "std"
+ DOT@10026..10027 "."
+ NAME@10027..10032
+ IDENT@10027..10032 "prune"
+ ARGS_DESC@10032..10038
+ L_PAREN@10032..10033 "("
+ ARG@10033..10037
+ EXPR_INDEX_EXPR@10033..10037
+ LHS_EXPR@10033..10034
+ EXPR_VAR@10033..10034
+ NAME@10033..10034
+ IDENT@10033..10034 "a"
+ L_BRACK@10034..10035 "["
+ EXPR_VAR@10035..10036
+ NAME@10035..10036
+ IDENT@10035..10036 "x"
+ R_BRACK@10036..10037 "]"
+ R_PAREN@10037..10038 ")"
+ R_PAREN@10038..10039 ")"
+ WHITESPACE@10039..10044 "\n "
+ R_BRACE@10044..10045 "}"
+ WHITESPACE@10045..10046 " "
+ ELSE_KW@10046..10050 "else"
+ WHITESPACE@10050..10057 "\n "
+ FALSE_EXPR@10057..10058
+ EXPR_VAR@10057..10058
+ NAME@10057..10058
+ IDENT@10057..10058 "a"
+ COMMA@10058..10059 ","
+ WHITESPACE@10059..10063 "\n\n "
+ MEMBER_FIELD@10063..10278
+ FIELD_METHOD@10063..10278
+ FIELD_NAME_FIXED@10063..10067
+ NAME@10063..10067
+ IDENT@10063..10067 "find"
+ PARAMS_DESC@10067..10079
+ L_PAREN@10067..10068 "("
+ PARAM@10068..10073
+ DESTRUCT_FULL@10068..10073
+ NAME@10068..10073
+ IDENT@10068..10073 "value"
+ COMMA@10073..10074 ","
+ WHITESPACE@10074..10075 " "
+ PARAM@10075..10078
+ DESTRUCT_FULL@10075..10078
+ NAME@10075..10078
+ IDENT@10075..10078 "arr"
+ R_PAREN@10078..10079 ")"
+ COLONCOLON@10079..10081 "::"
+ WHITESPACE@10081..10086 "\n "
+ EXPR_IF_THEN_ELSE@10086..10278
+ IF_KW@10086..10088 "if"
+ WHITESPACE@10088..10089 " "
+ EXPR_UNARY@10089..10106
+ NOT@10089..10090 "!"
+ EXPR_APPLY@10090..10106
+ EXPR_INDEX@10090..10101
+ EXPR_VAR@10090..10093
+ NAME@10090..10093
+ IDENT@10090..10093 "std"
+ DOT@10093..10094 "."
+ NAME@10094..10101
+ IDENT@10094..10101 "isArray"
+ ARGS_DESC@10101..10106
+ L_PAREN@10101..10102 "("
+ ARG@10102..10105
+ EXPR_VAR@10102..10105
+ NAME@10102..10105
+ IDENT@10102..10105 "arr"
+ R_PAREN@10105..10106 ")"
+ WHITESPACE@10106..10107 " "
+ THEN_KW@10107..10111 "then"
+ WHITESPACE@10111..10118 "\n "
+ TRUE_EXPR@10118..10188
+ EXPR_ERROR@10118..10188
+ ERROR_KW@10118..10123 "error"
+ WHITESPACE@10123..10124 " "
+ EXPR_BINARY@10124..10188
+ LHS_EXPR@10124..10172
+ EXPR_STRING@10124..10172
+ STRING_SINGLE@10124..10172 "'find second paramete ..."
+ WHITESPACE@10172..10173 " "
+ PLUS@10173..10174 "+"
+ WHITESPACE@10174..10175 " "
+ EXPR_APPLY@10175..10188
+ EXPR_INDEX@10175..10183
+ EXPR_VAR@10175..10178
+ NAME@10175..10178
+ IDENT@10175..10178 "std"
+ DOT@10178..10179 "."
+ NAME@10179..10183
+ IDENT@10179..10183 "type"
+ ARGS_DESC@10183..10188
+ L_PAREN@10183..10184 "("
+ ARG@10184..10187
+ EXPR_VAR@10184..10187
+ NAME@10184..10187
+ IDENT@10184..10187 "arr"
+ R_PAREN@10187..10188 ")"
+ WHITESPACE@10188..10193 "\n "
+ ELSE_KW@10193..10197 "else"
+ WHITESPACE@10197..10204 "\n "
+ FALSE_EXPR@10204..10278
+ EXPR_APPLY@10204..10278
+ EXPR_INDEX@10204..10214
+ EXPR_VAR@10204..10207
+ NAME@10204..10207
+ IDENT@10204..10207 "std"
+ DOT@10207..10208 "."
+ NAME@10208..10214
+ IDENT@10208..10214 "filter"
+ ARGS_DESC@10214..10278
+ L_PAREN@10214..10215 "("
+ ARG@10215..10242
+ EXPR_FUNCTION@10215..10242
+ FUNCTION_KW@10215..10223 "function"
+ PARAMS_DESC@10223..10226
+ L_PAREN@10223..10224 "("
+ PARAM@10224..10225
+ DESTRUCT_FULL@10224..10225
+ NAME@10224..10225
+ IDENT@10224..10225 "i"
+ R_PAREN@10225..10226 ")"
+ WHITESPACE@10226..10227 " "
+ EXPR_BINARY@10227..10242
+ LHS_EXPR@10227..10233
+ EXPR_INDEX_EXPR@10227..10233
+ LHS_EXPR@10227..10230
+ EXPR_VAR@10227..10230
+ NAME@10227..10230
+ IDENT@10227..10230 "arr"
+ L_BRACK@10230..10231 "["
+ EXPR_VAR@10231..10232
+ NAME@10231..10232
+ IDENT@10231..10232 "i"
+ R_BRACK@10232..10233 "]"
+ WHITESPACE@10233..10234 " "
+ EQ@10234..10236 "=="
+ WHITESPACE@10236..10237 " "
+ EXPR_VAR@10237..10242
+ NAME@10237..10242
+ IDENT@10237..10242 "value"
+ COMMA@10242..10243 ","
+ WHITESPACE@10243..10244 " "
+ ARG@10244..10277
+ EXPR_APPLY@10244..10277
+ EXPR_INDEX@10244..10253
+ EXPR_VAR@10244..10247
+ NAME@10244..10247
+ IDENT@10244..10247 "std"
+ DOT@10247..10248 "."
+ NAME@10248..10253
+ IDENT@10248..10253 "range"
+ ARGS_DESC@10253..10277
+ L_PAREN@10253..10254 "("
+ ARG@10254..10255
+ EXPR_NUMBER@10254..10255
+ FLOAT@10254..10255 "0"
+ COMMA@10255..10256 ","
+ WHITESPACE@10256..10257 " "
+ ARG@10257..10276
+ EXPR_BINARY@10257..10276
+ LHS_EXPR@10257..10272
+ EXPR_APPLY@10257..10272
+ EXPR_INDEX@10257..10267
+ EXPR_VAR@10257..10260
+ NAME@10257..10260
+ IDENT@10257..10260 "std"
+ DOT@10260..10261 "."
+ NAME@10261..10267
+ IDENT@10261..10267 "length"
+ ARGS_DESC@10267..10272
+ L_PAREN@10267..10268 "("
+ ARG@10268..10271
+ EXPR_VAR@10268..10271
+ NAME@10268..10271
+ IDENT@10268..10271 "arr"
+ R_PAREN@10271..10272 ")"
+ WHITESPACE@10272..10273 " "
+ MINUS@10273..10274 "-"
+ WHITESPACE@10274..10275 " "
+ EXPR_NUMBER@10275..10276
+ FLOAT@10275..10276 "1"
+ R_PAREN@10276..10277 ")"
+ R_PAREN@10277..10278 ")"
+ COMMA@10278..10279 ","
+ WHITESPACE@10279..10280 "\n"
+ R_BRACE@10280..10281 "}"
+ WHITESPACE@10281..10282 "\n"
crates/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
+ `----
crates/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 | }
`----
-
crates/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);
}
crates/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"
);
}
flake.nixdiffbeforeafterboth--- a/flake.nix
+++ b/flake.nix
@@ -131,6 +131,7 @@
cargo-edit
cargo-asm
cargo-outdated
+ cargo-watch
lld
hyperfine
graphviz
xtask/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,