difftreelog
feat parse object comprehensions
in: master
29 files changed
crates/jrsonnet-rowan-parser/jsonnet.ungramdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/jsonnet.ungram
+++ b/crates/jrsonnet-rowan-parser/jsonnet.ungram
@@ -194,29 +194,25 @@
MemberBindStmt = ObjLocal
MemberAssertStmt = Assertion
-MemberField = Field
-Member =
- MemberBindStmt
-| MemberAssertStmt
-| MemberField
-
-ObjLocal =
- 'local'
- Bind
-
-FieldNormal =
+MemberFieldNormal =
FieldName
'+'?
Visibility
Expr
-FieldMethod =
+MemberFieldMethod =
FieldName
ParamsDesc
Visibility
Expr
-Field =
- FieldNormal
-| FieldMethod
+Member =
+ MemberBindStmt
+| MemberAssertStmt
+| MemberFieldNormal
+| MemberFieldMethod
+
+ObjLocal =
+ 'local'
+ Bind
FieldNameFixed =
id:Name
@@ -374,3 +370,4 @@
ParsingError =
'ERROR_MISSING_TOKEN!'
| 'ERROR_UNEXPECTED_TOKEN!'
+| 'ERROR_CUSTOM!'
crates/jrsonnet-rowan-parser/src/event.rsdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/src/event.rs
+++ b/crates/jrsonnet-rowan-parser/src/event.rs
@@ -1,4 +1,4 @@
-use std::mem;
+use std::{mem, num::NonZeroUsize};
use rowan::{GreenNodeBuilder, Language, TextRange, TextSize};
@@ -9,7 +9,7 @@
AstToken, JsonnetLanguage, SyntaxKind,
};
-#[derive(Clone, Debug, PartialEq, Eq)]
+#[derive(Clone, Debug)]
pub enum Event {
/// Used for unfinished markers
Pending,
@@ -18,22 +18,18 @@
kind: SyntaxKind,
/// If marker is preceded or wrapped - instead of reordering events, we
/// insert start event in the end of events Vec instead, and store relative offset to this event here
- forward_parent: Option<usize>,
+ forward_parent: Option<NonZeroUsize>,
},
/// Eat token
- Token {
- kind: SyntaxKind,
- },
+ Token { kind: SyntaxKind },
/// Push token, but do not eat anything,
- VirtualToken {
- kind: SyntaxKind,
- },
+ VirtualToken { kind: SyntaxKind },
/// Position of finished node
Finish {
/// Same as forward_parent of Start, but for wrapping
- wrapper: Option<usize>,
+ wrapper: Option<NonZeroUsize>,
+ error: Option<Box<SyntaxError>>,
},
- Error(SyntaxError),
/// Used for dropped markers and other things
Noop,
}
@@ -74,7 +70,6 @@
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 {
@@ -84,7 +79,6 @@
if depth != 0 {
self.skip_whitespace();
}
- error_last_range = None;
let mut kinds = vec![kind];
let mut idx = idx;
@@ -94,7 +88,7 @@
// of that, and of that, etc. until we reach a StartNode event without a forward
// parent.
while let Some(fp) = forward_parent {
- idx += fp;
+ idx += fp.get();
forward_parent = if let Event::Start {
kind,
@@ -123,7 +117,6 @@
if eat_start_whitespace {
self.skip_whitespace();
}
- error_last_range = None;
self.token(kind);
eat_start_whitespace = true;
}
@@ -131,31 +124,43 @@
if eat_start_whitespace {
self.skip_whitespace();
}
- error_last_range = None;
self.virtual_token(kind);
eat_start_whitespace = false;
}
- Event::Finish { wrapper } => {
+ Event::Finish { wrapper, error } => {
if depth == 1 {
self.skip_whitespace();
}
- error_last_range = Some((
+ let range = (
error_starts_at.pop().expect("starts == finishes"),
self.text_offset(),
- ));
+ );
+ if let Some(error) = error {
+ self.errors.push(LocatedSyntaxError {
+ error: *error,
+ range: TextRange::new(range.0, range.1),
+ })
+ }
self.builder.finish_node();
depth -= 1;
let mut idx = idx;
let mut wrapper = wrapper;
while let Some(w) = wrapper {
- idx += w;
- wrapper = if let Event::Finish { wrapper } =
+ idx += w.get();
+ wrapper = if let Event::Finish { wrapper, error } =
mem::replace(&mut self.events[idx], Event::Noop)
{
- error_last_range = Some((
+ let range = (
error_starts_at.pop().expect("starts == finishes"),
self.text_offset(),
- ));
+ );
+ if let Some(error) = error {
+ self.errors.push(LocatedSyntaxError {
+ error: *error,
+ range: TextRange::new(range.0, range.1),
+ })
+ }
+
if depth == 1 {
self.skip_whitespace();
}
@@ -170,15 +175,6 @@
}
Event::Pending => panic!("pending event should not appear in finished events"),
Event::Noop => {}
- 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
@@ -643,20 +643,10 @@
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
-pub struct MemberField {
+pub struct MemberFieldNormal {
pub(crate) syntax: SyntaxNode,
}
-impl MemberField {
- pub fn field(&self) -> Option<Field> {
- support::child(&self.syntax)
- }
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Hash)]
-pub struct FieldNormal {
- pub(crate) syntax: SyntaxNode,
-}
-impl FieldNormal {
+impl MemberFieldNormal {
pub fn field_name(&self) -> Option<FieldName> {
support::child(&self.syntax)
}
@@ -672,10 +662,10 @@
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
-pub struct FieldMethod {
+pub struct MemberFieldMethod {
pub(crate) syntax: SyntaxNode,
}
-impl FieldMethod {
+impl MemberFieldMethod {
pub fn field_name(&self) -> Option<FieldName> {
support::child(&self.syntax)
}
@@ -955,13 +945,8 @@
pub enum Member {
MemberBindStmt(MemberBindStmt),
MemberAssertStmt(MemberAssertStmt),
- MemberField(MemberField),
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Hash)]
-pub enum Field {
- FieldNormal(FieldNormal),
- FieldMethod(FieldMethod),
+ MemberFieldNormal(MemberFieldNormal),
+ MemberFieldMethod(MemberFieldMethod),
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -1134,6 +1119,7 @@
pub enum ParsingErrorKind {
ErrorMissingToken,
ErrorUnexpectedToken,
+ ErrorCustom,
}
impl AstNode for SourceFile {
fn can_cast(kind: SyntaxKind) -> bool {
@@ -1780,24 +1766,9 @@
&self.syntax
}
}
-impl AstNode for MemberField {
- fn can_cast(kind: SyntaxKind) -> bool {
- kind == MEMBER_FIELD
- }
- fn cast(syntax: SyntaxNode) -> Option<Self> {
- if Self::can_cast(syntax.kind()) {
- Some(Self { syntax })
- } else {
- None
- }
- }
- fn syntax(&self) -> &SyntaxNode {
- &self.syntax
- }
-}
-impl AstNode for FieldNormal {
+impl AstNode for MemberFieldNormal {
fn can_cast(kind: SyntaxKind) -> bool {
- kind == FIELD_NORMAL
+ kind == MEMBER_FIELD_NORMAL
}
fn cast(syntax: SyntaxNode) -> Option<Self> {
if Self::can_cast(syntax.kind()) {
@@ -1810,9 +1781,9 @@
&self.syntax
}
}
-impl AstNode for FieldMethod {
+impl AstNode for MemberFieldMethod {
fn can_cast(kind: SyntaxKind) -> bool {
- kind == FIELD_METHOD
+ kind == MEMBER_FIELD_METHOD
}
fn cast(syntax: SyntaxNode) -> Option<Self> {
if Self::can_cast(syntax.kind()) {
@@ -2352,15 +2323,22 @@
Member::MemberAssertStmt(node)
}
}
-impl From<MemberField> for Member {
- fn from(node: MemberField) -> Member {
- Member::MemberField(node)
+impl From<MemberFieldNormal> for Member {
+ fn from(node: MemberFieldNormal) -> Member {
+ Member::MemberFieldNormal(node)
}
}
+impl From<MemberFieldMethod> for Member {
+ fn from(node: MemberFieldMethod) -> Member {
+ Member::MemberFieldMethod(node)
+ }
+}
impl AstNode for Member {
fn can_cast(kind: SyntaxKind) -> bool {
match kind {
- MEMBER_BIND_STMT | MEMBER_ASSERT_STMT | MEMBER_FIELD => true,
+ MEMBER_BIND_STMT | MEMBER_ASSERT_STMT | MEMBER_FIELD_NORMAL | MEMBER_FIELD_METHOD => {
+ true
+ }
_ => false,
}
}
@@ -2368,7 +2346,8 @@
let res = match syntax.kind() {
MEMBER_BIND_STMT => Member::MemberBindStmt(MemberBindStmt { syntax }),
MEMBER_ASSERT_STMT => Member::MemberAssertStmt(MemberAssertStmt { syntax }),
- MEMBER_FIELD => Member::MemberField(MemberField { syntax }),
+ MEMBER_FIELD_NORMAL => Member::MemberFieldNormal(MemberFieldNormal { syntax }),
+ MEMBER_FIELD_METHOD => Member::MemberFieldMethod(MemberFieldMethod { syntax }),
_ => return None,
};
Some(res)
@@ -2377,39 +2356,8 @@
match self {
Member::MemberBindStmt(it) => &it.syntax,
Member::MemberAssertStmt(it) => &it.syntax,
- Member::MemberField(it) => &it.syntax,
- }
- }
-}
-impl From<FieldNormal> for Field {
- fn from(node: FieldNormal) -> Field {
- Field::FieldNormal(node)
- }
-}
-impl From<FieldMethod> for Field {
- fn from(node: FieldMethod) -> Field {
- Field::FieldMethod(node)
- }
-}
-impl AstNode for Field {
- fn can_cast(kind: SyntaxKind) -> bool {
- match kind {
- FIELD_NORMAL | FIELD_METHOD => true,
- _ => false,
- }
- }
- fn cast(syntax: SyntaxNode) -> Option<Self> {
- let res = match syntax.kind() {
- FIELD_NORMAL => Field::FieldNormal(FieldNormal { syntax }),
- FIELD_METHOD => Field::FieldMethod(FieldMethod { syntax }),
- _ => return None,
- };
- Some(res)
- }
- fn syntax(&self) -> &SyntaxNode {
- match self {
- Field::FieldNormal(it) => &it.syntax,
- Field::FieldMethod(it) => &it.syntax,
+ Member::MemberFieldNormal(it) => &it.syntax,
+ Member::MemberFieldMethod(it) => &it.syntax,
}
}
}
@@ -2914,7 +2862,7 @@
impl ParsingErrorKind {
fn can_cast(kind: SyntaxKind) -> bool {
match kind {
- ERROR_MISSING_TOKEN | ERROR_UNEXPECTED_TOKEN => true,
+ ERROR_MISSING_TOKEN | ERROR_UNEXPECTED_TOKEN | ERROR_CUSTOM => true,
_ => false,
}
}
@@ -2922,6 +2870,7 @@
let res = match kind {
ERROR_MISSING_TOKEN => Self::ErrorMissingToken,
ERROR_UNEXPECTED_TOKEN => Self::ErrorUnexpectedToken,
+ ERROR_CUSTOM => Self::ErrorCustom,
_ => return None,
};
Some(res)
@@ -2958,11 +2907,6 @@
}
}
impl std::fmt::Display for Member {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- std::fmt::Display::fmt(self.syntax(), f)
- }
-}
-impl std::fmt::Display for Field {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
std::fmt::Display::fmt(self.syntax(), f)
}
@@ -3197,17 +3141,12 @@
std::fmt::Display::fmt(self.syntax(), f)
}
}
-impl std::fmt::Display for MemberField {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- std::fmt::Display::fmt(self.syntax(), f)
- }
-}
-impl std::fmt::Display for FieldNormal {
+impl std::fmt::Display for MemberFieldNormal {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
std::fmt::Display::fmt(self.syntax(), f)
}
}
-impl std::fmt::Display for FieldMethod {
+impl std::fmt::Display for MemberFieldMethod {
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
@@ -181,6 +181,7 @@
ASSERT_KW,
ERROR_MISSING_TOKEN,
ERROR_UNEXPECTED_TOKEN,
+ ERROR_CUSTOM,
#[doc = r" Also acts as __LAST_TOKEN"]
#[error]
LEXING_ERROR,
@@ -227,9 +228,8 @@
OBJ_LOCAL,
MEMBER_BIND_STMT,
MEMBER_ASSERT_STMT,
- MEMBER_FIELD,
- FIELD_NORMAL,
- FIELD_METHOD,
+ MEMBER_FIELD_NORMAL,
+ MEMBER_FIELD_METHOD,
FIELD_NAME_FIXED,
FIELD_NAME_DYNAMIC,
FOR_SPEC,
@@ -249,7 +249,6 @@
COMP_SPEC,
BIND,
MEMBER,
- FIELD,
FIELD_NAME,
DESTRUCT,
DESTRUCT_ARRAY_PART,
@@ -281,7 +280,7 @@
}
pub fn is_enum(self) -> bool {
match self {
- EXPR | OBJ_BODY | COMP_SPEC | BIND | MEMBER | FIELD | FIELD_NAME | DESTRUCT
+ EXPR | OBJ_BODY | COMP_SPEC | BIND | MEMBER | FIELD_NAME | DESTRUCT
| DESTRUCT_ARRAY_PART | BINARY_OPERATOR | UNARY_OPERATOR | LITERAL | TEXT | NUMBER
| 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::{LocatedSyntaxError, Parser, SyntaxError};
+use parser::{LocatedSyntaxError, Parser};
pub use rowan;
mod ast;
crates/jrsonnet-rowan-parser/src/marker.rsdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/src/marker.rs
+++ b/crates/jrsonnet-rowan-parser/src/marker.rs
@@ -1,7 +1,12 @@
+use std::num::NonZeroUsize;
+
use drop_bomb::DropBomb;
-use rowan::TextRange;
-use crate::{event::Event, parser::Parser, SyntaxKind};
+use crate::{
+ event::Event,
+ parser::{ExpectedSyntax, Parser, SyntaxError},
+ SyntaxKind,
+};
pub struct Ranger {
pub pos: usize,
@@ -38,7 +43,12 @@
bomb: DropBomb::new("marked dropped while not completed"),
}
}
- pub fn complete(mut self, p: &mut Parser, kind: SyntaxKind) -> CompletedMarker {
+ fn complete_raw(
+ mut self,
+ p: &mut Parser,
+ kind: SyntaxKind,
+ error: Option<SyntaxError>,
+ ) -> CompletedMarker {
self.bomb.defuse();
assert!(
!kind.is_enum(),
@@ -50,7 +60,7 @@
// "{kind:?} should be only emitted by lexer, not used directly"
// );
let event_at_pos = &mut p.events[self.start_event_idx];
- assert_eq!(*event_at_pos, Event::Pending);
+ assert!(matches!(event_at_pos, Event::Pending));
*event_at_pos = Event::Start {
kind,
@@ -58,7 +68,10 @@
};
let finish_event_idx = p.events.len();
- p.events.push(Event::Finish { wrapper: None });
+ p.events.push(Event::Finish {
+ wrapper: None,
+ error: error.map(Box::new),
+ });
p.entered -= 1;
p.clear_outdated_hints();
CompletedMarker {
@@ -66,10 +79,42 @@
finish_event_idx,
}
}
+ pub fn complete(mut self, p: &mut Parser, kind: SyntaxKind) -> CompletedMarker {
+ self.complete_raw(p, kind, None)
+ }
+ pub fn complete_error(mut self, p: &mut Parser, msg: impl AsRef<str>) -> CompletedMarker {
+ self.complete_raw(
+ p,
+ SyntaxKind::ERROR_CUSTOM,
+ Some(SyntaxError::Custom {
+ error: msg.as_ref().to_owned(),
+ }),
+ )
+ }
+ pub fn complete_missing(mut self, p: &mut Parser, expected: ExpectedSyntax) -> CompletedMarker {
+ self.complete_raw(
+ p,
+ SyntaxKind::ERROR_MISSING_TOKEN,
+ Some(SyntaxError::Missing { expected }),
+ )
+ }
+ pub fn complete_unexpected(
+ mut self,
+ p: &mut Parser,
+ expected: ExpectedSyntax,
+ found: SyntaxKind,
+ ) -> CompletedMarker {
+ self.complete_raw(
+ p,
+ SyntaxKind::ERROR_UNEXPECTED_TOKEN,
+ Some(SyntaxError::Unexpected { expected, found }),
+ )
+ }
+
pub fn forget(mut self, p: &mut Parser) {
self.bomb.defuse();
let event_at_pos = &mut p.events[self.start_event_idx];
- assert_eq!(*event_at_pos, Event::Pending);
+ assert!(matches!(event_at_pos, Event::Pending));
*event_at_pos = Event::Noop;
p.entered -= 1;
@@ -85,7 +130,9 @@
let new_m = p.start();
match &mut p.events[self.start_event_idx] {
Event::Start { forward_parent, .. } => {
- *forward_parent = Some(new_m.start_event_idx - self.start_event_idx);
+ *forward_parent = Some(
+ NonZeroUsize::new(new_m.start_event_idx - self.start_event_idx).expect("!= 0"),
+ );
}
_ => unreachable!(),
}
@@ -93,23 +140,48 @@
new_m
}
/// Create new node around existing marker, not counting anything that comes after it
- pub fn wrap(self, p: &mut Parser, kind: SyntaxKind) -> CompletedMarker {
+ fn wrap_raw(
+ self,
+ p: &mut Parser,
+ kind: SyntaxKind,
+ error: Option<SyntaxError>,
+ ) -> CompletedMarker {
let new_m = p.start();
match &mut p.events[self.start_event_idx] {
Event::Start { forward_parent, .. } => {
- *forward_parent = Some(new_m.start_event_idx - self.start_event_idx);
+ *forward_parent = Some(
+ NonZeroUsize::new(new_m.start_event_idx - self.start_event_idx).expect("!= 0"),
+ );
}
_ => unreachable!(),
}
- let completed = new_m.complete(p, kind);
+ let completed = new_m.complete_raw(p, kind, error);
match &mut p.events[self.finish_event_idx] {
- Event::Finish { wrapper } => {
- *wrapper = Some(completed.finish_event_idx - self.finish_event_idx);
+ Event::Finish {
+ wrapper,
+ error: _error,
+ } => {
+ *wrapper = Some(
+ NonZeroUsize::new(completed.finish_event_idx - self.finish_event_idx)
+ .expect("!= 0"),
+ );
}
_ => unreachable!(),
}
completed
}
+ pub fn wrap(self, p: &mut Parser, kind: SyntaxKind) -> CompletedMarker {
+ self.wrap_raw(p, kind, None)
+ }
+ pub fn wrap_error(self, p: &mut Parser, msg: impl AsRef<str>) -> CompletedMarker {
+ self.wrap_raw(
+ p,
+ SyntaxKind::ERROR_CUSTOM,
+ Some(SyntaxError::Custom {
+ error: msg.as_ref().to_owned(),
+ }),
+ )
+ }
}
crates/jrsonnet-rowan-parser/src/parser.rsdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/src/parser.rs
+++ b/crates/jrsonnet-rowan-parser/src/parser.rs
@@ -1,13 +1,12 @@
-use std::{cell::Cell, fmt::Display, rc::Rc};
+use std::{cell::Cell, fmt, rc::Rc};
use miette::{LabeledSpan, SourceOffset, SourceSpan};
-use rowan::{GreenNode, TextRange, TextSize};
+use rowan::{GreenNode, TextRange};
use crate::{
event::Event,
- lex::Lexeme,
marker::{CompletedMarker, Marker, Ranger},
- nodes::{BinaryOperatorKind, Literal, Number, Text, Trivia, UnaryOperatorKind},
+ nodes::{BinaryOperatorKind, Literal, Number, Text, UnaryOperatorKind},
token_set::SyntaxKindSet,
AstToken, SyntaxKind,
SyntaxKind::*,
@@ -17,20 +16,6 @@
pub struct Parse {
pub green_node: GreenNode,
pub errors: Vec<LocatedSyntaxError>,
-}
-
-#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
-pub enum ExpectedSyntax {
- Named(&'static str),
- Unnamed(SyntaxKind),
-}
-impl Display for ExpectedSyntax {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- match self {
- ExpectedSyntax::Named(n) => write!(f, "{}", n),
- ExpectedSyntax::Unnamed(u) => write!(f, "{:?}", u),
- }
- }
}
pub struct Parser {
@@ -41,14 +26,11 @@
pub entered: u32,
pub hints: Vec<(u32, TextRange, String)>,
pub last_error_token: usize,
- expected_syntax: Option<ExpectedSyntax>,
- expected_syntax_tracking_state: Rc<Cell<ExpectedSyntaxTrackingState>>,
+ expected_syntax_tracking_state: Rc<Cell<ExpectedSyntax>>,
steps: Cell<u64>,
}
-const DEFAULT_RECOVERY_SET: SyntaxKindSet = TS![];
-
-#[derive(Clone, Debug, PartialEq, Eq)]
+#[derive(Clone, Debug)]
pub enum SyntaxError {
Unexpected {
expected: ExpectedSyntax,
@@ -80,11 +62,11 @@
dbg!(&val);
match val.error {
SyntaxError::Unexpected { expected, found } => LabeledSpan::new_with_span(
- Some(format!("expected {}, found {:?}", expected, found)),
+ Some(format!("expected {expected}, found {found:?}")),
span,
),
SyntaxError::Missing { expected } => {
- LabeledSpan::new_with_span(Some(format!("missing {}", expected)), span)
+ LabeledSpan::new_with_span(Some(format!("missing {expected}")), span)
}
SyntaxError::Custom { error } | SyntaxError::Hint { error } => {
LabeledSpan::new_with_span(Some(error), span)
@@ -102,10 +84,7 @@
entered: 0,
last_error_token: 0,
hints: vec![],
- expected_syntax: None,
- expected_syntax_tracking_state: Rc::new(Cell::new(
- ExpectedSyntaxTrackingState::Unnamed,
- )),
+ expected_syntax_tracking_state: Rc::new(Cell::new(ExpectedSyntax::Unnamed(TS![]))),
steps: Cell::new(0),
}
}
@@ -119,9 +98,8 @@
self.hints.truncate(self.hints.len() - amount)
}
fn clear_expected_syntaxes(&mut self) {
- self.expected_syntax = None;
self.expected_syntax_tracking_state
- .set(ExpectedSyntaxTrackingState::Unnamed);
+ .set(ExpectedSyntax::Unnamed(TS![]));
}
pub fn start(&mut self) -> Marker {
let start_event_idx = self.events.len();
@@ -166,38 +144,19 @@
} else {
self.error_with_no_skip();
}
- }
- pub(crate) fn error_with_recovery_set(
- &mut self,
- recovery_set: SyntaxKindSet,
- ) -> CompletedMarker {
- self.error_with_recovery_set_no_default(recovery_set.union(DEFAULT_RECOVERY_SET))
}
pub fn error_with_no_skip(&mut self) -> CompletedMarker {
- self.error_with_recovery_set_no_default(SyntaxKindSet::ALL)
+ self.error_with_recovery_set(SyntaxKindSet::ALL)
}
- pub fn error_with_recovery_set_no_default(
- &mut self,
- recovery_set: SyntaxKindSet,
- ) -> CompletedMarker {
- let expected_syntax = self
- .expected_syntax
- .take()
- .unwrap_or(ExpectedSyntax::Named("unknown"));
+ pub fn error_with_recovery_set(&mut self, recovery_set: SyntaxKindSet) -> CompletedMarker {
+ let expected = self.expected_syntax_tracking_state.get();
self.expected_syntax_tracking_state
- .set(ExpectedSyntaxTrackingState::Unnamed);
+ .set(ExpectedSyntax::Unnamed(TS![]));
if self.at_end() || self.at_ts(recovery_set) {
- // let range = self
- // .offset
- // .unwrap_or_else(|| TextRange::at(TextSize::from(0), TextSize::from(0)));
let m = self.start();
- let m = m.complete(self, ERROR_MISSING_TOKEN);
- self.events.push(Event::Error(SyntaxError::Missing {
- expected: expected_syntax,
- }));
- return m;
+ return m.complete_missing(self, expected);
}
let current_token = self.current();
@@ -206,11 +165,7 @@
let m = self.start();
self.bump();
- let m = m.complete(self, ERROR_UNEXPECTED_TOKEN);
- self.events.push(Event::Error(SyntaxError::Unexpected {
- expected: expected_syntax,
- found: current_token,
- }));
+ let m = m.complete_unexpected(self, expected, current_token);
self.clear_expected_syntaxes();
m
}
@@ -269,8 +224,7 @@
#[must_use]
pub(crate) fn expected_syntax_name(&mut self, name: &'static str) -> ExpectedSyntaxGuard {
self.expected_syntax_tracking_state
- .set(ExpectedSyntaxTrackingState::Named);
- self.expected_syntax = Some(ExpectedSyntax::Named(name));
+ .set(ExpectedSyntax::Named(name));
ExpectedSyntaxGuard::new(Rc::clone(&self.expected_syntax_tracking_state))
}
@@ -278,12 +232,21 @@
self.nth_at(0, kind)
}
pub fn nth_at(&mut self, n: usize, kind: SyntaxKind) -> bool {
- if let ExpectedSyntaxTrackingState::Unnamed = self.expected_syntax_tracking_state.get() {
- self.expected_syntax = Some(ExpectedSyntax::Unnamed(kind));
+ if n == 0 {
+ if let ExpectedSyntax::Unnamed(kinds) = self.expected_syntax_tracking_state.get() {
+ let kinds = kinds.with(kind);
+ self.expected_syntax_tracking_state
+ .set(ExpectedSyntax::Unnamed(kinds))
+ }
}
self.nth(n) == kind
}
pub fn at_ts(&mut self, set: SyntaxKindSet) -> bool {
+ if let ExpectedSyntax::Unnamed(kinds) = self.expected_syntax_tracking_state.get() {
+ let kinds = kinds.union(set);
+ self.expected_syntax_tracking_state
+ .set(ExpectedSyntax::Unnamed(kinds))
+ }
set.contains(self.current())
}
pub fn at_end(&mut self) -> bool {
@@ -291,11 +254,11 @@
}
}
pub(crate) struct ExpectedSyntaxGuard {
- expected_syntax_tracking_state: Rc<Cell<ExpectedSyntaxTrackingState>>,
+ expected_syntax_tracking_state: Rc<Cell<ExpectedSyntax>>,
}
impl ExpectedSyntaxGuard {
- fn new(expected_syntax_tracking_state: Rc<Cell<ExpectedSyntaxTrackingState>>) -> Self {
+ fn new(expected_syntax_tracking_state: Rc<Cell<ExpectedSyntax>>) -> Self {
Self {
expected_syntax_tracking_state,
}
@@ -305,14 +268,22 @@
impl Drop for ExpectedSyntaxGuard {
fn drop(&mut self) {
self.expected_syntax_tracking_state
- .set(ExpectedSyntaxTrackingState::Unnamed);
+ .set(ExpectedSyntax::Unnamed(TS![]));
}
}
-#[derive(Debug, Clone, Copy)]
-enum ExpectedSyntaxTrackingState {
- Named,
- Unnamed,
+#[derive(Clone, Debug, Copy)]
+pub enum ExpectedSyntax {
+ Named(&'static str),
+ Unnamed(SyntaxKindSet),
+}
+impl fmt::Display for ExpectedSyntax {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self {
+ ExpectedSyntax::Named(name) => write!(f, "{name}"),
+ ExpectedSyntax::Unnamed(set) => write!(f, "{set}"),
+ }
+ }
}
fn expr(p: &mut Parser) -> CompletedMarker {
@@ -357,44 +328,43 @@
}
Ok(lhs)
}
-fn compspec(p: &mut Parser) {
- assert!(p.at(T![for]) || p.at(T![if]));
+
+const COMPSPEC: SyntaxKindSet = TS![for if];
+fn compspec(p: &mut Parser) -> CompletedMarker {
+ assert!(p.at_ts(COMPSPEC));
if p.at(T![for]) {
let m = p.start();
p.bump();
name(p);
p.expect(T![in]);
expr(p);
- m.complete(p, FOR_SPEC);
+ m.complete(p, FOR_SPEC)
} else if p.at(T![if]) {
let m = p.start();
p.bump();
expr(p);
- m.complete(p, IF_SPEC);
+ m.complete(p, IF_SPEC)
} else {
unreachable!()
}
}
+
fn comma(p: &mut Parser) -> bool {
- if p.at(T![,]) {
- p.bump();
- true
- } else {
- false
- }
+ comma_with_alternatives(p, TS![])
}
fn comma_with_alternatives(p: &mut Parser, set: SyntaxKindSet) -> bool {
if p.at(T![,]) {
p.bump();
true
} else if p.at_ts(set) {
- p.expect_with_no_skip(T![,]);
- p.bump();
+ let _ex = p.expected_syntax_name("comma");
+ p.expect_with_recovery_set(T![,], TS![]);
true
} else {
false
}
}
+
fn field_name(p: &mut Parser) {
let _e = p.expected_syntax_name("field name");
let m = p.start();
@@ -410,49 +380,17 @@
text(p);
m.complete(p, FIELD_NAME_FIXED);
} else {
- p.error_with_recovery_set(TS![;]);
+ m.forget(p);
+ p.error_with_recovery_set(TS![; : :: ::: '(']);
}
}
fn visibility(p: &mut Parser) {
if p.at_ts(TS![: :: :::]) {
p.bump()
} else {
- p.error_with_recovery_set(TS![]);
+ p.error_with_recovery_set(TS![=]);
}
}
-fn field(p: &mut Parser) {
- let m = p.start();
- field_name(p);
- let plus = if p.at(T![+]) {
- let r = p.start_ranger();
- p.bump();
- Some(r.finish(p))
- } else {
- None
- };
- let params = if p.at(T!['(']) {
- // if let Some(plus) = plus {
- // p.custom_error(plus, "can't extend with method");
- // }
- params_desc(p);
- // if p.at(T![+]) {
- // let r = p.start_ranger();
- // p.bump();
- // p.custom_error(r.finish(p), "can't extend with method");
- // }
- true
- } else {
- false
- };
- visibility(p);
- expr(p);
-
- if params {
- m.complete(p, FIELD_METHOD)
- } else {
- m.complete(p, FIELD_NORMAL)
- };
-}
fn assertion(p: &mut Parser) {
let m = p.start();
p.bump_assert(T![assert]);
@@ -468,11 +406,27 @@
let m = p.start();
p.bump_assert(T!['{']);
+ let mut elems = 0;
+ let mut compspecs = Vec::new();
loop {
if p.at(T!['}']) {
p.bump();
break;
}
+ if p.at_ts(COMPSPEC) {
+ if elems == 0 {
+ let m = p.start();
+ m.complete_missing(p, ExpectedSyntax::Named("field definition"));
+ }
+ while p.at_ts(COMPSPEC) {
+ compspecs.push(compspec(p));
+ }
+ if comma_with_alternatives(p, TS![;]) {
+ continue;
+ }
+ p.expect(R_BRACE);
+ break;
+ }
let m = p.start();
if p.at(T![local]) {
obj_local(p);
@@ -481,20 +435,57 @@
assertion(p);
m.complete(p, MEMBER_ASSERT_STMT)
} else {
- field(p);
- while p.at(T![for]) || p.at(T![if]) {
- compspec(p)
+ field_name(p);
+ if p.at(T![+]) {
+ p.bump();
+ }
+ let params = if p.at(T!['(']) {
+ params_desc(p);
+ visibility(p);
+ expr(p);
+ true
+ } else if p.at_ts(TS![: :: :::]) && p.nth_at(1, T![function]) {
+ visibility(p);
+ p.bump_assert(T![function]);
+ params_desc(p);
+ expr(p);
+ true
+ } else {
+ visibility(p);
+ expr(p);
+ false
+ };
+
+ if params {
+ m.complete(p, MEMBER_FIELD_METHOD)
+ } else {
+ m.complete(p, MEMBER_FIELD_NORMAL)
}
- m.complete(p, MEMBER_FIELD)
};
- if comma_with_alternatives(p, SyntaxKindSet::new(&[T![=]])) {
+ elems += 1;
+ while p.at_ts(COMPSPEC) {
+ compspecs.push(compspec(p));
+ }
+ if comma_with_alternatives(p, TS![;]) {
continue;
}
p.expect(R_BRACE);
break;
}
- m.complete(p, OBJ_BODY_MEMBER_LIST);
+ if elems > 1 && !compspecs.is_empty() {
+ for errored in compspecs {
+ errored.wrap_error(
+ p,
+ "compspec may only be used if there is only one array element",
+ );
+ }
+ m.complete(p, OBJ_BODY_MEMBER_LIST);
+ } else if !compspecs.is_empty() {
+ m.complete(p, OBJ_BODY_COMP);
+ } else {
+ m.complete(p, OBJ_BODY_MEMBER_LIST);
+ }
m_t.complete(p, EXPR_OBJECT)
}
fn param(p: &mut Parser) {
@@ -530,6 +521,7 @@
p.bump_assert(T!['(']);
let started_named = Cell::new(false);
+ let mut unnamed_after_named = Vec::new();
loop {
if p.at(T![')']) {
@@ -545,7 +537,10 @@
started_named.set(true);
} else {
expr(p);
- m.complete(p, ARG);
+ let arg = m.complete(p, ARG);
+ if started_named.get() {
+ unnamed_after_named.push(arg)
+ }
}
if comma(p) {
continue;
@@ -556,6 +551,11 @@
if p.at(T![tailstrict]) {
p.bump()
}
+
+ for errored in unnamed_after_named {
+ errored.wrap_error(p, "can't use positional arguments after named");
+ }
+
m.complete(p, ARGS_DESC);
}
@@ -564,8 +564,7 @@
let m = p.start();
p.bump_assert(T!['[']);
- // This vec will have at most one element in case of correct input
- let mut compspecs = Vec::with_capacity(1);
+ let mut compspecs = Vec::new();
let mut elems = 0;
loop {
@@ -573,16 +572,20 @@
p.bump();
break;
}
+ if elems != 0 && p.at_ts(COMPSPEC) {
+ while p.at_ts(COMPSPEC) {
+ compspecs.push(compspec(p));
+ }
+ if comma(p) {
+ continue;
+ }
+ p.expect(T![']']);
+ break;
+ }
elems += 1;
expr(p);
- let c = p.start_ranger();
- let mut had_spec = false;
- while p.at(T![for]) || p.at(T![if]) {
- had_spec = true;
- compspec(p)
- }
- if had_spec {
- compspecs.push(c.finish(p));
+ while p.at_ts(COMPSPEC) {
+ compspecs.push(compspec(p));
}
if comma(p) {
continue;
@@ -593,10 +596,10 @@
if elems > 1 && !compspecs.is_empty() {
for spec in compspecs {
- // p.custom_error(
- // spec,
- // "compspec may only be used if there is only one array element",
- // )
+ spec.wrap_error(
+ p,
+ "compspec may only be used if there is only one array element",
+ );
}
m.complete(p, EXPR_ARRAY)
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec.snap
@@ -0,0 +1,34 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "[a for a in [1, 2, 3]]\n"
+---
+SOURCE_FILE@0..23
+ EXPR_ARRAY_COMP@0..22
+ L_BRACK@0..1 "["
+ EXPR_VAR@1..2
+ NAME@1..2
+ IDENT@1..2 "a"
+ WHITESPACE@2..3 " "
+ FOR_SPEC@3..21
+ FOR_KW@3..6 "for"
+ WHITESPACE@6..7 " "
+ NAME@7..8
+ IDENT@7..8 "a"
+ WHITESPACE@8..9 " "
+ IN_KW@9..11 "in"
+ WHITESPACE@11..12 " "
+ EXPR_ARRAY@12..21
+ L_BRACK@12..13 "["
+ EXPR_NUMBER@13..14
+ FLOAT@13..14 "1"
+ COMMA@14..15 ","
+ WHITESPACE@15..16 " "
+ EXPR_NUMBER@16..17
+ FLOAT@16..17 "2"
+ COMMA@17..18 ","
+ WHITESPACE@18..19 " "
+ EXPR_NUMBER@19..20
+ 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__arr_compspec_comma.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_comma.snap
@@ -0,0 +1,35 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "[a, for a in [1, 2, 3]]\n"
+---
+SOURCE_FILE@0..24
+ EXPR_ARRAY_COMP@0..23
+ L_BRACK@0..1 "["
+ EXPR_VAR@1..2
+ NAME@1..2
+ IDENT@1..2 "a"
+ COMMA@2..3 ","
+ WHITESPACE@3..4 " "
+ FOR_SPEC@4..22
+ FOR_KW@4..7 "for"
+ WHITESPACE@7..8 " "
+ NAME@8..9
+ IDENT@8..9 "a"
+ WHITESPACE@9..10 " "
+ IN_KW@10..12 "in"
+ WHITESPACE@12..13 " "
+ EXPR_ARRAY@13..22
+ L_BRACK@13..14 "["
+ EXPR_NUMBER@14..15
+ FLOAT@14..15 "1"
+ COMMA@15..16 ","
+ WHITESPACE@16..17 " "
+ EXPR_NUMBER@17..18
+ FLOAT@17..18 "2"
+ COMMA@18..19 ","
+ WHITESPACE@19..20 " "
+ EXPR_NUMBER@20..21
+ FLOAT@20..21 "3"
+ R_BRACK@21..22 "]"
+ R_BRACK@22..23 "]"
+ WHITESPACE@23..24 "\n"
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_incompatible_with_multiple_elems.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_incompatible_with_multiple_elems.snap
@@ -0,0 +1,49 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "[a for a in [1, 2, 3], b]\n"
+---
+SOURCE_FILE@0..26
+ EXPR_ARRAY@0..25
+ L_BRACK@0..1 "["
+ EXPR_VAR@1..2
+ NAME@1..2
+ IDENT@1..2 "a"
+ WHITESPACE@2..3 " "
+ ERROR_CUSTOM@3..21
+ FOR_SPEC@3..21
+ FOR_KW@3..6 "for"
+ WHITESPACE@6..7 " "
+ NAME@7..8
+ IDENT@7..8 "a"
+ WHITESPACE@8..9 " "
+ IN_KW@9..11 "in"
+ WHITESPACE@11..12 " "
+ EXPR_ARRAY@12..21
+ L_BRACK@12..13 "["
+ EXPR_NUMBER@13..14
+ FLOAT@13..14 "1"
+ COMMA@14..15 ","
+ WHITESPACE@15..16 " "
+ EXPR_NUMBER@16..17
+ FLOAT@16..17 "2"
+ COMMA@17..18 ","
+ WHITESPACE@18..19 " "
+ EXPR_NUMBER@19..20
+ FLOAT@19..20 "3"
+ R_BRACK@20..21 "]"
+ COMMA@21..22 ","
+ WHITESPACE@22..23 " "
+ EXPR_VAR@23..24
+ NAME@23..24
+ IDENT@23..24 "b"
+ R_BRACK@24..25 "]"
+ WHITESPACE@25..26 "\n"
+===
+LocatedSyntaxError { error: Custom { error: "compspec may only be used if there is only one array element" }, range: 3..21 }
+===
+ x syntax error
+ ,----
+ 1 | [a for a in [1, 2, 3], b]
+ : ^^^^^^^^^|^^^^^^^^
+ : `-- compspec may only be used if there is only one array element
+ `----
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_incompatible_with_multiple_elems_w.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_incompatible_with_multiple_elems_w.snap
@@ -0,0 +1,55 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "[a, b, for a in [1, 2, 3], c]\n"
+---
+SOURCE_FILE@0..30
+ EXPR_ARRAY@0..29
+ L_BRACK@0..1 "["
+ EXPR_VAR@1..2
+ NAME@1..2
+ IDENT@1..2 "a"
+ COMMA@2..3 ","
+ WHITESPACE@3..4 " "
+ EXPR_VAR@4..5
+ NAME@4..5
+ IDENT@4..5 "b"
+ COMMA@5..6 ","
+ WHITESPACE@6..7 " "
+ ERROR_CUSTOM@7..25
+ FOR_SPEC@7..25
+ FOR_KW@7..10 "for"
+ WHITESPACE@10..11 " "
+ NAME@11..12
+ IDENT@11..12 "a"
+ WHITESPACE@12..13 " "
+ IN_KW@13..15 "in"
+ WHITESPACE@15..16 " "
+ EXPR_ARRAY@16..25
+ L_BRACK@16..17 "["
+ EXPR_NUMBER@17..18
+ FLOAT@17..18 "1"
+ COMMA@18..19 ","
+ WHITESPACE@19..20 " "
+ EXPR_NUMBER@20..21
+ FLOAT@20..21 "2"
+ COMMA@21..22 ","
+ WHITESPACE@22..23 " "
+ EXPR_NUMBER@23..24
+ FLOAT@23..24 "3"
+ R_BRACK@24..25 "]"
+ COMMA@25..26 ","
+ WHITESPACE@26..27 " "
+ EXPR_VAR@27..28
+ NAME@27..28
+ IDENT@27..28 "c"
+ R_BRACK@28..29 "]"
+ WHITESPACE@29..30 "\n"
+===
+LocatedSyntaxError { error: Custom { error: "compspec may only be used if there is only one array element" }, range: 7..25 }
+===
+ x syntax error
+ ,----
+ 1 | [a, b, for a in [1, 2, 3], c]
+ : ^^^^^^^^^|^^^^^^^^
+ : `-- compspec may only be used if there is only one array element
+ `----
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_no_elems.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_no_elems.snap
@@ -0,0 +1,40 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "[for a in [1, 2, 3]]\n"
+---
+SOURCE_FILE@0..21
+ EXPR_ARRAY_COMP@0..20
+ L_BRACK@0..1 "["
+ ERROR_MISSING_TOKEN@1..1
+ FOR_SPEC@1..19
+ FOR_KW@1..4 "for"
+ WHITESPACE@4..5 " "
+ NAME@5..6
+ IDENT@5..6 "a"
+ WHITESPACE@6..7 " "
+ IN_KW@7..9 "in"
+ WHITESPACE@9..10 " "
+ EXPR_ARRAY@10..19
+ L_BRACK@10..11 "["
+ EXPR_NUMBER@11..12
+ FLOAT@11..12 "1"
+ COMMA@12..13 ","
+ WHITESPACE@13..14 " "
+ EXPR_NUMBER@14..15
+ FLOAT@14..15 "2"
+ COMMA@15..16 ","
+ WHITESPACE@16..17 " "
+ EXPR_NUMBER@17..18
+ FLOAT@17..18 "3"
+ R_BRACK@18..19 "]"
+ R_BRACK@19..20 "]"
+ WHITESPACE@20..21 "\n"
+===
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 1..1 }
+===
+ x syntax error
+ ,----
+ 1 | [for a in [1, 2, 3]]
+ : ^
+ : `-- 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
@@ -21,7 +21,7 @@
ERROR_MISSING_TOKEN@14..14
ERROR_MISSING_TOKEN@14..14
===
-LocatedSyntaxError { error: Missing { expected: Unnamed(R_PAREN) }, range: 14..14 }
+LocatedSyntaxError { error: Missing { expected: Unnamed(SyntaxKindSet([R_PAREN, COMMA, ASSIGN])) }, range: 14..14 }
LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 14..14 }
===
x syntax error
@@ -29,5 +29,5 @@
1 | function(a, b
: ^^
: |`-- missing expression
- : `-- missing R_PAREN
+ : `-- missing R_PAREN, COMMA or ASSIGN
`----
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_method.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_method.snap
@@ -0,0 +1,52 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "local\n\ta(x) = x,\n\ta = function(x) x,\n; c\n"
+---
+SOURCE_FILE@0..41
+ EXPR_LOCAL@0..40
+ LOCAL_KW@0..5 "local"
+ WHITESPACE@5..7 "\n\t"
+ BIND_FUNCTION@7..15
+ NAME@7..8
+ IDENT@7..8 "a"
+ PARAMS_DESC@8..11
+ L_PAREN@8..9 "("
+ PARAM@9..10
+ DESTRUCT_FULL@9..10
+ NAME@9..10
+ IDENT@9..10 "x"
+ R_PAREN@10..11 ")"
+ WHITESPACE@11..12 " "
+ ASSIGN@12..13 "="
+ WHITESPACE@13..14 " "
+ EXPR_VAR@14..15
+ NAME@14..15
+ IDENT@14..15 "x"
+ COMMA@15..16 ","
+ WHITESPACE@16..18 "\n\t"
+ BIND_FUNCTION@18..35
+ NAME@18..19
+ IDENT@18..19 "a"
+ WHITESPACE@19..20 " "
+ ASSIGN@20..21 "="
+ WHITESPACE@21..22 " "
+ FUNCTION_KW@22..30 "function"
+ PARAMS_DESC@30..33
+ L_PAREN@30..31 "("
+ PARAM@31..32
+ DESTRUCT_FULL@31..32
+ NAME@31..32
+ IDENT@31..32 "x"
+ R_PAREN@32..33 ")"
+ WHITESPACE@33..34 " "
+ EXPR_VAR@34..35
+ NAME@34..35
+ IDENT@34..35 "x"
+ COMMA@35..36 ","
+ WHITESPACE@36..37 "\n"
+ SEMI@37..38 ";"
+ WHITESPACE@38..39 " "
+ EXPR_VAR@39..40
+ NAME@39..40
+ IDENT@39..40 "c"
+ WHITESPACE@40..41 "\n"
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
@@ -33,7 +33,7 @@
ERROR_MISSING_TOKEN@25..25
ERROR_MISSING_TOKEN@25..25
===
-LocatedSyntaxError { error: Missing { expected: Unnamed(SEMI) }, range: 25..25 }
+LocatedSyntaxError { error: Missing { expected: Unnamed(SyntaxKindSet([L_BRACK, L_PAREN, L_BRACE, SEMI, DOT, COMMA])) }, range: 25..25 }
LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 25..25 }
===
x syntax error
@@ -42,5 +42,5 @@
3 | 1
: ^^
: |`-- missing expression
- : `-- missing SEMI
+ : `-- missing L_BRACK, L_PAREN, L_BRACE, SEMI, DOT or COMMA
`----
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
@@ -18,7 +18,7 @@
ERROR_MISSING_TOKEN@10..10
===
LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 10..10 }
-LocatedSyntaxError { error: Missing { expected: Unnamed(SEMI) }, range: 10..10 }
+LocatedSyntaxError { error: Missing { expected: Unnamed(SyntaxKindSet([SEMI, COMMA])) }, range: 10..10 }
LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 10..10 }
===
x syntax error
@@ -26,6 +26,6 @@
1 | local a =
: ^^^
: `-- missing expression
- : |`-- missing SEMI
+ : |`-- missing SEMI or COMMA
: `-- missing expression
`----
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__named_before_positional.snapdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__named_before_positional.snap
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__named_before_positional.snap
@@ -3,59 +3,68 @@
expression: "a(1, 2, b=4, 3, 5, k = 12, 6)\n"
---
SOURCE_FILE@0..30
- EXPR_APPLY@0..30
+ EXPR_APPLY@0..29
EXPR_VAR@0..1
- IDENT@0..1 "a"
- L_PAREN@1..2 "("
- ARG@2..3
- EXPR_NUMBER@2..3
- NUMBER@2..3 "1"
- COMMA@3..4 ","
- WHITESPACE@4..5 " "
- ARG@5..6
- EXPR_NUMBER@5..6
- NUMBER@5..6 "2"
- COMMA@6..7 ","
- WHITESPACE@7..8 " "
- ARG@8..11
- IDENT@8..9 "b"
- ASSIGN@9..10 "="
- EXPR_NUMBER@10..11
- NUMBER@10..11 "4"
- COMMA@11..12 ","
- WHITESPACE@12..13 " "
- ERROR@13..28
- ARG@13..14
- EXPR_NUMBER@13..14
- NUMBER@13..14 "3"
+ NAME@0..1
+ IDENT@0..1 "a"
+ ARGS_DESC@1..29
+ L_PAREN@1..2 "("
+ ARG@2..3
+ EXPR_NUMBER@2..3
+ FLOAT@2..3 "1"
+ COMMA@3..4 ","
+ WHITESPACE@4..5 " "
+ ARG@5..6
+ EXPR_NUMBER@5..6
+ FLOAT@5..6 "2"
+ COMMA@6..7 ","
+ WHITESPACE@7..8 " "
+ ARG@8..11
+ NAME@8..9
+ IDENT@8..9 "b"
+ ASSIGN@9..10 "="
+ EXPR_NUMBER@10..11
+ FLOAT@10..11 "4"
+ COMMA@11..12 ","
+ WHITESPACE@12..13 " "
+ ERROR_CUSTOM@13..14
+ ARG@13..14
+ EXPR_NUMBER@13..14
+ FLOAT@13..14 "3"
COMMA@14..15 ","
WHITESPACE@15..16 " "
- ARG@16..17
- EXPR_NUMBER@16..17
- NUMBER@16..17 "5"
+ ERROR_CUSTOM@16..17
+ ARG@16..17
+ EXPR_NUMBER@16..17
+ FLOAT@16..17 "5"
COMMA@17..18 ","
WHITESPACE@18..19 " "
ARG@19..25
- IDENT@19..20 "k"
+ NAME@19..20
+ IDENT@19..20 "k"
WHITESPACE@20..21 " "
ASSIGN@21..22 "="
WHITESPACE@22..23 " "
EXPR_NUMBER@23..25
- NUMBER@23..25 "12"
+ FLOAT@23..25 "12"
COMMA@25..26 ","
WHITESPACE@26..27 " "
- ARG@27..28
- EXPR_NUMBER@27..28
- NUMBER@27..28 "6"
- R_PAREN@28..29 ")"
- WHITESPACE@29..30 "\n"
+ ERROR_CUSTOM@27..28
+ ARG@27..28
+ EXPR_NUMBER@27..28
+ FLOAT@27..28 "6"
+ R_PAREN@28..29 ")"
+ WHITESPACE@29..30 "\n"
===
-Custom { error: "positional arguments can't be placed after named", range: 13..28 }
+LocatedSyntaxError { error: Custom { error: "can't use positional arguments after named" }, range: 13..14 }
+LocatedSyntaxError { error: Custom { error: "can't use positional arguments after named" }, range: 16..17 }
+LocatedSyntaxError { error: Custom { error: "can't use positional arguments after named" }, range: 27..28 }
===
x syntax error
,----
1 | a(1, 2, b=4, 3, 5, k = 12, 6)
- : ^^^^^^^|^^^^^^^
- : `-- positional arguments can't be placed after named
+ : | | |
+ : | | `-- can't use positional arguments after named
+ : | `-- can't use positional arguments after named
+ : `-- can't use positional arguments after named
`----
-
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
@@ -9,7 +9,7 @@
WHITESPACE@1..2 " "
===
LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 0..0 }
-LocatedSyntaxError { error: Unexpected { expected: Unnamed(EOF), found: PLUS }, range: 0..1 }
+LocatedSyntaxError { error: Unexpected { expected: Unnamed(SyntaxKindSet([EOF])), found: PLUS }, range: 0..1 }
===
x syntax error
,----
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
@@ -10,11 +10,11 @@
FLOAT@2..3 "2"
WHITESPACE@3..4 "\n"
===
-LocatedSyntaxError { error: Unexpected { expected: Unnamed(EOF), found: FLOAT }, range: 2..3 }
+LocatedSyntaxError { error: Unexpected { expected: Unnamed(SyntaxKindSet([EOF, L_BRACK, L_PAREN, L_BRACE, DOT])), found: FLOAT }, range: 2..3 }
===
x syntax error
,----
1 | 2 2
: |
- : `-- expected EOF, found FLOAT
+ : `-- expected EOF, L_BRACK, L_PAREN, L_BRACE or DOT, found FLOAT
`----
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec.snap
@@ -0,0 +1,39 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "{a:1 for a in [1, 2, 3]}\n"
+---
+SOURCE_FILE@0..25
+ EXPR_OBJECT@0..24
+ OBJ_BODY_COMP@0..24
+ L_BRACE@0..1 "{"
+ MEMBER_FIELD_NORMAL@1..4
+ FIELD_NAME_FIXED@1..2
+ NAME@1..2
+ IDENT@1..2 "a"
+ COLON@2..3 ":"
+ EXPR_NUMBER@3..4
+ FLOAT@3..4 "1"
+ WHITESPACE@4..5 " "
+ FOR_SPEC@5..23
+ FOR_KW@5..8 "for"
+ WHITESPACE@8..9 " "
+ NAME@9..10
+ IDENT@9..10 "a"
+ WHITESPACE@10..11 " "
+ IN_KW@11..13 "in"
+ WHITESPACE@13..14 " "
+ EXPR_ARRAY@14..23
+ L_BRACK@14..15 "["
+ EXPR_NUMBER@15..16
+ FLOAT@15..16 "1"
+ COMMA@16..17 ","
+ WHITESPACE@17..18 " "
+ EXPR_NUMBER@18..19
+ FLOAT@18..19 "2"
+ COMMA@19..20 ","
+ WHITESPACE@20..21 " "
+ EXPR_NUMBER@21..22
+ FLOAT@21..22 "3"
+ R_BRACK@22..23 "]"
+ R_BRACE@23..24 "}"
+ WHITESPACE@24..25 "\n"
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_comma.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_comma.snap
@@ -0,0 +1,40 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "{a:1, for a in [1, 2, 3]}\n"
+---
+SOURCE_FILE@0..26
+ EXPR_OBJECT@0..25
+ OBJ_BODY_COMP@0..25
+ L_BRACE@0..1 "{"
+ MEMBER_FIELD_NORMAL@1..4
+ FIELD_NAME_FIXED@1..2
+ NAME@1..2
+ IDENT@1..2 "a"
+ COLON@2..3 ":"
+ EXPR_NUMBER@3..4
+ FLOAT@3..4 "1"
+ COMMA@4..5 ","
+ WHITESPACE@5..6 " "
+ FOR_SPEC@6..24
+ FOR_KW@6..9 "for"
+ WHITESPACE@9..10 " "
+ NAME@10..11
+ IDENT@10..11 "a"
+ WHITESPACE@11..12 " "
+ IN_KW@12..14 "in"
+ WHITESPACE@14..15 " "
+ EXPR_ARRAY@15..24
+ L_BRACK@15..16 "["
+ EXPR_NUMBER@16..17
+ FLOAT@16..17 "1"
+ COMMA@17..18 ","
+ WHITESPACE@18..19 " "
+ EXPR_NUMBER@19..20
+ FLOAT@19..20 "2"
+ COMMA@20..21 ","
+ WHITESPACE@21..22 " "
+ EXPR_NUMBER@22..23
+ FLOAT@22..23 "3"
+ R_BRACK@23..24 "]"
+ R_BRACE@24..25 "}"
+ WHITESPACE@25..26 "\n"
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_incompatible_with_multiple_elems.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_incompatible_with_multiple_elems.snap
@@ -0,0 +1,58 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "{a:1 for a in [1, 2, 3], b:1}\n"
+---
+SOURCE_FILE@0..30
+ EXPR_OBJECT@0..29
+ OBJ_BODY_MEMBER_LIST@0..29
+ L_BRACE@0..1 "{"
+ MEMBER_FIELD_NORMAL@1..4
+ FIELD_NAME_FIXED@1..2
+ NAME@1..2
+ IDENT@1..2 "a"
+ COLON@2..3 ":"
+ EXPR_NUMBER@3..4
+ FLOAT@3..4 "1"
+ WHITESPACE@4..5 " "
+ ERROR_CUSTOM@5..23
+ FOR_SPEC@5..23
+ FOR_KW@5..8 "for"
+ WHITESPACE@8..9 " "
+ NAME@9..10
+ IDENT@9..10 "a"
+ WHITESPACE@10..11 " "
+ IN_KW@11..13 "in"
+ WHITESPACE@13..14 " "
+ EXPR_ARRAY@14..23
+ L_BRACK@14..15 "["
+ EXPR_NUMBER@15..16
+ FLOAT@15..16 "1"
+ COMMA@16..17 ","
+ WHITESPACE@17..18 " "
+ EXPR_NUMBER@18..19
+ FLOAT@18..19 "2"
+ COMMA@19..20 ","
+ WHITESPACE@20..21 " "
+ EXPR_NUMBER@21..22
+ FLOAT@21..22 "3"
+ R_BRACK@22..23 "]"
+ COMMA@23..24 ","
+ WHITESPACE@24..25 " "
+ MEMBER_FIELD_NORMAL@25..28
+ FIELD_NAME_FIXED@25..26
+ NAME@25..26
+ IDENT@25..26 "b"
+ COLON@26..27 ":"
+ EXPR_NUMBER@27..28
+ FLOAT@27..28 "1"
+ R_BRACE@28..29 "}"
+ WHITESPACE@29..30 "\n"
+===
+LocatedSyntaxError { error: Custom { error: "compspec may only be used if there is only one array element" }, range: 5..23 }
+===
+ x syntax error
+ ,----
+ 1 | {a:1 for a in [1, 2, 3], b:1}
+ : ^^^^^^^^^|^^^^^^^^
+ : `-- compspec may only be used if there is only one array element
+ `----
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_incompatible_with_multiple_elems_w.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_incompatible_with_multiple_elems_w.snap
@@ -0,0 +1,68 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "{a:1, b:1, for a in [1, 2, 3], c:1}\n"
+---
+SOURCE_FILE@0..36
+ EXPR_OBJECT@0..35
+ OBJ_BODY_MEMBER_LIST@0..35
+ L_BRACE@0..1 "{"
+ MEMBER_FIELD_NORMAL@1..4
+ FIELD_NAME_FIXED@1..2
+ NAME@1..2
+ IDENT@1..2 "a"
+ COLON@2..3 ":"
+ EXPR_NUMBER@3..4
+ FLOAT@3..4 "1"
+ COMMA@4..5 ","
+ WHITESPACE@5..6 " "
+ MEMBER_FIELD_NORMAL@6..9
+ FIELD_NAME_FIXED@6..7
+ NAME@6..7
+ IDENT@6..7 "b"
+ COLON@7..8 ":"
+ EXPR_NUMBER@8..9
+ FLOAT@8..9 "1"
+ COMMA@9..10 ","
+ WHITESPACE@10..11 " "
+ ERROR_CUSTOM@11..29
+ FOR_SPEC@11..29
+ FOR_KW@11..14 "for"
+ WHITESPACE@14..15 " "
+ NAME@15..16
+ IDENT@15..16 "a"
+ WHITESPACE@16..17 " "
+ IN_KW@17..19 "in"
+ WHITESPACE@19..20 " "
+ EXPR_ARRAY@20..29
+ L_BRACK@20..21 "["
+ EXPR_NUMBER@21..22
+ FLOAT@21..22 "1"
+ COMMA@22..23 ","
+ WHITESPACE@23..24 " "
+ EXPR_NUMBER@24..25
+ FLOAT@24..25 "2"
+ COMMA@25..26 ","
+ WHITESPACE@26..27 " "
+ EXPR_NUMBER@27..28
+ FLOAT@27..28 "3"
+ R_BRACK@28..29 "]"
+ COMMA@29..30 ","
+ WHITESPACE@30..31 " "
+ MEMBER_FIELD_NORMAL@31..34
+ FIELD_NAME_FIXED@31..32
+ NAME@31..32
+ IDENT@31..32 "c"
+ COLON@32..33 ":"
+ EXPR_NUMBER@33..34
+ FLOAT@33..34 "1"
+ R_BRACE@34..35 "}"
+ WHITESPACE@35..36 "\n"
+===
+LocatedSyntaxError { error: Custom { error: "compspec may only be used if there is only one array element" }, range: 11..29 }
+===
+ x syntax error
+ ,----
+ 1 | {a:1, b:1, for a in [1, 2, 3], c:1}
+ : ^^^^^^^^^|^^^^^^^^
+ : `-- compspec may only be used if there is only one array element
+ `----
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_no_elems.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_no_elems.snap
@@ -0,0 +1,41 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "{for a in [1, 2, 3]}\n"
+---
+SOURCE_FILE@0..21
+ EXPR_OBJECT@0..20
+ OBJ_BODY_COMP@0..20
+ L_BRACE@0..1 "{"
+ ERROR_MISSING_TOKEN@1..1
+ FOR_SPEC@1..19
+ FOR_KW@1..4 "for"
+ WHITESPACE@4..5 " "
+ NAME@5..6
+ IDENT@5..6 "a"
+ WHITESPACE@6..7 " "
+ IN_KW@7..9 "in"
+ WHITESPACE@9..10 " "
+ EXPR_ARRAY@10..19
+ L_BRACK@10..11 "["
+ EXPR_NUMBER@11..12
+ FLOAT@11..12 "1"
+ COMMA@12..13 ","
+ WHITESPACE@13..14 " "
+ EXPR_NUMBER@14..15
+ FLOAT@14..15 "2"
+ COMMA@15..16 ","
+ WHITESPACE@16..17 " "
+ EXPR_NUMBER@17..18
+ FLOAT@17..18 "3"
+ R_BRACK@18..19 "]"
+ R_BRACE@19..20 "}"
+ WHITESPACE@20..21 "\n"
+===
+LocatedSyntaxError { error: Missing { expected: Named("field definition") }, range: 1..1 }
+===
+ x syntax error
+ ,----
+ 1 | {for a in [1, 2, 3]}
+ : ^
+ : `-- missing field definition
+ `----
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_method.snapdiffbeforeafterboth--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_method.snap
@@ -0,0 +1,49 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "{\n\ta(x): x,\n\ta: function(x) x,\n}\n"
+---
+SOURCE_FILE@0..33
+ EXPR_OBJECT@0..32
+ OBJ_BODY_MEMBER_LIST@0..32
+ L_BRACE@0..1 "{"
+ WHITESPACE@1..3 "\n\t"
+ MEMBER_FIELD_METHOD@3..10
+ FIELD_NAME_FIXED@3..4
+ NAME@3..4
+ IDENT@3..4 "a"
+ PARAMS_DESC@4..7
+ L_PAREN@4..5 "("
+ PARAM@5..6
+ DESTRUCT_FULL@5..6
+ NAME@5..6
+ IDENT@5..6 "x"
+ R_PAREN@6..7 ")"
+ COLON@7..8 ":"
+ WHITESPACE@8..9 " "
+ EXPR_VAR@9..10
+ NAME@9..10
+ IDENT@9..10 "x"
+ COMMA@10..11 ","
+ WHITESPACE@11..13 "\n\t"
+ MEMBER_FIELD_METHOD@13..29
+ FIELD_NAME_FIXED@13..14
+ NAME@13..14
+ IDENT@13..14 "a"
+ COLON@14..15 ":"
+ WHITESPACE@15..16 " "
+ FUNCTION_KW@16..24 "function"
+ PARAMS_DESC@24..27
+ L_PAREN@24..25 "("
+ PARAM@25..26
+ DESTRUCT_FULL@25..26
+ NAME@25..26
+ IDENT@25..26 "x"
+ R_PAREN@26..27 ")"
+ WHITESPACE@27..28 " "
+ EXPR_VAR@28..29
+ NAME@28..29
+ IDENT@28..29 "x"
+ COMMA@29..30 ","
+ WHITESPACE@30..31 "\n"
+ R_BRACE@31..32 "}"
+ WHITESPACE@32..33 "\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
@@ -42,2575 +42,2553 @@
IDENT@39..41 "id"
COMMA@41..42 ","
WHITESPACE@42..46 "\n\n "
- 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 ..."
+ MEMBER_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"
+ MEMBER_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"
+ MEMBER_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"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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..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 ")"
+ MEMBER_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..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 "}"
+ MEMBER_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_COMP@1712..1767
+ L_BRACE@1712..1713 "{"
+ WHITESPACE@1713..1714 " "
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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"
+ MEMBER_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"
+ MEMBER_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 ")"
+ MEMBER_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 " "
- 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 " "
- 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 ")"
+ MEMBER_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 " "
+ 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 " "
+ 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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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
@@ -2628,4667 +2606,4636 @@
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 "'<'"
+ MEMBER_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 "'>'"
+ MEMBER_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 "'&'"
+ MEMBER_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 "'"'"
+ MEMBER_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 "'''"
+ MEMBER_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 ")"
+ MEMBER_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"
+ MEMBER_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 ")"
+ MEMBER_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'"
+ MEMBER_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'"
+ MEMBER_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 " "
- 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 ")"
+ MEMBER_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 " "
+ 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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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"
+ MEMBER_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 ")"
+ MEMBER_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"
+ MEMBER_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"
+ MEMBER_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"
+ MEMBER_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_COMP@8635..8975
+ L_BRACE@8635..8636 "{"
+ WHITESPACE@8636..8645 "\n "
+ MEMBER_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"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 ")"
+ MEMBER_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 "]"
+ MEMBER_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 "]"
+ MEMBER_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 ")"
+ MEMBER_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"
+ MEMBER_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_COMP@9942..10045
+ L_BRACE@9942..9943 "{"
+ WHITESPACE@9943..9950 "\n "
+ MEMBER_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 ")"
+ MEMBER_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 "}"
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__wrong_field_end.snapdiffbeforeafterboth2source: crates/jrsonnet-rowan-parser/src/tests.rs2source: crates/jrsonnet-rowan-parser/src/tests.rs3expression: "{\n\ta: 1;\n\tb: 2;\n}\n"3expression: "{\n\ta: 1;\n\tb: 2;\n}\n"4---4---5SOURCE_FILE@0..115SOURCE_FILE@0..186 EXPR_OBJECT@0..86 EXPR_OBJECT@0..177 OBJ_BODY_MEMBER_LIST@0..87 OBJ_BODY_MEMBER_LIST@0..178 L_BRACE@0..1 "{"8 L_BRACE@0..1 "{"9 WHITESPACE@1..3 "\n\t"9 WHITESPACE@1..3 "\n\t"10 MEMBER_FIELD@3..710 MEMBER_FIELD_NORMAL@3..711 FIELD_NORMAL@3..711 FIELD_NAME_FIXED@3..412 FIELD_NAME_FIXED@3..413 NAME@3..412 NAME@3..414 IDENT@3..4 "a"13 IDENT@3..4 "a"15 COLON@4..5 ":"14 COLON@4..5 ":"16 WHITESPACE@5..6 " "15 WHITESPACE@5..6 " "17 EXPR_NUMBER@6..716 EXPR_NUMBER@6..718 FLOAT@6..7 "1"17 FLOAT@6..7 "1"19 ERROR_UNEXPECTED_TOKEN@7..818 ERROR_UNEXPECTED_TOKEN@7..820 SEMI@7..8 ";"19 SEMI@7..8 ";"21 WHITESPACE@8..10 "\n\t"20 WHITESPACE@8..10 "\n\t"22 ERROR_UNEXPECTED_TOKEN@10..1121 MEMBER_FIELD_NORMAL@10..1422 FIELD_NAME_FIXED@10..1123 IDENT@10..11 "b"23 NAME@10..1124 IDENT@10..11 "b"25 COLON@11..12 ":"26 WHITESPACE@12..13 " "27 EXPR_NUMBER@13..1428 FLOAT@13..14 "2"29 ERROR_UNEXPECTED_TOKEN@14..1530 SEMI@14..15 ";"31 WHITESPACE@15..16 "\n"32 R_BRACE@16..17 "}"33 WHITESPACE@17..18 "\n"24===34===25LocatedSyntaxError { error: Unexpected { expected: Unnamed(R_BRACE), found: SEMI }, range: 7..8 }35LocatedSyntaxError { error: Unexpected { expected: Named("comma"), found: SEMI }, range: 7..8 }26LocatedSyntaxError { error: Unexpected { expected: Unnamed(EOF), found: IDENT }, range: 10..11 }36LocatedSyntaxError { error: Unexpected { expected: Named("comma"), found: SEMI }, range: 14..15 }27===37===28 x syntax error38 x syntax error29 ,-[1:1]39 ,-[1:1]30 1 | {40 1 | {31 2 | a: 1;41 2 | a: 1;32 : |42 : |33 : `-- expected R_BRACE, found SEMI43 : `-- expected comma, found SEMI34 3 | b: 2;44 3 | b: 2;35 : |45 : |36 : `-- expected EOF, found IDENT46 : `-- expected comma, found SEMI37 4 | }47 4 | }38 `----48 `----3949crates/jrsonnet-rowan-parser/src/tests.rsdiffbeforeafterboth--- a/crates/jrsonnet-rowan-parser/src/tests.rs
+++ b/crates/jrsonnet-rowan-parser/src/tests.rs
@@ -118,12 +118,6 @@
1
"#
- array_comp => r#"
- [a for a in [1, 2, 3]]
- "#
- array_comp_incompatible_with_multiple_elems => r#"
- [a for a in [1, 2, 3], b]
- "#
no_rhs => r#"
a +
@@ -186,6 +180,50 @@
local * = 1;
a
"
+ arr_compspec => r#"
+ [a for a in [1, 2, 3]]
+ "#
+ arr_compspec_comma => "
+ [a, for a in [1, 2, 3]]
+ "
+ arr_compspec_no_elems => "
+ [for a in [1, 2, 3]]
+ "
+ arr_compspec_incompatible_with_multiple_elems => r#"
+ [a for a in [1, 2, 3], b]
+ "#
+ arr_compspec_incompatible_with_multiple_elems_w => r#"
+ [a, b, for a in [1, 2, 3], c]
+ "#
+
+ obj_compspec => r#"
+ {a:1 for a in [1, 2, 3]}
+ "#
+ obj_compspec_comma => "
+ {a:1, for a in [1, 2, 3]}
+ "
+ obj_compspec_no_elems => "
+ {for a in [1, 2, 3]}
+ "
+ obj_compspec_incompatible_with_multiple_elems => r#"
+ {a:1 for a in [1, 2, 3], b:1}
+ "#
+ obj_compspec_incompatible_with_multiple_elems_w => r#"
+ {a:1, b:1, for a in [1, 2, 3], c:1}
+ "#
+
+ local_method => r#"
+ local
+ a(x) = x,
+ a = function(x) x,
+ ; c
+ "#
+ obj_method => r#"
+ {
+ a(x): x,
+ a: function(x) x,
+ }
+ "#
);
#[test]
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
@@ -1,3 +1,5 @@
+use std::fmt;
+
use crate::SyntaxKind;
#[derive(Clone, Copy, Default)]
@@ -21,11 +23,55 @@
pub const fn union(self, other: SyntaxKindSet) -> SyntaxKindSet {
SyntaxKindSet(self.0 | other.0)
}
+ pub const fn with(self, kind: SyntaxKind) -> SyntaxKindSet {
+ SyntaxKindSet(self.0 | mask(kind))
+ }
pub const fn contains(&self, kind: SyntaxKind) -> bool {
self.0 & mask(kind) != 0
}
}
+impl fmt::Display for SyntaxKindSet {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ let mut v = self.0;
+ let mut variants = <Vec<SyntaxKind>>::new();
+ for i in 0..128 {
+ if v & 1 == 1 {
+ variants.push(SyntaxKind::from_raw(i))
+ }
+ v >>= 1;
+ if v == 0 {
+ break;
+ }
+ }
+ for (i, v) in variants.iter().enumerate() {
+ if i == 0 {
+ } else if i == variants.len() - 1 {
+ write!(f, " or ")?;
+ } else {
+ write!(f, ", ")?;
+ }
+ write!(f, "{v:?}")?;
+ }
+ Ok(())
+ }
+}
+impl fmt::Debug for SyntaxKindSet {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ let mut v = self.0;
+ let mut variants = <Vec<SyntaxKind>>::new();
+ for i in 0..128 {
+ if v & 1 == 1 {
+ variants.push(SyntaxKind::from_raw(i))
+ }
+ v >>= 1;
+ if v == 0 {
+ break;
+ }
+ }
+ f.debug_tuple("SyntaxKindSet").field(&variants).finish()
+ }
+}
const fn mask(kind: SyntaxKind) -> u128 {
1u128 << (kind as u128)