git.delta.rocks / jrsonnet / refs/commits / cf173f6ac619

difftreelog

feat parse object comprehensions

Yaroslav Bolyukin2022-12-13parent: #6beafa8.patch.diff
in: master

29 files changed

modifiedcrates/jrsonnet-rowan-parser/jsonnet.ungramdiffbeforeafterboth
194194
195MemberBindStmt = ObjLocal195MemberBindStmt = ObjLocal
196MemberAssertStmt = Assertion196MemberAssertStmt = Assertion
197MemberField = Field197MemberFieldNormal =
198Member =
199 MemberBindStmt
200| MemberAssertStmt
201| MemberField
202
203ObjLocal =
204 'local'
205 Bind
206
207FieldNormal =
208 FieldName198 FieldName
209 '+'?199 '+'?
210 Visibility200 Visibility
211 Expr201 Expr
212FieldMethod =202MemberFieldMethod =
213 FieldName203 FieldName
214 ParamsDesc204 ParamsDesc
215 Visibility205 Visibility
216 Expr206 Expr
217Field =207Member =
218 FieldNormal208 MemberBindStmt
219| FieldMethod209| MemberAssertStmt
210| MemberFieldNormal
211| MemberFieldMethod
212
213ObjLocal =
214 'local'
215 Bind
220216
221FieldNameFixed =217FieldNameFixed =
222 id:Name218 id:Name
374ParsingError =370ParsingError =
375 'ERROR_MISSING_TOKEN!'371 'ERROR_MISSING_TOKEN!'
376| 'ERROR_UNEXPECTED_TOKEN!'372| 'ERROR_UNEXPECTED_TOKEN!'
373| 'ERROR_CUSTOM!'
377374
modifiedcrates/jrsonnet-rowan-parser/src/event.rsdiffbeforeafterboth
1use std::mem;1use std::{mem, num::NonZeroUsize};
22
3use rowan::{GreenNodeBuilder, Language, TextRange, TextSize};3use rowan::{GreenNodeBuilder, Language, TextRange, TextSize};
44
9 AstToken, JsonnetLanguage, SyntaxKind,9 AstToken, JsonnetLanguage, SyntaxKind,
10};10};
1111
12#[derive(Clone, Debug, PartialEq, Eq)]12#[derive(Clone, Debug)]
13pub enum Event {13pub enum Event {
14 /// Used for unfinished markers14 /// Used for unfinished markers
15 Pending,15 Pending,
18 kind: SyntaxKind,18 kind: SyntaxKind,
19 /// If marker is preceded or wrapped - instead of reordering events, we19 /// If marker is preceded or wrapped - instead of reordering events, we
20 /// insert start event in the end of events Vec instead, and store relative offset to this event here20 /// insert start event in the end of events Vec instead, and store relative offset to this event here
21 forward_parent: Option<usize>,21 forward_parent: Option<NonZeroUsize>,
22 },22 },
23 /// Eat token23 /// Eat token
24 Token {24 Token { kind: SyntaxKind },
31 /// Position of finished node27 /// Position of finished node
32 Finish {28 Finish {
33 /// Same as forward_parent of Start, but for wrapping29 /// Same as forward_parent of Start, but for wrapping
34 wrapper: Option<usize>,30 wrapper: Option<NonZeroUsize>,
31 error: Option<Box<SyntaxError>>,
35 },32 },
36 Error(SyntaxError),
37 /// Used for dropped markers and other things33 /// Used for dropped markers and other things
38 Noop,34 Noop,
39}35}
74 let mut eat_start_whitespace = false;70 let mut eat_start_whitespace = false;
75 let mut depth = 0;71 let mut depth = 0;
76 let mut error_starts_at = Vec::new();72 let mut error_starts_at = Vec::new();
77 let mut error_last_range = None;
78 for idx in 0..self.events.len() {73 for idx in 0..self.events.len() {
79 match mem::replace(&mut self.events[idx], Event::Noop) {74 match mem::replace(&mut self.events[idx], Event::Noop) {
80 Event::Start {75 Event::Start {
84 if depth != 0 {79 if depth != 0 {
85 self.skip_whitespace();80 self.skip_whitespace();
86 }81 }
87 error_last_range = None;
88 let mut kinds = vec![kind];82 let mut kinds = vec![kind];
8983
90 let mut idx = idx;84 let mut idx = idx;
94 // of that, and of that, etc. until we reach a StartNode event without a forward88 // of that, and of that, etc. until we reach a StartNode event without a forward
95 // parent.89 // parent.
96 while let Some(fp) = forward_parent {90 while let Some(fp) = forward_parent {
97 idx += fp;91 idx += fp.get();
9892
99 forward_parent = if let Event::Start {93 forward_parent = if let Event::Start {
100 kind,94 kind,
123 if eat_start_whitespace {117 if eat_start_whitespace {
124 self.skip_whitespace();118 self.skip_whitespace();
125 }119 }
126 error_last_range = None;
127 self.token(kind);120 self.token(kind);
128 eat_start_whitespace = true;121 eat_start_whitespace = true;
129 }122 }
130 Event::VirtualToken { kind } => {123 Event::VirtualToken { kind } => {
131 if eat_start_whitespace {124 if eat_start_whitespace {
132 self.skip_whitespace();125 self.skip_whitespace();
133 }126 }
134 error_last_range = None;
135 self.virtual_token(kind);127 self.virtual_token(kind);
136 eat_start_whitespace = false;128 eat_start_whitespace = false;
137 }129 }
138 Event::Finish { wrapper } => {130 Event::Finish { wrapper, error } => {
139 if depth == 1 {131 if depth == 1 {
140 self.skip_whitespace();132 self.skip_whitespace();
141 }133 }
142 error_last_range = Some((134 let range = (
143 error_starts_at.pop().expect("starts == finishes"),135 error_starts_at.pop().expect("starts == finishes"),
144 self.text_offset(),136 self.text_offset(),
145 ));137 );
138 if let Some(error) = error {
139 self.errors.push(LocatedSyntaxError {
140 error: *error,
141 range: TextRange::new(range.0, range.1),
142 })
143 }
146 self.builder.finish_node();144 self.builder.finish_node();
147 depth -= 1;145 depth -= 1;
148 let mut idx = idx;146 let mut idx = idx;
149 let mut wrapper = wrapper;147 let mut wrapper = wrapper;
150 while let Some(w) = wrapper {148 while let Some(w) = wrapper {
151 idx += w;149 idx += w.get();
152 wrapper = if let Event::Finish { wrapper } =150 wrapper = if let Event::Finish { wrapper, error } =
153 mem::replace(&mut self.events[idx], Event::Noop)151 mem::replace(&mut self.events[idx], Event::Noop)
154 {152 {
155 error_last_range = Some((153 let range = (
156 error_starts_at.pop().expect("starts == finishes"),154 error_starts_at.pop().expect("starts == finishes"),
157 self.text_offset(),155 self.text_offset(),
158 ));156 );
157 if let Some(error) = error {
158 self.errors.push(LocatedSyntaxError {
159 error: *error,
160 range: TextRange::new(range.0, range.1),
161 })
162 }
163
159 if depth == 1 {164 if depth == 1 {
160 self.skip_whitespace();165 self.skip_whitespace();
170 }175 }
171 Event::Pending => panic!("pending event should not appear in finished events"),176 Event::Pending => panic!("pending event should not appear in finished events"),
172 Event::Noop => {}177 Event::Noop => {}
173 Event::Error(error) => {
174 let (start, end) = error_last_range
175 .take()
176 .expect("expected error event right after closed node");
177 self.errors.push(LocatedSyntaxError {
178 error,
179 range: TextRange::new(start, end),
180 });
181 }
182 }178 }
183 }179 }
184180
modifiedcrates/jrsonnet-rowan-parser/src/generated/nodes.rsdiffbeforeafterboth
643}643}
644644
645#[derive(Debug, Clone, PartialEq, Eq, Hash)]645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
646pub struct MemberField {646pub struct MemberFieldNormal {
647 pub(crate) syntax: SyntaxNode,647 pub(crate) syntax: SyntaxNode,
648}648}
649impl MemberField {
650 pub fn field(&self) -> Option<Field> {
651 support::child(&self.syntax)
652 }
653}
654
655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
656pub struct FieldNormal {
657 pub(crate) syntax: SyntaxNode,
658}
659impl FieldNormal {649impl MemberFieldNormal {
660 pub fn field_name(&self) -> Option<FieldName> {650 pub fn field_name(&self) -> Option<FieldName> {
661 support::child(&self.syntax)651 support::child(&self.syntax)
662 }652 }
672}662}
673663
674#[derive(Debug, Clone, PartialEq, Eq, Hash)]664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
675pub struct FieldMethod {665pub struct MemberFieldMethod {
676 pub(crate) syntax: SyntaxNode,666 pub(crate) syntax: SyntaxNode,
677}667}
678impl FieldMethod {668impl MemberFieldMethod {
679 pub fn field_name(&self) -> Option<FieldName> {669 pub fn field_name(&self) -> Option<FieldName> {
680 support::child(&self.syntax)670 support::child(&self.syntax)
681 }671 }
955pub enum Member {945pub enum Member {
956 MemberBindStmt(MemberBindStmt),946 MemberBindStmt(MemberBindStmt),
957 MemberAssertStmt(MemberAssertStmt),947 MemberAssertStmt(MemberAssertStmt),
958 MemberField(MemberField),948 MemberFieldNormal(MemberFieldNormal),
949 MemberFieldMethod(MemberFieldMethod),
959}950}
960
961#[derive(Debug, Clone, PartialEq, Eq, Hash)]
962pub enum Field {
963 FieldNormal(FieldNormal),
964 FieldMethod(FieldMethod),
965}
966951
967#[derive(Debug, Clone, PartialEq, Eq, Hash)]952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
968pub enum FieldName {953pub enum FieldName {
1134pub enum ParsingErrorKind {1119pub enum ParsingErrorKind {
1135 ErrorMissingToken,1120 ErrorMissingToken,
1136 ErrorUnexpectedToken,1121 ErrorUnexpectedToken,
1122 ErrorCustom,
1137}1123}
1138impl AstNode for SourceFile {1124impl AstNode for SourceFile {
1139 fn can_cast(kind: SyntaxKind) -> bool {1125 fn can_cast(kind: SyntaxKind) -> bool {
1780 &self.syntax1766 &self.syntax
1781 }1767 }
1782}1768}
1783impl AstNode for MemberField {1769impl AstNode for MemberFieldNormal {
1784 fn can_cast(kind: SyntaxKind) -> bool {1770 fn can_cast(kind: SyntaxKind) -> bool {
1785 kind == MEMBER_FIELD1771 kind == MEMBER_FIELD_NORMAL
1786 }1772 }
1787 fn cast(syntax: SyntaxNode) -> Option<Self> {1773 fn cast(syntax: SyntaxNode) -> Option<Self> {
1788 if Self::can_cast(syntax.kind()) {1774 if Self::can_cast(syntax.kind()) {
1795 &self.syntax1781 &self.syntax
1796 }1782 }
1797}1783}
1798impl AstNode for FieldNormal {1784impl AstNode for MemberFieldMethod {
1799 fn can_cast(kind: SyntaxKind) -> bool {1785 fn can_cast(kind: SyntaxKind) -> bool {
1800 kind == FIELD_NORMAL1786 kind == MEMBER_FIELD_METHOD
1801 }1787 }
1802 fn cast(syntax: SyntaxNode) -> Option<Self> {1788 fn cast(syntax: SyntaxNode) -> Option<Self> {
1803 if Self::can_cast(syntax.kind()) {1789 if Self::can_cast(syntax.kind()) {
1810 &self.syntax1796 &self.syntax
1811 }1797 }
1812}1798}
1813impl AstNode for FieldMethod {
1814 fn can_cast(kind: SyntaxKind) -> bool {
1815 kind == FIELD_METHOD
1816 }
1817 fn cast(syntax: SyntaxNode) -> Option<Self> {
1818 if Self::can_cast(syntax.kind()) {
1819 Some(Self { syntax })
1820 } else {
1821 None
1822 }
1823 }
1824 fn syntax(&self) -> &SyntaxNode {
1825 &self.syntax
1826 }
1827}
1828impl AstNode for FieldNameFixed {1799impl AstNode for FieldNameFixed {
1829 fn can_cast(kind: SyntaxKind) -> bool {1800 fn can_cast(kind: SyntaxKind) -> bool {
1830 kind == FIELD_NAME_FIXED1801 kind == FIELD_NAME_FIXED
2352 Member::MemberAssertStmt(node)2323 Member::MemberAssertStmt(node)
2353 }2324 }
2354}2325}
2355impl From<MemberField> for Member {2326impl From<MemberFieldNormal> for Member {
2356 fn from(node: MemberField) -> Member {2327 fn from(node: MemberFieldNormal) -> Member {
2357 Member::MemberField(node)2328 Member::MemberFieldNormal(node)
2358 }2329 }
2359}2330}
2331impl From<MemberFieldMethod> for Member {
2332 fn from(node: MemberFieldMethod) -> Member {
2333 Member::MemberFieldMethod(node)
2334 }
2335}
2360impl AstNode for Member {2336impl AstNode for Member {
2361 fn can_cast(kind: SyntaxKind) -> bool {2337 fn can_cast(kind: SyntaxKind) -> bool {
2362 match kind {2338 match kind {
2363 MEMBER_BIND_STMT | MEMBER_ASSERT_STMT | MEMBER_FIELD => true,2339 MEMBER_BIND_STMT | MEMBER_ASSERT_STMT | MEMBER_FIELD_NORMAL | MEMBER_FIELD_METHOD => {
2340 true
2341 }
2364 _ => false,2342 _ => false,
2365 }2343 }
2366 }2344 }
2367 fn cast(syntax: SyntaxNode) -> Option<Self> {2345 fn cast(syntax: SyntaxNode) -> Option<Self> {
2368 let res = match syntax.kind() {2346 let res = match syntax.kind() {
2369 MEMBER_BIND_STMT => Member::MemberBindStmt(MemberBindStmt { syntax }),2347 MEMBER_BIND_STMT => Member::MemberBindStmt(MemberBindStmt { syntax }),
2370 MEMBER_ASSERT_STMT => Member::MemberAssertStmt(MemberAssertStmt { syntax }),2348 MEMBER_ASSERT_STMT => Member::MemberAssertStmt(MemberAssertStmt { syntax }),
2371 MEMBER_FIELD => Member::MemberField(MemberField { syntax }),2349 MEMBER_FIELD_NORMAL => Member::MemberFieldNormal(MemberFieldNormal { syntax }),
2350 MEMBER_FIELD_METHOD => Member::MemberFieldMethod(MemberFieldMethod { syntax }),
2372 _ => return None,2351 _ => return None,
2373 };2352 };
2374 Some(res)2353 Some(res)
2377 match self {2356 match self {
2378 Member::MemberBindStmt(it) => &it.syntax,2357 Member::MemberBindStmt(it) => &it.syntax,
2379 Member::MemberAssertStmt(it) => &it.syntax,2358 Member::MemberAssertStmt(it) => &it.syntax,
2380 Member::MemberField(it) => &it.syntax,2359 Member::MemberFieldNormal(it) => &it.syntax,
2360 Member::MemberFieldMethod(it) => &it.syntax,
2381 }2361 }
2382 }2362 }
2383}2363}
2384impl From<FieldNormal> for Field {
2385 fn from(node: FieldNormal) -> Field {
2386 Field::FieldNormal(node)
2387 }
2388}
2389impl From<FieldMethod> for Field {
2390 fn from(node: FieldMethod) -> Field {
2391 Field::FieldMethod(node)
2392 }
2393}
2394impl AstNode for Field {
2395 fn can_cast(kind: SyntaxKind) -> bool {
2396 match kind {
2397 FIELD_NORMAL | FIELD_METHOD => true,
2398 _ => false,
2399 }
2400 }
2401 fn cast(syntax: SyntaxNode) -> Option<Self> {
2402 let res = match syntax.kind() {
2403 FIELD_NORMAL => Field::FieldNormal(FieldNormal { syntax }),
2404 FIELD_METHOD => Field::FieldMethod(FieldMethod { syntax }),
2405 _ => return None,
2406 };
2407 Some(res)
2408 }
2409 fn syntax(&self) -> &SyntaxNode {
2410 match self {
2411 Field::FieldNormal(it) => &it.syntax,
2412 Field::FieldMethod(it) => &it.syntax,
2413 }
2414 }
2415}
2416impl From<FieldNameFixed> for FieldName {2364impl From<FieldNameFixed> for FieldName {
2417 fn from(node: FieldNameFixed) -> FieldName {2365 fn from(node: FieldNameFixed) -> FieldName {
2418 FieldName::FieldNameFixed(node)2366 FieldName::FieldNameFixed(node)
2914impl ParsingErrorKind {2862impl ParsingErrorKind {
2915 fn can_cast(kind: SyntaxKind) -> bool {2863 fn can_cast(kind: SyntaxKind) -> bool {
2916 match kind {2864 match kind {
2917 ERROR_MISSING_TOKEN | ERROR_UNEXPECTED_TOKEN => true,2865 ERROR_MISSING_TOKEN | ERROR_UNEXPECTED_TOKEN | ERROR_CUSTOM => true,
2918 _ => false,2866 _ => false,
2919 }2867 }
2920 }2868 }
2921 pub fn cast(kind: SyntaxKind) -> Option<Self> {2869 pub fn cast(kind: SyntaxKind) -> Option<Self> {
2922 let res = match kind {2870 let res = match kind {
2923 ERROR_MISSING_TOKEN => Self::ErrorMissingToken,2871 ERROR_MISSING_TOKEN => Self::ErrorMissingToken,
2924 ERROR_UNEXPECTED_TOKEN => Self::ErrorUnexpectedToken,2872 ERROR_UNEXPECTED_TOKEN => Self::ErrorUnexpectedToken,
2873 ERROR_CUSTOM => Self::ErrorCustom,
2925 _ => return None,2874 _ => return None,
2926 };2875 };
2927 Some(res)2876 Some(res)
2962 std::fmt::Display::fmt(self.syntax(), f)2911 std::fmt::Display::fmt(self.syntax(), f)
2963 }2912 }
2964}2913}
2965impl std::fmt::Display for Field {
2966 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2967 std::fmt::Display::fmt(self.syntax(), f)
2968 }
2969}
2970impl std::fmt::Display for FieldName {2914impl std::fmt::Display for FieldName {
2971 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {2915 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2972 std::fmt::Display::fmt(self.syntax(), f)2916 std::fmt::Display::fmt(self.syntax(), f)
3197 std::fmt::Display::fmt(self.syntax(), f)3141 std::fmt::Display::fmt(self.syntax(), f)
3198 }3142 }
3199}3143}
3200impl std::fmt::Display for MemberField {3144impl std::fmt::Display for MemberFieldNormal {
3201 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {3145 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3202 std::fmt::Display::fmt(self.syntax(), f)3146 std::fmt::Display::fmt(self.syntax(), f)
3203 }3147 }
3204}3148}
3205impl std::fmt::Display for FieldNormal {3149impl std::fmt::Display for MemberFieldMethod {
3206 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {3150 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3207 std::fmt::Display::fmt(self.syntax(), f)3151 std::fmt::Display::fmt(self.syntax(), f)
3208 }3152 }
3209}3153}
3210impl std::fmt::Display for FieldMethod {
3211 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3212 std::fmt::Display::fmt(self.syntax(), f)
3213 }
3214}
3215impl std::fmt::Display for FieldNameFixed {3154impl std::fmt::Display for FieldNameFixed {
3216 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {3155 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3217 std::fmt::Display::fmt(self.syntax(), f)3156 std::fmt::Display::fmt(self.syntax(), f)
modifiedcrates/jrsonnet-rowan-parser/src/generated/syntax_kinds.rsdiffbeforeafterboth
181 ASSERT_KW,181 ASSERT_KW,
182 ERROR_MISSING_TOKEN,182 ERROR_MISSING_TOKEN,
183 ERROR_UNEXPECTED_TOKEN,183 ERROR_UNEXPECTED_TOKEN,
184 ERROR_CUSTOM,
184 #[doc = r" Also acts as __LAST_TOKEN"]185 #[doc = r" Also acts as __LAST_TOKEN"]
185 #[error]186 #[error]
186 LEXING_ERROR,187 LEXING_ERROR,
227 OBJ_LOCAL,228 OBJ_LOCAL,
228 MEMBER_BIND_STMT,229 MEMBER_BIND_STMT,
229 MEMBER_ASSERT_STMT,230 MEMBER_ASSERT_STMT,
230 MEMBER_FIELD,231 MEMBER_FIELD_NORMAL,
231 FIELD_NORMAL,232 MEMBER_FIELD_METHOD,
232 FIELD_METHOD,
233 FIELD_NAME_FIXED,233 FIELD_NAME_FIXED,
234 FIELD_NAME_DYNAMIC,234 FIELD_NAME_DYNAMIC,
235 FOR_SPEC,235 FOR_SPEC,
249 COMP_SPEC,249 COMP_SPEC,
250 BIND,250 BIND,
251 MEMBER,251 MEMBER,
252 FIELD,
253 FIELD_NAME,252 FIELD_NAME,
254 DESTRUCT,253 DESTRUCT,
255 DESTRUCT_ARRAY_PART,254 DESTRUCT_ARRAY_PART,
281 }280 }
282 pub fn is_enum(self) -> bool {281 pub fn is_enum(self) -> bool {
283 match self {282 match self {
284 EXPR | OBJ_BODY | COMP_SPEC | BIND | MEMBER | FIELD | FIELD_NAME | DESTRUCT283 EXPR | OBJ_BODY | COMP_SPEC | BIND | MEMBER | FIELD_NAME | DESTRUCT
285 | DESTRUCT_ARRAY_PART | BINARY_OPERATOR | UNARY_OPERATOR | LITERAL | TEXT | NUMBER284 | DESTRUCT_ARRAY_PART | BINARY_OPERATOR | UNARY_OPERATOR | LITERAL | TEXT | NUMBER
286 | IMPORT_KIND | VISIBILITY | TRIVIA | PARSING_ERROR => true,285 | IMPORT_KIND | VISIBILITY | TRIVIA | PARSING_ERROR => true,
287 _ => false,286 _ => false,
modifiedcrates/jrsonnet-rowan-parser/src/lib.rsdiffbeforeafterboth
3use event::Sink;3use event::Sink;
4use generated::nodes::{SourceFile, Trivia};4use generated::nodes::{SourceFile, Trivia};
5use lex::lex;5use lex::lex;
6use parser::{LocatedSyntaxError, Parser, SyntaxError};6use parser::{LocatedSyntaxError, Parser};
7pub use rowan;7pub use rowan;
88
9mod ast;9mod ast;
modifiedcrates/jrsonnet-rowan-parser/src/marker.rsdiffbeforeafterboth
1use drop_bomb::DropBomb;1use std::num::NonZeroUsize;
2
2use rowan::TextRange;3use drop_bomb::DropBomb;
34
4use crate::{event::Event, parser::Parser, SyntaxKind};5use crate::{
6 event::Event,
7 parser::{ExpectedSyntax, Parser, SyntaxError},
8 SyntaxKind,
9};
510
6pub struct Ranger {11pub struct Ranger {
38 bomb: DropBomb::new("marked dropped while not completed"),43 bomb: DropBomb::new("marked dropped while not completed"),
39 }44 }
40 }45 }
41 pub fn complete(mut self, p: &mut Parser, kind: SyntaxKind) -> CompletedMarker {46 fn complete_raw(
47 mut self,
48 p: &mut Parser,
49 kind: SyntaxKind,
50 error: Option<SyntaxError>,
51 ) -> CompletedMarker {
42 self.bomb.defuse();52 self.bomb.defuse();
43 assert!(53 assert!(
50 // "{kind:?} should be only emitted by lexer, not used directly"60 // "{kind:?} should be only emitted by lexer, not used directly"
51 // );61 // );
52 let event_at_pos = &mut p.events[self.start_event_idx];62 let event_at_pos = &mut p.events[self.start_event_idx];
53 assert_eq!(*event_at_pos, Event::Pending);63 assert!(matches!(event_at_pos, Event::Pending));
5464
55 *event_at_pos = Event::Start {65 *event_at_pos = Event::Start {
56 kind,66 kind,
5969
60 let finish_event_idx = p.events.len();70 let finish_event_idx = p.events.len();
61 p.events.push(Event::Finish { wrapper: None });71 p.events.push(Event::Finish {
72 wrapper: None,
73 error: error.map(Box::new),
74 });
62 p.entered -= 1;75 p.entered -= 1;
63 p.clear_outdated_hints();76 p.clear_outdated_hints();
66 finish_event_idx,79 finish_event_idx,
67 }80 }
68 }81 }
82 pub fn complete(mut self, p: &mut Parser, kind: SyntaxKind) -> CompletedMarker {
83 self.complete_raw(p, kind, None)
84 }
85 pub fn complete_error(mut self, p: &mut Parser, msg: impl AsRef<str>) -> CompletedMarker {
86 self.complete_raw(
87 p,
88 SyntaxKind::ERROR_CUSTOM,
89 Some(SyntaxError::Custom {
90 error: msg.as_ref().to_owned(),
91 }),
92 )
93 }
94 pub fn complete_missing(mut self, p: &mut Parser, expected: ExpectedSyntax) -> CompletedMarker {
95 self.complete_raw(
96 p,
97 SyntaxKind::ERROR_MISSING_TOKEN,
98 Some(SyntaxError::Missing { expected }),
99 )
100 }
101 pub fn complete_unexpected(
102 mut self,
103 p: &mut Parser,
104 expected: ExpectedSyntax,
105 found: SyntaxKind,
106 ) -> CompletedMarker {
107 self.complete_raw(
108 p,
109 SyntaxKind::ERROR_UNEXPECTED_TOKEN,
110 Some(SyntaxError::Unexpected { expected, found }),
111 )
112 }
113
69 pub fn forget(mut self, p: &mut Parser) {114 pub fn forget(mut self, p: &mut Parser) {
70 self.bomb.defuse();115 self.bomb.defuse();
71 let event_at_pos = &mut p.events[self.start_event_idx];116 let event_at_pos = &mut p.events[self.start_event_idx];
72 assert_eq!(*event_at_pos, Event::Pending);117 assert!(matches!(event_at_pos, Event::Pending));
73118
74 *event_at_pos = Event::Noop;119 *event_at_pos = Event::Noop;
75 p.entered -= 1;120 p.entered -= 1;
86 match &mut p.events[self.start_event_idx] {131 match &mut p.events[self.start_event_idx] {
87 Event::Start { forward_parent, .. } => {132 Event::Start { forward_parent, .. } => {
88 *forward_parent = Some(new_m.start_event_idx - self.start_event_idx);133 *forward_parent = Some(
134 NonZeroUsize::new(new_m.start_event_idx - self.start_event_idx).expect("!= 0"),
135 );
89 }136 }
90 _ => unreachable!(),137 _ => unreachable!(),
93 new_m140 new_m
94 }141 }
95 /// Create new node around existing marker, not counting anything that comes after it142 /// Create new node around existing marker, not counting anything that comes after it
96 pub fn wrap(self, p: &mut Parser, kind: SyntaxKind) -> CompletedMarker {143 fn wrap_raw(
144 self,
145 p: &mut Parser,
146 kind: SyntaxKind,
147 error: Option<SyntaxError>,
148 ) -> CompletedMarker {
97 let new_m = p.start();149 let new_m = p.start();
98 match &mut p.events[self.start_event_idx] {150 match &mut p.events[self.start_event_idx] {
99 Event::Start { forward_parent, .. } => {151 Event::Start { forward_parent, .. } => {
100 *forward_parent = Some(new_m.start_event_idx - self.start_event_idx);152 *forward_parent = Some(
153 NonZeroUsize::new(new_m.start_event_idx - self.start_event_idx).expect("!= 0"),
154 );
101 }155 }
102 _ => unreachable!(),156 _ => unreachable!(),
103 }157 }
104158
105 let completed = new_m.complete(p, kind);159 let completed = new_m.complete_raw(p, kind, error);
106160
107 match &mut p.events[self.finish_event_idx] {161 match &mut p.events[self.finish_event_idx] {
108 Event::Finish { wrapper } => {162 Event::Finish {
163 wrapper,
164 error: _error,
165 } => {
109 *wrapper = Some(completed.finish_event_idx - self.finish_event_idx);166 *wrapper = Some(
167 NonZeroUsize::new(completed.finish_event_idx - self.finish_event_idx)
168 .expect("!= 0"),
169 );
110 }170 }
111 _ => unreachable!(),171 _ => unreachable!(),
112 }172 }
113 completed173 completed
114 }174 }
175 pub fn wrap(self, p: &mut Parser, kind: SyntaxKind) -> CompletedMarker {
176 self.wrap_raw(p, kind, None)
177 }
178 pub fn wrap_error(self, p: &mut Parser, msg: impl AsRef<str>) -> CompletedMarker {
179 self.wrap_raw(
180 p,
181 SyntaxKind::ERROR_CUSTOM,
182 Some(SyntaxError::Custom {
183 error: msg.as_ref().to_owned(),
184 }),
185 )
186 }
115}187}
116188
modifiedcrates/jrsonnet-rowan-parser/src/parser.rsdiffbeforeafterboth
1use std::{cell::Cell, fmt::Display, rc::Rc};1use std::{cell::Cell, fmt, rc::Rc};
22
3use miette::{LabeledSpan, SourceOffset, SourceSpan};3use miette::{LabeledSpan, SourceOffset, SourceSpan};
4use rowan::{GreenNode, TextRange, TextSize};4use rowan::{GreenNode, TextRange};
55
6use crate::{6use crate::{
7 event::Event,7 event::Event,
8 lex::Lexeme,
9 marker::{CompletedMarker, Marker, Ranger},8 marker::{CompletedMarker, Marker, Ranger},
10 nodes::{BinaryOperatorKind, Literal, Number, Text, Trivia, UnaryOperatorKind},9 nodes::{BinaryOperatorKind, Literal, Number, Text, UnaryOperatorKind},
11 token_set::SyntaxKindSet,10 token_set::SyntaxKindSet,
12 AstToken, SyntaxKind,11 AstToken, SyntaxKind,
13 SyntaxKind::*,12 SyntaxKind::*,
19 pub errors: Vec<LocatedSyntaxError>,18 pub errors: Vec<LocatedSyntaxError>,
20}19}
21
22#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
23pub enum ExpectedSyntax {
24 Named(&'static str),
25 Unnamed(SyntaxKind),
26}
27impl Display for ExpectedSyntax {
28 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
29 match self {
30 ExpectedSyntax::Named(n) => write!(f, "{}", n),
31 ExpectedSyntax::Unnamed(u) => write!(f, "{:?}", u),
32 }
33 }
34}
3520
36pub struct Parser {21pub struct Parser {
37 // TODO: remove all trivia before feeding to parser?22 // TODO: remove all trivia before feeding to parser?
41 pub entered: u32,26 pub entered: u32,
42 pub hints: Vec<(u32, TextRange, String)>,27 pub hints: Vec<(u32, TextRange, String)>,
43 pub last_error_token: usize,28 pub last_error_token: usize,
44 expected_syntax: Option<ExpectedSyntax>,
45 expected_syntax_tracking_state: Rc<Cell<ExpectedSyntaxTrackingState>>,29 expected_syntax_tracking_state: Rc<Cell<ExpectedSyntax>>,
46 steps: Cell<u64>,30 steps: Cell<u64>,
47}31}
48
49const DEFAULT_RECOVERY_SET: SyntaxKindSet = TS![];
5032
51#[derive(Clone, Debug, PartialEq, Eq)]33#[derive(Clone, Debug)]
52pub enum SyntaxError {34pub enum SyntaxError {
53 Unexpected {35 Unexpected {
54 expected: ExpectedSyntax,36 expected: ExpectedSyntax,
80 dbg!(&val);62 dbg!(&val);
81 match val.error {63 match val.error {
82 SyntaxError::Unexpected { expected, found } => LabeledSpan::new_with_span(64 SyntaxError::Unexpected { expected, found } => LabeledSpan::new_with_span(
83 Some(format!("expected {}, found {:?}", expected, found)),65 Some(format!("expected {expected}, found {found:?}")),
84 span,66 span,
85 ),67 ),
86 SyntaxError::Missing { expected } => {68 SyntaxError::Missing { expected } => {
87 LabeledSpan::new_with_span(Some(format!("missing {}", expected)), span)69 LabeledSpan::new_with_span(Some(format!("missing {expected}")), span)
88 }70 }
89 SyntaxError::Custom { error } | SyntaxError::Hint { error } => {71 SyntaxError::Custom { error } | SyntaxError::Hint { error } => {
90 LabeledSpan::new_with_span(Some(error), span)72 LabeledSpan::new_with_span(Some(error), span)
102 entered: 0,84 entered: 0,
103 last_error_token: 0,85 last_error_token: 0,
104 hints: vec![],86 hints: vec![],
105 expected_syntax: None,
106 expected_syntax_tracking_state: Rc::new(Cell::new(87 expected_syntax_tracking_state: Rc::new(Cell::new(ExpectedSyntax::Unnamed(TS![]))),
107 ExpectedSyntaxTrackingState::Unnamed,
108 )),
109 steps: Cell::new(0),88 steps: Cell::new(0),
110 }89 }
119 self.hints.truncate(self.hints.len() - amount)98 self.hints.truncate(self.hints.len() - amount)
120 }99 }
121 fn clear_expected_syntaxes(&mut self) {100 fn clear_expected_syntaxes(&mut self) {
122 self.expected_syntax = None;
123 self.expected_syntax_tracking_state101 self.expected_syntax_tracking_state
124 .set(ExpectedSyntaxTrackingState::Unnamed);102 .set(ExpectedSyntax::Unnamed(TS![]));
125 }103 }
126 pub fn start(&mut self) -> Marker {104 pub fn start(&mut self) -> Marker {
127 let start_event_idx = self.events.len();105 let start_event_idx = self.events.len();
167 self.error_with_no_skip();145 self.error_with_no_skip();
168 }146 }
169 }147 }
170 pub(crate) fn error_with_recovery_set(
171 &mut self,
172 recovery_set: SyntaxKindSet,
173 ) -> CompletedMarker {
174 self.error_with_recovery_set_no_default(recovery_set.union(DEFAULT_RECOVERY_SET))
175 }
176 pub fn error_with_no_skip(&mut self) -> CompletedMarker {148 pub fn error_with_no_skip(&mut self) -> CompletedMarker {
177 self.error_with_recovery_set_no_default(SyntaxKindSet::ALL)149 self.error_with_recovery_set(SyntaxKindSet::ALL)
178 }150 }
179151
180 pub fn error_with_recovery_set_no_default(152 pub fn error_with_recovery_set(&mut self, recovery_set: SyntaxKindSet) -> CompletedMarker {
181 &mut self,
182 recovery_set: SyntaxKindSet,
183 ) -> CompletedMarker {
184 let expected_syntax = self153 let expected = self.expected_syntax_tracking_state.get();
185 .expected_syntax
186 .take()
187 .unwrap_or(ExpectedSyntax::Named("unknown"));
188 self.expected_syntax_tracking_state154 self.expected_syntax_tracking_state
189 .set(ExpectedSyntaxTrackingState::Unnamed);155 .set(ExpectedSyntax::Unnamed(TS![]));
190156
191 if self.at_end() || self.at_ts(recovery_set) {157 if self.at_end() || self.at_ts(recovery_set) {
192 // let range = self
193 // .offset
194 // .unwrap_or_else(|| TextRange::at(TextSize::from(0), TextSize::from(0)));
195 let m = self.start();158 let m = self.start();
196 let m = m.complete(self, ERROR_MISSING_TOKEN);159 return m.complete_missing(self, expected);
197 self.events.push(Event::Error(SyntaxError::Missing {
198 expected: expected_syntax,
199 }));
200 return m;
201 }160 }
202161
203 let current_token = self.current();162 let current_token = self.current();
206165
207 let m = self.start();166 let m = self.start();
208 self.bump();167 self.bump();
209 let m = m.complete(self, ERROR_UNEXPECTED_TOKEN);168 let m = m.complete_unexpected(self, expected, current_token);
210 self.events.push(Event::Error(SyntaxError::Unexpected {
211 expected: expected_syntax,
212 found: current_token,
213 }));
214 self.clear_expected_syntaxes();169 self.clear_expected_syntaxes();
215 m170 m
216 }171 }
269 #[must_use]224 #[must_use]
270 pub(crate) fn expected_syntax_name(&mut self, name: &'static str) -> ExpectedSyntaxGuard {225 pub(crate) fn expected_syntax_name(&mut self, name: &'static str) -> ExpectedSyntaxGuard {
271 self.expected_syntax_tracking_state226 self.expected_syntax_tracking_state
272 .set(ExpectedSyntaxTrackingState::Named);227 .set(ExpectedSyntax::Named(name));
273 self.expected_syntax = Some(ExpectedSyntax::Named(name));
274228
275 ExpectedSyntaxGuard::new(Rc::clone(&self.expected_syntax_tracking_state))229 ExpectedSyntaxGuard::new(Rc::clone(&self.expected_syntax_tracking_state))
276 }230 }
277 pub fn at(&mut self, kind: SyntaxKind) -> bool {231 pub fn at(&mut self, kind: SyntaxKind) -> bool {
278 self.nth_at(0, kind)232 self.nth_at(0, kind)
279 }233 }
280 pub fn nth_at(&mut self, n: usize, kind: SyntaxKind) -> bool {234 pub fn nth_at(&mut self, n: usize, kind: SyntaxKind) -> bool {
281 if let ExpectedSyntaxTrackingState::Unnamed = self.expected_syntax_tracking_state.get() {235 if n == 0 {
236 if let ExpectedSyntax::Unnamed(kinds) = self.expected_syntax_tracking_state.get() {
237 let kinds = kinds.with(kind);
282 self.expected_syntax = Some(ExpectedSyntax::Unnamed(kind));238 self.expected_syntax_tracking_state
239 .set(ExpectedSyntax::Unnamed(kinds))
283 }240 }
241 }
284 self.nth(n) == kind242 self.nth(n) == kind
285 }243 }
286 pub fn at_ts(&mut self, set: SyntaxKindSet) -> bool {244 pub fn at_ts(&mut self, set: SyntaxKindSet) -> bool {
245 if let ExpectedSyntax::Unnamed(kinds) = self.expected_syntax_tracking_state.get() {
246 let kinds = kinds.union(set);
247 self.expected_syntax_tracking_state
248 .set(ExpectedSyntax::Unnamed(kinds))
249 }
287 set.contains(self.current())250 set.contains(self.current())
288 }251 }
289 pub fn at_end(&mut self) -> bool {252 pub fn at_end(&mut self) -> bool {
290 self.at(EOF)253 self.at(EOF)
291 }254 }
292}255}
293pub(crate) struct ExpectedSyntaxGuard {256pub(crate) struct ExpectedSyntaxGuard {
294 expected_syntax_tracking_state: Rc<Cell<ExpectedSyntaxTrackingState>>,257 expected_syntax_tracking_state: Rc<Cell<ExpectedSyntax>>,
295}258}
296259
297impl ExpectedSyntaxGuard {260impl ExpectedSyntaxGuard {
298 fn new(expected_syntax_tracking_state: Rc<Cell<ExpectedSyntaxTrackingState>>) -> Self {261 fn new(expected_syntax_tracking_state: Rc<Cell<ExpectedSyntax>>) -> Self {
299 Self {262 Self {
300 expected_syntax_tracking_state,263 expected_syntax_tracking_state,
301 }264 }
305impl Drop for ExpectedSyntaxGuard {268impl Drop for ExpectedSyntaxGuard {
306 fn drop(&mut self) {269 fn drop(&mut self) {
307 self.expected_syntax_tracking_state270 self.expected_syntax_tracking_state
308 .set(ExpectedSyntaxTrackingState::Unnamed);271 .set(ExpectedSyntax::Unnamed(TS![]));
309 }272 }
310}273}
311274
312#[derive(Debug, Clone, Copy)]275#[derive(Clone, Debug, Copy)]
313enum ExpectedSyntaxTrackingState {276pub enum ExpectedSyntax {
314 Named,277 Named(&'static str),
315 Unnamed,278 Unnamed(SyntaxKindSet),
316}279}
280impl fmt::Display for ExpectedSyntax {
281 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
282 match self {
283 ExpectedSyntax::Named(name) => write!(f, "{name}"),
284 ExpectedSyntax::Unnamed(set) => write!(f, "{set}"),
285 }
286 }
287}
317288
318fn expr(p: &mut Parser) -> CompletedMarker {289fn expr(p: &mut Parser) -> CompletedMarker {
319 match expr_binding_power(p, 0) {290 match expr_binding_power(p, 0) {
358 Ok(lhs)329 Ok(lhs)
359}330}
331
332const COMPSPEC: SyntaxKindSet = TS![for if];
360fn compspec(p: &mut Parser) {333fn compspec(p: &mut Parser) -> CompletedMarker {
361 assert!(p.at(T![for]) || p.at(T![if]));334 assert!(p.at_ts(COMPSPEC));
362 if p.at(T![for]) {335 if p.at(T![for]) {
363 let m = p.start();336 let m = p.start();
364 p.bump();337 p.bump();
365 name(p);338 name(p);
366 p.expect(T![in]);339 p.expect(T![in]);
367 expr(p);340 expr(p);
368 m.complete(p, FOR_SPEC);341 m.complete(p, FOR_SPEC)
369 } else if p.at(T![if]) {342 } else if p.at(T![if]) {
370 let m = p.start();343 let m = p.start();
371 p.bump();344 p.bump();
372 expr(p);345 expr(p);
373 m.complete(p, IF_SPEC);346 m.complete(p, IF_SPEC)
374 } else {347 } else {
375 unreachable!()348 unreachable!()
376 }349 }
377}350}
351
378fn comma(p: &mut Parser) -> bool {352fn comma(p: &mut Parser) -> bool {
379 if p.at(T![,]) {353 comma_with_alternatives(p, TS![])
380 p.bump();
381 true
382 } else {
383 false
384 }
385}354}
386fn comma_with_alternatives(p: &mut Parser, set: SyntaxKindSet) -> bool {355fn comma_with_alternatives(p: &mut Parser, set: SyntaxKindSet) -> bool {
387 if p.at(T![,]) {356 if p.at(T![,]) {
388 p.bump();357 p.bump();
389 true358 true
390 } else if p.at_ts(set) {359 } else if p.at_ts(set) {
391 p.expect_with_no_skip(T![,]);360 let _ex = p.expected_syntax_name("comma");
392 p.bump();361 p.expect_with_recovery_set(T![,], TS![]);
393 true362 true
394 } else {363 } else {
395 false364 false
410 text(p);380 text(p);
411 m.complete(p, FIELD_NAME_FIXED);381 m.complete(p, FIELD_NAME_FIXED);
412 } else {382 } else {
383 m.forget(p);
413 p.error_with_recovery_set(TS![;]);384 p.error_with_recovery_set(TS![; : :: ::: '(']);
414 }385 }
415}386}
416fn visibility(p: &mut Parser) {387fn visibility(p: &mut Parser) {
417 if p.at_ts(TS![: :: :::]) {388 if p.at_ts(TS![: :: :::]) {
418 p.bump()389 p.bump()
419 } else {390 } else {
420 p.error_with_recovery_set(TS![]);391 p.error_with_recovery_set(TS![=]);
421 }392 }
422}393}
423fn field(p: &mut Parser) {
424 let m = p.start();
425 field_name(p);
426 let plus = if p.at(T![+]) {
427 let r = p.start_ranger();
428 p.bump();
429 Some(r.finish(p))
430 } else {
431 None
432 };
433 let params = if p.at(T!['(']) {
434 // if let Some(plus) = plus {
435 // p.custom_error(plus, "can't extend with method");
436 // }
437 params_desc(p);
438 // if p.at(T![+]) {
439 // let r = p.start_ranger();
440 // p.bump();
441 // p.custom_error(r.finish(p), "can't extend with method");
442 // }
443 true
444 } else {
445 false
446 };
447 visibility(p);
448 expr(p);
449
450 if params {
451 m.complete(p, FIELD_METHOD)
452 } else {
453 m.complete(p, FIELD_NORMAL)
454 };
455}
456fn assertion(p: &mut Parser) {394fn assertion(p: &mut Parser) {
457 let m = p.start();395 let m = p.start();
458 p.bump_assert(T![assert]);396 p.bump_assert(T![assert]);
468 let m = p.start();406 let m = p.start();
469 p.bump_assert(T!['{']);407 p.bump_assert(T!['{']);
470408
409 let mut elems = 0;
410 let mut compspecs = Vec::new();
471 loop {411 loop {
472 if p.at(T!['}']) {412 if p.at(T!['}']) {
473 p.bump();413 p.bump();
474 break;414 break;
475 }415 }
416 if p.at_ts(COMPSPEC) {
417 if elems == 0 {
418 let m = p.start();
419 m.complete_missing(p, ExpectedSyntax::Named("field definition"));
420 }
421 while p.at_ts(COMPSPEC) {
422 compspecs.push(compspec(p));
423 }
424 if comma_with_alternatives(p, TS![;]) {
425 continue;
426 }
427 p.expect(R_BRACE);
428 break;
429 }
476 let m = p.start();430 let m = p.start();
477 if p.at(T![local]) {431 if p.at(T![local]) {
478 obj_local(p);432 obj_local(p);
481 assertion(p);435 assertion(p);
482 m.complete(p, MEMBER_ASSERT_STMT)436 m.complete(p, MEMBER_ASSERT_STMT)
483 } else {437 } else {
484 field(p);438 field_name(p);
439 if p.at(T![+]) {
440 p.bump();
441 }
485 while p.at(T![for]) || p.at(T![if]) {442 let params = if p.at(T!['(']) {
486 compspec(p)443 params_desc(p);
487 }444 visibility(p);
445 expr(p);
446 true
447 } else if p.at_ts(TS![: :: :::]) && p.nth_at(1, T![function]) {
448 visibility(p);
449 p.bump_assert(T![function]);
450 params_desc(p);
451 expr(p);
452 true
453 } else {
454 visibility(p);
455 expr(p);
456 false
457 };
458
459 if params {
488 m.complete(p, MEMBER_FIELD)460 m.complete(p, MEMBER_FIELD_METHOD)
461 } else {
462 m.complete(p, MEMBER_FIELD_NORMAL)
463 }
489 };464 };
465 elems += 1;
466 while p.at_ts(COMPSPEC) {
467 compspecs.push(compspec(p));
468 }
490 if comma_with_alternatives(p, SyntaxKindSet::new(&[T![=]])) {469 if comma_with_alternatives(p, TS![;]) {
491 continue;470 continue;
492 }471 }
493 p.expect(R_BRACE);472 p.expect(R_BRACE);
494 break;473 break;
495 }474 }
496475
476 if elems > 1 && !compspecs.is_empty() {
477 for errored in compspecs {
478 errored.wrap_error(
479 p,
480 "compspec may only be used if there is only one array element",
481 );
482 }
497 m.complete(p, OBJ_BODY_MEMBER_LIST);483 m.complete(p, OBJ_BODY_MEMBER_LIST);
484 } else if !compspecs.is_empty() {
485 m.complete(p, OBJ_BODY_COMP);
486 } else {
487 m.complete(p, OBJ_BODY_MEMBER_LIST);
488 }
498 m_t.complete(p, EXPR_OBJECT)489 m_t.complete(p, EXPR_OBJECT)
499}490}
500fn param(p: &mut Parser) {491fn param(p: &mut Parser) {
530 p.bump_assert(T!['(']);521 p.bump_assert(T!['(']);
531522
532 let started_named = Cell::new(false);523 let started_named = Cell::new(false);
524 let mut unnamed_after_named = Vec::new();
533525
534 loop {526 loop {
535 if p.at(T![')']) {527 if p.at(T![')']) {
545 started_named.set(true);537 started_named.set(true);
546 } else {538 } else {
547 expr(p);539 expr(p);
548 m.complete(p, ARG);540 let arg = m.complete(p, ARG);
541 if started_named.get() {
542 unnamed_after_named.push(arg)
543 }
549 }544 }
550 if comma(p) {545 if comma(p) {
551 continue;546 continue;
557 p.bump()552 p.bump()
558 }553 }
554
555 for errored in unnamed_after_named {
556 errored.wrap_error(p, "can't use positional arguments after named");
557 }
558
559 m.complete(p, ARGS_DESC);559 m.complete(p, ARGS_DESC);
560}560}
564 let m = p.start();564 let m = p.start();
565 p.bump_assert(T!['[']);565 p.bump_assert(T!['[']);
566566
567 // This vec will have at most one element in case of correct input
568 let mut compspecs = Vec::with_capacity(1);567 let mut compspecs = Vec::new();
569 let mut elems = 0;568 let mut elems = 0;
570569
571 loop {570 loop {
572 if p.at(T![']']) {571 if p.at(T![']']) {
573 p.bump();572 p.bump();
574 break;573 break;
575 }574 }
576 elems += 1;
577 expr(p);575 if elems != 0 && p.at_ts(COMPSPEC) {
578 let c = p.start_ranger();576 while p.at_ts(COMPSPEC) {
579 let mut had_spec = false;577 compspecs.push(compspec(p));
578 }
580 while p.at(T![for]) || p.at(T![if]) {579 if comma(p) {
580 continue;
581 }
582 p.expect(T![']']);
583 break;
584 }
581 had_spec = true;585 elems += 1;
582 compspec(p)586 expr(p);
583 }
584 if had_spec {587 while p.at_ts(COMPSPEC) {
585 compspecs.push(c.finish(p));588 compspecs.push(compspec(p));
586 }589 }
587 if comma(p) {590 if comma(p) {
588 continue;591 continue;
593596
594 if elems > 1 && !compspecs.is_empty() {597 if elems > 1 && !compspecs.is_empty() {
595 for spec in compspecs {598 for spec in compspecs {
596 // p.custom_error(599 spec.wrap_error(
597 // spec,600 p,
598 // "compspec may only be used if there is only one array element",601 "compspec may only be used if there is only one array element",
599 // )602 );
600 }603 }
601604
602 m.complete(p, EXPR_ARRAY)605 m.complete(p, EXPR_ARRAY)
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_comma.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_incompatible_with_multiple_elems.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_incompatible_with_multiple_elems_w.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__arr_compspec_no_elems.snapdiffbeforeafterboth

no changes

modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__function_error_rparen.snapdiffbeforeafterboth
21 ERROR_MISSING_TOKEN@14..1421 ERROR_MISSING_TOKEN@14..14
22 ERROR_MISSING_TOKEN@14..1422 ERROR_MISSING_TOKEN@14..14
23===23===
24LocatedSyntaxError { error: Missing { expected: Unnamed(R_PAREN) }, range: 14..14 }24LocatedSyntaxError { error: Missing { expected: Unnamed(SyntaxKindSet([R_PAREN, COMMA, ASSIGN])) }, range: 14..14 }
25LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 14..14 }25LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 14..14 }
26===26===
27 x syntax error27 x syntax error
28 ,----28 ,----
29 1 | function(a, b29 1 | function(a, b
30 : ^^30 : ^^
31 : |`-- missing expression31 : |`-- missing expression
32 : `-- missing R_PAREN32 : `-- missing R_PAREN, COMMA or ASSIGN
33 `----33 `----
3434
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_method.snapdiffbeforeafterboth

no changes

modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_no_value_recovery.snapdiffbeforeafterboth
33 ERROR_MISSING_TOKEN@25..2533 ERROR_MISSING_TOKEN@25..25
34 ERROR_MISSING_TOKEN@25..2534 ERROR_MISSING_TOKEN@25..25
35===35===
36LocatedSyntaxError { error: Missing { expected: Unnamed(SEMI) }, range: 25..25 }36LocatedSyntaxError { error: Missing { expected: Unnamed(SyntaxKindSet([L_BRACK, L_PAREN, L_BRACE, SEMI, DOT, COMMA])) }, range: 25..25 }
37LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 25..25 }37LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 25..25 }
38===38===
39 x syntax error39 x syntax error
42 3 | 142 3 | 1
43 : ^^43 : ^^
44 : |`-- missing expression44 : |`-- missing expression
45 : `-- missing SEMI45 : `-- missing L_BRACK, L_PAREN, L_BRACE, SEMI, DOT or COMMA
46 `----46 `----
4747
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_novalue.snapdiffbeforeafterboth
18 ERROR_MISSING_TOKEN@10..1018 ERROR_MISSING_TOKEN@10..10
19===19===
20LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 10..10 }20LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 10..10 }
21LocatedSyntaxError { error: Missing { expected: Unnamed(SEMI) }, range: 10..10 }21LocatedSyntaxError { error: Missing { expected: Unnamed(SyntaxKindSet([SEMI, COMMA])) }, range: 10..10 }
22LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 10..10 }22LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 10..10 }
23===23===
24 x syntax error24 x syntax error
25 ,----25 ,----
26 1 | local a =26 1 | local a =
27 : ^^^27 : ^^^
28 : `-- missing expression28 : `-- missing expression
29 : |`-- missing SEMI29 : |`-- missing SEMI or COMMA
30 : `-- missing expression30 : `-- missing expression
31 `----31 `----
3232
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__named_before_positional.snapdiffbeforeafterboth
3expression: "a(1, 2, b=4, 3, 5, k = 12, 6)\n"3expression: "a(1, 2, b=4, 3, 5, k = 12, 6)\n"
4---4---
5SOURCE_FILE@0..305SOURCE_FILE@0..30
6 EXPR_APPLY@0..306 EXPR_APPLY@0..29
7 EXPR_VAR@0..17 EXPR_VAR@0..1
8 IDENT@0..1 "a"8 NAME@0..1
9 IDENT@0..1 "a"
9 L_PAREN@1..2 "("10 ARGS_DESC@1..29
11 L_PAREN@1..2 "("
10 ARG@2..312 ARG@2..3
11 EXPR_NUMBER@2..313 EXPR_NUMBER@2..3
12 NUMBER@2..3 "1"14 FLOAT@2..3 "1"
13 COMMA@3..4 ","15 COMMA@3..4 ","
14 WHITESPACE@4..5 " "16 WHITESPACE@4..5 " "
15 ARG@5..617 ARG@5..6
16 EXPR_NUMBER@5..618 EXPR_NUMBER@5..6
17 NUMBER@5..6 "2"19 FLOAT@5..6 "2"
18 COMMA@6..7 ","20 COMMA@6..7 ","
19 WHITESPACE@7..8 " "21 WHITESPACE@7..8 " "
20 ARG@8..1122 ARG@8..11
21 IDENT@8..9 "b"23 NAME@8..9
24 IDENT@8..9 "b"
22 ASSIGN@9..10 "="25 ASSIGN@9..10 "="
23 EXPR_NUMBER@10..1126 EXPR_NUMBER@10..11
24 NUMBER@10..11 "4"27 FLOAT@10..11 "4"
25 COMMA@11..12 ","28 COMMA@11..12 ","
26 WHITESPACE@12..13 " "29 WHITESPACE@12..13 " "
27 ERROR@13..2830 ERROR_CUSTOM@13..14
28 ARG@13..1431 ARG@13..14
29 EXPR_NUMBER@13..1432 EXPR_NUMBER@13..14
30 NUMBER@13..14 "3"33 FLOAT@13..14 "3"
31 COMMA@14..15 ","34 COMMA@14..15 ","
32 WHITESPACE@15..16 " "35 WHITESPACE@15..16 " "
33 ARG@16..1736 ERROR_CUSTOM@16..17
37 ARG@16..17
34 EXPR_NUMBER@16..1738 EXPR_NUMBER@16..17
35 NUMBER@16..17 "5"39 FLOAT@16..17 "5"
36 COMMA@17..18 ","40 COMMA@17..18 ","
37 WHITESPACE@18..19 " "41 WHITESPACE@18..19 " "
38 ARG@19..2542 ARG@19..25
39 IDENT@19..20 "k"43 NAME@19..20
44 IDENT@19..20 "k"
40 WHITESPACE@20..21 " "45 WHITESPACE@20..21 " "
41 ASSIGN@21..22 "="46 ASSIGN@21..22 "="
42 WHITESPACE@22..23 " "47 WHITESPACE@22..23 " "
43 EXPR_NUMBER@23..2548 EXPR_NUMBER@23..25
44 NUMBER@23..25 "12"49 FLOAT@23..25 "12"
45 COMMA@25..26 ","50 COMMA@25..26 ","
46 WHITESPACE@26..27 " "51 WHITESPACE@26..27 " "
47 ARG@27..2852 ERROR_CUSTOM@27..28
53 ARG@27..28
48 EXPR_NUMBER@27..2854 EXPR_NUMBER@27..28
49 NUMBER@27..28 "6"55 FLOAT@27..28 "6"
50 R_PAREN@28..29 ")"56 R_PAREN@28..29 ")"
51 WHITESPACE@29..30 "\n"57 WHITESPACE@29..30 "\n"
52===58===
53Custom { error: "positional arguments can't be placed after named", range: 13..28 }59LocatedSyntaxError { error: Custom { error: "can't use positional arguments after named" }, range: 13..14 }
60LocatedSyntaxError { error: Custom { error: "can't use positional arguments after named" }, range: 16..17 }
61LocatedSyntaxError { error: Custom { error: "can't use positional arguments after named" }, range: 27..28 }
54===62===
55 x syntax error63 x syntax error
56 ,----64 ,----
57 1 | a(1, 2, b=4, 3, 5, k = 12, 6)65 1 | a(1, 2, b=4, 3, 5, k = 12, 6)
58 : ^^^^^^^|^^^^^^^66 : | | |
59 : `-- positional arguments can't be placed after named67 : | | `-- can't use positional arguments after named
68 : | `-- can't use positional arguments after named
69 : `-- can't use positional arguments after named
60 `----70 `----
61
6271
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_lhs.snapdiffbeforeafterboth
9 WHITESPACE@1..2 " "9 WHITESPACE@1..2 " "
10===10===
11LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 0..0 }11LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 0..0 }
12LocatedSyntaxError { error: Unexpected { expected: Unnamed(EOF), found: PLUS }, range: 0..1 }12LocatedSyntaxError { error: Unexpected { expected: Unnamed(SyntaxKindSet([EOF])), found: PLUS }, range: 0..1 }
13===13===
14 x syntax error14 x syntax error
15 ,----15 ,----
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__no_operator.snapdiffbeforeafterboth
10 FLOAT@2..3 "2"10 FLOAT@2..3 "2"
11 WHITESPACE@3..4 "\n"11 WHITESPACE@3..4 "\n"
12===12===
13LocatedSyntaxError { error: Unexpected { expected: Unnamed(EOF), found: FLOAT }, range: 2..3 }13LocatedSyntaxError { error: Unexpected { expected: Unnamed(SyntaxKindSet([EOF, L_BRACK, L_PAREN, L_BRACE, DOT])), found: FLOAT }, range: 2..3 }
14===14===
15 x syntax error15 x syntax error
16 ,----16 ,----
17 1 | 2 217 1 | 2 2
18 : |18 : |
19 : `-- expected EOF, found FLOAT19 : `-- expected EOF, L_BRACK, L_PAREN, L_BRACE or DOT, found FLOAT
20 `----20 `----
2121
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_comma.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_incompatible_with_multiple_elems.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_incompatible_with_multiple_elems_w.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_compspec_no_elems.snapdiffbeforeafterboth

no changes

addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__obj_method.snapdiffbeforeafterboth

no changes

modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__stdlib.snapdiffbeforeafterboth
42 IDENT@39..41 "id"42 IDENT@39..41 "id"
43 COMMA@41..42 ","43 COMMA@41..42 ","
44 WHITESPACE@42..46 "\n\n "44 WHITESPACE@42..46 "\n\n "
45 MEMBER_FIELD@46..22445 MEMBER_FIELD_NORMAL@46..224
46 FIELD_NORMAL@46..22446 FIELD_NAME_FIXED@46..54
47 FIELD_NAME_FIXED@46..54
48 NAME@46..5447 NAME@46..54
49 IDENT@46..54 "thisFile"48 IDENT@46..54 "thisFile"
50 COLONCOLON@54..56 "::"49 COLONCOLON@54..56 "::"
51 WHITESPACE@56..57 " "50 WHITESPACE@56..57 " "
52 EXPR_ERROR@57..22451 EXPR_ERROR@57..224
53 ERROR_KW@57..62 "error"52 ERROR_KW@57..62 "error"
54 WHITESPACE@62..63 " "53 WHITESPACE@62..63 " "
55 EXPR_STRING@63..22454 EXPR_STRING@63..224
56 STRING_SINGLE@63..224 "'std.thisFile is depr ..."55 STRING_SINGLE@63..224 "'std.thisFile is depr ..."
57 COMMA@224..225 ","56 COMMA@224..225 ","
58 WHITESPACE@225..229 "\n\n "57 WHITESPACE@225..229 "\n\n "
59 MEMBER_FIELD@229..24958 MEMBER_FIELD_METHOD@229..249
60 FIELD_METHOD@229..24959 FIELD_NAME_FIXED@229..237
61 FIELD_NAME_FIXED@229..237
62 NAME@229..23760 NAME@229..237
63 IDENT@229..237 "toString"61 IDENT@229..237 "toString"
64 PARAMS_DESC@237..24062 PARAMS_DESC@237..240
65 L_PAREN@237..238 "("63 L_PAREN@237..238 "("
66 PARAM@238..23964 PARAM@238..239
67 DESTRUCT_FULL@238..23965 DESTRUCT_FULL@238..239
68 NAME@238..23966 NAME@238..239
69 IDENT@238..239 "a"67 IDENT@238..239 "a"
70 R_PAREN@239..240 ")"68 R_PAREN@239..240 ")"
71 COLONCOLON@240..242 "::"69 COLONCOLON@240..242 "::"
72 WHITESPACE@242..243 " "70 WHITESPACE@242..243 " "
73 EXPR_BINARY@243..24971 EXPR_BINARY@243..249
74 LHS_EXPR@243..24572 LHS_EXPR@243..245
75 EXPR_STRING@243..24573 EXPR_STRING@243..245
76 STRING_SINGLE@243..245 "''"74 STRING_SINGLE@243..245 "''"
77 WHITESPACE@245..246 " "75 WHITESPACE@245..246 " "
78 PLUS@246..247 "+"76 PLUS@246..247 "+"
79 WHITESPACE@247..248 " "77 WHITESPACE@247..248 " "
80 EXPR_VAR@248..24978 EXPR_VAR@248..249
81 NAME@248..24979 NAME@248..249
82 IDENT@248..249 "a"80 IDENT@248..249 "a"
83 COMMA@249..250 ","81 COMMA@249..250 ","
84 WHITESPACE@250..254 "\n\n "82 WHITESPACE@250..254 "\n\n "
85 MEMBER_FIELD@254..39783 MEMBER_FIELD_METHOD@254..397
86 FIELD_METHOD@254..39784 FIELD_NAME_FIXED@254..265
87 FIELD_NAME_FIXED@254..26585 NAME@254..265
88 NAME@254..26586 IDENT@254..265 "lstripChars"
89 IDENT@254..265 "lstripChars"87 PARAMS_DESC@265..277
90 PARAMS_DESC@265..27788 L_PAREN@265..266 "("
91 L_PAREN@265..266 "("89 PARAM@266..269
92 PARAM@266..26990 DESTRUCT_FULL@266..269
93 DESTRUCT_FULL@266..26991 NAME@266..269
94 NAME@266..26992 IDENT@266..269 "str"
95 IDENT@266..269 "str"93 COMMA@269..270 ","
96 COMMA@269..270 ","94 WHITESPACE@270..271 " "
97 WHITESPACE@270..271 " "95 PARAM@271..276
98 PARAM@271..27696 DESTRUCT_FULL@271..276
99 DESTRUCT_FULL@271..27697 NAME@271..276
100 NAME@271..27698 IDENT@271..276 "chars"
101 IDENT@271..276 "chars"99 R_PAREN@276..277 ")"
102 R_PAREN@276..277 ")"100 COLONCOLON@277..279 "::"
103 COLONCOLON@277..279 "::"101 WHITESPACE@279..284 "\n "
104 WHITESPACE@279..284 "\n "102 EXPR_IF_THEN_ELSE@284..397
105 EXPR_IF_THEN_ELSE@284..397103 IF_KW@284..286 "if"
106 IF_KW@284..286 "if"104 WHITESPACE@286..287 " "
107 WHITESPACE@286..287 " "105 EXPR_BINARY@287..335
108 EXPR_BINARY@287..335106 LHS_EXPR@287..306
109 LHS_EXPR@287..306107 EXPR_BINARY@287..306
110 EXPR_BINARY@287..306108 LHS_EXPR@287..302
111 LHS_EXPR@287..302109 EXPR_APPLY@287..302
112 EXPR_APPLY@287..302110 EXPR_INDEX@287..297
113 EXPR_INDEX@287..297111 EXPR_VAR@287..290
114 EXPR_VAR@287..290112 NAME@287..290
115 NAME@287..290113 IDENT@287..290 "std"
116 IDENT@287..290 "std"114 DOT@290..291 "."
117 DOT@290..291 "."115 NAME@291..297
118 NAME@291..297116 IDENT@291..297 "length"
119 IDENT@291..297 "length"117 ARGS_DESC@297..302
120 ARGS_DESC@297..302118 L_PAREN@297..298 "("
121 L_PAREN@297..298 "("119 ARG@298..301
122 ARG@298..301120 EXPR_VAR@298..301
123 EXPR_VAR@298..301121 NAME@298..301
124 NAME@298..301122 IDENT@298..301 "str"
125 IDENT@298..301 "str"123 R_PAREN@301..302 ")"
126 R_PAREN@301..302 ")"124 WHITESPACE@302..303 " "
127 WHITESPACE@302..303 " "125 GT@303..304 ">"
128 GT@303..304 ">"126 WHITESPACE@304..305 " "
129 WHITESPACE@304..305 " "127 EXPR_NUMBER@305..306
130 EXPR_NUMBER@305..306128 FLOAT@305..306 "0"
131 FLOAT@305..306 "0"129 WHITESPACE@306..307 " "
132 WHITESPACE@306..307 " "130 AND@307..309 "&&"
133 AND@307..309 "&&"131 WHITESPACE@309..310 " "
134 WHITESPACE@309..310 " "132 EXPR_APPLY@310..335
135 EXPR_APPLY@310..335133 EXPR_INDEX@310..320
136 EXPR_INDEX@310..320134 EXPR_VAR@310..313
137 EXPR_VAR@310..313135 NAME@310..313
138 NAME@310..313136 IDENT@310..313 "std"
139 IDENT@310..313 "std"137 DOT@313..314 "."
140 DOT@313..314 "."138 NAME@314..320
141 NAME@314..320139 IDENT@314..320 "member"
142 IDENT@314..320 "member"140 ARGS_DESC@320..335
143 ARGS_DESC@320..335141 L_PAREN@320..321 "("
144 L_PAREN@320..321 "("142 ARG@321..326
145 ARG@321..326143 EXPR_VAR@321..326
146 EXPR_VAR@321..326144 NAME@321..326
147 NAME@321..326145 IDENT@321..326 "chars"
148 IDENT@321..326 "chars"146 COMMA@326..327 ","
149 COMMA@326..327 ","147 WHITESPACE@327..328 " "
150 WHITESPACE@327..328 " "148 ARG@328..334
151 ARG@328..334149 EXPR_INDEX_EXPR@328..334
152 EXPR_INDEX_EXPR@328..334150 LHS_EXPR@328..331
153 LHS_EXPR@328..331151 EXPR_VAR@328..331
154 EXPR_VAR@328..331152 NAME@328..331
155 NAME@328..331153 IDENT@328..331 "str"
156 IDENT@328..331 "str"154 L_BRACK@331..332 "["
157 L_BRACK@331..332 "["155 EXPR_NUMBER@332..333
158 EXPR_NUMBER@332..333156 FLOAT@332..333 "0"
159 FLOAT@332..333 "0"157 R_BRACK@333..334 "]"
160 R_BRACK@333..334 "]"158 R_PAREN@334..335 ")"
161 R_PAREN@334..335 ")"159 WHITESPACE@335..336 " "
162 WHITESPACE@335..336 " "160 THEN_KW@336..340 "then"
163 THEN_KW@336..340 "then"161 WHITESPACE@340..347 "\n "
164 WHITESPACE@340..347 "\n "162 TRUE_EXPR@347..378
165 TRUE_EXPR@347..378163 EXPR_APPLY@347..378
166 EXPR_APPLY@347..378164 EXPR_INDEX@347..362
167 EXPR_INDEX@347..362165 EXPR_VAR@347..350
168 EXPR_VAR@347..350166 NAME@347..350
169 NAME@347..350167 IDENT@347..350 "std"
170 IDENT@347..350 "std"168 DOT@350..351 "."
171 DOT@350..351 "."169 NAME@351..362
172 NAME@351..362170 IDENT@351..362 "lstripChars"
173 IDENT@351..362 "lstripChars"171 ARGS_DESC@362..378
174 ARGS_DESC@362..378172 L_PAREN@362..363 "("
175 L_PAREN@362..363 "("173 ARG@363..370
176 ARG@363..370174 EXPR_SLICE@363..370
177 EXPR_SLICE@363..370175 EXPR_VAR@363..366
178 EXPR_VAR@363..366176 NAME@363..366
179 NAME@363..366177 IDENT@363..366 "str"
180 IDENT@363..366 "str"178 SLICE_DESC@366..370
181 SLICE_DESC@366..370179 L_BRACK@366..367 "["
182 L_BRACK@366..367 "["180 EXPR_NUMBER@367..368
183 EXPR_NUMBER@367..368181 FLOAT@367..368 "1"
184 FLOAT@367..368 "1"182 COLON@368..369 ":"
185 COLON@368..369 ":"183 R_BRACK@369..370 "]"
186 R_BRACK@369..370 "]"184 COMMA@370..371 ","
187 COMMA@370..371 ","185 WHITESPACE@371..372 " "
188 WHITESPACE@371..372 " "186 ARG@372..377
189 ARG@372..377187 EXPR_VAR@372..377
190 EXPR_VAR@372..377188 NAME@372..377
191 NAME@372..377189 IDENT@372..377 "chars"
192 IDENT@372..377 "chars"190 R_PAREN@377..378 ")"
193 R_PAREN@377..378 ")"191 WHITESPACE@378..383 "\n "
194 WHITESPACE@378..383 "\n "192 ELSE_KW@383..387 "else"
195 ELSE_KW@383..387 "else"193 WHITESPACE@387..394 "\n "
196 WHITESPACE@387..394 "\n "194 FALSE_EXPR@394..397
197 FALSE_EXPR@394..397195 EXPR_VAR@394..397
198 EXPR_VAR@394..397196 NAME@394..397
199 NAME@394..397197 IDENT@394..397 "str"
200 IDENT@394..397 "str"
201 COMMA@397..398 ","198 COMMA@397..398 ","
202 WHITESPACE@398..402 "\n\n "199 WHITESPACE@398..402 "\n\n "
203 MEMBER_FIELD@402..578200 MEMBER_FIELD_METHOD@402..578
204 FIELD_METHOD@402..578201 FIELD_NAME_FIXED@402..413
205 FIELD_NAME_FIXED@402..413202 NAME@402..413
206 NAME@402..413203 IDENT@402..413 "rstripChars"
207 IDENT@402..413 "rstripChars"204 PARAMS_DESC@413..425
208 PARAMS_DESC@413..425205 L_PAREN@413..414 "("
209 L_PAREN@413..414 "("206 PARAM@414..417
210 PARAM@414..417207 DESTRUCT_FULL@414..417
211 DESTRUCT_FULL@414..417208 NAME@414..417
212 NAME@414..417209 IDENT@414..417 "str"
213 IDENT@414..417 "str"210 COMMA@417..418 ","
214 COMMA@417..418 ","211 WHITESPACE@418..419 " "
215 WHITESPACE@418..419 " "212 PARAM@419..424
216 PARAM@419..424213 DESTRUCT_FULL@419..424
217 DESTRUCT_FULL@419..424214 NAME@419..424
218 NAME@419..424215 IDENT@419..424 "chars"
219 IDENT@419..424 "chars"216 R_PAREN@424..425 ")"
220 R_PAREN@424..425 ")"217 COLONCOLON@425..427 "::"
221 COLONCOLON@425..427 "::"218 WHITESPACE@427..432 "\n "
222 WHITESPACE@427..432 "\n "219 EXPR_LOCAL@432..578
223 EXPR_LOCAL@432..578220 LOCAL_KW@432..437 "local"
224 LOCAL_KW@432..437 "local"221 WHITESPACE@437..438 " "
225 WHITESPACE@437..438 " "222 BIND_DESTRUCT@438..459
226 BIND_DESTRUCT@438..459223 DESTRUCT_FULL@438..441
227 DESTRUCT_FULL@438..441224 NAME@438..441
228 NAME@438..441225 IDENT@438..441 "len"
229 IDENT@438..441 "len"226 WHITESPACE@441..442 " "
230 WHITESPACE@441..442 " "227 ASSIGN@442..443 "="
231 ASSIGN@442..443 "="228 WHITESPACE@443..444 " "
232 WHITESPACE@443..444 " "229 EXPR_APPLY@444..459
233 EXPR_APPLY@444..459230 EXPR_INDEX@444..454
234 EXPR_INDEX@444..454231 EXPR_VAR@444..447
235 EXPR_VAR@444..447232 NAME@444..447
236 NAME@444..447233 IDENT@444..447 "std"
237 IDENT@444..447 "std"234 DOT@447..448 "."
238 DOT@447..448 "."235 NAME@448..454
239 NAME@448..454236 IDENT@448..454 "length"
240 IDENT@448..454 "length"237 ARGS_DESC@454..459
241 ARGS_DESC@454..459238 L_PAREN@454..455 "("
242 L_PAREN@454..455 "("239 ARG@455..458
243 ARG@455..458240 EXPR_VAR@455..458
244 EXPR_VAR@455..458241 NAME@455..458
245 NAME@455..458242 IDENT@455..458 "str"
246 IDENT@455..458 "str"243 R_PAREN@458..459 ")"
247 R_PAREN@458..459 ")"244 SEMI@459..460 ";"
248 SEMI@459..460 ";"245 WHITESPACE@460..465 "\n "
249 WHITESPACE@460..465 "\n "246 EXPR_IF_THEN_ELSE@465..578
250 EXPR_IF_THEN_ELSE@465..578247 IF_KW@465..467 "if"
251 IF_KW@465..467 "if"248 WHITESPACE@467..468 " "
252 WHITESPACE@467..468 " "249 EXPR_BINARY@468..510
253 EXPR_BINARY@468..510250 LHS_EXPR@468..475
254 LHS_EXPR@468..475251 EXPR_BINARY@468..475
255 EXPR_BINARY@468..475252 LHS_EXPR@468..471
256 LHS_EXPR@468..471253 EXPR_VAR@468..471
257 EXPR_VAR@468..471254 NAME@468..471
258 NAME@468..471255 IDENT@468..471 "len"
259 IDENT@468..471 "len"256 WHITESPACE@471..472 " "
260 WHITESPACE@471..472 " "257 GT@472..473 ">"
261 GT@472..473 ">"258 WHITESPACE@473..474 " "
262 WHITESPACE@473..474 " "259 EXPR_NUMBER@474..475
263 EXPR_NUMBER@474..475260 FLOAT@474..475 "0"
264 FLOAT@474..475 "0"261 WHITESPACE@475..476 " "
265 WHITESPACE@475..476 " "262 AND@476..478 "&&"
266 AND@476..478 "&&"263 WHITESPACE@478..479 " "
267 WHITESPACE@478..479 " "264 EXPR_APPLY@479..510
268 EXPR_APPLY@479..510265 EXPR_INDEX@479..489
269 EXPR_INDEX@479..489266 EXPR_VAR@479..482
270 EXPR_VAR@479..482267 NAME@479..482
271 NAME@479..482268 IDENT@479..482 "std"
272 IDENT@479..482 "std"269 DOT@482..483 "."
273 DOT@482..483 "."270 NAME@483..489
274 NAME@483..489271 IDENT@483..489 "member"
275 IDENT@483..489 "member"272 ARGS_DESC@489..510
276 ARGS_DESC@489..510273 L_PAREN@489..490 "("
277 L_PAREN@489..490 "("274 ARG@490..495
278 ARG@490..495275 EXPR_VAR@490..495
279 EXPR_VAR@490..495276 NAME@490..495
280 NAME@490..495277 IDENT@490..495 "chars"
281 IDENT@490..495 "chars"278 COMMA@495..496 ","
282 COMMA@495..496 ","279 WHITESPACE@496..497 " "
283 WHITESPACE@496..497 " "280 ARG@497..509
284 ARG@497..509281 EXPR_INDEX_EXPR@497..509
285 EXPR_INDEX_EXPR@497..509282 LHS_EXPR@497..500
286 LHS_EXPR@497..500283 EXPR_VAR@497..500
287 EXPR_VAR@497..500284 NAME@497..500
288 NAME@497..500285 IDENT@497..500 "str"
289 IDENT@497..500 "str"286 L_BRACK@500..501 "["
290 L_BRACK@500..501 "["287 EXPR_BINARY@501..508
291 EXPR_BINARY@501..508288 LHS_EXPR@501..504
292 LHS_EXPR@501..504289 EXPR_VAR@501..504
293 EXPR_VAR@501..504290 NAME@501..504
294 NAME@501..504291 IDENT@501..504 "len"
295 IDENT@501..504 "len"292 WHITESPACE@504..505 " "
296 WHITESPACE@504..505 " "293 MINUS@505..506 "-"
297 MINUS@505..506 "-"294 WHITESPACE@506..507 " "
298 WHITESPACE@506..507 " "295 EXPR_NUMBER@507..508
299 EXPR_NUMBER@507..508296 FLOAT@507..508 "1"
300 FLOAT@507..508 "1"297 R_BRACK@508..509 "]"
301 R_BRACK@508..509 "]"298 R_PAREN@509..510 ")"
302 R_PAREN@509..510 ")"299 WHITESPACE@510..511 " "
303 WHITESPACE@510..511 " "300 THEN_KW@511..515 "then"
304 THEN_KW@511..515 "then"301 WHITESPACE@515..522 "\n "
305 WHITESPACE@515..522 "\n "302 TRUE_EXPR@522..559
306 TRUE_EXPR@522..559303 EXPR_APPLY@522..559
307 EXPR_APPLY@522..559304 EXPR_INDEX@522..537
308 EXPR_INDEX@522..537305 EXPR_VAR@522..525
309 EXPR_VAR@522..525306 NAME@522..525
310 NAME@522..525307 IDENT@522..525 "std"
311 IDENT@522..525 "std"308 DOT@525..526 "."
312 DOT@525..526 "."309 NAME@526..537
313 NAME@526..537310 IDENT@526..537 "rstripChars"
314 IDENT@526..537 "rstripChars"311 ARGS_DESC@537..559
315 ARGS_DESC@537..559312 L_PAREN@537..538 "("
316 L_PAREN@537..538 "("313 ARG@538..551
317 ARG@538..551314 EXPR_SLICE@538..551
318 EXPR_SLICE@538..551315 EXPR_VAR@538..541
319 EXPR_VAR@538..541316 NAME@538..541
320 NAME@538..541317 IDENT@538..541 "str"
321 IDENT@538..541 "str"318 SLICE_DESC@541..551
322 SLICE_DESC@541..551319 L_BRACK@541..542 "["
323 L_BRACK@541..542 "["320 COLON@542..543 ":"
324 COLON@542..543 ":"321 SLICE_DESC_END@543..550
325 SLICE_DESC_END@543..550322 EXPR_BINARY@543..550
326 EXPR_BINARY@543..550323 LHS_EXPR@543..546
327 LHS_EXPR@543..546324 EXPR_VAR@543..546
328 EXPR_VAR@543..546325 NAME@543..546
329 NAME@543..546326 IDENT@543..546 "len"
330 IDENT@543..546 "len"327 WHITESPACE@546..547 " "
331 WHITESPACE@546..547 " "328 MINUS@547..548 "-"
332 MINUS@547..548 "-"329 WHITESPACE@548..549 " "
333 WHITESPACE@548..549 " "330 EXPR_NUMBER@549..550
334 EXPR_NUMBER@549..550331 FLOAT@549..550 "1"
335 FLOAT@549..550 "1"332 R_BRACK@550..551 "]"
336 R_BRACK@550..551 "]"333 COMMA@551..552 ","
337 COMMA@551..552 ","334 WHITESPACE@552..553 " "
338 WHITESPACE@552..553 " "335 ARG@553..558
339 ARG@553..558336 EXPR_VAR@553..558
340 EXPR_VAR@553..558337 NAME@553..558
341 NAME@553..558338 IDENT@553..558 "chars"
342 IDENT@553..558 "chars"339 R_PAREN@558..559 ")"
343 R_PAREN@558..559 ")"340 WHITESPACE@559..564 "\n "
344 WHITESPACE@559..564 "\n "341 ELSE_KW@564..568 "else"
345 ELSE_KW@564..568 "else"342 WHITESPACE@568..575 "\n "
346 WHITESPACE@568..575 "\n "343 FALSE_EXPR@575..578
347 FALSE_EXPR@575..578344 EXPR_VAR@575..578
348 EXPR_VAR@575..578345 NAME@575..578
349 NAME@575..578346 IDENT@575..578 "str"
350 IDENT@575..578 "str"
351 COMMA@578..579 ","347 COMMA@578..579 ","
352 WHITESPACE@579..583 "\n\n "348 WHITESPACE@579..583 "\n\n "
353 MEMBER_FIELD@583..663349 MEMBER_FIELD_METHOD@583..663
354 FIELD_METHOD@583..663350 FIELD_NAME_FIXED@583..593
355 FIELD_NAME_FIXED@583..593351 NAME@583..593
356 NAME@583..593352 IDENT@583..593 "stripChars"
357 IDENT@583..593 "stripChars"353 PARAMS_DESC@593..605
358 PARAMS_DESC@593..605354 L_PAREN@593..594 "("
359 L_PAREN@593..594 "("355 PARAM@594..597
360 PARAM@594..597356 DESTRUCT_FULL@594..597
361 DESTRUCT_FULL@594..597357 NAME@594..597
362 NAME@594..597358 IDENT@594..597 "str"
363 IDENT@594..597 "str"359 COMMA@597..598 ","
364 COMMA@597..598 ","360 WHITESPACE@598..599 " "
365 WHITESPACE@598..599 " "361 PARAM@599..604
366 PARAM@599..604362 DESTRUCT_FULL@599..604
367 DESTRUCT_FULL@599..604363 NAME@599..604
368 NAME@599..604364 IDENT@599..604 "chars"
369 IDENT@599..604 "chars"365 R_PAREN@604..605 ")"
370 R_PAREN@604..605 ")"366 COLONCOLON@605..607 "::"
371 COLONCOLON@605..607 "::"367 WHITESPACE@607..612 "\n "
372 WHITESPACE@607..612 "\n "368 EXPR_APPLY@612..663
373 EXPR_APPLY@612..663369 EXPR_INDEX@612..627
374 EXPR_INDEX@612..627370 EXPR_VAR@612..615
375 EXPR_VAR@612..615371 NAME@612..615
376 NAME@612..615372 IDENT@612..615 "std"
377 IDENT@612..615 "std"373 DOT@615..616 "."
378 DOT@615..616 "."374 NAME@616..627
379 NAME@616..627375 IDENT@616..627 "lstripChars"
380 IDENT@616..627 "lstripChars"376 ARGS_DESC@627..663
381 ARGS_DESC@627..663377 L_PAREN@627..628 "("
382 L_PAREN@627..628 "("378 ARG@628..655
383 ARG@628..655379 EXPR_APPLY@628..655
384 EXPR_APPLY@628..655380 EXPR_INDEX@628..643
385 EXPR_INDEX@628..643381 EXPR_VAR@628..631
386 EXPR_VAR@628..631382 NAME@628..631
387 NAME@628..631383 IDENT@628..631 "std"
388 IDENT@628..631 "std"384 DOT@631..632 "."
389 DOT@631..632 "."385 NAME@632..643
390 NAME@632..643386 IDENT@632..643 "rstripChars"
391 IDENT@632..643 "rstripChars"387 ARGS_DESC@643..655
392 ARGS_DESC@643..655388 L_PAREN@643..644 "("
393 L_PAREN@643..644 "("389 ARG@644..647
394 ARG@644..647390 EXPR_VAR@644..647
395 EXPR_VAR@644..647391 NAME@644..647
396 NAME@644..647392 IDENT@644..647 "str"
397 IDENT@644..647 "str"393 COMMA@647..648 ","
398 COMMA@647..648 ","394 WHITESPACE@648..649 " "
399 WHITESPACE@648..649 " "395 ARG@649..654
400 ARG@649..654396 EXPR_VAR@649..654
401 EXPR_VAR@649..654397 NAME@649..654
402 NAME@649..654398 IDENT@649..654 "chars"
403 IDENT@649..654 "chars"399 R_PAREN@654..655 ")"
404 R_PAREN@654..655 ")"400 COMMA@655..656 ","
405 COMMA@655..656 ","401 WHITESPACE@656..657 " "
406 WHITESPACE@656..657 " "402 ARG@657..662
407 ARG@657..662403 EXPR_VAR@657..662
408 EXPR_VAR@657..662404 NAME@657..662
409 NAME@657..662405 IDENT@657..662 "chars"
410 IDENT@657..662 "chars"406 R_PAREN@662..663 ")"
411 R_PAREN@662..663 ")"
412 COMMA@663..664 ","407 COMMA@663..664 ","
413 WHITESPACE@664..668 "\n\n "408 WHITESPACE@664..668 "\n\n "
414 MEMBER_FIELD@668..741409 MEMBER_FIELD_METHOD@668..741
415 FIELD_METHOD@668..741410 FIELD_NAME_FIXED@668..679
416 FIELD_NAME_FIXED@668..679411 NAME@668..679
417 NAME@668..679412 IDENT@668..679 "stringChars"
418 IDENT@668..679 "stringChars"413 PARAMS_DESC@679..684
419 PARAMS_DESC@679..684414 L_PAREN@679..680 "("
420 L_PAREN@679..680 "("415 PARAM@680..683
421 PARAM@680..683416 DESTRUCT_FULL@680..683
422 DESTRUCT_FULL@680..683417 NAME@680..683
423 NAME@680..683418 IDENT@680..683 "str"
424 IDENT@680..683 "str"419 R_PAREN@683..684 ")"
425 R_PAREN@683..684 ")"420 COLONCOLON@684..686 "::"
426 COLONCOLON@684..686 "::"421 WHITESPACE@686..691 "\n "
427 WHITESPACE@686..691 "\n "422 EXPR_APPLY@691..741
428 EXPR_APPLY@691..741423 EXPR_INDEX@691..704
429 EXPR_INDEX@691..704424 EXPR_VAR@691..694
430 EXPR_VAR@691..694425 NAME@691..694
431 NAME@691..694426 IDENT@691..694 "std"
432 IDENT@691..694 "std"427 DOT@694..695 "."
433 DOT@694..695 "."428 NAME@695..704
434 NAME@695..704429 IDENT@695..704 "makeArray"
435 IDENT@695..704 "makeArray"430 ARGS_DESC@704..741
436 ARGS_DESC@704..741431 L_PAREN@704..705 "("
437 L_PAREN@704..705 "("432 ARG@705..720
438 ARG@705..720433 EXPR_APPLY@705..720
439 EXPR_APPLY@705..720434 EXPR_INDEX@705..715
440 EXPR_INDEX@705..715435 EXPR_VAR@705..708
441 EXPR_VAR@705..708436 NAME@705..708
442 NAME@705..708437 IDENT@705..708 "std"
443 IDENT@705..708 "std"438 DOT@708..709 "."
444 DOT@708..709 "."439 NAME@709..715
445 NAME@709..715440 IDENT@709..715 "length"
446 IDENT@709..715 "length"441 ARGS_DESC@715..720
447 ARGS_DESC@715..720442 L_PAREN@715..716 "("
448 L_PAREN@715..716 "("443 ARG@716..719
449 ARG@716..719444 EXPR_VAR@716..719
450 EXPR_VAR@716..719445 NAME@716..719
451 NAME@716..719446 IDENT@716..719 "str"
452 IDENT@716..719 "str"447 R_PAREN@719..720 ")"
453 R_PAREN@719..720 ")"448 COMMA@720..721 ","
454 COMMA@720..721 ","449 WHITESPACE@721..722 " "
455 WHITESPACE@721..722 " "450 ARG@722..740
456 ARG@722..740451 EXPR_FUNCTION@722..740
457 EXPR_FUNCTION@722..740452 FUNCTION_KW@722..730 "function"
458 FUNCTION_KW@722..730 "function"453 PARAMS_DESC@730..733
459 PARAMS_DESC@730..733454 L_PAREN@730..731 "("
460 L_PAREN@730..731 "("455 PARAM@731..732
461 PARAM@731..732456 DESTRUCT_FULL@731..732
462 DESTRUCT_FULL@731..732457 NAME@731..732
463 NAME@731..732458 IDENT@731..732 "i"
464 IDENT@731..732 "i"459 R_PAREN@732..733 ")"
465 R_PAREN@732..733 ")"460 WHITESPACE@733..734 " "
466 WHITESPACE@733..734 " "461 EXPR_INDEX_EXPR@734..740
467 EXPR_INDEX_EXPR@734..740462 LHS_EXPR@734..737
468 LHS_EXPR@734..737463 EXPR_VAR@734..737
469 EXPR_VAR@734..737464 NAME@734..737
470 NAME@734..737465 IDENT@734..737 "str"
471 IDENT@734..737 "str"466 L_BRACK@737..738 "["
472 L_BRACK@737..738 "["467 EXPR_VAR@738..739
473 EXPR_VAR@738..739468 NAME@738..739
474 NAME@738..739469 IDENT@738..739 "i"
475 IDENT@738..739 "i"470 R_BRACK@739..740 "]"
476 R_BRACK@739..740 "]"471 R_PAREN@740..741 ")"
477 R_PAREN@740..741 ")"
478 COMMA@741..742 ","472 COMMA@741..742 ","
479 WHITESPACE@742..746 "\n\n "473 WHITESPACE@742..746 "\n\n "
480 MEMBER_FIELD@746..1024474 MEMBER_FIELD_METHOD@746..1024
481 FIELD_METHOD@746..1024475 FIELD_NAME_FIXED@746..757
482 FIELD_NAME_FIXED@746..757476 NAME@746..757
483 NAME@746..757477 IDENT@746..757 "splitLimitR"
484 IDENT@746..757 "splitLimitR"478 PARAMS_DESC@757..776
485 PARAMS_DESC@757..776479 L_PAREN@757..758 "("
486 L_PAREN@757..758 "("480 PARAM@758..761
487 PARAM@758..761481 DESTRUCT_FULL@758..761
488 DESTRUCT_FULL@758..761482 NAME@758..761
489 NAME@758..761483 IDENT@758..761 "str"
490 IDENT@758..761 "str"484 COMMA@761..762 ","
491 COMMA@761..762 ","485 WHITESPACE@762..763 " "
492 WHITESPACE@762..763 " "486 PARAM@763..764
493 PARAM@763..764487 DESTRUCT_FULL@763..764
494 DESTRUCT_FULL@763..764488 NAME@763..764
495 NAME@763..764489 IDENT@763..764 "c"
496 IDENT@763..764 "c"490 COMMA@764..765 ","
497 COMMA@764..765 ","491 WHITESPACE@765..766 " "
498 WHITESPACE@765..766 " "492 PARAM@766..775
499 PARAM@766..775493 DESTRUCT_FULL@766..775
500 DESTRUCT_FULL@766..775494 NAME@766..775
501 NAME@766..775495 IDENT@766..775 "maxsplits"
502 IDENT@766..775 "maxsplits"496 R_PAREN@775..776 ")"
503 R_PAREN@775..776 ")"497 COLONCOLON@776..778 "::"
504 COLONCOLON@776..778 "::"498 WHITESPACE@778..783 "\n "
505 WHITESPACE@778..783 "\n "499 EXPR_IF_THEN_ELSE@783..1024
506 EXPR_IF_THEN_ELSE@783..1024500 IF_KW@783..785 "if"
507 IF_KW@783..785 "if"501 WHITESPACE@785..786 " "
508 WHITESPACE@785..786 " "502 EXPR_BINARY@786..801
509 EXPR_BINARY@786..801503 LHS_EXPR@786..795
510 LHS_EXPR@786..795504 EXPR_VAR@786..795
511 EXPR_VAR@786..795505 NAME@786..795
512 NAME@786..795506 IDENT@786..795 "maxsplits"
513 IDENT@786..795 "maxsplits"507 WHITESPACE@795..796 " "
514 WHITESPACE@795..796 " "508 EQ@796..798 "=="
515 EQ@796..798 "=="509 WHITESPACE@798..799 " "
516 WHITESPACE@798..799 " "510 EXPR_UNARY@799..801
517 EXPR_UNARY@799..801511 MINUS@799..800 "-"
518 MINUS@799..800 "-"512 EXPR_NUMBER@800..801
519 EXPR_NUMBER@800..801513 FLOAT@800..801 "1"
520 FLOAT@800..801 "1"514 WHITESPACE@801..802 " "
521 WHITESPACE@801..802 " "515 THEN_KW@802..806 "then"
522 THEN_KW@802..806 "then"516 WHITESPACE@806..813 "\n "
523 WHITESPACE@806..813 "\n "517 TRUE_EXPR@813..839
524 TRUE_EXPR@813..839518 EXPR_APPLY@813..839
525 EXPR_APPLY@813..839519 EXPR_INDEX@813..827
526 EXPR_INDEX@813..827520 EXPR_VAR@813..816
527 EXPR_VAR@813..816521 NAME@813..816
528 NAME@813..816522 IDENT@813..816 "std"
529 IDENT@813..816 "std"523 DOT@816..817 "."
530 DOT@816..817 "."524 NAME@817..827
531 NAME@817..827525 IDENT@817..827 "splitLimit"
532 IDENT@817..827 "splitLimit"526 ARGS_DESC@827..839
533 ARGS_DESC@827..839527 L_PAREN@827..828 "("
534 L_PAREN@827..828 "("528 ARG@828..831
535 ARG@828..831529 EXPR_VAR@828..831
536 EXPR_VAR@828..831530 NAME@828..831
537 NAME@828..831531 IDENT@828..831 "str"
538 IDENT@828..831 "str"532 COMMA@831..832 ","
539 COMMA@831..832 ","533 WHITESPACE@832..833 " "
540 WHITESPACE@832..833 " "534 ARG@833..834
541 ARG@833..834535 EXPR_VAR@833..834
542 EXPR_VAR@833..834536 NAME@833..834
543 NAME@833..834537 IDENT@833..834 "c"
544 IDENT@833..834 "c"538 COMMA@834..835 ","
545 COMMA@834..835 ","539 WHITESPACE@835..836 " "
546 WHITESPACE@835..836 " "540 ARG@836..838
547 ARG@836..838541 EXPR_UNARY@836..838
548 EXPR_UNARY@836..838542 MINUS@836..837 "-"
549 MINUS@836..837 "-"543 EXPR_NUMBER@837..838
550 EXPR_NUMBER@837..838544 FLOAT@837..838 "1"
551 FLOAT@837..838 "1"545 R_PAREN@838..839 ")"
552 R_PAREN@838..839 ")"546 WHITESPACE@839..844 "\n "
553 WHITESPACE@839..844 "\n "547 ELSE_KW@844..848 "else"
554 ELSE_KW@844..848 "else"548 WHITESPACE@848..855 "\n "
555 WHITESPACE@848..855 "\n "549 FALSE_EXPR@855..1024
556 FALSE_EXPR@855..1024550 EXPR_LOCAL@855..1024
557 EXPR_LOCAL@855..1024551 LOCAL_KW@855..860 "local"
558 LOCAL_KW@855..860 "local"552 WHITESPACE@860..861 " "
559 WHITESPACE@860..861 " "553 BIND_FUNCTION@861..922
560 BIND_FUNCTION@861..922554 NAME@861..867
561 NAME@861..867555 IDENT@861..867 "revStr"
562 IDENT@861..867 "revStr"556 PARAMS_DESC@867..872
563 PARAMS_DESC@867..872557 L_PAREN@867..868 "("
564 L_PAREN@867..868 "("558 PARAM@868..871
565 PARAM@868..871559 DESTRUCT_FULL@868..871
566 DESTRUCT_FULL@868..871560 NAME@868..871
567 NAME@868..871561 IDENT@868..871 "str"
568 IDENT@868..871 "str"562 R_PAREN@871..872 ")"
569 R_PAREN@871..872 ")"563 WHITESPACE@872..873 " "
570 WHITESPACE@872..873 " "564 ASSIGN@873..874 "="
571 ASSIGN@873..874 "="565 WHITESPACE@874..875 " "
572 WHITESPACE@874..875 " "566 EXPR_APPLY@875..922
573 EXPR_APPLY@875..922567 EXPR_INDEX@875..883
574 EXPR_INDEX@875..883568 EXPR_VAR@875..878
575 EXPR_VAR@875..878569 NAME@875..878
576 NAME@875..878570 IDENT@875..878 "std"
577 IDENT@875..878 "std"571 DOT@878..879 "."
578 DOT@878..879 "."572 NAME@879..883
579 NAME@879..883573 IDENT@879..883 "join"
580 IDENT@879..883 "join"574 ARGS_DESC@883..922
581 ARGS_DESC@883..922575 L_PAREN@883..884 "("
582 L_PAREN@883..884 "("576 ARG@884..886
583 ARG@884..886577 EXPR_STRING@884..886
584 EXPR_STRING@884..886578 STRING_SINGLE@884..886 "''"
585 STRING_SINGLE@884..886 "''"579 COMMA@886..887 ","
586 COMMA@886..887 ","580 WHITESPACE@887..888 " "
587 WHITESPACE@887..888 " "581 ARG@888..921
588 ARG@888..921582 EXPR_APPLY@888..921
589 EXPR_APPLY@888..921583 EXPR_INDEX@888..899
590 EXPR_INDEX@888..899584 EXPR_VAR@888..891
591 EXPR_VAR@888..891585 NAME@888..891
592 NAME@888..891586 IDENT@888..891 "std"
593 IDENT@888..891 "std"587 DOT@891..892 "."
594 DOT@891..892 "."588 NAME@892..899
595 NAME@892..899589 IDENT@892..899 "reverse"
596 IDENT@892..899 "reverse"590 ARGS_DESC@899..921
597 ARGS_DESC@899..921591 L_PAREN@899..900 "("
598 L_PAREN@899..900 "("592 ARG@900..920
599 ARG@900..920593 EXPR_APPLY@900..920
600 EXPR_APPLY@900..920594 EXPR_INDEX@900..915
601 EXPR_INDEX@900..915595 EXPR_VAR@900..903
602 EXPR_VAR@900..903596 NAME@900..903
603 NAME@900..903597 IDENT@900..903 "std"
604 IDENT@900..903 "std"598 DOT@903..904 "."
605 DOT@903..904 "."599 NAME@904..915
606 NAME@904..915600 IDENT@904..915 "stringChars"
607 IDENT@904..915 "stringChars"601 ARGS_DESC@915..920
608 ARGS_DESC@915..920602 L_PAREN@915..916 "("
609 L_PAREN@915..916 "("603 ARG@916..919
610 ARG@916..919604 EXPR_VAR@916..919
611 EXPR_VAR@916..919605 NAME@916..919
612 NAME@916..919606 IDENT@916..919 "str"
613 IDENT@916..919 "str"607 R_PAREN@919..920 ")"
614 R_PAREN@919..920 ")"608 R_PAREN@920..921 ")"
615 R_PAREN@920..921 ")"609 R_PAREN@921..922 ")"
616 R_PAREN@921..922 ")"610 SEMI@922..923 ";"
617 SEMI@922..923 ";"611 WHITESPACE@923..930 "\n "
618 WHITESPACE@923..930 "\n "612 EXPR_APPLY@930..1024
619 EXPR_APPLY@930..1024613 EXPR_INDEX@930..937
620 EXPR_INDEX@930..937614 EXPR_VAR@930..933
621 EXPR_VAR@930..933615 NAME@930..933
622 NAME@930..933616 IDENT@930..933 "std"
623 IDENT@930..933 "std"617 DOT@933..934 "."
624 DOT@933..934 "."618 NAME@934..937
625 NAME@934..937619 IDENT@934..937 "map"
626 IDENT@934..937 "map"620 ARGS_DESC@937..1024
627 ARGS_DESC@937..1024621 L_PAREN@937..938 "("
628 L_PAREN@937..938 "("622 ARG@938..959
629 ARG@938..959623 EXPR_FUNCTION@938..959
630 EXPR_FUNCTION@938..959624 FUNCTION_KW@938..946 "function"
631 FUNCTION_KW@938..946 "function"625 PARAMS_DESC@946..949
632 PARAMS_DESC@946..949626 L_PAREN@946..947 "("
633 L_PAREN@946..947 "("627 PARAM@947..948
634 PARAM@947..948628 DESTRUCT_FULL@947..948
635 DESTRUCT_FULL@947..948629 NAME@947..948
636 NAME@947..948630 IDENT@947..948 "e"
637 IDENT@947..948 "e"631 R_PAREN@948..949 ")"
638 R_PAREN@948..949 ")"632 WHITESPACE@949..950 " "
639 WHITESPACE@949..950 " "633 EXPR_APPLY@950..959
640 EXPR_APPLY@950..959634 EXPR_VAR@950..956
641 EXPR_VAR@950..956635 NAME@950..956
642 NAME@950..956636 IDENT@950..956 "revStr"
643 IDENT@950..956 "revStr"637 ARGS_DESC@956..959
644 ARGS_DESC@956..959638 L_PAREN@956..957 "("
645 L_PAREN@956..957 "("639 ARG@957..958
646 ARG@957..958640 EXPR_VAR@957..958
647 EXPR_VAR@957..958641 NAME@957..958
648 NAME@957..958642 IDENT@957..958 "e"
649 IDENT@957..958 "e"643 R_PAREN@958..959 ")"
650 R_PAREN@958..959 ")"644 COMMA@959..960 ","
651 COMMA@959..960 ","645 WHITESPACE@960..961 " "
652 WHITESPACE@960..961 " "646 ARG@961..1023
653 ARG@961..1023647 EXPR_APPLY@961..1023
654 EXPR_APPLY@961..1023648 EXPR_INDEX@961..972
655 EXPR_INDEX@961..972649 EXPR_VAR@961..964
656 EXPR_VAR@961..964650 NAME@961..964
657 NAME@961..964651 IDENT@961..964 "std"
658 IDENT@961..964 "std"652 DOT@964..965 "."
659 DOT@964..965 "."653 NAME@965..972
660 NAME@965..972654 IDENT@965..972 "reverse"
661 IDENT@965..972 "reverse"655 ARGS_DESC@972..1023
662 ARGS_DESC@972..1023656 L_PAREN@972..973 "("
663 L_PAREN@972..973 "("657 ARG@973..1022
664 ARG@973..1022658 EXPR_APPLY@973..1022
665 EXPR_APPLY@973..1022659 EXPR_INDEX@973..987
666 EXPR_INDEX@973..987660 EXPR_VAR@973..976
667 EXPR_VAR@973..976661 NAME@973..976
668 NAME@973..976662 IDENT@973..976 "std"
669 IDENT@973..976 "std"663 DOT@976..977 "."
670 DOT@976..977 "."664 NAME@977..987
671 NAME@977..987665 IDENT@977..987 "splitLimit"
672 IDENT@977..987 "splitLimit"666 ARGS_DESC@987..1022
673 ARGS_DESC@987..1022667 L_PAREN@987..988 "("
674 L_PAREN@987..988 "("668 ARG@988..999
675 ARG@988..999669 EXPR_APPLY@988..999
676 EXPR_APPLY@988..999670 EXPR_VAR@988..994
677 EXPR_VAR@988..994671 NAME@988..994
678 NAME@988..994672 IDENT@988..994 "revStr"
679 IDENT@988..994 "revStr"673 ARGS_DESC@994..999
680 ARGS_DESC@994..999674 L_PAREN@994..995 "("
681 L_PAREN@994..995 "("675 ARG@995..998
682 ARG@995..998676 EXPR_VAR@995..998
683 EXPR_VAR@995..998677 NAME@995..998
684 NAME@995..998678 IDENT@995..998 "str"
685 IDENT@995..998 "str"679 R_PAREN@998..999 ")"
686 R_PAREN@998..999 ")"680 COMMA@999..1000 ","
687 COMMA@999..1000 ","681 WHITESPACE@1000..1001 " "
688 WHITESPACE@1000..1001 " "682 ARG@1001..1010
689 ARG@1001..1010683 EXPR_APPLY@1001..1010
690 EXPR_APPLY@1001..1010684 EXPR_VAR@1001..1007
691 EXPR_VAR@1001..1007685 NAME@1001..1007
692 NAME@1001..1007686 IDENT@1001..1007 "revStr"
693 IDENT@1001..1007 "revStr"687 ARGS_DESC@1007..1010
694 ARGS_DESC@1007..1010688 L_PAREN@1007..1008 "("
695 L_PAREN@1007..1008 "("689 ARG@1008..1009
696 ARG@1008..1009690 EXPR_VAR@1008..1009
697 EXPR_VAR@1008..1009691 NAME@1008..1009
698 NAME@1008..1009692 IDENT@1008..1009 "c"
699 IDENT@1008..1009 "c"693 R_PAREN@1009..1010 ")"
700 R_PAREN@1009..1010 ")"694 COMMA@1010..1011 ","
701 COMMA@1010..1011 ","695 WHITESPACE@1011..1012 " "
702 WHITESPACE@1011..1012 " "696 ARG@1012..1021
703 ARG@1012..1021697 EXPR_VAR@1012..1021
704 EXPR_VAR@1012..1021698 NAME@1012..1021
705 NAME@1012..1021699 IDENT@1012..1021 "maxsplits"
706 IDENT@1012..1021 "maxsplits"700 R_PAREN@1021..1022 ")"
707 R_PAREN@1021..1022 ")"701 R_PAREN@1022..1023 ")"
708 R_PAREN@1022..1023 ")"702 R_PAREN@1023..1024 ")"
709 R_PAREN@1023..1024 ")"
710 COMMA@1024..1025 ","703 COMMA@1024..1025 ","
711 WHITESPACE@1025..1029 "\n\n "704 WHITESPACE@1025..1029 "\n\n "
712 MEMBER_FIELD@1029..1071705 MEMBER_FIELD_METHOD@1029..1071
713 FIELD_METHOD@1029..1071706 FIELD_NAME_FIXED@1029..1034
714 FIELD_NAME_FIXED@1029..1034707 NAME@1029..1034
715 NAME@1029..1034708 IDENT@1029..1034 "split"
716 IDENT@1029..1034 "split"709 PARAMS_DESC@1034..1042
717 PARAMS_DESC@1034..1042710 L_PAREN@1034..1035 "("
718 L_PAREN@1034..1035 "("711 PARAM@1035..1038
719 PARAM@1035..1038712 DESTRUCT_FULL@1035..1038
720 DESTRUCT_FULL@1035..1038713 NAME@1035..1038
721 NAME@1035..1038714 IDENT@1035..1038 "str"
722 IDENT@1035..1038 "str"715 COMMA@1038..1039 ","
723 COMMA@1038..1039 ","716 WHITESPACE@1039..1040 " "
724 WHITESPACE@1039..1040 " "717 PARAM@1040..1041
725 PARAM@1040..1041718 DESTRUCT_FULL@1040..1041
726 DESTRUCT_FULL@1040..1041719 NAME@1040..1041
727 NAME@1040..1041720 IDENT@1040..1041 "c"
728 IDENT@1040..1041 "c"721 R_PAREN@1041..1042 ")"
729 R_PAREN@1041..1042 ")"722 COLONCOLON@1042..1044 "::"
730 COLONCOLON@1042..1044 "::"723 WHITESPACE@1044..1045 " "
731 WHITESPACE@1044..1045 " "724 EXPR_APPLY@1045..1071
732 EXPR_APPLY@1045..1071725 EXPR_INDEX@1045..1059
733 EXPR_INDEX@1045..1059726 EXPR_VAR@1045..1048
734 EXPR_VAR@1045..1048727 NAME@1045..1048
735 NAME@1045..1048728 IDENT@1045..1048 "std"
736 IDENT@1045..1048 "std"729 DOT@1048..1049 "."
737 DOT@1048..1049 "."730 NAME@1049..1059
738 NAME@1049..1059731 IDENT@1049..1059 "splitLimit"
739 IDENT@1049..1059 "splitLimit"732 ARGS_DESC@1059..1071
740 ARGS_DESC@1059..1071733 L_PAREN@1059..1060 "("
741 L_PAREN@1059..1060 "("734 ARG@1060..1063
742 ARG@1060..1063735 EXPR_VAR@1060..1063
743 EXPR_VAR@1060..1063736 NAME@1060..1063
744 NAME@1060..1063737 IDENT@1060..1063 "str"
745 IDENT@1060..1063 "str"738 COMMA@1063..1064 ","
746 COMMA@1063..1064 ","739 WHITESPACE@1064..1065 " "
747 WHITESPACE@1064..1065 " "740 ARG@1065..1066
748 ARG@1065..1066741 EXPR_VAR@1065..1066
749 EXPR_VAR@1065..1066742 NAME@1065..1066
750 NAME@1065..1066743 IDENT@1065..1066 "c"
751 IDENT@1065..1066 "c"744 COMMA@1066..1067 ","
752 COMMA@1066..1067 ","745 WHITESPACE@1067..1068 " "
753 WHITESPACE@1067..1068 " "746 ARG@1068..1070
754 ARG@1068..1070747 EXPR_UNARY@1068..1070
755 EXPR_UNARY@1068..1070748 MINUS@1068..1069 "-"
756 MINUS@1068..1069 "-"749 EXPR_NUMBER@1069..1070
757 EXPR_NUMBER@1069..1070750 FLOAT@1069..1070 "1"
758 FLOAT@1069..1070 "1"751 R_PAREN@1070..1071 ")"
759 R_PAREN@1070..1071 ")"
760 COMMA@1071..1072 ","752 COMMA@1071..1072 ","
761 WHITESPACE@1072..1076 "\n\n "753 WHITESPACE@1072..1076 "\n\n "
762 MEMBER_FIELD@1076..1434754 MEMBER_FIELD_METHOD@1076..1434
763 FIELD_METHOD@1076..1434755 FIELD_NAME_FIXED@1076..1088
764 FIELD_NAME_FIXED@1076..1088756 NAME@1076..1088
765 NAME@1076..1088757 IDENT@1076..1088 "mapWithIndex"
766 IDENT@1076..1088 "mapWithIndex"758 PARAMS_DESC@1088..1099
767 PARAMS_DESC@1088..1099759 L_PAREN@1088..1089 "("
768 L_PAREN@1088..1089 "("760 PARAM@1089..1093
769 PARAM@1089..1093761 DESTRUCT_FULL@1089..1093
770 DESTRUCT_FULL@1089..1093762 NAME@1089..1093
771 NAME@1089..1093763 IDENT@1089..1093 "func"
772 IDENT@1089..1093 "func"764 COMMA@1093..1094 ","
773 COMMA@1093..1094 ","765 WHITESPACE@1094..1095 " "
774 WHITESPACE@1094..1095 " "766 PARAM@1095..1098
775 PARAM@1095..1098767 DESTRUCT_FULL@1095..1098
776 DESTRUCT_FULL@1095..1098768 NAME@1095..1098
777 NAME@1095..1098769 IDENT@1095..1098 "arr"
778 IDENT@1095..1098 "arr"770 R_PAREN@1098..1099 ")"
779 R_PAREN@1098..1099 ")"771 COLONCOLON@1099..1101 "::"
780 COLONCOLON@1099..1101 "::"772 WHITESPACE@1101..1106 "\n "
781 WHITESPACE@1101..1106 "\n "773 EXPR_IF_THEN_ELSE@1106..1434
782 EXPR_IF_THEN_ELSE@1106..1434774 IF_KW@1106..1108 "if"
783 IF_KW@1106..1108 "if"775 WHITESPACE@1108..1109 " "
784 WHITESPACE@1108..1109 " "776 EXPR_UNARY@1109..1130
785 EXPR_UNARY@1109..1130777 NOT@1109..1110 "!"
786 NOT@1109..1110 "!"778 EXPR_APPLY@1110..1130
787 EXPR_APPLY@1110..1130779 EXPR_INDEX@1110..1124
788 EXPR_INDEX@1110..1124780 EXPR_VAR@1110..1113
789 EXPR_VAR@1110..1113781 NAME@1110..1113
790 NAME@1110..1113782 IDENT@1110..1113 "std"
791 IDENT@1110..1113 "std"783 DOT@1113..1114 "."
792 DOT@1113..1114 "."784 NAME@1114..1124
793 NAME@1114..1124785 IDENT@1114..1124 "isFunction"
794 IDENT@1114..1124 "isFunction"786 ARGS_DESC@1124..1130
795 ARGS_DESC@1124..1130787 L_PAREN@1124..1125 "("
796 L_PAREN@1124..1125 "("788 ARG@1125..1129
797 ARG@1125..1129789 EXPR_VAR@1125..1129
798 EXPR_VAR@1125..1129790 NAME@1125..1129
799 NAME@1125..1129791 IDENT@1125..1129 "func"
800 IDENT@1125..1129 "func"792 R_PAREN@1129..1130 ")"
801 R_PAREN@1129..1130 ")"793 WHITESPACE@1130..1131 " "
802 WHITESPACE@1130..1131 " "794 THEN_KW@1131..1135 "then"
803 THEN_KW@1131..1135 "then"795 WHITESPACE@1135..1142 "\n "
804 WHITESPACE@1135..1142 "\n "796 TRUE_EXPR@1142..1220
805 TRUE_EXPR@1142..1220797 EXPR_ERROR@1142..1220
806 EXPR_ERROR@1142..1220798 ERROR_KW@1142..1147 "error"
807 ERROR_KW@1142..1147 "error"799 WHITESPACE@1147..1148 " "
808 WHITESPACE@1147..1148 " "800 EXPR_PARENED@1148..1220
809 EXPR_PARENED@1148..1220801 L_PAREN@1148..1149 "("
810 L_PAREN@1148..1149 "("802 EXPR_BINARY@1149..1219
811 EXPR_BINARY@1149..1219803 LHS_EXPR@1149..1202
812 LHS_EXPR@1149..1202804 EXPR_STRING@1149..1202
813 EXPR_STRING@1149..1202805 STRING_SINGLE@1149..1202 "'std.mapWithIndex fir ..."
814 STRING_SINGLE@1149..1202 "'std.mapWithIndex fir ..."806 WHITESPACE@1202..1203 " "
815 WHITESPACE@1202..1203 " "807 PLUS@1203..1204 "+"
816 PLUS@1203..1204 "+"808 WHITESPACE@1204..1205 " "
817 WHITESPACE@1204..1205 " "809 EXPR_APPLY@1205..1219
818 EXPR_APPLY@1205..1219810 EXPR_INDEX@1205..1213
819 EXPR_INDEX@1205..1213811 EXPR_VAR@1205..1208
820 EXPR_VAR@1205..1208812 NAME@1205..1208
821 NAME@1205..1208813 IDENT@1205..1208 "std"
822 IDENT@1205..1208 "std"814 DOT@1208..1209 "."
823 DOT@1208..1209 "."815 NAME@1209..1213
824 NAME@1209..1213816 IDENT@1209..1213 "type"
825 IDENT@1209..1213 "type"817 ARGS_DESC@1213..1219
826 ARGS_DESC@1213..1219818 L_PAREN@1213..1214 "("
827 L_PAREN@1213..1214 "("819 ARG@1214..1218
828 ARG@1214..1218820 EXPR_VAR@1214..1218
829 EXPR_VAR@1214..1218821 NAME@1214..1218
830 NAME@1214..1218822 IDENT@1214..1218 "func"
831 IDENT@1214..1218 "func"823 R_PAREN@1218..1219 ")"
832 R_PAREN@1218..1219 ")"824 R_PAREN@1219..1220 ")"
833 R_PAREN@1219..1220 ")"825 WHITESPACE@1220..1225 "\n "
834 WHITESPACE@1220..1225 "\n "826 ELSE_KW@1225..1229 "else"
835 ELSE_KW@1225..1229 "else"827 WHITESPACE@1229..1230 " "
836 WHITESPACE@1229..1230 " "828 FALSE_EXPR@1230..1434
837 FALSE_EXPR@1230..1434829 EXPR_IF_THEN_ELSE@1230..1434
838 EXPR_IF_THEN_ELSE@1230..1434830 IF_KW@1230..1232 "if"
839 IF_KW@1230..1232 "if"831 WHITESPACE@1232..1233 " "
840 WHITESPACE@1232..1233 " "832 EXPR_BINARY@1233..1272
841 EXPR_BINARY@1233..1272833 LHS_EXPR@1233..1250
842 LHS_EXPR@1233..1250834 EXPR_UNARY@1233..1250
843 EXPR_UNARY@1233..1250835 NOT@1233..1234 "!"
844 NOT@1233..1234 "!"836 EXPR_APPLY@1234..1250
845 EXPR_APPLY@1234..1250837 EXPR_INDEX@1234..1245
846 EXPR_INDEX@1234..1245838 EXPR_VAR@1234..1237
847 EXPR_VAR@1234..1237839 NAME@1234..1237
848 NAME@1234..1237840 IDENT@1234..1237 "std"
849 IDENT@1234..1237 "std"841 DOT@1237..1238 "."
850 DOT@1237..1238 "."842 NAME@1238..1245
851 NAME@1238..1245843 IDENT@1238..1245 "isArray"
852 IDENT@1238..1245 "isArray"844 ARGS_DESC@1245..1250
853 ARGS_DESC@1245..1250845 L_PAREN@1245..1246 "("
854 L_PAREN@1245..1246 "("846 ARG@1246..1249
855 ARG@1246..1249847 EXPR_VAR@1246..1249
856 EXPR_VAR@1246..1249848 NAME@1246..1249
857 NAME@1246..1249849 IDENT@1246..1249 "arr"
858 IDENT@1246..1249 "arr"850 R_PAREN@1249..1250 ")"
859 R_PAREN@1249..1250 ")"851 WHITESPACE@1250..1251 " "
860 WHITESPACE@1250..1251 " "852 AND@1251..1253 "&&"
861 AND@1251..1253 "&&"853 WHITESPACE@1253..1254 " "
862 WHITESPACE@1253..1254 " "854 EXPR_UNARY@1254..1272
863 EXPR_UNARY@1254..1272855 NOT@1254..1255 "!"
864 NOT@1254..1255 "!"856 EXPR_APPLY@1255..1272
865 EXPR_APPLY@1255..1272857 EXPR_INDEX@1255..1267
866 EXPR_INDEX@1255..1267858 EXPR_VAR@1255..1258
867 EXPR_VAR@1255..1258859 NAME@1255..1258
868 NAME@1255..1258860 IDENT@1255..1258 "std"
869 IDENT@1255..1258 "std"861 DOT@1258..1259 "."
870 DOT@1258..1259 "."862 NAME@1259..1267
871 NAME@1259..1267863 IDENT@1259..1267 "isString"
872 IDENT@1259..1267 "isString"864 ARGS_DESC@1267..1272
873 ARGS_DESC@1267..1272865 L_PAREN@1267..1268 "("
874 L_PAREN@1267..1268 "("866 ARG@1268..1271
875 ARG@1268..1271867 EXPR_VAR@1268..1271
876 EXPR_VAR@1268..1271868 NAME@1268..1271
877 NAME@1268..1271869 IDENT@1268..1271 "arr"
878 IDENT@1268..1271 "arr"870 R_PAREN@1271..1272 ")"
879 R_PAREN@1271..1272 ")"871 WHITESPACE@1272..1273 " "
880 WHITESPACE@1272..1273 " "872 THEN_KW@1273..1277 "then"
881 THEN_KW@1273..1277 "then"873 WHITESPACE@1277..1284 "\n "
882 WHITESPACE@1277..1284 "\n "874 TRUE_EXPR@1284..1359
883 TRUE_EXPR@1284..1359875 EXPR_ERROR@1284..1359
884 EXPR_ERROR@1284..1359876 ERROR_KW@1284..1289 "error"
885 ERROR_KW@1284..1289 "error"877 WHITESPACE@1289..1290 " "
886 WHITESPACE@1289..1290 " "878 EXPR_PARENED@1290..1359
887 EXPR_PARENED@1290..1359879 L_PAREN@1290..1291 "("
888 L_PAREN@1290..1291 "("880 EXPR_BINARY@1291..1358
889 EXPR_BINARY@1291..1358881 LHS_EXPR@1291..1342
890 LHS_EXPR@1291..1342882 EXPR_STRING@1291..1342
891 EXPR_STRING@1291..1342883 STRING_SINGLE@1291..1342 "'std.mapWithIndex sec ..."
892 STRING_SINGLE@1291..1342 "'std.mapWithIndex sec ..."884 WHITESPACE@1342..1343 " "
893 WHITESPACE@1342..1343 " "885 PLUS@1343..1344 "+"
894 PLUS@1343..1344 "+"886 WHITESPACE@1344..1345 " "
895 WHITESPACE@1344..1345 " "887 EXPR_APPLY@1345..1358
896 EXPR_APPLY@1345..1358888 EXPR_INDEX@1345..1353
897 EXPR_INDEX@1345..1353889 EXPR_VAR@1345..1348
898 EXPR_VAR@1345..1348890 NAME@1345..1348
899 NAME@1345..1348891 IDENT@1345..1348 "std"
900 IDENT@1345..1348 "std"892 DOT@1348..1349 "."
901 DOT@1348..1349 "."893 NAME@1349..1353
902 NAME@1349..1353894 IDENT@1349..1353 "type"
903 IDENT@1349..1353 "type"895 ARGS_DESC@1353..1358
904 ARGS_DESC@1353..1358896 L_PAREN@1353..1354 "("
905 L_PAREN@1353..1354 "("897 ARG@1354..1357
906 ARG@1354..1357898 EXPR_VAR@1354..1357
907 EXPR_VAR@1354..1357899 NAME@1354..1357
908 NAME@1354..1357900 IDENT@1354..1357 "arr"
909 IDENT@1354..1357 "arr"901 R_PAREN@1357..1358 ")"
910 R_PAREN@1357..1358 ")"902 R_PAREN@1358..1359 ")"
911 R_PAREN@1358..1359 ")"903 WHITESPACE@1359..1364 "\n "
912 WHITESPACE@1359..1364 "\n "904 ELSE_KW@1364..1368 "else"
913 ELSE_KW@1364..1368 "else"905 WHITESPACE@1368..1375 "\n "
914 WHITESPACE@1368..1375 "\n "906 FALSE_EXPR@1375..1434
915 FALSE_EXPR@1375..1434907 EXPR_APPLY@1375..1434
916 EXPR_APPLY@1375..1434908 EXPR_INDEX@1375..1388
917 EXPR_INDEX@1375..1388909 EXPR_VAR@1375..1378
918 EXPR_VAR@1375..1378910 NAME@1375..1378
919 NAME@1375..1378911 IDENT@1375..1378 "std"
920 IDENT@1375..1378 "std"912 DOT@1378..1379 "."
921 DOT@1378..1379 "."913 NAME@1379..1388
922 NAME@1379..1388914 IDENT@1379..1388 "makeArray"
923 IDENT@1379..1388 "makeArray"915 ARGS_DESC@1388..1434
924 ARGS_DESC@1388..1434916 L_PAREN@1388..1389 "("
925 L_PAREN@1388..1389 "("917 ARG@1389..1404
926 ARG@1389..1404918 EXPR_APPLY@1389..1404
927 EXPR_APPLY@1389..1404919 EXPR_INDEX@1389..1399
928 EXPR_INDEX@1389..1399920 EXPR_VAR@1389..1392
929 EXPR_VAR@1389..1392921 NAME@1389..1392
930 NAME@1389..1392922 IDENT@1389..1392 "std"
931 IDENT@1389..1392 "std"923 DOT@1392..1393 "."
932 DOT@1392..1393 "."924 NAME@1393..1399
933 NAME@1393..1399925 IDENT@1393..1399 "length"
934 IDENT@1393..1399 "length"926 ARGS_DESC@1399..1404
935 ARGS_DESC@1399..1404927 L_PAREN@1399..1400 "("
936 L_PAREN@1399..1400 "("928 ARG@1400..1403
937 ARG@1400..1403929 EXPR_VAR@1400..1403
938 EXPR_VAR@1400..1403930 NAME@1400..1403
939 NAME@1400..1403931 IDENT@1400..1403 "arr"
940 IDENT@1400..1403 "arr"932 R_PAREN@1403..1404 ")"
941 R_PAREN@1403..1404 ")"933 COMMA@1404..1405 ","
942 COMMA@1404..1405 ","934 WHITESPACE@1405..1406 " "
943 WHITESPACE@1405..1406 " "935 ARG@1406..1433
944 ARG@1406..1433936 EXPR_FUNCTION@1406..1433
945 EXPR_FUNCTION@1406..1433937 FUNCTION_KW@1406..1414 "function"
946 FUNCTION_KW@1406..1414 "function"938 PARAMS_DESC@1414..1417
947 PARAMS_DESC@1414..1417939 L_PAREN@1414..1415 "("
948 L_PAREN@1414..1415 "("940 PARAM@1415..1416
949 PARAM@1415..1416941 DESTRUCT_FULL@1415..1416
950 DESTRUCT_FULL@1415..1416942 NAME@1415..1416
951 NAME@1415..1416943 IDENT@1415..1416 "i"
952 IDENT@1415..1416 "i"944 R_PAREN@1416..1417 ")"
953 R_PAREN@1416..1417 ")"945 WHITESPACE@1417..1418 " "
954 WHITESPACE@1417..1418 " "946 EXPR_APPLY@1418..1433
955 EXPR_APPLY@1418..1433947 EXPR_VAR@1418..1422
956 EXPR_VAR@1418..1422948 NAME@1418..1422
957 NAME@1418..1422949 IDENT@1418..1422 "func"
958 IDENT@1418..1422 "func"950 ARGS_DESC@1422..1433
959 ARGS_DESC@1422..1433951 L_PAREN@1422..1423 "("
960 L_PAREN@1422..1423 "("952 ARG@1423..1424
961 ARG@1423..1424953 EXPR_VAR@1423..1424
962 EXPR_VAR@1423..1424954 NAME@1423..1424
963 NAME@1423..1424955 IDENT@1423..1424 "i"
964 IDENT@1423..1424 "i"956 COMMA@1424..1425 ","
965 COMMA@1424..1425 ","957 WHITESPACE@1425..1426 " "
966 WHITESPACE@1425..1426 " "958 ARG@1426..1432
967 ARG@1426..1432959 EXPR_INDEX_EXPR@1426..1432
968 EXPR_INDEX_EXPR@1426..1432960 LHS_EXPR@1426..1429
969 LHS_EXPR@1426..1429961 EXPR_VAR@1426..1429
970 EXPR_VAR@1426..1429962 NAME@1426..1429
971 NAME@1426..1429963 IDENT@1426..1429 "arr"
972 IDENT@1426..1429 "arr"964 L_BRACK@1429..1430 "["
973 L_BRACK@1429..1430 "["965 EXPR_VAR@1430..1431
974 EXPR_VAR@1430..1431966 NAME@1430..1431
975 NAME@1430..1431967 IDENT@1430..1431 "i"
976 IDENT@1430..1431 "i"968 R_BRACK@1431..1432 "]"
977 R_BRACK@1431..1432 "]"969 R_PAREN@1432..1433 ")"
978 R_PAREN@1432..1433 ")"970 R_PAREN@1433..1434 ")"
979 R_PAREN@1433..1434 ")"
980 COMMA@1434..1435 ","971 COMMA@1434..1435 ","
981 WHITESPACE@1435..1439 "\n\n "972 WHITESPACE@1435..1439 "\n\n "
982 MEMBER_FIELD@1439..1767973 MEMBER_FIELD_METHOD@1439..1767
983 FIELD_METHOD@1439..1767974 FIELD_NAME_FIXED@1439..1449
984 FIELD_NAME_FIXED@1439..1449975 NAME@1439..1449
985 NAME@1439..1449976 IDENT@1439..1449 "mapWithKey"
986 IDENT@1439..1449 "mapWithKey"977 PARAMS_DESC@1449..1460
987 PARAMS_DESC@1449..1460978 L_PAREN@1449..1450 "("
988 L_PAREN@1449..1450 "("979 PARAM@1450..1454
989 PARAM@1450..1454980 DESTRUCT_FULL@1450..1454
990 DESTRUCT_FULL@1450..1454981 NAME@1450..1454
991 NAME@1450..1454982 IDENT@1450..1454 "func"
992 IDENT@1450..1454 "func"983 COMMA@1454..1455 ","
993 COMMA@1454..1455 ","984 WHITESPACE@1455..1456 " "
994 WHITESPACE@1455..1456 " "985 PARAM@1456..1459
995 PARAM@1456..1459986 DESTRUCT_FULL@1456..1459
996 DESTRUCT_FULL@1456..1459987 NAME@1456..1459
997 NAME@1456..1459988 IDENT@1456..1459 "obj"
998 IDENT@1456..1459 "obj"989 R_PAREN@1459..1460 ")"
999 R_PAREN@1459..1460 ")"990 COLONCOLON@1460..1462 "::"
1000 COLONCOLON@1460..1462 "::"991 WHITESPACE@1462..1467 "\n "
1001 WHITESPACE@1462..1467 "\n "992 EXPR_IF_THEN_ELSE@1467..1767
1002 EXPR_IF_THEN_ELSE@1467..1767993 IF_KW@1467..1469 "if"
1003 IF_KW@1467..1469 "if"994 WHITESPACE@1469..1470 " "
1004 WHITESPACE@1469..1470 " "995 EXPR_UNARY@1470..1491
1005 EXPR_UNARY@1470..1491996 NOT@1470..1471 "!"
1006 NOT@1470..1471 "!"997 EXPR_APPLY@1471..1491
1007 EXPR_APPLY@1471..1491998 EXPR_INDEX@1471..1485
1008 EXPR_INDEX@1471..1485999 EXPR_VAR@1471..1474
1009 EXPR_VAR@1471..14741000 NAME@1471..1474
1010 NAME@1471..14741001 IDENT@1471..1474 "std"
1011 IDENT@1471..1474 "std"1002 DOT@1474..1475 "."
1012 DOT@1474..1475 "."1003 NAME@1475..1485
1013 NAME@1475..14851004 IDENT@1475..1485 "isFunction"
1014 IDENT@1475..1485 "isFunction"1005 ARGS_DESC@1485..1491
1015 ARGS_DESC@1485..14911006 L_PAREN@1485..1486 "("
1016 L_PAREN@1485..1486 "("1007 ARG@1486..1490
1017 ARG@1486..14901008 EXPR_VAR@1486..1490
1018 EXPR_VAR@1486..14901009 NAME@1486..1490
1019 NAME@1486..14901010 IDENT@1486..1490 "func"
1020 IDENT@1486..1490 "func"1011 R_PAREN@1490..1491 ")"
1021 R_PAREN@1490..1491 ")"1012 WHITESPACE@1491..1492 " "
1022 WHITESPACE@1491..1492 " "1013 THEN_KW@1492..1496 "then"
1023 THEN_KW@1492..1496 "then"1014 WHITESPACE@1496..1503 "\n "
1024 WHITESPACE@1496..1503 "\n "1015 TRUE_EXPR@1503..1579
1025 TRUE_EXPR@1503..15791016 EXPR_ERROR@1503..1579
1026 EXPR_ERROR@1503..15791017 ERROR_KW@1503..1508 "error"
1027 ERROR_KW@1503..1508 "error"1018 WHITESPACE@1508..1509 " "
1028 WHITESPACE@1508..1509 " "1019 EXPR_PARENED@1509..1579
1029 EXPR_PARENED@1509..15791020 L_PAREN@1509..1510 "("
1030 L_PAREN@1509..1510 "("1021 EXPR_BINARY@1510..1578
1031 EXPR_BINARY@1510..15781022 LHS_EXPR@1510..1561
1032 LHS_EXPR@1510..15611023 EXPR_STRING@1510..1561
1033 EXPR_STRING@1510..15611024 STRING_SINGLE@1510..1561 "'std.mapWithKey first ..."
1034 STRING_SINGLE@1510..1561 "'std.mapWithKey first ..."1025 WHITESPACE@1561..1562 " "
1035 WHITESPACE@1561..1562 " "1026 PLUS@1562..1563 "+"
1036 PLUS@1562..1563 "+"1027 WHITESPACE@1563..1564 " "
1037 WHITESPACE@1563..1564 " "1028 EXPR_APPLY@1564..1578
1038 EXPR_APPLY@1564..15781029 EXPR_INDEX@1564..1572
1039 EXPR_INDEX@1564..15721030 EXPR_VAR@1564..1567
1040 EXPR_VAR@1564..15671031 NAME@1564..1567
1041 NAME@1564..15671032 IDENT@1564..1567 "std"
1042 IDENT@1564..1567 "std"1033 DOT@1567..1568 "."
1043 DOT@1567..1568 "."1034 NAME@1568..1572
1044 NAME@1568..15721035 IDENT@1568..1572 "type"
1045 IDENT@1568..1572 "type"1036 ARGS_DESC@1572..1578
1046 ARGS_DESC@1572..15781037 L_PAREN@1572..1573 "("
1047 L_PAREN@1572..1573 "("1038 ARG@1573..1577
1048 ARG@1573..15771039 EXPR_VAR@1573..1577
1049 EXPR_VAR@1573..15771040 NAME@1573..1577
1050 NAME@1573..15771041 IDENT@1573..1577 "func"
1051 IDENT@1573..1577 "func"1042 R_PAREN@1577..1578 ")"
1052 R_PAREN@1577..1578 ")"1043 R_PAREN@1578..1579 ")"
1053 R_PAREN@1578..1579 ")"1044 WHITESPACE@1579..1584 "\n "
1054 WHITESPACE@1579..1584 "\n "1045 ELSE_KW@1584..1588 "else"
1055 ELSE_KW@1584..1588 "else"1046 WHITESPACE@1588..1589 " "
1056 WHITESPACE@1588..1589 " "1047 FALSE_EXPR@1589..1767
1057 FALSE_EXPR@1589..17671048 EXPR_IF_THEN_ELSE@1589..1767
1058 EXPR_IF_THEN_ELSE@1589..17671049 IF_KW@1589..1591 "if"
1059 IF_KW@1589..1591 "if"1050 WHITESPACE@1591..1592 " "
1060 WHITESPACE@1591..1592 " "1051 EXPR_UNARY@1592..1610
1061 EXPR_UNARY@1592..16101052 NOT@1592..1593 "!"
1062 NOT@1592..1593 "!"1053 EXPR_APPLY@1593..1610
1063 EXPR_APPLY@1593..16101054 EXPR_INDEX@1593..1605
1064 EXPR_INDEX@1593..16051055 EXPR_VAR@1593..1596
1065 EXPR_VAR@1593..15961056 NAME@1593..1596
1066 NAME@1593..15961057 IDENT@1593..1596 "std"
1067 IDENT@1593..1596 "std"1058 DOT@1596..1597 "."
1068 DOT@1596..1597 "."1059 NAME@1597..1605
1069 NAME@1597..16051060 IDENT@1597..1605 "isObject"
1070 IDENT@1597..1605 "isObject"1061 ARGS_DESC@1605..1610
1071 ARGS_DESC@1605..16101062 L_PAREN@1605..1606 "("
1072 L_PAREN@1605..1606 "("1063 ARG@1606..1609
1073 ARG@1606..16091064 EXPR_VAR@1606..1609
1074 EXPR_VAR@1606..16091065 NAME@1606..1609
1075 NAME@1606..16091066 IDENT@1606..1609 "obj"
1076 IDENT@1606..1609 "obj"1067 R_PAREN@1609..1610 ")"
1077 R_PAREN@1609..1610 ")"1068 WHITESPACE@1610..1611 " "
1078 WHITESPACE@1610..1611 " "1069 THEN_KW@1611..1615 "then"
1079 THEN_KW@1611..1615 "then"1070 WHITESPACE@1615..1622 "\n "
1080 WHITESPACE@1615..1622 "\n "1071 TRUE_EXPR@1622..1696
1081 TRUE_EXPR@1622..16961072 EXPR_ERROR@1622..1696
1082 EXPR_ERROR@1622..16961073 ERROR_KW@1622..1627 "error"
1083 ERROR_KW@1622..1627 "error"1074 WHITESPACE@1627..1628 " "
1084 WHITESPACE@1627..1628 " "1075 EXPR_PARENED@1628..1696
1085 EXPR_PARENED@1628..16961076 L_PAREN@1628..1629 "("
1086 L_PAREN@1628..1629 "("1077 EXPR_BINARY@1629..1695
1087 EXPR_BINARY@1629..16951078 LHS_EXPR@1629..1679
1088 LHS_EXPR@1629..16791079 EXPR_STRING@1629..1679
1089 EXPR_STRING@1629..16791080 STRING_SINGLE@1629..1679 "'std.mapWithKey secon ..."
1090 STRING_SINGLE@1629..1679 "'std.mapWithKey secon ..."1081 WHITESPACE@1679..1680 " "
1091 WHITESPACE@1679..1680 " "1082 PLUS@1680..1681 "+"
1092 PLUS@1680..1681 "+"1083 WHITESPACE@1681..1682 " "
1093 WHITESPACE@1681..1682 " "1084 EXPR_APPLY@1682..1695
1094 EXPR_APPLY@1682..16951085 EXPR_INDEX@1682..1690
1095 EXPR_INDEX@1682..16901086 EXPR_VAR@1682..1685
1096 EXPR_VAR@1682..16851087 NAME@1682..1685
1097 NAME@1682..16851088 IDENT@1682..1685 "std"
1098 IDENT@1682..1685 "std"1089 DOT@1685..1686 "."
1099 DOT@1685..1686 "."1090 NAME@1686..1690
1100 NAME@1686..16901091 IDENT@1686..1690 "type"
1101 IDENT@1686..1690 "type"1092 ARGS_DESC@1690..1695
1102 ARGS_DESC@1690..16951093 L_PAREN@1690..1691 "("
1103 L_PAREN@1690..1691 "("1094 ARG@1691..1694
1104 ARG@1691..16941095 EXPR_VAR@1691..1694
1105 EXPR_VAR@1691..16941096 NAME@1691..1694
1106 NAME@1691..16941097 IDENT@1691..1694 "obj"
1107 IDENT@1691..1694 "obj"1098 R_PAREN@1694..1695 ")"
1108 R_PAREN@1694..1695 ")"1099 R_PAREN@1695..1696 ")"
1109 R_PAREN@1695..1696 ")"1100 WHITESPACE@1696..1701 "\n "
1110 WHITESPACE@1696..1701 "\n "1101 ELSE_KW@1701..1705 "else"
1111 ELSE_KW@1701..1705 "else"1102 WHITESPACE@1705..1712 "\n "
1112 WHITESPACE@1705..1712 "\n "1103 FALSE_EXPR@1712..1767
1113 FALSE_EXPR@1712..17671104 EXPR_OBJECT@1712..1767
1114 EXPR_OBJECT@1712..17671105 OBJ_BODY_COMP@1712..1767
1115 OBJ_BODY_MEMBER_LIST@1712..17671106 L_BRACE@1712..1713 "{"
1116 L_BRACE@1712..1713 "{"1107 WHITESPACE@1713..1714 " "
1117 WHITESPACE@1713..1714 " "1108 MEMBER_FIELD_NORMAL@1714..1734
1118 MEMBER_FIELD@1714..17651109 FIELD_NAME_DYNAMIC@1714..1717
1119 FIELD_NORMAL@1714..17341110 L_BRACK@1714..1715 "["
1120 FIELD_NAME_DYNAMIC@1714..17171111 EXPR_VAR@1715..1716
1121 L_BRACK@1714..1715 "["1112 NAME@1715..1716
1122 EXPR_VAR@1715..17161113 IDENT@1715..1716 "k"
1123 NAME@1715..17161114 R_BRACK@1716..1717 "]"
1124 IDENT@1715..1716 "k"1115 COLON@1717..1718 ":"
1125 R_BRACK@1716..1717 "]"1116 WHITESPACE@1718..1719 " "
1126 COLON@1717..1718 ":"1117 EXPR_APPLY@1719..1734
1127 WHITESPACE@1718..1719 " "1118 EXPR_VAR@1719..1723
1128 EXPR_APPLY@1719..17341119 NAME@1719..1723
1129 EXPR_VAR@1719..17231120 IDENT@1719..1723 "func"
1130 NAME@1719..17231121 ARGS_DESC@1723..1734
1131 IDENT@1719..1723 "func"1122 L_PAREN@1723..1724 "("
1132 ARGS_DESC@1723..17341123 ARG@1724..1725
1133 L_PAREN@1723..1724 "("1124 EXPR_VAR@1724..1725
1134 ARG@1724..17251125 NAME@1724..1725
1135 EXPR_VAR@1724..17251126 IDENT@1724..1725 "k"
1136 NAME@1724..17251127 COMMA@1725..1726 ","
1137 IDENT@1724..1725 "k"1128 WHITESPACE@1726..1727 " "
1138 COMMA@1725..1726 ","1129 ARG@1727..1733
1139 WHITESPACE@1726..1727 " "1130 EXPR_INDEX_EXPR@1727..1733
1140 ARG@1727..17331131 LHS_EXPR@1727..1730
1141 EXPR_INDEX_EXPR@1727..17331132 EXPR_VAR@1727..1730
1142 LHS_EXPR@1727..17301133 NAME@1727..1730
1143 EXPR_VAR@1727..17301134 IDENT@1727..1730 "obj"
1144 NAME@1727..17301135 L_BRACK@1730..1731 "["
1145 IDENT@1727..1730 "obj"1136 EXPR_VAR@1731..1732
1146 L_BRACK@1730..1731 "["1137 NAME@1731..1732
1147 EXPR_VAR@1731..17321138 IDENT@1731..1732 "k"
1148 NAME@1731..17321139 R_BRACK@1732..1733 "]"
1149 IDENT@1731..1732 "k"1140 R_PAREN@1733..1734 ")"
1150 R_BRACK@1732..1733 "]"1141 WHITESPACE@1734..1735 " "
1151 R_PAREN@1733..1734 ")"1142 FOR_SPEC@1735..1765
1152 WHITESPACE@1734..1735 " "1143 FOR_KW@1735..1738 "for"
1153 FOR_SPEC@1735..17651144 WHITESPACE@1738..1739 " "
1154 FOR_KW@1735..1738 "for"1145 NAME@1739..1740
1155 WHITESPACE@1738..1739 " "1146 IDENT@1739..1740 "k"
1156 NAME@1739..17401147 WHITESPACE@1740..1741 " "
1157 IDENT@1739..1740 "k"1148 IN_KW@1741..1743 "in"
1158 WHITESPACE@1740..1741 " "1149 WHITESPACE@1743..1744 " "
1159 IN_KW@1741..1743 "in"1150 EXPR_APPLY@1744..1765
1160 WHITESPACE@1743..1744 " "1151 EXPR_INDEX@1744..1760
1161 EXPR_APPLY@1744..17651152 EXPR_VAR@1744..1747
1162 EXPR_INDEX@1744..17601153 NAME@1744..1747
1163 EXPR_VAR@1744..17471154 IDENT@1744..1747 "std"
1164 NAME@1744..17471155 DOT@1747..1748 "."
1165 IDENT@1744..1747 "std"1156 NAME@1748..1760
1166 DOT@1747..1748 "."1157 IDENT@1748..1760 "objectFields"
1167 NAME@1748..17601158 ARGS_DESC@1760..1765
1168 IDENT@1748..1760 "objectFields"1159 L_PAREN@1760..1761 "("
1169 ARGS_DESC@1760..17651160 ARG@1761..1764
1170 L_PAREN@1760..1761 "("1161 EXPR_VAR@1761..1764
1171 ARG@1761..17641162 NAME@1761..1764
1172 EXPR_VAR@1761..17641163 IDENT@1761..1764 "obj"
1173 NAME@1761..17641164 R_PAREN@1764..1765 ")"
1174 IDENT@1761..1764 "obj"1165 WHITESPACE@1765..1766 " "
1175 R_PAREN@1764..1765 ")"1166 R_BRACE@1766..1767 "}"
1176 WHITESPACE@1765..1766 " "
1177 R_BRACE@1766..1767 "}"
1178 COMMA@1767..1768 ","1167 COMMA@1767..1768 ","
1179 WHITESPACE@1768..1772 "\n\n "1168 WHITESPACE@1768..1772 "\n\n "
1180 MEMBER_FIELD@1772..18151169 MEMBER_FIELD_METHOD@1772..1815
1181 FIELD_METHOD@1772..18151170 FIELD_NAME_FIXED@1772..1777
1182 FIELD_NAME_FIXED@1772..17771171 NAME@1772..1777
1183 NAME@1772..17771172 IDENT@1772..1777 "lines"
1184 IDENT@1772..1777 "lines"1173 PARAMS_DESC@1777..1782
1185 PARAMS_DESC@1777..17821174 L_PAREN@1777..1778 "("
1186 L_PAREN@1777..1778 "("1175 PARAM@1778..1781
1187 PARAM@1778..17811176 DESTRUCT_FULL@1778..1781
1188 DESTRUCT_FULL@1778..17811177 NAME@1778..1781
1189 NAME@1778..17811178 IDENT@1778..1781 "arr"
1190 IDENT@1778..1781 "arr"1179 R_PAREN@1781..1782 ")"
1191 R_PAREN@1781..1782 ")"1180 COLONCOLON@1782..1784 "::"
1192 COLONCOLON@1782..1784 "::"1181 WHITESPACE@1784..1789 "\n "
1193 WHITESPACE@1784..1789 "\n "1182 EXPR_APPLY@1789..1815
1194 EXPR_APPLY@1789..18151183 EXPR_INDEX@1789..1797
1195 EXPR_INDEX@1789..17971184 EXPR_VAR@1789..1792
1196 EXPR_VAR@1789..17921185 NAME@1789..1792
1197 NAME@1789..17921186 IDENT@1789..1792 "std"
1198 IDENT@1789..1792 "std"1187 DOT@1792..1793 "."
1199 DOT@1792..1793 "."1188 NAME@1793..1797
1200 NAME@1793..17971189 IDENT@1793..1797 "join"
1201 IDENT@1793..1797 "join"1190 ARGS_DESC@1797..1815
1202 ARGS_DESC@1797..18151191 L_PAREN@1797..1798 "("
1203 L_PAREN@1797..1798 "("1192 ARG@1798..1802
1204 ARG@1798..18021193 EXPR_STRING@1798..1802
1205 EXPR_STRING@1798..18021194 STRING_SINGLE@1798..1802 "'\\n'"
1206 STRING_SINGLE@1798..1802 "'\\n'"1195 COMMA@1802..1803 ","
1207 COMMA@1802..1803 ","1196 WHITESPACE@1803..1804 " "
1208 WHITESPACE@1803..1804 " "1197 ARG@1804..1814
1209 ARG@1804..18141198 EXPR_BINARY@1804..1814
1210 EXPR_BINARY@1804..18141199 LHS_EXPR@1804..1807
1211 LHS_EXPR@1804..18071200 EXPR_VAR@1804..1807
1212 EXPR_VAR@1804..18071201 NAME@1804..1807
1213 NAME@1804..18071202 IDENT@1804..1807 "arr"
1214 IDENT@1804..1807 "arr"1203 WHITESPACE@1807..1808 " "
1215 WHITESPACE@1807..1808 " "1204 PLUS@1808..1809 "+"
1216 PLUS@1808..1809 "+"1205 WHITESPACE@1809..1810 " "
1217 WHITESPACE@1809..1810 " "1206 EXPR_ARRAY@1810..1814
1218 EXPR_ARRAY@1810..18141207 L_BRACK@1810..1811 "["
1219 L_BRACK@1810..1811 "["1208 EXPR_STRING@1811..1813
1220 EXPR_STRING@1811..18131209 STRING_SINGLE@1811..1813 "''"
1221 STRING_SINGLE@1811..1813 "''"1210 R_BRACK@1813..1814 "]"
1222 R_BRACK@1813..1814 "]"1211 R_PAREN@1814..1815 ")"
1223 R_PAREN@1814..1815 ")"
1224 COMMA@1815..1816 ","1212 COMMA@1815..1816 ","
1225 WHITESPACE@1816..1820 "\n\n "1213 WHITESPACE@1816..1820 "\n\n "
1226 MEMBER_FIELD@1820..20321214 MEMBER_FIELD_METHOD@1820..2032
1227 FIELD_METHOD@1820..20321215 FIELD_NAME_FIXED@1820..1828
1228 FIELD_NAME_FIXED@1820..18281216 NAME@1820..1828
1229 NAME@1820..18281217 IDENT@1820..1828 "deepJoin"
1230 IDENT@1820..1828 "deepJoin"1218 PARAMS_DESC@1828..1833
1231 PARAMS_DESC@1828..18331219 L_PAREN@1828..1829 "("
1232 L_PAREN@1828..1829 "("1220 PARAM@1829..1832
1233 PARAM@1829..18321221 DESTRUCT_FULL@1829..1832
1234 DESTRUCT_FULL@1829..18321222 NAME@1829..1832
1235 NAME@1829..18321223 IDENT@1829..1832 "arr"
1236 IDENT@1829..1832 "arr"1224 R_PAREN@1832..1833 ")"
1237 R_PAREN@1832..1833 ")"1225 COLONCOLON@1833..1835 "::"
1238 COLONCOLON@1833..1835 "::"1226 WHITESPACE@1835..1840 "\n "
1239 WHITESPACE@1835..1840 "\n "1227 EXPR_IF_THEN_ELSE@1840..2032
1240 EXPR_IF_THEN_ELSE@1840..20321228 IF_KW@1840..1842 "if"
1241 IF_KW@1840..1842 "if"1229 WHITESPACE@1842..1843 " "
1242 WHITESPACE@1842..1843 " "1230 EXPR_APPLY@1843..1860
1243 EXPR_APPLY@1843..18601231 EXPR_INDEX@1843..1855
1244 EXPR_INDEX@1843..18551232 EXPR_VAR@1843..1846
1245 EXPR_VAR@1843..18461233 NAME@1843..1846
1246 NAME@1843..18461234 IDENT@1843..1846 "std"
1247 IDENT@1843..1846 "std"1235 DOT@1846..1847 "."
1248 DOT@1846..1847 "."1236 NAME@1847..1855
1249 NAME@1847..18551237 IDENT@1847..1855 "isString"
1250 IDENT@1847..1855 "isString"1238 ARGS_DESC@1855..1860
1251 ARGS_DESC@1855..18601239 L_PAREN@1855..1856 "("
1252 L_PAREN@1855..1856 "("1240 ARG@1856..1859
1253 ARG@1856..18591241 EXPR_VAR@1856..1859
1254 EXPR_VAR@1856..18591242 NAME@1856..1859
1255 NAME@1856..18591243 IDENT@1856..1859 "arr"
1256 IDENT@1856..1859 "arr"1244 R_PAREN@1859..1860 ")"
1257 R_PAREN@1859..1860 ")"1245 WHITESPACE@1860..1861 " "
1258 WHITESPACE@1860..1861 " "1246 THEN_KW@1861..1865 "then"
1259 THEN_KW@1861..1865 "then"1247 WHITESPACE@1865..1872 "\n "
1260 WHITESPACE@1865..1872 "\n "1248 TRUE_EXPR@1872..1875
1261 TRUE_EXPR@1872..18751249 EXPR_VAR@1872..1875
1262 EXPR_VAR@1872..18751250 NAME@1872..1875
1263 NAME@1872..18751251 IDENT@1872..1875 "arr"
1264 IDENT@1872..1875 "arr"1252 WHITESPACE@1875..1880 "\n "
1265 WHITESPACE@1875..1880 "\n "1253 ELSE_KW@1880..1884 "else"
1266 ELSE_KW@1880..1884 "else"1254 WHITESPACE@1884..1885 " "
1267 WHITESPACE@1884..1885 " "1255 FALSE_EXPR@1885..2032
1268 FALSE_EXPR@1885..20321256 EXPR_IF_THEN_ELSE@1885..2032
1269 EXPR_IF_THEN_ELSE@1885..20321257 IF_KW@1885..1887 "if"
1270 IF_KW@1885..1887 "if"1258 WHITESPACE@1887..1888 " "
1271 WHITESPACE@1887..1888 " "1259 EXPR_APPLY@1888..1904
1272 EXPR_APPLY@1888..19041260 EXPR_INDEX@1888..1899
1273 EXPR_INDEX@1888..18991261 EXPR_VAR@1888..1891
1274 EXPR_VAR@1888..18911262 NAME@1888..1891
1275 NAME@1888..18911263 IDENT@1888..1891 "std"
1276 IDENT@1888..1891 "std"1264 DOT@1891..1892 "."
1277 DOT@1891..1892 "."1265 NAME@1892..1899
1278 NAME@1892..18991266 IDENT@1892..1899 "isArray"
1279 IDENT@1892..1899 "isArray"1267 ARGS_DESC@1899..1904
1280 ARGS_DESC@1899..19041268 L_PAREN@1899..1900 "("
1281 L_PAREN@1899..1900 "("1269 ARG@1900..1903
1282 ARG@1900..19031270 EXPR_VAR@1900..1903
1283 EXPR_VAR@1900..19031271 NAME@1900..1903
1284 NAME@1900..19031272 IDENT@1900..1903 "arr"
1285 IDENT@1900..1903 "arr"1273 R_PAREN@1903..1904 ")"
1286 R_PAREN@1903..1904 ")"1274 WHITESPACE@1904..1905 " "
1287 WHITESPACE@1904..1905 " "1275 THEN_KW@1905..1909 "then"
1288 THEN_KW@1905..1909 "then"1276 WHITESPACE@1909..1916 "\n "
1289 WHITESPACE@1909..1916 "\n "1277 TRUE_EXPR@1916..1960
1290 TRUE_EXPR@1916..19601278 EXPR_APPLY@1916..1960
1291 EXPR_APPLY@1916..19601279 EXPR_INDEX@1916..1924
1292 EXPR_INDEX@1916..19241280 EXPR_VAR@1916..1919
1293 EXPR_VAR@1916..19191281 NAME@1916..1919
1294 NAME@1916..19191282 IDENT@1916..1919 "std"
1295 IDENT@1916..1919 "std"1283 DOT@1919..1920 "."
1296 DOT@1919..1920 "."1284 NAME@1920..1924
1297 NAME@1920..19241285 IDENT@1920..1924 "join"
1298 IDENT@1920..1924 "join"1286 ARGS_DESC@1924..1960
1299 ARGS_DESC@1924..19601287 L_PAREN@1924..1925 "("
1300 L_PAREN@1924..1925 "("1288 ARG@1925..1927
1301 ARG@1925..19271289 EXPR_STRING@1925..1927
1302 EXPR_STRING@1925..19271290 STRING_SINGLE@1925..1927 "''"
1303 STRING_SINGLE@1925..1927 "''"1291 COMMA@1927..1928 ","
1304 COMMA@1927..1928 ","1292 WHITESPACE@1928..1929 " "
1305 WHITESPACE@1928..1929 " "1293 ARG@1929..1959
1306 ARG@1929..19591294 EXPR_ARRAY_COMP@1929..1959
1307 EXPR_ARRAY_COMP@1929..19591295 L_BRACK@1929..1930 "["
1308 L_BRACK@1929..1930 "["1296 EXPR_APPLY@1930..1945
1309 EXPR_APPLY@1930..19451297 EXPR_INDEX@1930..1942
1310 EXPR_INDEX@1930..19421298 EXPR_VAR@1930..1933
1311 EXPR_VAR@1930..19331299 NAME@1930..1933
1312 NAME@1930..19331300 IDENT@1930..1933 "std"
1313 IDENT@1930..1933 "std"1301 DOT@1933..1934 "."
1314 DOT@1933..1934 "."1302 NAME@1934..1942
1315 NAME@1934..19421303 IDENT@1934..1942 "deepJoin"
1316 IDENT@1934..1942 "deepJoin"1304 ARGS_DESC@1942..1945
1317 ARGS_DESC@1942..19451305 L_PAREN@1942..1943 "("
1318 L_PAREN@1942..1943 "("1306 ARG@1943..1944
1319 ARG@1943..19441307 EXPR_VAR@1943..1944
1320 EXPR_VAR@1943..19441308 NAME@1943..1944
1321 NAME@1943..19441309 IDENT@1943..1944 "x"
1322 IDENT@1943..1944 "x"1310 R_PAREN@1944..1945 ")"
1323 R_PAREN@1944..1945 ")"1311 WHITESPACE@1945..1946 " "
1324 WHITESPACE@1945..1946 " "1312 FOR_SPEC@1946..1958
1325 FOR_SPEC@1946..19581313 FOR_KW@1946..1949 "for"
1326 FOR_KW@1946..1949 "for"1314 WHITESPACE@1949..1950 " "
1327 WHITESPACE@1949..1950 " "1315 NAME@1950..1951
1328 NAME@1950..19511316 IDENT@1950..1951 "x"
1329 IDENT@1950..1951 "x"1317 WHITESPACE@1951..1952 " "
1330 WHITESPACE@1951..1952 " "1318 IN_KW@1952..1954 "in"
1331 IN_KW@1952..1954 "in"1319 WHITESPACE@1954..1955 " "
1332 WHITESPACE@1954..1955 " "1320 EXPR_VAR@1955..1958
1333 EXPR_VAR@1955..19581321 NAME@1955..1958
1334 NAME@1955..19581322 IDENT@1955..1958 "arr"
1335 IDENT@1955..1958 "arr"1323 R_BRACK@1958..1959 "]"
1336 R_BRACK@1958..1959 "]"1324 R_PAREN@1959..1960 ")"
1337 R_PAREN@1959..1960 ")"1325 WHITESPACE@1960..1965 "\n "
1338 WHITESPACE@1960..1965 "\n "1326 ELSE_KW@1965..1969 "else"
1339 ELSE_KW@1965..1969 "else"1327 WHITESPACE@1969..1976 "\n "
1340 WHITESPACE@1969..1976 "\n "1328 FALSE_EXPR@1976..2032
1341 FALSE_EXPR@1976..20321329 EXPR_ERROR@1976..2032
1342 EXPR_ERROR@1976..20321330 ERROR_KW@1976..1981 "error"
1343 ERROR_KW@1976..1981 "error"1331 WHITESPACE@1981..1982 " "
1344 WHITESPACE@1981..1982 " "1332 EXPR_BINARY@1982..2032
1345 EXPR_BINARY@1982..20321333 LHS_EXPR@1982..2016
1346 LHS_EXPR@1982..20161334 EXPR_STRING@1982..2016
1347 EXPR_STRING@1982..20161335 STRING_SINGLE@1982..2016 "'Expected string or a ..."
1348 STRING_SINGLE@1982..2016 "'Expected string or a ..."1336 WHITESPACE@2016..2017 " "
1349 WHITESPACE@2016..2017 " "1337 MODULO@2017..2018 "%"
1350 MODULO@2017..2018 "%"1338 WHITESPACE@2018..2019 " "
1351 WHITESPACE@2018..2019 " "1339 EXPR_APPLY@2019..2032
1352 EXPR_APPLY@2019..20321340 EXPR_INDEX@2019..2027
1353 EXPR_INDEX@2019..20271341 EXPR_VAR@2019..2022
1354 EXPR_VAR@2019..20221342 NAME@2019..2022
1355 NAME@2019..20221343 IDENT@2019..2022 "std"
1356 IDENT@2019..2022 "std"1344 DOT@2022..2023 "."
1357 DOT@2022..2023 "."1345 NAME@2023..2027
1358 NAME@2023..20271346 IDENT@2023..2027 "type"
1359 IDENT@2023..2027 "type"1347 ARGS_DESC@2027..2032
1360 ARGS_DESC@2027..20321348 L_PAREN@2027..2028 "("
1361 L_PAREN@2027..2028 "("1349 ARG@2028..2031
1362 ARG@2028..20311350 EXPR_VAR@2028..2031
1363 EXPR_VAR@2028..20311351 NAME@2028..2031
1364 NAME@2028..20311352 IDENT@2028..2031 "arr"
1365 IDENT@2028..2031 "arr"1353 R_PAREN@2031..2032 ")"
1366 R_PAREN@2031..2032 ")"
1367 COMMA@2032..2033 ","1354 COMMA@2032..2033 ","
1368 WHITESPACE@2033..2037 "\n\n "1355 WHITESPACE@2033..2037 "\n\n "
1369 MEMBER_FIELD@2037..25121356 MEMBER_FIELD_METHOD@2037..2512
1370 FIELD_METHOD@2037..25121357 FIELD_NAME_FIXED@2037..2046
1371 FIELD_NAME_FIXED@2037..20461358 NAME@2037..2046
1372 NAME@2037..20461359 IDENT@2037..2046 "filterMap"
1373 IDENT@2037..2046 "filterMap"1360 PARAMS_DESC@2046..2074
1374 PARAMS_DESC@2046..20741361 L_PAREN@2046..2047 "("
1375 L_PAREN@2046..2047 "("1362 PARAM@2047..2058
1376 PARAM@2047..20581363 DESTRUCT_FULL@2047..2058
1377 DESTRUCT_FULL@2047..20581364 NAME@2047..2058
1378 NAME@2047..20581365 IDENT@2047..2058 "filter_func"
1379 IDENT@2047..2058 "filter_func"1366 COMMA@2058..2059 ","
1380 COMMA@2058..2059 ","1367 WHITESPACE@2059..2060 " "
1381 WHITESPACE@2059..2060 " "1368 PARAM@2060..2068
1382 PARAM@2060..20681369 DESTRUCT_FULL@2060..2068
1383 DESTRUCT_FULL@2060..20681370 NAME@2060..2068
1384 NAME@2060..20681371 IDENT@2060..2068 "map_func"
1385 IDENT@2060..2068 "map_func"1372 COMMA@2068..2069 ","
1386 COMMA@2068..2069 ","1373 WHITESPACE@2069..2070 " "
1387 WHITESPACE@2069..2070 " "1374 PARAM@2070..2073
1388 PARAM@2070..20731375 DESTRUCT_FULL@2070..2073
1389 DESTRUCT_FULL@2070..20731376 NAME@2070..2073
1390 NAME@2070..20731377 IDENT@2070..2073 "arr"
1391 IDENT@2070..2073 "arr"1378 R_PAREN@2073..2074 ")"
1392 R_PAREN@2073..2074 ")"1379 COLONCOLON@2074..2076 "::"
1393 COLONCOLON@2074..2076 "::"1380 WHITESPACE@2076..2081 "\n "
1394 WHITESPACE@2076..2081 "\n "1381 EXPR_IF_THEN_ELSE@2081..2512
1395 EXPR_IF_THEN_ELSE@2081..25121382 IF_KW@2081..2083 "if"
1396 IF_KW@2081..2083 "if"1383 WHITESPACE@2083..2084 " "
1397 WHITESPACE@2083..2084 " "1384 EXPR_UNARY@2084..2112
1398 EXPR_UNARY@2084..21121385 NOT@2084..2085 "!"
1399 NOT@2084..2085 "!"1386 EXPR_APPLY@2085..2112
1400 EXPR_APPLY@2085..21121387 EXPR_INDEX@2085..2099
1401 EXPR_INDEX@2085..20991388 EXPR_VAR@2085..2088
1402 EXPR_VAR@2085..20881389 NAME@2085..2088
1403 NAME@2085..20881390 IDENT@2085..2088 "std"
1404 IDENT@2085..2088 "std"1391 DOT@2088..2089 "."
1405 DOT@2088..2089 "."1392 NAME@2089..2099
1406 NAME@2089..20991393 IDENT@2089..2099 "isFunction"
1407 IDENT@2089..2099 "isFunction"1394 ARGS_DESC@2099..2112
1408 ARGS_DESC@2099..21121395 L_PAREN@2099..2100 "("
1409 L_PAREN@2099..2100 "("1396 ARG@2100..2111
1410 ARG@2100..21111397 EXPR_VAR@2100..2111
1411 EXPR_VAR@2100..21111398 NAME@2100..2111
1412 NAME@2100..21111399 IDENT@2100..2111 "filter_func"
1413 IDENT@2100..2111 "filter_func"1400 R_PAREN@2111..2112 ")"
1414 R_PAREN@2111..2112 ")"1401 WHITESPACE@2112..2113 " "
1415 WHITESPACE@2112..2113 " "1402 THEN_KW@2113..2117 "then"
1416 THEN_KW@2113..2117 "then"1403 WHITESPACE@2117..2124 "\n "
1417 WHITESPACE@2117..2124 "\n "1404 TRUE_EXPR@2124..2206
1418 TRUE_EXPR@2124..22061405 EXPR_ERROR@2124..2206
1419 EXPR_ERROR@2124..22061406 ERROR_KW@2124..2129 "error"
1420 ERROR_KW@2124..2129 "error"1407 WHITESPACE@2129..2130 " "
1421 WHITESPACE@2129..2130 " "1408 EXPR_PARENED@2130..2206
1422 EXPR_PARENED@2130..22061409 L_PAREN@2130..2131 "("
1423 L_PAREN@2130..2131 "("1410 EXPR_BINARY@2131..2205
1424 EXPR_BINARY@2131..22051411 LHS_EXPR@2131..2181
1425 LHS_EXPR@2131..21811412 EXPR_STRING@2131..2181
1426 EXPR_STRING@2131..21811413 STRING_SINGLE@2131..2181 "'std.filterMap first ..."
1427 STRING_SINGLE@2131..2181 "'std.filterMap first ..."1414 WHITESPACE@2181..2182 " "
1428 WHITESPACE@2181..2182 " "1415 PLUS@2182..2183 "+"
1429 PLUS@2182..2183 "+"1416 WHITESPACE@2183..2184 " "
1430 WHITESPACE@2183..2184 " "1417 EXPR_APPLY@2184..2205
1431 EXPR_APPLY@2184..22051418 EXPR_INDEX@2184..2192
1432 EXPR_INDEX@2184..21921419 EXPR_VAR@2184..2187
1433 EXPR_VAR@2184..21871420 NAME@2184..2187
1434 NAME@2184..21871421 IDENT@2184..2187 "std"
1435 IDENT@2184..2187 "std"1422 DOT@2187..2188 "."
1436 DOT@2187..2188 "."1423 NAME@2188..2192
1437 NAME@2188..21921424 IDENT@2188..2192 "type"
1438 IDENT@2188..2192 "type"1425 ARGS_DESC@2192..2205
1439 ARGS_DESC@2192..22051426 L_PAREN@2192..2193 "("
1440 L_PAREN@2192..2193 "("1427 ARG@2193..2204
1441 ARG@2193..22041428 EXPR_VAR@2193..2204
1442 EXPR_VAR@2193..22041429 NAME@2193..2204
1443 NAME@2193..22041430 IDENT@2193..2204 "filter_func"
1444 IDENT@2193..2204 "filter_func"1431 R_PAREN@2204..2205 ")"
1445 R_PAREN@2204..2205 ")"1432 R_PAREN@2205..2206 ")"
1446 R_PAREN@2205..2206 ")"1433 WHITESPACE@2206..2211 "\n "
1447 WHITESPACE@2206..2211 "\n "1434 ELSE_KW@2211..2215 "else"
1448 ELSE_KW@2211..2215 "else"1435 WHITESPACE@2215..2216 " "
1449 WHITESPACE@2215..2216 " "1436 FALSE_EXPR@2216..2512
1450 FALSE_EXPR@2216..25121437 EXPR_IF_THEN_ELSE@2216..2512
1451 EXPR_IF_THEN_ELSE@2216..25121438 IF_KW@2216..2218 "if"
1452 IF_KW@2216..2218 "if"1439 WHITESPACE@2218..2219 " "
1453 WHITESPACE@2218..2219 " "1440 EXPR_UNARY@2219..2244
1454 EXPR_UNARY@2219..22441441 NOT@2219..2220 "!"
1455 NOT@2219..2220 "!"1442 EXPR_APPLY@2220..2244
1456 EXPR_APPLY@2220..22441443 EXPR_INDEX@2220..2234
1457 EXPR_INDEX@2220..22341444 EXPR_VAR@2220..2223
1458 EXPR_VAR@2220..22231445 NAME@2220..2223
1459 NAME@2220..22231446 IDENT@2220..2223 "std"
1460 IDENT@2220..2223 "std"1447 DOT@2223..2224 "."
1461 DOT@2223..2224 "."1448 NAME@2224..2234
1462 NAME@2224..22341449 IDENT@2224..2234 "isFunction"
1463 IDENT@2224..2234 "isFunction"1450 ARGS_DESC@2234..2244
1464 ARGS_DESC@2234..22441451 L_PAREN@2234..2235 "("
1465 L_PAREN@2234..2235 "("1452 ARG@2235..2243
1466 ARG@2235..22431453 EXPR_VAR@2235..2243
1467 EXPR_VAR@2235..22431454 NAME@2235..2243
1468 NAME@2235..22431455 IDENT@2235..2243 "map_func"
1469 IDENT@2235..2243 "map_func"1456 R_PAREN@2243..2244 ")"
1470 R_PAREN@2243..2244 ")"1457 WHITESPACE@2244..2245 " "
1471 WHITESPACE@2244..2245 " "1458 THEN_KW@2245..2249 "then"
1472 THEN_KW@2245..2249 "then"1459 WHITESPACE@2249..2256 "\n "
1473 WHITESPACE@2249..2256 "\n "1460 TRUE_EXPR@2256..2336
1474 TRUE_EXPR@2256..23361461 EXPR_ERROR@2256..2336
1475 EXPR_ERROR@2256..23361462 ERROR_KW@2256..2261 "error"
1476 ERROR_KW@2256..2261 "error"1463 WHITESPACE@2261..2262 " "
1477 WHITESPACE@2261..2262 " "1464 EXPR_PARENED@2262..2336
1478 EXPR_PARENED@2262..23361465 L_PAREN@2262..2263 "("
1479 L_PAREN@2262..2263 "("1466 EXPR_BINARY@2263..2335
1480 EXPR_BINARY@2263..23351467 LHS_EXPR@2263..2314
1481 LHS_EXPR@2263..23141468 EXPR_STRING@2263..2314
1482 EXPR_STRING@2263..23141469 STRING_SINGLE@2263..2314 "'std.filterMap second ..."
1483 STRING_SINGLE@2263..2314 "'std.filterMap second ..."1470 WHITESPACE@2314..2315 " "
1484 WHITESPACE@2314..2315 " "1471 PLUS@2315..2316 "+"
1485 PLUS@2315..2316 "+"1472 WHITESPACE@2316..2317 " "
1486 WHITESPACE@2316..2317 " "1473 EXPR_APPLY@2317..2335
1487 EXPR_APPLY@2317..23351474 EXPR_INDEX@2317..2325
1488 EXPR_INDEX@2317..23251475 EXPR_VAR@2317..2320
1489 EXPR_VAR@2317..23201476 NAME@2317..2320
1490 NAME@2317..23201477 IDENT@2317..2320 "std"
1491 IDENT@2317..2320 "std"1478 DOT@2320..2321 "."
1492 DOT@2320..2321 "."1479 NAME@2321..2325
1493 NAME@2321..23251480 IDENT@2321..2325 "type"
1494 IDENT@2321..2325 "type"1481 ARGS_DESC@2325..2335
1495 ARGS_DESC@2325..23351482 L_PAREN@2325..2326 "("
1496 L_PAREN@2325..2326 "("1483 ARG@2326..2334
1497 ARG@2326..23341484 EXPR_VAR@2326..2334
1498 EXPR_VAR@2326..23341485 NAME@2326..2334
1499 NAME@2326..23341486 IDENT@2326..2334 "map_func"
1500 IDENT@2326..2334 "map_func"1487 R_PAREN@2334..2335 ")"
1501 R_PAREN@2334..2335 ")"1488 R_PAREN@2335..2336 ")"
1502 R_PAREN@2335..2336 ")"1489 WHITESPACE@2336..2341 "\n "
1503 WHITESPACE@2336..2341 "\n "1490 ELSE_KW@2341..2345 "else"
1504 ELSE_KW@2341..2345 "else"1491 WHITESPACE@2345..2346 " "
1505 WHITESPACE@2345..2346 " "1492 FALSE_EXPR@2346..2512
1506 FALSE_EXPR@2346..25121493 EXPR_IF_THEN_ELSE@2346..2512
1507 EXPR_IF_THEN_ELSE@2346..25121494 IF_KW@2346..2348 "if"
1508 IF_KW@2346..2348 "if"1495 WHITESPACE@2348..2349 " "
1509 WHITESPACE@2348..2349 " "1496 EXPR_UNARY@2349..2366
1510 EXPR_UNARY@2349..23661497 NOT@2349..2350 "!"
1511 NOT@2349..2350 "!"1498 EXPR_APPLY@2350..2366
1512 EXPR_APPLY@2350..23661499 EXPR_INDEX@2350..2361
1513 EXPR_INDEX@2350..23611500 EXPR_VAR@2350..2353
1514 EXPR_VAR@2350..23531501 NAME@2350..2353
1515 NAME@2350..23531502 IDENT@2350..2353 "std"
1516 IDENT@2350..2353 "std"1503 DOT@2353..2354 "."
1517 DOT@2353..2354 "."1504 NAME@2354..2361
1518 NAME@2354..23611505 IDENT@2354..2361 "isArray"
1519 IDENT@2354..2361 "isArray"1506 ARGS_DESC@2361..2366
1520 ARGS_DESC@2361..23661507 L_PAREN@2361..2362 "("
1521 L_PAREN@2361..2362 "("1508 ARG@2362..2365
1522 ARG@2362..23651509 EXPR_VAR@2362..2365
1523 EXPR_VAR@2362..23651510 NAME@2362..2365
1524 NAME@2362..23651511 IDENT@2362..2365 "arr"
1525 IDENT@2362..2365 "arr"1512 R_PAREN@2365..2366 ")"
1526 R_PAREN@2365..2366 ")"1513 WHITESPACE@2366..2367 " "
1527 WHITESPACE@2366..2367 " "1514 THEN_KW@2367..2371 "then"
1528 THEN_KW@2367..2371 "then"1515 WHITESPACE@2371..2378 "\n "
1529 WHITESPACE@2371..2378 "\n "1516 TRUE_EXPR@2378..2449
1530 TRUE_EXPR@2378..24491517 EXPR_ERROR@2378..2449
1531 EXPR_ERROR@2378..24491518 ERROR_KW@2378..2383 "error"
1532 ERROR_KW@2378..2383 "error"1519 WHITESPACE@2383..2384 " "
1533 WHITESPACE@2383..2384 " "1520 EXPR_PARENED@2384..2449
1534 EXPR_PARENED@2384..24491521 L_PAREN@2384..2385 "("
1535 L_PAREN@2384..2385 "("1522 EXPR_BINARY@2385..2448
1536 EXPR_BINARY@2385..24481523 LHS_EXPR@2385..2432
1537 LHS_EXPR@2385..24321524 EXPR_STRING@2385..2432
1538 EXPR_STRING@2385..24321525 STRING_SINGLE@2385..2432 "'std.filterMap third ..."
1539 STRING_SINGLE@2385..2432 "'std.filterMap third ..."1526 WHITESPACE@2432..2433 " "
1540 WHITESPACE@2432..2433 " "1527 PLUS@2433..2434 "+"
1541 PLUS@2433..2434 "+"1528 WHITESPACE@2434..2435 " "
1542 WHITESPACE@2434..2435 " "1529 EXPR_APPLY@2435..2448
1543 EXPR_APPLY@2435..24481530 EXPR_INDEX@2435..2443
1544 EXPR_INDEX@2435..24431531 EXPR_VAR@2435..2438
1545 EXPR_VAR@2435..24381532 NAME@2435..2438
1546 NAME@2435..24381533 IDENT@2435..2438 "std"
1547 IDENT@2435..2438 "std"1534 DOT@2438..2439 "."
1548 DOT@2438..2439 "."1535 NAME@2439..2443
1549 NAME@2439..24431536 IDENT@2439..2443 "type"
1550 IDENT@2439..2443 "type"1537 ARGS_DESC@2443..2448
1551 ARGS_DESC@2443..24481538 L_PAREN@2443..2444 "("
1552 L_PAREN@2443..2444 "("1539 ARG@2444..2447
1553 ARG@2444..24471540 EXPR_VAR@2444..2447
1554 EXPR_VAR@2444..24471541 NAME@2444..2447
1555 NAME@2444..24471542 IDENT@2444..2447 "arr"
1556 IDENT@2444..2447 "arr"1543 R_PAREN@2447..2448 ")"
1557 R_PAREN@2447..2448 ")"1544 R_PAREN@2448..2449 ")"
1558 R_PAREN@2448..2449 ")"1545 WHITESPACE@2449..2454 "\n "
1559 WHITESPACE@2449..2454 "\n "1546 ELSE_KW@2454..2458 "else"
1560 ELSE_KW@2454..2458 "else"1547 WHITESPACE@2458..2465 "\n "
1561 WHITESPACE@2458..2465 "\n "1548 FALSE_EXPR@2465..2512
1562 FALSE_EXPR@2465..25121549 EXPR_APPLY@2465..2512
1563 EXPR_APPLY@2465..25121550 EXPR_INDEX@2465..2472
1564 EXPR_INDEX@2465..24721551 EXPR_VAR@2465..2468
1565 EXPR_VAR@2465..24681552 NAME@2465..2468
1566 NAME@2465..24681553 IDENT@2465..2468 "std"
1567 IDENT@2465..2468 "std"1554 DOT@2468..2469 "."
1568 DOT@2468..2469 "."1555 NAME@2469..2472
1569 NAME@2469..24721556 IDENT@2469..2472 "map"
1570 IDENT@2469..2472 "map"1557 ARGS_DESC@2472..2512
1571 ARGS_DESC@2472..25121558 L_PAREN@2472..2473 "("
1572 L_PAREN@2472..2473 "("1559 ARG@2473..2481
1573 ARG@2473..24811560 EXPR_VAR@2473..2481
1574 EXPR_VAR@2473..24811561 NAME@2473..2481
1575 NAME@2473..24811562 IDENT@2473..2481 "map_func"
1576 IDENT@2473..2481 "map_func"1563 COMMA@2481..2482 ","
1577 COMMA@2481..2482 ","1564 WHITESPACE@2482..2483 " "
1578 WHITESPACE@2482..2483 " "1565 ARG@2483..2511
1579 ARG@2483..25111566 EXPR_APPLY@2483..2511
1580 EXPR_APPLY@2483..25111567 EXPR_INDEX@2483..2493
1581 EXPR_INDEX@2483..24931568 EXPR_VAR@2483..2486
1582 EXPR_VAR@2483..24861569 NAME@2483..2486
1583 NAME@2483..24861570 IDENT@2483..2486 "std"
1584 IDENT@2483..2486 "std"1571 DOT@2486..2487 "."
1585 DOT@2486..2487 "."1572 NAME@2487..2493
1586 NAME@2487..24931573 IDENT@2487..2493 "filter"
1587 IDENT@2487..2493 "filter"1574 ARGS_DESC@2493..2511
1588 ARGS_DESC@2493..25111575 L_PAREN@2493..2494 "("
1589 L_PAREN@2493..2494 "("1576 ARG@2494..2505
1590 ARG@2494..25051577 EXPR_VAR@2494..2505
1591 EXPR_VAR@2494..25051578 NAME@2494..2505
1592 NAME@2494..25051579 IDENT@2494..2505 "filter_func"
1593 IDENT@2494..2505 "filter_func"1580 COMMA@2505..2506 ","
1594 COMMA@2505..2506 ","1581 WHITESPACE@2506..2507 " "
1595 WHITESPACE@2506..2507 " "1582 ARG@2507..2510
1596 ARG@2507..25101583 EXPR_VAR@2507..2510
1597 EXPR_VAR@2507..25101584 NAME@2507..2510
1598 NAME@2507..25101585 IDENT@2507..2510 "arr"
1599 IDENT@2507..2510 "arr"1586 R_PAREN@2510..2511 ")"
1600 R_PAREN@2510..2511 ")"1587 R_PAREN@2511..2512 ")"
1601 R_PAREN@2511..2512 ")"
1602 COMMA@2512..2513 ","1588 COMMA@2512..2513 ","
1603 WHITESPACE@2513..2517 "\n\n "1589 WHITESPACE@2513..2517 "\n\n "
1604 MEMBER_FIELD@2517..26251590 MEMBER_FIELD_METHOD@2517..2625
1605 FIELD_METHOD@2517..26251591 FIELD_NAME_FIXED@2517..2528
1606 FIELD_NAME_FIXED@2517..25281592 NAME@2517..2528
1607 NAME@2517..25281593 IDENT@2517..2528 "assertEqual"
1608 IDENT@2517..2528 "assertEqual"1594 PARAMS_DESC@2528..2534
1609 PARAMS_DESC@2528..25341595 L_PAREN@2528..2529 "("
1610 L_PAREN@2528..2529 "("1596 PARAM@2529..2530
1611 PARAM@2529..25301597 DESTRUCT_FULL@2529..2530
1612 DESTRUCT_FULL@2529..25301598 NAME@2529..2530
1613 NAME@2529..25301599 IDENT@2529..2530 "a"
1614 IDENT@2529..2530 "a"1600 COMMA@2530..2531 ","
1615 COMMA@2530..2531 ","1601 WHITESPACE@2531..2532 " "
1616 WHITESPACE@2531..2532 " "1602 PARAM@2532..2533
1617 PARAM@2532..25331603 DESTRUCT_FULL@2532..2533
1618 DESTRUCT_FULL@2532..25331604 NAME@2532..2533
1619 NAME@2532..25331605 IDENT@2532..2533 "b"
1620 IDENT@2532..2533 "b"1606 R_PAREN@2533..2534 ")"
1621 R_PAREN@2533..2534 ")"1607 COLONCOLON@2534..2536 "::"
1622 COLONCOLON@2534..2536 "::"1608 WHITESPACE@2536..2541 "\n "
1623 WHITESPACE@2536..2541 "\n "1609 EXPR_IF_THEN_ELSE@2541..2625
1624 EXPR_IF_THEN_ELSE@2541..26251610 IF_KW@2541..2543 "if"
1625 IF_KW@2541..2543 "if"1611 WHITESPACE@2543..2544 " "
1626 WHITESPACE@2543..2544 " "1612 EXPR_BINARY@2544..2550
1627 EXPR_BINARY@2544..25501613 LHS_EXPR@2544..2545
1628 LHS_EXPR@2544..25451614 EXPR_VAR@2544..2545
1629 EXPR_VAR@2544..25451615 NAME@2544..2545
1630 NAME@2544..25451616 IDENT@2544..2545 "a"
1631 IDENT@2544..2545 "a"1617 WHITESPACE@2545..2546 " "
1632 WHITESPACE@2545..2546 " "1618 EQ@2546..2548 "=="
1633 EQ@2546..2548 "=="1619 WHITESPACE@2548..2549 " "
1634 WHITESPACE@2548..2549 " "1620 EXPR_VAR@2549..2550
1635 EXPR_VAR@2549..25501621 NAME@2549..2550
1636 NAME@2549..25501622 IDENT@2549..2550 "b"
1637 IDENT@2549..2550 "b"1623 WHITESPACE@2550..2551 " "
1638 WHITESPACE@2550..2551 " "1624 THEN_KW@2551..2555 "then"
1639 THEN_KW@2551..2555 "then"1625 WHITESPACE@2555..2562 "\n "
1640 WHITESPACE@2555..2562 "\n "1626 TRUE_EXPR@2562..2566
1641 TRUE_EXPR@2562..25661627 EXPR_LITERAL@2562..2566
1642 EXPR_LITERAL@2562..25661628 TRUE_KW@2562..2566 "true"
1643 TRUE_KW@2562..2566 "true"1629 WHITESPACE@2566..2571 "\n "
1644 WHITESPACE@2566..2571 "\n "1630 ELSE_KW@2571..2575 "else"
1645 ELSE_KW@2571..2575 "else"1631 WHITESPACE@2575..2582 "\n "
1646 WHITESPACE@2575..2582 "\n "1632 FALSE_EXPR@2582..2625
1647 FALSE_EXPR@2582..26251633 EXPR_ERROR@2582..2625
1648 EXPR_ERROR@2582..26251634 ERROR_KW@2582..2587 "error"
1649 ERROR_KW@2582..2587 "error"1635 WHITESPACE@2587..2588 " "
1650 WHITESPACE@2587..2588 " "1636 EXPR_BINARY@2588..2625
1651 EXPR_BINARY@2588..26251637 LHS_EXPR@2588..2621
1652 LHS_EXPR@2588..26211638 EXPR_BINARY@2588..2621
1653 EXPR_BINARY@2588..26211639 LHS_EXPR@2588..2612
1654 LHS_EXPR@2588..26121640 EXPR_BINARY@2588..2612
1655 EXPR_BINARY@2588..26121641 LHS_EXPR@2588..2608
1656 LHS_EXPR@2588..26081642 EXPR_STRING@2588..2608
1657 EXPR_STRING@2588..26081643 STRING_SINGLE@2588..2608 "'Assertion failed. '"
1658 STRING_SINGLE@2588..2608 "'Assertion failed. '"1644 WHITESPACE@2608..2609 " "
1659 WHITESPACE@2608..2609 " "1645 PLUS@2609..2610 "+"
1660 PLUS@2609..2610 "+"1646 WHITESPACE@2610..2611 " "
1661 WHITESPACE@2610..2611 " "1647 EXPR_VAR@2611..2612
1662 EXPR_VAR@2611..26121648 NAME@2611..2612
1663 NAME@2611..26121649 IDENT@2611..2612 "a"
1664 IDENT@2611..2612 "a"1650 WHITESPACE@2612..2613 " "
1665 WHITESPACE@2612..2613 " "1651 PLUS@2613..2614 "+"
1666 PLUS@2613..2614 "+"1652 WHITESPACE@2614..2615 " "
1667 WHITESPACE@2614..2615 " "1653 EXPR_STRING@2615..2621
1668 EXPR_STRING@2615..26211654 STRING_SINGLE@2615..2621 "' != '"
1669 STRING_SINGLE@2615..2621 "' != '"1655 WHITESPACE@2621..2622 " "
1670 WHITESPACE@2621..2622 " "1656 PLUS@2622..2623 "+"
1671 PLUS@2622..2623 "+"1657 WHITESPACE@2623..2624 " "
1672 WHITESPACE@2623..2624 " "1658 EXPR_VAR@2624..2625
1673 EXPR_VAR@2624..26251659 NAME@2624..2625
1674 NAME@2624..26251660 IDENT@2624..2625 "b"
1675 IDENT@2624..2625 "b"
1676 COMMA@2625..2626 ","1661 COMMA@2625..2626 ","
1677 WHITESPACE@2626..2630 "\n\n "1662 WHITESPACE@2626..2630 "\n\n "
1678 MEMBER_FIELD@2630..27321663 MEMBER_FIELD_METHOD@2630..2732
1679 FIELD_METHOD@2630..27321664 FIELD_NAME_FIXED@2630..2635
1680 FIELD_NAME_FIXED@2630..26351665 NAME@2630..2635
1681 NAME@2630..26351666 IDENT@2630..2635 "clamp"
1682 IDENT@2630..2635 "clamp"1667 PARAMS_DESC@2635..2654
1683 PARAMS_DESC@2635..26541668 L_PAREN@2635..2636 "("
1684 L_PAREN@2635..2636 "("1669 PARAM@2636..2637
1685 PARAM@2636..26371670 DESTRUCT_FULL@2636..2637
1686 DESTRUCT_FULL@2636..26371671 NAME@2636..2637
1687 NAME@2636..26371672 IDENT@2636..2637 "x"
1688 IDENT@2636..2637 "x"1673 COMMA@2637..2638 ","
1689 COMMA@2637..2638 ","1674 WHITESPACE@2638..2639 " "
1690 WHITESPACE@2638..2639 " "1675 PARAM@2639..2645
1691 PARAM@2639..26451676 DESTRUCT_FULL@2639..2645
1692 DESTRUCT_FULL@2639..26451677 NAME@2639..2645
1693 NAME@2639..26451678 IDENT@2639..2645 "minVal"
1694 IDENT@2639..2645 "minVal"1679 COMMA@2645..2646 ","
1695 COMMA@2645..2646 ","1680 WHITESPACE@2646..2647 " "
1696 WHITESPACE@2646..2647 " "1681 PARAM@2647..2653
1697 PARAM@2647..26531682 DESTRUCT_FULL@2647..2653
1698 DESTRUCT_FULL@2647..26531683 NAME@2647..2653
1699 NAME@2647..26531684 IDENT@2647..2653 "maxVal"
1700 IDENT@2647..2653 "maxVal"1685 R_PAREN@2653..2654 ")"
1701 R_PAREN@2653..2654 ")"1686 COLONCOLON@2654..2656 "::"
1702 COLONCOLON@2654..2656 "::"1687 WHITESPACE@2656..2661 "\n "
1703 WHITESPACE@2656..2661 "\n "1688 EXPR_IF_THEN_ELSE@2661..2732
1704 EXPR_IF_THEN_ELSE@2661..27321689 IF_KW@2661..2663 "if"
1705 IF_KW@2661..2663 "if"1690 WHITESPACE@2663..2664 " "
1706 WHITESPACE@2663..2664 " "1691 EXPR_BINARY@2664..2674
1707 EXPR_BINARY@2664..26741692 LHS_EXPR@2664..2665
1708 LHS_EXPR@2664..26651693 EXPR_VAR@2664..2665
1709 EXPR_VAR@2664..26651694 NAME@2664..2665
1710 NAME@2664..26651695 IDENT@2664..2665 "x"
1711 IDENT@2664..2665 "x"1696 WHITESPACE@2665..2666 " "
1712 WHITESPACE@2665..2666 " "1697 LT@2666..2667 "<"
1713 LT@2666..2667 "<"1698 WHITESPACE@2667..2668 " "
1714 WHITESPACE@2667..2668 " "1699 EXPR_VAR@2668..2674
1715 EXPR_VAR@2668..26741700 NAME@2668..2674
1716 NAME@2668..26741701 IDENT@2668..2674 "minVal"
1717 IDENT@2668..2674 "minVal"1702 WHITESPACE@2674..2675 " "
1718 WHITESPACE@2674..2675 " "1703 THEN_KW@2675..2679 "then"
1719 THEN_KW@2675..2679 "then"1704 WHITESPACE@2679..2680 " "
1720 WHITESPACE@2679..2680 " "1705 TRUE_EXPR@2680..2686
1721 TRUE_EXPR@2680..26861706 EXPR_VAR@2680..2686
1722 EXPR_VAR@2680..26861707 NAME@2680..2686
1723 NAME@2680..26861708 IDENT@2680..2686 "minVal"
1724 IDENT@2680..2686 "minVal"1709 WHITESPACE@2686..2691 "\n "
1725 WHITESPACE@2686..2691 "\n "1710 ELSE_KW@2691..2695 "else"
1726 ELSE_KW@2691..2695 "else"1711 WHITESPACE@2695..2696 " "
1727 WHITESPACE@2695..2696 " "1712 FALSE_EXPR@2696..2732
1728 FALSE_EXPR@2696..27321713 EXPR_IF_THEN_ELSE@2696..2732
1729 EXPR_IF_THEN_ELSE@2696..27321714 IF_KW@2696..2698 "if"
1730 IF_KW@2696..2698 "if"1715 WHITESPACE@2698..2699 " "
1731 WHITESPACE@2698..2699 " "1716 EXPR_BINARY@2699..2709
1732 EXPR_BINARY@2699..27091717 LHS_EXPR@2699..2700
1733 LHS_EXPR@2699..27001718 EXPR_VAR@2699..2700
1734 EXPR_VAR@2699..27001719 NAME@2699..2700
1735 NAME@2699..27001720 IDENT@2699..2700 "x"
1736 IDENT@2699..2700 "x"1721 WHITESPACE@2700..2701 " "
1737 WHITESPACE@2700..2701 " "1722 GT@2701..2702 ">"
1738 GT@2701..2702 ">"1723 WHITESPACE@2702..2703 " "
1739 WHITESPACE@2702..2703 " "1724 EXPR_VAR@2703..2709
1740 EXPR_VAR@2703..27091725 NAME@2703..2709
1741 NAME@2703..27091726 IDENT@2703..2709 "maxVal"
1742 IDENT@2703..2709 "maxVal"1727 WHITESPACE@2709..2710 " "
1743 WHITESPACE@2709..2710 " "1728 THEN_KW@2710..2714 "then"
1744 THEN_KW@2710..2714 "then"1729 WHITESPACE@2714..2715 " "
1745 WHITESPACE@2714..2715 " "1730 TRUE_EXPR@2715..2721
1746 TRUE_EXPR@2715..27211731 EXPR_VAR@2715..2721
1747 EXPR_VAR@2715..27211732 NAME@2715..2721
1748 NAME@2715..27211733 IDENT@2715..2721 "maxVal"
1749 IDENT@2715..2721 "maxVal"1734 WHITESPACE@2721..2726 "\n "
1750 WHITESPACE@2721..2726 "\n "1735 ELSE_KW@2726..2730 "else"
1751 ELSE_KW@2726..2730 "else"1736 WHITESPACE@2730..2731 " "
1752 WHITESPACE@2730..2731 " "1737 FALSE_EXPR@2731..2732
1753 FALSE_EXPR@2731..27321738 EXPR_VAR@2731..2732
1754 EXPR_VAR@2731..27321739 NAME@2731..2732
1755 NAME@2731..27321740 IDENT@2731..2732 "x"
1756 IDENT@2731..2732 "x"
1757 COMMA@2732..2733 ","1741 COMMA@2732..2733 ","
1758 WHITESPACE@2733..2737 "\n\n "1742 WHITESPACE@2733..2737 "\n\n "
1759 MEMBER_FIELD@2737..28041743 MEMBER_FIELD_METHOD@2737..2804
1760 FIELD_METHOD@2737..28041744 FIELD_NAME_FIXED@2737..2750
1761 FIELD_NAME_FIXED@2737..27501745 NAME@2737..2750
1762 NAME@2737..27501746 IDENT@2737..2750 "flattenArrays"
1763 IDENT@2737..2750 "flattenArrays"1747 PARAMS_DESC@2750..2756
1764 PARAMS_DESC@2750..27561748 L_PAREN@2750..2751 "("
1765 L_PAREN@2750..2751 "("1749 PARAM@2751..2755
1766 PARAM@2751..27551750 DESTRUCT_FULL@2751..2755
1767 DESTRUCT_FULL@2751..27551751 NAME@2751..2755
1768 NAME@2751..27551752 IDENT@2751..2755 "arrs"
1769 IDENT@2751..2755 "arrs"1753 R_PAREN@2755..2756 ")"
1770 R_PAREN@2755..2756 ")"1754 COLONCOLON@2756..2758 "::"
1771 COLONCOLON@2756..2758 "::"1755 WHITESPACE@2758..2763 "\n "
1772 WHITESPACE@2758..2763 "\n "1756 EXPR_APPLY@2763..2804
1773 EXPR_APPLY@2763..28041757 EXPR_INDEX@2763..2772
1774 EXPR_INDEX@2763..27721758 EXPR_VAR@2763..2766
1775 EXPR_VAR@2763..27661759 NAME@2763..2766
1776 NAME@2763..27661760 IDENT@2763..2766 "std"
1777 IDENT@2763..2766 "std"1761 DOT@2766..2767 "."
1778 DOT@2766..2767 "."1762 NAME@2767..2772
1779 NAME@2767..27721763 IDENT@2767..2772 "foldl"
1780 IDENT@2767..2772 "foldl"1764 ARGS_DESC@2772..2804
1781 ARGS_DESC@2772..28041765 L_PAREN@2772..2773 "("
1782 L_PAREN@2772..2773 "("1766 ARG@2773..2793
1783 ARG@2773..27931767 EXPR_FUNCTION@2773..2793
1784 EXPR_FUNCTION@2773..27931768 FUNCTION_KW@2773..2781 "function"
1785 FUNCTION_KW@2773..2781 "function"1769 PARAMS_DESC@2781..2787
1786 PARAMS_DESC@2781..27871770 L_PAREN@2781..2782 "("
1787 L_PAREN@2781..2782 "("1771 PARAM@2782..2783
1788 PARAM@2782..27831772 DESTRUCT_FULL@2782..2783
1789 DESTRUCT_FULL@2782..27831773 NAME@2782..2783
1790 NAME@2782..27831774 IDENT@2782..2783 "a"
1791 IDENT@2782..2783 "a"1775 COMMA@2783..2784 ","
1792 COMMA@2783..2784 ","1776 WHITESPACE@2784..2785 " "
1793 WHITESPACE@2784..2785 " "1777 PARAM@2785..2786
1794 PARAM@2785..27861778 DESTRUCT_FULL@2785..2786
1795 DESTRUCT_FULL@2785..27861779 NAME@2785..2786
1796 NAME@2785..27861780 IDENT@2785..2786 "b"
1797 IDENT@2785..2786 "b"1781 R_PAREN@2786..2787 ")"
1798 R_PAREN@2786..2787 ")"1782 WHITESPACE@2787..2788 " "
1799 WHITESPACE@2787..2788 " "1783 EXPR_BINARY@2788..2793
1800 EXPR_BINARY@2788..27931784 LHS_EXPR@2788..2789
1801 LHS_EXPR@2788..27891785 EXPR_VAR@2788..2789
1802 EXPR_VAR@2788..27891786 NAME@2788..2789
1803 NAME@2788..27891787 IDENT@2788..2789 "a"
1804 IDENT@2788..2789 "a"1788 WHITESPACE@2789..2790 " "
1805 WHITESPACE@2789..2790 " "1789 PLUS@2790..2791 "+"
1806 PLUS@2790..2791 "+"1790 WHITESPACE@2791..2792 " "
1807 WHITESPACE@2791..2792 " "1791 EXPR_VAR@2792..2793
1808 EXPR_VAR@2792..27931792 NAME@2792..2793
1809 NAME@2792..27931793 IDENT@2792..2793 "b"
1810 IDENT@2792..2793 "b"1794 COMMA@2793..2794 ","
1811 COMMA@2793..2794 ","1795 WHITESPACE@2794..2795 " "
1812 WHITESPACE@2794..2795 " "1796 ARG@2795..2799
1813 ARG@2795..27991797 EXPR_VAR@2795..2799
1814 EXPR_VAR@2795..27991798 NAME@2795..2799
1815 NAME@2795..27991799 IDENT@2795..2799 "arrs"
1816 IDENT@2795..2799 "arrs"1800 COMMA@2799..2800 ","
1817 COMMA@2799..2800 ","1801 WHITESPACE@2800..2801 " "
1818 WHITESPACE@2800..2801 " "1802 ARG@2801..2803
1819 ARG@2801..28031803 EXPR_ARRAY@2801..2803
1820 EXPR_ARRAY@2801..28031804 L_BRACK@2801..2802 "["
1821 L_BRACK@2801..2802 "["1805 R_BRACK@2802..2803 "]"
1822 R_BRACK@2802..2803 "]"1806 R_PAREN@2803..2804 ")"
1823 R_PAREN@2803..2804 ")"
1824 COMMA@2804..2805 ","1807 COMMA@2804..2805 ","
1825 WHITESPACE@2805..2809 "\n\n "1808 WHITESPACE@2805..2809 "\n\n "
1826 MEMBER_FIELD@2809..34951809 MEMBER_FIELD_METHOD@2809..3495
1827 FIELD_METHOD@2809..34951810 FIELD_NAME_FIXED@2809..2820
1828 FIELD_NAME_FIXED@2809..28201811 NAME@2809..2820
1829 NAME@2809..28201812 IDENT@2809..2820 "manifestIni"
1830 IDENT@2809..2820 "manifestIni"1813 PARAMS_DESC@2820..2825
1831 PARAMS_DESC@2820..28251814 L_PAREN@2820..2821 "("
1832 L_PAREN@2820..2821 "("1815 PARAM@2821..2824
1833 PARAM@2821..28241816 DESTRUCT_FULL@2821..2824
1834 DESTRUCT_FULL@2821..28241817 NAME@2821..2824
1835 NAME@2821..28241818 IDENT@2821..2824 "ini"
1836 IDENT@2821..2824 "ini"1819 R_PAREN@2824..2825 ")"
1837 R_PAREN@2824..2825 ")"1820 COLONCOLON@2825..2827 "::"
1838 COLONCOLON@2825..2827 "::"1821 WHITESPACE@2827..2832 "\n "
1839 WHITESPACE@2827..2832 "\n "1822 EXPR_LOCAL@2832..3495
1840 EXPR_LOCAL@2832..34951823 LOCAL_KW@2832..2837 "local"
1841 LOCAL_KW@2832..2837 "local"1824 WHITESPACE@2837..2838 " "
1842 WHITESPACE@2837..2838 " "1825 BIND_FUNCTION@2838..3135
1843 BIND_FUNCTION@2838..31351826 NAME@2838..2848
1844 NAME@2838..28481827 IDENT@2838..2848 "body_lines"
1845 IDENT@2838..2848 "body_lines"1828 PARAMS_DESC@2848..2854
1846 PARAMS_DESC@2848..28541829 L_PAREN@2848..2849 "("
1847 L_PAREN@2848..2849 "("1830 PARAM@2849..2853
1848 PARAM@2849..28531831 DESTRUCT_FULL@2849..2853
1849 DESTRUCT_FULL@2849..28531832 NAME@2849..2853
1850 NAME@2849..28531833 IDENT@2849..2853 "body"
1851 IDENT@2849..2853 "body"1834 R_PAREN@2853..2854 ")"
1852 R_PAREN@2853..2854 ")"1835 WHITESPACE@2854..2855 " "
1853 WHITESPACE@2854..2855 " "1836 ASSIGN@2855..2856 "="
1854 ASSIGN@2855..2856 "="1837 WHITESPACE@2856..2863 "\n "
1855 WHITESPACE@2856..2863 "\n "1838 EXPR_APPLY@2863..3135
1856 EXPR_APPLY@2863..31351839 EXPR_INDEX@2863..2871
1857 EXPR_INDEX@2863..28711840 EXPR_VAR@2863..2866
1858 EXPR_VAR@2863..28661841 NAME@2863..2866
1859 NAME@2863..28661842 IDENT@2863..2866 "std"
1860 IDENT@2863..2866 "std"1843 DOT@2866..2867 "."
1861 DOT@2866..2867 "."1844 NAME@2867..2871
1862 NAME@2867..28711845 IDENT@2867..2871 "join"
1863 IDENT@2867..2871 "join"1846 ARGS_DESC@2871..3135
1864 ARGS_DESC@2871..31351847 L_PAREN@2871..2872 "("
1865 L_PAREN@2871..2872 "("1848 ARG@2872..2874
1866 ARG@2872..28741849 EXPR_ARRAY@2872..2874
1867 EXPR_ARRAY@2872..28741850 L_BRACK@2872..2873 "["
1868 L_BRACK@2872..2873 "["1851 R_BRACK@2873..2874 "]"
1869 R_BRACK@2873..2874 "]"1852 COMMA@2874..2875 ","
1870 COMMA@2874..2875 ","1853 WHITESPACE@2875..2876 " "
1871 WHITESPACE@2875..2876 " "1854 ARG@2876..3134
1872 ARG@2876..31341855 EXPR_ARRAY_COMP@2876..3134
1873 EXPR_ARRAY_COMP@2876..31341856 L_BRACK@2876..2877 "["
1874 L_BRACK@2876..2877 "["1857 WHITESPACE@2877..2886 "\n "
1875 WHITESPACE@2877..2886 "\n "1858 EXPR_LOCAL@2886..3085
1876 EXPR_LOCAL@2886..30851859 LOCAL_KW@2886..2891 "local"
1877 LOCAL_KW@2886..2891 "local"1860 WHITESPACE@2891..2892 " "
1878 WHITESPACE@2891..2892 " "1861 BIND_DESTRUCT@2892..2917
1879 BIND_DESTRUCT@2892..29171862 DESTRUCT_FULL@2892..2907
1880 DESTRUCT_FULL@2892..29071863 NAME@2892..2907
1881 NAME@2892..29071864 IDENT@2892..2907 "value_or_values"
1882 IDENT@2892..2907 "value_or_values"1865 WHITESPACE@2907..2908 " "
1883 WHITESPACE@2907..2908 " "1866 ASSIGN@2908..2909 "="
1884 ASSIGN@2908..2909 "="1867 WHITESPACE@2909..2910 " "
1885 WHITESPACE@2909..2910 " "1868 EXPR_INDEX_EXPR@2910..2917
1886 EXPR_INDEX_EXPR@2910..29171869 LHS_EXPR@2910..2914
1887 LHS_EXPR@2910..29141870 EXPR_VAR@2910..2914
1888 EXPR_VAR@2910..29141871 NAME@2910..2914
1889 NAME@2910..29141872 IDENT@2910..2914 "body"
1890 IDENT@2910..2914 "body"1873 L_BRACK@2914..2915 "["
1891 L_BRACK@2914..2915 "["1874 EXPR_VAR@2915..2916
1892 EXPR_VAR@2915..29161875 NAME@2915..2916
1893 NAME@2915..29161876 IDENT@2915..2916 "k"
1894 IDENT@2915..2916 "k"1877 R_BRACK@2916..2917 "]"
1895 R_BRACK@2916..2917 "]"1878 SEMI@2917..2918 ";"
1896 SEMI@2917..2918 ";"1879 WHITESPACE@2918..2927 "\n "
1897 WHITESPACE@2918..2927 "\n "1880 EXPR_IF_THEN_ELSE@2927..3085
1898 EXPR_IF_THEN_ELSE@2927..30851881 IF_KW@2927..2929 "if"
1899 IF_KW@2927..2929 "if"1882 WHITESPACE@2929..2930 " "
1900 WHITESPACE@2929..2930 " "1883 EXPR_APPLY@2930..2958
1901 EXPR_APPLY@2930..29581884 EXPR_INDEX@2930..2941
1902 EXPR_INDEX@2930..29411885 EXPR_VAR@2930..2933
1903 EXPR_VAR@2930..29331886 NAME@2930..2933
1904 NAME@2930..29331887 IDENT@2930..2933 "std"
1905 IDENT@2930..2933 "std"1888 DOT@2933..2934 "."
1906 DOT@2933..2934 "."1889 NAME@2934..2941
1907 NAME@2934..29411890 IDENT@2934..2941 "isArray"
1908 IDENT@2934..2941 "isArray"1891 ARGS_DESC@2941..2958
1909 ARGS_DESC@2941..29581892 L_PAREN@2941..2942 "("
1910 L_PAREN@2941..2942 "("1893 ARG@2942..2957
1911 ARG@2942..29571894 EXPR_VAR@2942..2957
1912 EXPR_VAR@2942..29571895 NAME@2942..2957
1913 NAME@2942..29571896 IDENT@2942..2957 "value_or_values"
1914 IDENT@2942..2957 "value_or_values"1897 R_PAREN@2957..2958 ")"
1915 R_PAREN@2957..2958 ")"1898 WHITESPACE@2958..2959 " "
1916 WHITESPACE@2958..2959 " "1899 THEN_KW@2959..2963 "then"
1917 THEN_KW@2959..2963 "then"1900 WHITESPACE@2963..2974 "\n "
1918 WHITESPACE@2963..2974 "\n "1901 TRUE_EXPR@2974..3027
1919 TRUE_EXPR@2974..30271902 EXPR_ARRAY_COMP@2974..3027
1920 EXPR_ARRAY_COMP@2974..30271903 L_BRACK@2974..2975 "["
1921 L_BRACK@2974..2975 "["1904 EXPR_BINARY@2975..2997
1922 EXPR_BINARY@2975..29971905 LHS_EXPR@2975..2984
1923 LHS_EXPR@2975..29841906 EXPR_STRING@2975..2984
1924 EXPR_STRING@2975..29841907 STRING_SINGLE@2975..2984 "'%s = %s'"
1925 STRING_SINGLE@2975..2984 "'%s = %s'"1908 WHITESPACE@2984..2985 " "
1926 WHITESPACE@2984..2985 " "1909 MODULO@2985..2986 "%"
1927 MODULO@2985..2986 "%"1910 WHITESPACE@2986..2987 " "
1928 WHITESPACE@2986..2987 " "1911 EXPR_ARRAY@2987..2997
1929 EXPR_ARRAY@2987..29971912 L_BRACK@2987..2988 "["
1930 L_BRACK@2987..2988 "["1913 EXPR_VAR@2988..2989
1931 EXPR_VAR@2988..29891914 NAME@2988..2989
1932 NAME@2988..29891915 IDENT@2988..2989 "k"
1933 IDENT@2988..2989 "k"1916 COMMA@2989..2990 ","
1934 COMMA@2989..2990 ","1917 WHITESPACE@2990..2991 " "
1935 WHITESPACE@2990..2991 " "1918 EXPR_VAR@2991..2996
1936 EXPR_VAR@2991..29961919 NAME@2991..2996
1937 NAME@2991..29961920 IDENT@2991..2996 "value"
1938 IDENT@2991..2996 "value"1921 R_BRACK@2996..2997 "]"
1939 R_BRACK@2996..2997 "]"1922 WHITESPACE@2997..2998 " "
1940 WHITESPACE@2997..2998 " "1923 FOR_SPEC@2998..3026
1941 FOR_SPEC@2998..30261924 FOR_KW@2998..3001 "for"
1942 FOR_KW@2998..3001 "for"1925 WHITESPACE@3001..3002 " "
1943 WHITESPACE@3001..3002 " "1926 NAME@3002..3007
1944 NAME@3002..30071927 IDENT@3002..3007 "value"
1945 IDENT@3002..3007 "value"1928 WHITESPACE@3007..3008 " "
1946 WHITESPACE@3007..3008 " "1929 IN_KW@3008..3010 "in"
1947 IN_KW@3008..3010 "in"1930 WHITESPACE@3010..3011 " "
1948 WHITESPACE@3010..3011 " "1931 EXPR_VAR@3011..3026
1949 EXPR_VAR@3011..30261932 NAME@3011..3026
1950 NAME@3011..30261933 IDENT@3011..3026 "value_or_values"
1951 IDENT@3011..3026 "value_or_values"1934 R_BRACK@3026..3027 "]"
1952 R_BRACK@3026..3027 "]"1935 WHITESPACE@3027..3036 "\n "
1953 WHITESPACE@3027..3036 "\n "1936 ELSE_KW@3036..3040 "else"
1954 ELSE_KW@3036..3040 "else"1937 WHITESPACE@3040..3051 "\n "
1955 WHITESPACE@3040..3051 "\n "1938 FALSE_EXPR@3051..3085
1956 FALSE_EXPR@3051..30851939 EXPR_ARRAY@3051..3085
1957 EXPR_ARRAY@3051..30851940 L_BRACK@3051..3052 "["
1958 L_BRACK@3051..3052 "["1941 EXPR_BINARY@3052..3084
1959 EXPR_BINARY@3052..30841942 LHS_EXPR@3052..3061
1960 LHS_EXPR@3052..30611943 EXPR_STRING@3052..3061
1961 EXPR_STRING@3052..30611944 STRING_SINGLE@3052..3061 "'%s = %s'"
1962 STRING_SINGLE@3052..3061 "'%s = %s'"1945 WHITESPACE@3061..3062 " "
1963 WHITESPACE@3061..3062 " "1946 MODULO@3062..3063 "%"
1964 MODULO@3062..3063 "%"1947 WHITESPACE@3063..3064 " "
1965 WHITESPACE@3063..3064 " "1948 EXPR_ARRAY@3064..3084
1966 EXPR_ARRAY@3064..30841949 L_BRACK@3064..3065 "["
1967 L_BRACK@3064..3065 "["1950 EXPR_VAR@3065..3066
1968 EXPR_VAR@3065..30661951 NAME@3065..3066
1969 NAME@3065..30661952 IDENT@3065..3066 "k"
1970 IDENT@3065..3066 "k"1953 COMMA@3066..3067 ","
1971 COMMA@3066..3067 ","1954 WHITESPACE@3067..3068 " "
1972 WHITESPACE@3067..3068 " "1955 EXPR_VAR@3068..3083
1973 EXPR_VAR@3068..30831956 NAME@3068..3083
1974 NAME@3068..30831957 IDENT@3068..3083 "value_or_values"
1975 IDENT@3068..3083 "value_or_values"1958 R_BRACK@3083..3084 "]"
1976 R_BRACK@3083..3084 "]"1959 R_BRACK@3084..3085 "]"
1977 R_BRACK@3084..3085 "]"1960 WHITESPACE@3085..3095 "\n\n "
1978 WHITESPACE@3085..3095 "\n\n "1961 FOR_SPEC@3095..3126
1979 FOR_SPEC@3095..31261962 FOR_KW@3095..3098 "for"
1980 FOR_KW@3095..3098 "for"1963 WHITESPACE@3098..3099 " "
1981 WHITESPACE@3098..3099 " "1964 NAME@3099..3100
1982 NAME@3099..31001965 IDENT@3099..3100 "k"
1983 IDENT@3099..3100 "k"1966 WHITESPACE@3100..3101 " "
1984 WHITESPACE@3100..3101 " "1967 IN_KW@3101..3103 "in"
1985 IN_KW@3101..3103 "in"1968 WHITESPACE@3103..3104 " "
1986 WHITESPACE@3103..3104 " "1969 EXPR_APPLY@3104..3126
1987 EXPR_APPLY@3104..31261970 EXPR_INDEX@3104..3120
1988 EXPR_INDEX@3104..31201971 EXPR_VAR@3104..3107
1989 EXPR_VAR@3104..31071972 NAME@3104..3107
1990 NAME@3104..31071973 IDENT@3104..3107 "std"
1991 IDENT@3104..3107 "std"1974 DOT@3107..3108 "."
1992 DOT@3107..3108 "."1975 NAME@3108..3120
1993 NAME@3108..31201976 IDENT@3108..3120 "objectFields"
1994 IDENT@3108..3120 "objectFields"1977 ARGS_DESC@3120..3126
1995 ARGS_DESC@3120..31261978 L_PAREN@3120..3121 "("
1996 L_PAREN@3120..3121 "("1979 ARG@3121..3125
1997 ARG@3121..31251980 EXPR_VAR@3121..3125
1998 EXPR_VAR@3121..31251981 NAME@3121..3125
1999 NAME@3121..31251982 IDENT@3121..3125 "body"
2000 IDENT@3121..3125 "body"1983 R_PAREN@3125..3126 ")"
2001 R_PAREN@3125..3126 ")"1984 WHITESPACE@3126..3133 "\n "
2002 WHITESPACE@3126..3133 "\n "1985 R_BRACK@3133..3134 "]"
2003 R_BRACK@3133..3134 "]"1986 R_PAREN@3134..3135 ")"
2004 R_PAREN@3134..3135 ")"1987 SEMI@3135..3136 ";"
2005 SEMI@3135..3136 ";"1988 WHITESPACE@3136..3142 "\n\n "
2006 WHITESPACE@3136..3142 "\n\n "1989 EXPR_LOCAL@3142..3495
2007 EXPR_LOCAL@3142..34951990 LOCAL_KW@3142..3147 "local"
2008 LOCAL_KW@3142..3147 "local"1991 WHITESPACE@3147..3148 " "
2009 WHITESPACE@3147..3148 " "1992 BIND_FUNCTION@3148..3216
2010 BIND_FUNCTION@3148..32161993 NAME@3148..3161
2011 NAME@3148..31611994 IDENT@3148..3161 "section_lines"
2012 IDENT@3148..3161 "section_lines"1995 PARAMS_DESC@3161..3175
2013 PARAMS_DESC@3161..31751996 L_PAREN@3161..3162 "("
2014 L_PAREN@3161..3162 "("1997 PARAM@3162..3167
2015 PARAM@3162..31671998 DESTRUCT_FULL@3162..3167
2016 DESTRUCT_FULL@3162..31671999 NAME@3162..3167
2017 NAME@3162..31672000 IDENT@3162..3167 "sname"
2018 IDENT@3162..3167 "sname"2001 COMMA@3167..3168 ","
2019 COMMA@3167..3168 ","2002 WHITESPACE@3168..3169 " "
2020 WHITESPACE@3168..3169 " "2003 PARAM@3169..3174
2021 PARAM@3169..31742004 DESTRUCT_FULL@3169..3174
2022 DESTRUCT_FULL@3169..31742005 NAME@3169..3174
2023 NAME@3169..31742006 IDENT@3169..3174 "sbody"
2024 IDENT@3169..3174 "sbody"2007 R_PAREN@3174..3175 ")"
2025 R_PAREN@3174..3175 ")"2008 WHITESPACE@3175..3176 " "
2026 WHITESPACE@3175..3176 " "2009 ASSIGN@3176..3177 "="
2027 ASSIGN@3176..3177 "="2010 WHITESPACE@3177..3178 " "
2028 WHITESPACE@3177..3178 " "2011 EXPR_BINARY@3178..3216
2029 EXPR_BINARY@3178..32162012 LHS_EXPR@3178..3196
2030 LHS_EXPR@3178..31962013 EXPR_ARRAY@3178..3196
2031 EXPR_ARRAY@3178..31962014 L_BRACK@3178..3179 "["
2032 L_BRACK@3178..3179 "["2015 EXPR_BINARY@3179..3195
2033 EXPR_BINARY@3179..31952016 LHS_EXPR@3179..3185
2034 LHS_EXPR@3179..31852017 EXPR_STRING@3179..3185
2035 EXPR_STRING@3179..31852018 STRING_SINGLE@3179..3185 "'[%s]'"
2036 STRING_SINGLE@3179..3185 "'[%s]'"2019 WHITESPACE@3185..3186 " "
2037 WHITESPACE@3185..3186 " "2020 MODULO@3186..3187 "%"
2038 MODULO@3186..3187 "%"2021 WHITESPACE@3187..3188 " "
2039 WHITESPACE@3187..3188 " "2022 EXPR_ARRAY@3188..3195
2040 EXPR_ARRAY@3188..31952023 L_BRACK@3188..3189 "["
2041 L_BRACK@3188..3189 "["2024 EXPR_VAR@3189..3194
2042 EXPR_VAR@3189..31942025 NAME@3189..3194
2043 NAME@3189..31942026 IDENT@3189..3194 "sname"
2044 IDENT@3189..3194 "sname"2027 R_BRACK@3194..3195 "]"
2045 R_BRACK@3194..3195 "]"2028 R_BRACK@3195..3196 "]"
2046 R_BRACK@3195..3196 "]"2029 WHITESPACE@3196..3197 " "
2047 WHITESPACE@3196..3197 " "2030 PLUS@3197..3198 "+"
2048 PLUS@3197..3198 "+"2031 WHITESPACE@3198..3199 " "
2049 WHITESPACE@3198..3199 " "2032 EXPR_APPLY@3199..3216
2050 EXPR_APPLY@3199..32162033 EXPR_VAR@3199..3209
2051 EXPR_VAR@3199..32092034 NAME@3199..3209
2052 NAME@3199..32092035 IDENT@3199..3209 "body_lines"
2053 IDENT@3199..3209 "body_lines"2036 ARGS_DESC@3209..3216
2054 ARGS_DESC@3209..32162037 L_PAREN@3209..3210 "("
2055 L_PAREN@3209..3210 "("2038 ARG@3210..3215
2056 ARG@3210..32152039 EXPR_VAR@3210..3215
2057 EXPR_VAR@3210..32152040 NAME@3210..3215
2058 NAME@3210..32152041 IDENT@3210..3215 "sbody"
2059 IDENT@3210..3215 "sbody"2042 R_PAREN@3215..3216 ")"
2060 R_PAREN@3215..3216 ")"2043 COMMA@3216..3217 ","
2061 COMMA@3216..3217 ","2044 WHITESPACE@3217..3228 "\n "
2062 WHITESPACE@3217..3228 "\n "2045 BIND_DESTRUCT@3228..3303
2063 BIND_DESTRUCT@3228..33032046 DESTRUCT_FULL@3228..3237
2064 DESTRUCT_FULL@3228..32372047 NAME@3228..3237
2065 NAME@3228..32372048 IDENT@3228..3237 "main_body"
2066 IDENT@3228..3237 "main_body"2049 WHITESPACE@3237..3238 " "
2067 WHITESPACE@3237..3238 " "2050 ASSIGN@3238..3239 "="
2068 ASSIGN@3238..3239 "="2051 WHITESPACE@3239..3240 " "
2069 WHITESPACE@3239..3240 " "2052 EXPR_IF_THEN_ELSE@3240..3303
2070 EXPR_IF_THEN_ELSE@3240..33032053 IF_KW@3240..3242 "if"
2071 IF_KW@3240..3242 "if"2054 WHITESPACE@3242..3243 " "
2072 WHITESPACE@3242..3243 " "2055 EXPR_APPLY@3243..3269
2073 EXPR_APPLY@3243..32692056 EXPR_INDEX@3243..3256
2074 EXPR_INDEX@3243..32562057 EXPR_VAR@3243..3246
2075 EXPR_VAR@3243..32462058 NAME@3243..3246
2076 NAME@3243..32462059 IDENT@3243..3246 "std"
2077 IDENT@3243..3246 "std"2060 DOT@3246..3247 "."
2078 DOT@3246..3247 "."2061 NAME@3247..3256
2079 NAME@3247..32562062 IDENT@3247..3256 "objectHas"
2080 IDENT@3247..3256 "objectHas"2063 ARGS_DESC@3256..3269
2081 ARGS_DESC@3256..32692064 L_PAREN@3256..3257 "("
2082 L_PAREN@3256..3257 "("2065 ARG@3257..3260
2083 ARG@3257..32602066 EXPR_VAR@3257..3260
2084 EXPR_VAR@3257..32602067 NAME@3257..3260
2085 NAME@3257..32602068 IDENT@3257..3260 "ini"
2086 IDENT@3257..3260 "ini"2069 COMMA@3260..3261 ","
2087 COMMA@3260..3261 ","2070 WHITESPACE@3261..3262 " "
2088 WHITESPACE@3261..3262 " "2071 ARG@3262..3268
2089 ARG@3262..32682072 EXPR_STRING@3262..3268
2090 EXPR_STRING@3262..32682073 STRING_SINGLE@3262..3268 "'main'"
2091 STRING_SINGLE@3262..3268 "'main'"2074 R_PAREN@3268..3269 ")"
2092 R_PAREN@3268..3269 ")"2075 WHITESPACE@3269..3270 " "
2093 WHITESPACE@3269..3270 " "2076 THEN_KW@3270..3274 "then"
2094 THEN_KW@3270..3274 "then"2077 WHITESPACE@3274..3275 " "
2095 WHITESPACE@3274..3275 " "2078 TRUE_EXPR@3275..3295
2096 TRUE_EXPR@3275..32952079 EXPR_APPLY@3275..3295
2097 EXPR_APPLY@3275..32952080 EXPR_VAR@3275..3285
2098 EXPR_VAR@3275..32852081 NAME@3275..3285
2099 NAME@3275..32852082 IDENT@3275..3285 "body_lines"
2100 IDENT@3275..3285 "body_lines"2083 ARGS_DESC@3285..3295
2101 ARGS_DESC@3285..32952084 L_PAREN@3285..3286 "("
2102 L_PAREN@3285..3286 "("2085 ARG@3286..3294
2103 ARG@3286..32942086 EXPR_INDEX@3286..3294
2104 EXPR_INDEX@3286..32942087 EXPR_VAR@3286..3289
2105 EXPR_VAR@3286..32892088 NAME@3286..3289
2106 NAME@3286..32892089 IDENT@3286..3289 "ini"
2107 IDENT@3286..3289 "ini"2090 DOT@3289..3290 "."
2108 DOT@3289..3290 "."2091 NAME@3290..3294
2109 NAME@3290..32942092 IDENT@3290..3294 "main"
2110 IDENT@3290..3294 "main"2093 R_PAREN@3294..3295 ")"
2111 R_PAREN@3294..3295 ")"2094 WHITESPACE@3295..3296 " "
2112 WHITESPACE@3295..3296 " "2095 ELSE_KW@3296..3300 "else"
2113 ELSE_KW@3296..3300 "else"2096 WHITESPACE@3300..3301 " "
2114 WHITESPACE@3300..3301 " "2097 FALSE_EXPR@3301..3303
2115 FALSE_EXPR@3301..33032098 EXPR_ARRAY@3301..3303
2116 EXPR_ARRAY@3301..33032099 L_BRACK@3301..3302 "["
2117 L_BRACK@3301..3302 "["2100 R_BRACK@3302..3303 "]"
2118 R_BRACK@3302..3303 "]"2101 COMMA@3303..3304 ","
2119 COMMA@3303..3304 ","2102 WHITESPACE@3304..3315 "\n "
2120 WHITESPACE@3304..3315 "\n "2103 BIND_DESTRUCT@3315..3423
2121 BIND_DESTRUCT@3315..34232104 DESTRUCT_FULL@3315..3327
2122 DESTRUCT_FULL@3315..33272105 NAME@3315..3327
2123 NAME@3315..33272106 IDENT@3315..3327 "all_sections"
2124 IDENT@3315..3327 "all_sections"2107 WHITESPACE@3327..3328 " "
2125 WHITESPACE@3327..3328 " "2108 ASSIGN@3328..3329 "="
2126 ASSIGN@3328..3329 "="2109 WHITESPACE@3329..3330 " "
2127 WHITESPACE@3329..3330 " "2110 EXPR_ARRAY_COMP@3330..3423
2128 EXPR_ARRAY_COMP@3330..34232111 L_BRACK@3330..3331 "["
2129 L_BRACK@3330..3331 "["2112 WHITESPACE@3331..3338 "\n "
2130 WHITESPACE@3331..3338 "\n "2113 EXPR_APPLY@3338..3371
2131 EXPR_APPLY@3338..33712114 EXPR_VAR@3338..3351
2132 EXPR_VAR@3338..33512115 NAME@3338..3351
2133 NAME@3338..33512116 IDENT@3338..3351 "section_lines"
2134 IDENT@3338..3351 "section_lines"2117 ARGS_DESC@3351..3371
2135 ARGS_DESC@3351..33712118 L_PAREN@3351..3352 "("
2136 L_PAREN@3351..3352 "("2119 ARG@3352..3353
2137 ARG@3352..33532120 EXPR_VAR@3352..3353
2138 EXPR_VAR@3352..33532121 NAME@3352..3353
2139 NAME@3352..33532122 IDENT@3352..3353 "k"
2140 IDENT@3352..3353 "k"2123 COMMA@3353..3354 ","
2141 COMMA@3353..3354 ","2124 WHITESPACE@3354..3355 " "
2142 WHITESPACE@3354..3355 " "2125 ARG@3355..3370
2143 ARG@3355..33702126 EXPR_INDEX_EXPR@3355..3370
2144 EXPR_INDEX_EXPR@3355..33702127 LHS_EXPR@3355..3367
2145 LHS_EXPR@3355..33672128 EXPR_INDEX@3355..3367
2146 EXPR_INDEX@3355..33672129 EXPR_VAR@3355..3358
2147 EXPR_VAR@3355..33582130 NAME@3355..3358
2148 NAME@3355..33582131 IDENT@3355..3358 "ini"
2149 IDENT@3355..3358 "ini"2132 DOT@3358..3359 "."
2150 DOT@3358..3359 "."2133 NAME@3359..3367
2151 NAME@3359..33672134 IDENT@3359..3367 "sections"
2152 IDENT@3359..3367 "sections"2135 L_BRACK@3367..3368 "["
2153 L_BRACK@3367..3368 "["2136 EXPR_VAR@3368..3369
2154 EXPR_VAR@3368..33692137 NAME@3368..3369
2155 NAME@3368..33692138 IDENT@3368..3369 "k"
2156 IDENT@3368..3369 "k"2139 R_BRACK@3369..3370 "]"
2157 R_BRACK@3369..3370 "]"2140 R_PAREN@3370..3371 ")"
2158 R_PAREN@3370..3371 ")"2141 WHITESPACE@3371..3378 "\n "
2159 WHITESPACE@3371..3378 "\n "2142 FOR_SPEC@3378..3417
2160 FOR_SPEC@3378..34172143 FOR_KW@3378..3381 "for"
2161 FOR_KW@3378..3381 "for"2144 WHITESPACE@3381..3382 " "
2162 WHITESPACE@3381..3382 " "2145 NAME@3382..3383
2163 NAME@3382..33832146 IDENT@3382..3383 "k"
2164 IDENT@3382..3383 "k"2147 WHITESPACE@3383..3384 " "
2165 WHITESPACE@3383..3384 " "2148 IN_KW@3384..3386 "in"
2166 IN_KW@3384..3386 "in"2149 WHITESPACE@3386..3387 " "
2167 WHITESPACE@3386..3387 " "2150 EXPR_APPLY@3387..3417
2168 EXPR_APPLY@3387..34172151 EXPR_INDEX@3387..3403
2169 EXPR_INDEX@3387..34032152 EXPR_VAR@3387..3390
2170 EXPR_VAR@3387..33902153 NAME@3387..3390
2171 NAME@3387..33902154 IDENT@3387..3390 "std"
2172 IDENT@3387..3390 "std"2155 DOT@3390..3391 "."
2173 DOT@3390..3391 "."2156 NAME@3391..3403
2174 NAME@3391..34032157 IDENT@3391..3403 "objectFields"
2175 IDENT@3391..3403 "objectFields"2158 ARGS_DESC@3403..3417
2176 ARGS_DESC@3403..34172159 L_PAREN@3403..3404 "("
2177 L_PAREN@3403..3404 "("2160 ARG@3404..3416
2178 ARG@3404..34162161 EXPR_INDEX@3404..3416
2179 EXPR_INDEX@3404..34162162 EXPR_VAR@3404..3407
2180 EXPR_VAR@3404..34072163 NAME@3404..3407
2181 NAME@3404..34072164 IDENT@3404..3407 "ini"
2182 IDENT@3404..3407 "ini"2165 DOT@3407..3408 "."
2183 DOT@3407..3408 "."2166 NAME@3408..3416
2184 NAME@3408..34162167 IDENT@3408..3416 "sections"
2185 IDENT@3408..3416 "sections"2168 R_PAREN@3416..3417 ")"
2186 R_PAREN@3416..3417 ")"2169 WHITESPACE@3417..3422 "\n "
2187 WHITESPACE@3417..3422 "\n "2170 R_BRACK@3422..3423 "]"
2188 R_BRACK@3422..3423 "]"2171 SEMI@3423..3424 ";"
2189 SEMI@3423..3424 ";"2172 WHITESPACE@3424..3429 "\n "
2190 WHITESPACE@3424..3429 "\n "2173 EXPR_APPLY@3429..3495
2191 EXPR_APPLY@3429..34952174 EXPR_INDEX@3429..3437
2192 EXPR_INDEX@3429..34372175 EXPR_VAR@3429..3432
2193 EXPR_VAR@3429..34322176 NAME@3429..3432
2194 NAME@3429..34322177 IDENT@3429..3432 "std"
2195 IDENT@3429..3432 "std"2178 DOT@3432..3433 "."
2196 DOT@3432..3433 "."2179 NAME@3433..3437
2197 NAME@3433..34372180 IDENT@3433..3437 "join"
2198 IDENT@3433..3437 "join"2181 ARGS_DESC@3437..3495
2199 ARGS_DESC@3437..34952182 L_PAREN@3437..3438 "("
2200 L_PAREN@3437..3438 "("2183 ARG@3438..3442
2201 ARG@3438..34422184 EXPR_STRING@3438..3442
2202 EXPR_STRING@3438..34422185 STRING_SINGLE@3438..3442 "'\\n'"
2203 STRING_SINGLE@3438..3442 "'\\n'"2186 COMMA@3442..3443 ","
2204 COMMA@3442..3443 ","2187 WHITESPACE@3443..3444 " "
2205 WHITESPACE@3443..3444 " "2188 ARG@3444..3494
2206 ARG@3444..34942189 EXPR_BINARY@3444..3494
2207 EXPR_BINARY@3444..34942190 LHS_EXPR@3444..3487
2208 LHS_EXPR@3444..34872191 EXPR_BINARY@3444..3487
2209 EXPR_BINARY@3444..34872192 LHS_EXPR@3444..3453
2210 LHS_EXPR@3444..34532193 EXPR_VAR@3444..3453
2211 EXPR_VAR@3444..34532194 NAME@3444..3453
2212 NAME@3444..34532195 IDENT@3444..3453 "main_body"
2213 IDENT@3444..3453 "main_body"2196 WHITESPACE@3453..3454 " "
2214 WHITESPACE@3453..3454 " "2197 PLUS@3454..3455 "+"
2215 PLUS@3454..3455 "+"2198 WHITESPACE@3455..3456 " "
2216 WHITESPACE@3455..3456 " "2199 EXPR_APPLY@3456..3487
2217 EXPR_APPLY@3456..34872200 EXPR_INDEX@3456..3473
2218 EXPR_INDEX@3456..34732201 EXPR_VAR@3456..3459
2219 EXPR_VAR@3456..34592202 NAME@3456..3459
2220 NAME@3456..34592203 IDENT@3456..3459 "std"
2221 IDENT@3456..3459 "std"2204 DOT@3459..3460 "."
2222 DOT@3459..3460 "."2205 NAME@3460..3473
2223 NAME@3460..34732206 IDENT@3460..3473 "flattenArrays"
2224 IDENT@3460..3473 "flattenArrays"2207 ARGS_DESC@3473..3487
2225 ARGS_DESC@3473..34872208 L_PAREN@3473..3474 "("
2226 L_PAREN@3473..3474 "("2209 ARG@3474..3486
2227 ARG@3474..34862210 EXPR_VAR@3474..3486
2228 EXPR_VAR@3474..34862211 NAME@3474..3486
2229 NAME@3474..34862212 IDENT@3474..3486 "all_sections"
2230 IDENT@3474..3486 "all_sections"2213 R_PAREN@3486..3487 ")"
2231 R_PAREN@3486..3487 ")"2214 WHITESPACE@3487..3488 " "
2232 WHITESPACE@3487..3488 " "2215 PLUS@3488..3489 "+"
2233 PLUS@3488..3489 "+"2216 WHITESPACE@3489..3490 " "
2234 WHITESPACE@3489..3490 " "2217 EXPR_ARRAY@3490..3494
2235 EXPR_ARRAY@3490..34942218 L_BRACK@3490..3491 "["
2236 L_BRACK@3490..3491 "["2219 EXPR_STRING@3491..3493
2237 EXPR_STRING@3491..34932220 STRING_SINGLE@3491..3493 "''"
2238 STRING_SINGLE@3491..3493 "''"2221 R_BRACK@3493..3494 "]"
2239 R_BRACK@3493..3494 "]"2222 R_PAREN@3494..3495 ")"
2240 R_PAREN@3494..3495 ")"
2241 COMMA@3495..3496 ","2223 COMMA@3495..3496 ","
2242 WHITESPACE@3496..3500 "\n\n "2224 WHITESPACE@3496..3500 "\n\n "
2243 MEMBER_FIELD@3500..35532225 MEMBER_FIELD_METHOD@3500..3553
2244 FIELD_METHOD@3500..35532226 FIELD_NAME_FIXED@3500..3512
2245 FIELD_NAME_FIXED@3500..3512
2246 NAME@3500..35122227 NAME@3500..3512
2247 IDENT@3500..3512 "manifestToml"2228 IDENT@3500..3512 "manifestToml"
2248 PARAMS_DESC@3512..35192229 PARAMS_DESC@3512..3519
2249 L_PAREN@3512..3513 "("2230 L_PAREN@3512..3513 "("
2250 PARAM@3513..35182231 PARAM@3513..3518
2251 DESTRUCT_FULL@3513..35182232 DESTRUCT_FULL@3513..3518
2252 NAME@3513..35182233 NAME@3513..3518
2253 IDENT@3513..3518 "value"2234 IDENT@3513..3518 "value"
2254 R_PAREN@3518..3519 ")"2235 R_PAREN@3518..3519 ")"
2255 COLONCOLON@3519..3521 "::"2236 COLONCOLON@3519..3521 "::"
2256 WHITESPACE@3521..3522 " "2237 WHITESPACE@3521..3522 " "
2257 EXPR_APPLY@3522..35532238 EXPR_APPLY@3522..3553
2258 EXPR_INDEX@3522..35402239 EXPR_INDEX@3522..3540
2259 EXPR_VAR@3522..35252240 EXPR_VAR@3522..3525
2260 NAME@3522..35252241 NAME@3522..3525
2261 IDENT@3522..3525 "std"2242 IDENT@3522..3525 "std"
2262 DOT@3525..3526 "."2243 DOT@3525..3526 "."
2263 NAME@3526..35402244 NAME@3526..3540
2264 IDENT@3526..3540 "manifestTomlEx"2245 IDENT@3526..3540 "manifestTomlEx"
2265 ARGS_DESC@3540..35532246 ARGS_DESC@3540..3553
2266 L_PAREN@3540..3541 "("2247 L_PAREN@3540..3541 "("
2267 ARG@3541..35462248 ARG@3541..3546
2268 EXPR_VAR@3541..35462249 EXPR_VAR@3541..3546
2269 NAME@3541..35462250 NAME@3541..3546
2270 IDENT@3541..3546 "value"2251 IDENT@3541..3546 "value"
2271 COMMA@3546..3547 ","2252 COMMA@3546..3547 ","
2272 WHITESPACE@3547..3548 " "2253 WHITESPACE@3547..3548 " "
2273 ARG@3548..35522254 ARG@3548..3552
2274 EXPR_STRING@3548..35522255 EXPR_STRING@3548..3552
2275 STRING_SINGLE@3548..3552 "' '"2256 STRING_SINGLE@3548..3552 "' '"
2276 R_PAREN@3552..3553 ")"2257 R_PAREN@3552..3553 ")"
2277 COMMA@3553..3554 ","2258 COMMA@3553..3554 ","
2278 WHITESPACE@3554..3558 "\n\n "2259 WHITESPACE@3554..3558 "\n\n "
2279 MEMBER_FIELD@3558..36132260 MEMBER_FIELD_METHOD@3558..3613
2280 FIELD_METHOD@3558..36132261 FIELD_NAME_FIXED@3558..3576
2281 FIELD_NAME_FIXED@3558..3576
2282 NAME@3558..35762262 NAME@3558..3576
2283 IDENT@3558..3576 "escapeStringPython"2263 IDENT@3558..3576 "escapeStringPython"
2284 PARAMS_DESC@3576..35812264 PARAMS_DESC@3576..3581
2285 L_PAREN@3576..3577 "("2265 L_PAREN@3576..3577 "("
2286 PARAM@3577..35802266 PARAM@3577..3580
2287 DESTRUCT_FULL@3577..35802267 DESTRUCT_FULL@3577..3580
2288 NAME@3577..35802268 NAME@3577..3580
2289 IDENT@3577..3580 "str"2269 IDENT@3577..3580 "str"
2290 R_PAREN@3580..3581 ")"2270 R_PAREN@3580..3581 ")"
2291 COLONCOLON@3581..3583 "::"2271 COLONCOLON@3581..3583 "::"
2292 WHITESPACE@3583..3588 "\n "2272 WHITESPACE@3583..3588 "\n "
2293 EXPR_APPLY@3588..36132273 EXPR_APPLY@3588..3613
2294 EXPR_INDEX@3588..36082274 EXPR_INDEX@3588..3608
2295 EXPR_VAR@3588..35912275 EXPR_VAR@3588..3591
2296 NAME@3588..35912276 NAME@3588..3591
2297 IDENT@3588..3591 "std"2277 IDENT@3588..3591 "std"
2298 DOT@3591..3592 "."2278 DOT@3591..3592 "."
2299 NAME@3592..36082279 NAME@3592..3608
2300 IDENT@3592..3608 "escapeStringJson"2280 IDENT@3592..3608 "escapeStringJson"
2301 ARGS_DESC@3608..36132281 ARGS_DESC@3608..3613
2302 L_PAREN@3608..3609 "("2282 L_PAREN@3608..3609 "("
2303 ARG@3609..36122283 ARG@3609..3612
2304 EXPR_VAR@3609..36122284 EXPR_VAR@3609..3612
2305 NAME@3609..36122285 NAME@3609..3612
2306 IDENT@3609..3612 "str"2286 IDENT@3609..3612 "str"
2307 R_PAREN@3612..3613 ")"2287 R_PAREN@3612..3613 ")"
2308 COMMA@3613..3614 ","2288 COMMA@3613..3614 ","
2309 WHITESPACE@3614..3618 "\n\n "2289 WHITESPACE@3614..3618 "\n\n "
2310 MEMBER_FIELD@3618..38352290 MEMBER_FIELD_METHOD@3618..3835
2311 FIELD_METHOD@3618..38352291 FIELD_NAME_FIXED@3618..3634
2312 FIELD_NAME_FIXED@3618..36342292 NAME@3618..3634
2313 NAME@3618..36342293 IDENT@3618..3634 "escapeStringBash"
2314 IDENT@3618..3634 "escapeStringBash"2294 PARAMS_DESC@3634..3640
2315 PARAMS_DESC@3634..36402295 L_PAREN@3634..3635 "("
2316 L_PAREN@3634..3635 "("2296 PARAM@3635..3639
2317 PARAM@3635..36392297 DESTRUCT_FULL@3635..3639
2318 DESTRUCT_FULL@3635..36392298 NAME@3635..3639
2319 NAME@3635..36392299 IDENT@3635..3639 "str_"
2320 IDENT@3635..3639 "str_"2300 R_PAREN@3639..3640 ")"
2321 R_PAREN@3639..3640 ")"2301 COLONCOLON@3640..3642 "::"
2322 COLONCOLON@3640..3642 "::"2302 WHITESPACE@3642..3647 "\n "
2323 WHITESPACE@3642..3647 "\n "2303 EXPR_LOCAL@3647..3835
2324 EXPR_LOCAL@3647..38352304 LOCAL_KW@3647..3652 "local"
2325 LOCAL_KW@3647..3652 "local"2305 WHITESPACE@3652..3653 " "
2326 WHITESPACE@3652..3653 " "2306 BIND_DESTRUCT@3653..3677
2327 BIND_DESTRUCT@3653..36772307 DESTRUCT_FULL@3653..3656
2328 DESTRUCT_FULL@3653..36562308 NAME@3653..3656
2329 NAME@3653..36562309 IDENT@3653..3656 "str"
2330 IDENT@3653..3656 "str"2310 WHITESPACE@3656..3657 " "
2331 WHITESPACE@3656..3657 " "2311 ASSIGN@3657..3658 "="
2332 ASSIGN@3657..3658 "="2312 WHITESPACE@3658..3659 " "
2333 WHITESPACE@3658..3659 " "2313 EXPR_APPLY@3659..3677
2334 EXPR_APPLY@3659..36772314 EXPR_INDEX@3659..3671
2335 EXPR_INDEX@3659..36712315 EXPR_VAR@3659..3662
2336 EXPR_VAR@3659..36622316 NAME@3659..3662
2337 NAME@3659..36622317 IDENT@3659..3662 "std"
2338 IDENT@3659..3662 "std"2318 DOT@3662..3663 "."
2339 DOT@3662..3663 "."2319 NAME@3663..3671
2340 NAME@3663..36712320 IDENT@3663..3671 "toString"
2341 IDENT@3663..3671 "toString"2321 ARGS_DESC@3671..3677
2342 ARGS_DESC@3671..36772322 L_PAREN@3671..3672 "("
2343 L_PAREN@3671..3672 "("2323 ARG@3672..3676
2344 ARG@3672..36762324 EXPR_VAR@3672..3676
2345 EXPR_VAR@3672..36762325 NAME@3672..3676
2346 NAME@3672..36762326 IDENT@3672..3676 "str_"
2347 IDENT@3672..3676 "str_"2327 R_PAREN@3676..3677 ")"
2348 R_PAREN@3676..3677 ")"2328 SEMI@3677..3678 ";"
2349 SEMI@3677..3678 ";"2329 WHITESPACE@3678..3683 "\n "
2350 WHITESPACE@3678..3683 "\n "2330 EXPR_LOCAL@3683..3835
2351 EXPR_LOCAL@3683..38352331 LOCAL_KW@3683..3688 "local"
2352 LOCAL_KW@3683..3688 "local"2332 WHITESPACE@3688..3689 " "
2353 WHITESPACE@3688..3689 " "2333 BIND_FUNCTION@3689..3764
2354 BIND_FUNCTION@3689..37642334 NAME@3689..3694
2355 NAME@3689..36942335 IDENT@3689..3694 "trans"
2356 IDENT@3689..3694 "trans"2336 PARAMS_DESC@3694..3698
2357 PARAMS_DESC@3694..36982337 L_PAREN@3694..3695 "("
2358 L_PAREN@3694..3695 "("2338 PARAM@3695..3697
2359 PARAM@3695..36972339 DESTRUCT_FULL@3695..3697
2360 DESTRUCT_FULL@3695..36972340 NAME@3695..3697
2361 NAME@3695..36972341 IDENT@3695..3697 "ch"
2362 IDENT@3695..3697 "ch"2342 R_PAREN@3697..3698 ")"
2363 R_PAREN@3697..3698 ")"2343 WHITESPACE@3698..3699 " "
2364 WHITESPACE@3698..3699 " "2344 ASSIGN@3699..3700 "="
2365 ASSIGN@3699..3700 "="2345 WHITESPACE@3700..3707 "\n "
2366 WHITESPACE@3700..3707 "\n "2346 EXPR_IF_THEN_ELSE@3707..3764
2367 EXPR_IF_THEN_ELSE@3707..37642347 IF_KW@3707..3709 "if"
2368 IF_KW@3707..3709 "if"2348 WHITESPACE@3709..3710 " "
2369 WHITESPACE@3709..3710 " "2349 EXPR_BINARY@3710..3719
2370 EXPR_BINARY@3710..37192350 LHS_EXPR@3710..3712
2371 LHS_EXPR@3710..37122351 EXPR_VAR@3710..3712
2372 EXPR_VAR@3710..37122352 NAME@3710..3712
2373 NAME@3710..37122353 IDENT@3710..3712 "ch"
2374 IDENT@3710..3712 "ch"2354 WHITESPACE@3712..3713 " "
2375 WHITESPACE@3712..3713 " "2355 EQ@3713..3715 "=="
2376 EQ@3713..3715 "=="2356 WHITESPACE@3715..3716 " "
2377 WHITESPACE@3715..3716 " "2357 EXPR_STRING@3716..3719
2378 EXPR_STRING@3716..37192358 STRING_DOUBLE@3716..3719 "\"'\""
2379 STRING_DOUBLE@3716..3719 "\"'\""2359 WHITESPACE@3719..3720 " "
2380 WHITESPACE@3719..3720 " "2360 THEN_KW@3720..3724 "then"
2381 THEN_KW@3720..3724 "then"2361 WHITESPACE@3724..3733 "\n "
2382 WHITESPACE@3724..3733 "\n "2362 TRUE_EXPR@3733..3742
2383 TRUE_EXPR@3733..37422363 EXPR_STRING@3733..3742
2384 EXPR_STRING@3733..37422364 STRING_DOUBLE@3733..3742 "\"'\\\"'\\\"'\""
2385 STRING_DOUBLE@3733..3742 "\"'\\\"'\\\"'\""2365 WHITESPACE@3742..3749 "\n "
2386 WHITESPACE@3742..3749 "\n "2366 ELSE_KW@3749..3753 "else"
2387 ELSE_KW@3749..3753 "else"2367 WHITESPACE@3753..3762 "\n "
2388 WHITESPACE@3753..3762 "\n "2368 FALSE_EXPR@3762..3764
2389 FALSE_EXPR@3762..37642369 EXPR_VAR@3762..3764
2390 EXPR_VAR@3762..37642370 NAME@3762..3764
2391 NAME@3762..37642371 IDENT@3762..3764 "ch"
2392 IDENT@3762..3764 "ch"2372 SEMI@3764..3765 ";"
2393 SEMI@3764..3765 ";"2373 WHITESPACE@3765..3770 "\n "
2394 WHITESPACE@3765..3770 "\n "2374 EXPR_BINARY@3770..3835
2395 EXPR_BINARY@3770..38352375 LHS_EXPR@3770..3776
2396 LHS_EXPR@3770..37762376 EXPR_STRING@3770..3776
2397 EXPR_STRING@3770..37762377 STRING_DOUBLE@3770..3776 "\"'%s'\""
2398 STRING_DOUBLE@3770..3776 "\"'%s'\""2378 WHITESPACE@3776..3777 " "
2399 WHITESPACE@3776..3777 " "2379 MODULO@3777..3778 "%"
2400 MODULO@3777..3778 "%"2380 WHITESPACE@3778..3779 " "
2401 WHITESPACE@3778..3779 " "2381 EXPR_APPLY@3779..3835
2402 EXPR_APPLY@3779..38352382 EXPR_INDEX@3779..3787
2403 EXPR_INDEX@3779..37872383 EXPR_VAR@3779..3782
2404 EXPR_VAR@3779..37822384 NAME@3779..3782
2405 NAME@3779..37822385 IDENT@3779..3782 "std"
2406 IDENT@3779..3782 "std"2386 DOT@3782..3783 "."
2407 DOT@3782..3783 "."2387 NAME@3783..3787
2408 NAME@3783..37872388 IDENT@3783..3787 "join"
2409 IDENT@3783..3787 "join"2389 ARGS_DESC@3787..3835
2410 ARGS_DESC@3787..38352390 L_PAREN@3787..3788 "("
2411 L_PAREN@3787..3788 "("2391 ARG@3788..3790
2412 ARG@3788..37902392 EXPR_STRING@3788..3790
2413 EXPR_STRING@3788..37902393 STRING_SINGLE@3788..3790 "''"
2414 STRING_SINGLE@3788..3790 "''"2394 COMMA@3790..3791 ","
2415 COMMA@3790..3791 ","2395 WHITESPACE@3791..3792 " "
2416 WHITESPACE@3791..3792 " "2396 ARG@3792..3834
2417 ARG@3792..38342397 EXPR_ARRAY_COMP@3792..3834
2418 EXPR_ARRAY_COMP@3792..38342398 L_BRACK@3792..3793 "["
2419 L_BRACK@3792..3793 "["2399 EXPR_APPLY@3793..3802
2420 EXPR_APPLY@3793..38022400 EXPR_VAR@3793..3798
2421 EXPR_VAR@3793..37982401 NAME@3793..3798
2422 NAME@3793..37982402 IDENT@3793..3798 "trans"
2423 IDENT@3793..3798 "trans"2403 ARGS_DESC@3798..3802
2424 ARGS_DESC@3798..38022404 L_PAREN@3798..3799 "("
2425 L_PAREN@3798..3799 "("2405 ARG@3799..3801
2426 ARG@3799..38012406 EXPR_VAR@3799..3801
2427 EXPR_VAR@3799..38012407 NAME@3799..3801
2428 NAME@3799..38012408 IDENT@3799..3801 "ch"
2429 IDENT@3799..3801 "ch"2409 R_PAREN@3801..3802 ")"
2430 R_PAREN@3801..3802 ")"2410 WHITESPACE@3802..3803 " "
2431 WHITESPACE@3802..3803 " "2411 FOR_SPEC@3803..3833
2432 FOR_SPEC@3803..38332412 FOR_KW@3803..3806 "for"
2433 FOR_KW@3803..3806 "for"2413 WHITESPACE@3806..3807 " "
2434 WHITESPACE@3806..3807 " "2414 NAME@3807..3809
2435 NAME@3807..38092415 IDENT@3807..3809 "ch"
2436 IDENT@3807..3809 "ch"2416 WHITESPACE@3809..3810 " "
2437 WHITESPACE@3809..3810 " "2417 IN_KW@3810..3812 "in"
2438 IN_KW@3810..3812 "in"2418 WHITESPACE@3812..3813 " "
2439 WHITESPACE@3812..3813 " "2419 EXPR_APPLY@3813..3833
2440 EXPR_APPLY@3813..38332420 EXPR_INDEX@3813..3828
2441 EXPR_INDEX@3813..38282421 EXPR_VAR@3813..3816
2442 EXPR_VAR@3813..38162422 NAME@3813..3816
2443 NAME@3813..38162423 IDENT@3813..3816 "std"
2444 IDENT@3813..3816 "std"2424 DOT@3816..3817 "."
2445 DOT@3816..3817 "."2425 NAME@3817..3828
2446 NAME@3817..38282426 IDENT@3817..3828 "stringChars"
2447 IDENT@3817..3828 "stringChars"2427 ARGS_DESC@3828..3833
2448 ARGS_DESC@3828..38332428 L_PAREN@3828..3829 "("
2449 L_PAREN@3828..3829 "("2429 ARG@3829..3832
2450 ARG@3829..38322430 EXPR_VAR@3829..3832
2451 EXPR_VAR@3829..38322431 NAME@3829..3832
2452 NAME@3829..38322432 IDENT@3829..3832 "str"
2453 IDENT@3829..3832 "str"2433 R_PAREN@3832..3833 ")"
2454 R_PAREN@3832..3833 ")"2434 R_BRACK@3833..3834 "]"
2455 R_BRACK@3833..3834 "]"2435 R_PAREN@3834..3835 ")"
2456 R_PAREN@3834..3835 ")"
2457 COMMA@3835..3836 ","2436 COMMA@3835..3836 ","
2458 WHITESPACE@3836..3840 "\n\n "2437 WHITESPACE@3836..3840 "\n\n "
2459 MEMBER_FIELD@3840..40542438 MEMBER_FIELD_METHOD@3840..4054
2460 FIELD_METHOD@3840..40542439 FIELD_NAME_FIXED@3840..3859
2461 FIELD_NAME_FIXED@3840..38592440 NAME@3840..3859
2462 NAME@3840..38592441 IDENT@3840..3859 "escapeStringDollars"
2463 IDENT@3840..3859 "escapeStringDollars"2442 PARAMS_DESC@3859..3865
2464 PARAMS_DESC@3859..38652443 L_PAREN@3859..3860 "("
2465 L_PAREN@3859..3860 "("2444 PARAM@3860..3864
2466 PARAM@3860..38642445 DESTRUCT_FULL@3860..3864
2467 DESTRUCT_FULL@3860..38642446 NAME@3860..3864
2468 NAME@3860..38642447 IDENT@3860..3864 "str_"
2469 IDENT@3860..3864 "str_"2448 R_PAREN@3864..3865 ")"
2470 R_PAREN@3864..3865 ")"2449 COLONCOLON@3865..3867 "::"
2471 COLONCOLON@3865..3867 "::"2450 WHITESPACE@3867..3872 "\n "
2472 WHITESPACE@3867..3872 "\n "2451 EXPR_LOCAL@3872..4054
2473 EXPR_LOCAL@3872..40542452 LOCAL_KW@3872..3877 "local"
2474 LOCAL_KW@3872..3877 "local"2453 WHITESPACE@3877..3878 " "
2475 WHITESPACE@3877..3878 " "2454 BIND_DESTRUCT@3878..3902
2476 BIND_DESTRUCT@3878..39022455 DESTRUCT_FULL@3878..3881
2477 DESTRUCT_FULL@3878..38812456 NAME@3878..3881
2478 NAME@3878..38812457 IDENT@3878..3881 "str"
2479 IDENT@3878..3881 "str"2458 WHITESPACE@3881..3882 " "
2480 WHITESPACE@3881..3882 " "2459 ASSIGN@3882..3883 "="
2481 ASSIGN@3882..3883 "="2460 WHITESPACE@3883..3884 " "
2482 WHITESPACE@3883..3884 " "2461 EXPR_APPLY@3884..3902
2483 EXPR_APPLY@3884..39022462 EXPR_INDEX@3884..3896
2484 EXPR_INDEX@3884..38962463 EXPR_VAR@3884..3887
2485 EXPR_VAR@3884..38872464 NAME@3884..3887
2486 NAME@3884..38872465 IDENT@3884..3887 "std"
2487 IDENT@3884..3887 "std"2466 DOT@3887..3888 "."
2488 DOT@3887..3888 "."2467 NAME@3888..3896
2489 NAME@3888..38962468 IDENT@3888..3896 "toString"
2490 IDENT@3888..3896 "toString"2469 ARGS_DESC@3896..3902
2491 ARGS_DESC@3896..39022470 L_PAREN@3896..3897 "("
2492 L_PAREN@3896..3897 "("2471 ARG@3897..3901
2493 ARG@3897..39012472 EXPR_VAR@3897..3901
2494 EXPR_VAR@3897..39012473 NAME@3897..3901
2495 NAME@3897..39012474 IDENT@3897..3901 "str_"
2496 IDENT@3897..3901 "str_"2475 R_PAREN@3901..3902 ")"
2497 R_PAREN@3901..3902 ")"2476 SEMI@3902..3903 ";"
2498 SEMI@3902..3903 ";"2477 WHITESPACE@3903..3908 "\n "
2499 WHITESPACE@3903..3908 "\n "2478 EXPR_LOCAL@3908..4054
2500 EXPR_LOCAL@3908..40542479 LOCAL_KW@3908..3913 "local"
2501 LOCAL_KW@3908..3913 "local"2480 WHITESPACE@3913..3914 " "
2502 WHITESPACE@3913..3914 " "2481 BIND_FUNCTION@3914..3984
2503 BIND_FUNCTION@3914..39842482 NAME@3914..3919
2504 NAME@3914..39192483 IDENT@3914..3919 "trans"
2505 IDENT@3914..3919 "trans"2484 PARAMS_DESC@3919..3923
2506 PARAMS_DESC@3919..39232485 L_PAREN@3919..3920 "("
2507 L_PAREN@3919..3920 "("2486 PARAM@3920..3922
2508 PARAM@3920..39222487 DESTRUCT_FULL@3920..3922
2509 DESTRUCT_FULL@3920..39222488 NAME@3920..3922
2510 NAME@3920..39222489 IDENT@3920..3922 "ch"
2511 IDENT@3920..3922 "ch"2490 R_PAREN@3922..3923 ")"
2512 R_PAREN@3922..3923 ")"2491 WHITESPACE@3923..3924 " "
2513 WHITESPACE@3923..3924 " "2492 ASSIGN@3924..3925 "="
2514 ASSIGN@3924..3925 "="2493 WHITESPACE@3925..3932 "\n "
2515 WHITESPACE@3925..3932 "\n "2494 EXPR_IF_THEN_ELSE@3932..3984
2516 EXPR_IF_THEN_ELSE@3932..39842495 IF_KW@3932..3934 "if"
2517 IF_KW@3932..3934 "if"2496 WHITESPACE@3934..3935 " "
2518 WHITESPACE@3934..3935 " "2497 EXPR_BINARY@3935..3944
2519 EXPR_BINARY@3935..39442498 LHS_EXPR@3935..3937
2520 LHS_EXPR@3935..39372499 EXPR_VAR@3935..3937
2521 EXPR_VAR@3935..39372500 NAME@3935..3937
2522 NAME@3935..39372501 IDENT@3935..3937 "ch"
2523 IDENT@3935..3937 "ch"2502 WHITESPACE@3937..3938 " "
2524 WHITESPACE@3937..3938 " "2503 EQ@3938..3940 "=="
2525 EQ@3938..3940 "=="2504 WHITESPACE@3940..3941 " "
2526 WHITESPACE@3940..3941 " "2505 EXPR_STRING@3941..3944
2527 EXPR_STRING@3941..39442506 STRING_SINGLE@3941..3944 "'$'"
2528 STRING_SINGLE@3941..3944 "'$'"2507 WHITESPACE@3944..3945 " "
2529 WHITESPACE@3944..3945 " "2508 THEN_KW@3945..3949 "then"
2530 THEN_KW@3945..3949 "then"2509 WHITESPACE@3949..3958 "\n "
2531 WHITESPACE@3949..3958 "\n "2510 TRUE_EXPR@3958..3962
2532 TRUE_EXPR@3958..39622511 EXPR_STRING@3958..3962
2533 EXPR_STRING@3958..39622512 STRING_SINGLE@3958..3962 "'$$'"
2534 STRING_SINGLE@3958..3962 "'$$'"2513 WHITESPACE@3962..3969 "\n "
2535 WHITESPACE@3962..3969 "\n "2514 ELSE_KW@3969..3973 "else"
2536 ELSE_KW@3969..3973 "else"2515 WHITESPACE@3973..3982 "\n "
2537 WHITESPACE@3973..3982 "\n "2516 FALSE_EXPR@3982..3984
2538 FALSE_EXPR@3982..39842517 EXPR_VAR@3982..3984
2539 EXPR_VAR@3982..39842518 NAME@3982..3984
2540 NAME@3982..39842519 IDENT@3982..3984 "ch"
2541 IDENT@3982..3984 "ch"2520 SEMI@3984..3985 ";"
2542 SEMI@3984..3985 ";"2521 WHITESPACE@3985..3990 "\n "
2543 WHITESPACE@3985..3990 "\n "2522 EXPR_APPLY@3990..4054
2544 EXPR_APPLY@3990..40542523 EXPR_INDEX@3990..3999
2545 EXPR_INDEX@3990..39992524 EXPR_VAR@3990..3993
2546 EXPR_VAR@3990..39932525 NAME@3990..3993
2547 NAME@3990..39932526 IDENT@3990..3993 "std"
2548 IDENT@3990..3993 "std"2527 DOT@3993..3994 "."
2549 DOT@3993..3994 "."2528 NAME@3994..3999
2550 NAME@3994..39992529 IDENT@3994..3999 "foldl"
2551 IDENT@3994..3999 "foldl"2530 ARGS_DESC@3999..4054
2552 ARGS_DESC@3999..40542531 L_PAREN@3999..4000 "("
2553 L_PAREN@3999..4000 "("2532 ARG@4000..4027
2554 ARG@4000..40272533 EXPR_FUNCTION@4000..4027
2555 EXPR_FUNCTION@4000..40272534 FUNCTION_KW@4000..4008 "function"
2556 FUNCTION_KW@4000..4008 "function"2535 PARAMS_DESC@4008..4014
2557 PARAMS_DESC@4008..40142536 L_PAREN@4008..4009 "("
2558 L_PAREN@4008..4009 "("2537 PARAM@4009..4010
2559 PARAM@4009..40102538 DESTRUCT_FULL@4009..4010
2560 DESTRUCT_FULL@4009..40102539 NAME@4009..4010
2561 NAME@4009..40102540 IDENT@4009..4010 "a"
2562 IDENT@4009..4010 "a"2541 COMMA@4010..4011 ","
2563 COMMA@4010..4011 ","2542 WHITESPACE@4011..4012 " "
2564 WHITESPACE@4011..4012 " "2543 PARAM@4012..4013
2565 PARAM@4012..40132544 DESTRUCT_FULL@4012..4013
2566 DESTRUCT_FULL@4012..40132545 NAME@4012..4013
2567 NAME@4012..40132546 IDENT@4012..4013 "b"
2568 IDENT@4012..4013 "b"2547 R_PAREN@4013..4014 ")"
2569 R_PAREN@4013..4014 ")"2548 WHITESPACE@4014..4015 " "
2570 WHITESPACE@4014..4015 " "2549 EXPR_BINARY@4015..4027
2571 EXPR_BINARY@4015..40272550 LHS_EXPR@4015..4016
2572 LHS_EXPR@4015..40162551 EXPR_VAR@4015..4016
2573 EXPR_VAR@4015..40162552 NAME@4015..4016
2574 NAME@4015..40162553 IDENT@4015..4016 "a"
2575 IDENT@4015..4016 "a"2554 WHITESPACE@4016..4017 " "
2576 WHITESPACE@4016..4017 " "2555 PLUS@4017..4018 "+"
2577 PLUS@4017..4018 "+"2556 WHITESPACE@4018..4019 " "
2578 WHITESPACE@4018..4019 " "2557 EXPR_APPLY@4019..4027
2579 EXPR_APPLY@4019..40272558 EXPR_VAR@4019..4024
2580 EXPR_VAR@4019..40242559 NAME@4019..4024
2581 NAME@4019..40242560 IDENT@4019..4024 "trans"
2582 IDENT@4019..4024 "trans"2561 ARGS_DESC@4024..4027
2583 ARGS_DESC@4024..40272562 L_PAREN@4024..4025 "("
2584 L_PAREN@4024..4025 "("2563 ARG@4025..4026
2585 ARG@4025..40262564 EXPR_VAR@4025..4026
2586 EXPR_VAR@4025..40262565 NAME@4025..4026
2587 NAME@4025..40262566 IDENT@4025..4026 "b"
2588 IDENT@4025..4026 "b"2567 R_PAREN@4026..4027 ")"
2589 R_PAREN@4026..4027 ")"2568 COMMA@4027..4028 ","
2590 COMMA@4027..4028 ","2569 WHITESPACE@4028..4029 " "
2591 WHITESPACE@4028..4029 " "2570 ARG@4029..4049
2592 ARG@4029..40492571 EXPR_APPLY@4029..4049
2593 EXPR_APPLY@4029..40492572 EXPR_INDEX@4029..4044
2594 EXPR_INDEX@4029..40442573 EXPR_VAR@4029..4032
2595 EXPR_VAR@4029..40322574 NAME@4029..4032
2596 NAME@4029..40322575 IDENT@4029..4032 "std"
2597 IDENT@4029..4032 "std"2576 DOT@4032..4033 "."
2598 DOT@4032..4033 "."2577 NAME@4033..4044
2599 NAME@4033..40442578 IDENT@4033..4044 "stringChars"
2600 IDENT@4033..4044 "stringChars"2579 ARGS_DESC@4044..4049
2601 ARGS_DESC@4044..40492580 L_PAREN@4044..4045 "("
2602 L_PAREN@4044..4045 "("2581 ARG@4045..4048
2603 ARG@4045..40482582 EXPR_VAR@4045..4048
2604 EXPR_VAR@4045..40482583 NAME@4045..4048
2605 NAME@4045..40482584 IDENT@4045..4048 "str"
2606 IDENT@4045..4048 "str"2585 R_PAREN@4048..4049 ")"
2607 R_PAREN@4048..4049 ")"2586 COMMA@4049..4050 ","
2608 COMMA@4049..4050 ","2587 WHITESPACE@4050..4051 " "
2609 WHITESPACE@4050..4051 " "2588 ARG@4051..4053
2610 ARG@4051..40532589 EXPR_STRING@4051..4053
2611 EXPR_STRING@4051..40532590 STRING_SINGLE@4051..4053 "''"
2612 STRING_SINGLE@4051..4053 "''"2591 R_PAREN@4053..4054 ")"
2613 R_PAREN@4053..4054 ")"
2614 COMMA@4054..4055 ","2592 COMMA@4054..4055 ","
2615 WHITESPACE@4055..4059 "\n\n "2593 WHITESPACE@4055..4059 "\n\n "
2616 MEMBER_BIND_STMT@4059..41742594 MEMBER_BIND_STMT@4059..4174
2628 OBJ_BODY_MEMBER_LIST@4079..41742606 OBJ_BODY_MEMBER_LIST@4079..4174
2629 L_BRACE@4079..4080 "{"2607 L_BRACE@4079..4080 "{"
2630 WHITESPACE@4080..4085 "\n "2608 WHITESPACE@4080..4085 "\n "
2631 MEMBER_FIELD@4085..40962609 MEMBER_FIELD_NORMAL@4085..4096
2632 FIELD_NORMAL@4085..40962610 FIELD_NAME_FIXED@4085..4088
2633 FIELD_NAME_FIXED@4085..4088
2634 STRING_SINGLE@4085..4088 "'<'"2611 STRING_SINGLE@4085..4088 "'<'"
2635 COLON@4088..4089 ":"2612 COLON@4088..4089 ":"
2636 WHITESPACE@4089..4090 " "2613 WHITESPACE@4089..4090 " "
2637 EXPR_STRING@4090..40962614 EXPR_STRING@4090..4096
2638 STRING_SINGLE@4090..4096 "'&lt;'"2615 STRING_SINGLE@4090..4096 "'&lt;'"
2639 COMMA@4096..4097 ","2616 COMMA@4096..4097 ","
2640 WHITESPACE@4097..4102 "\n "2617 WHITESPACE@4097..4102 "\n "
2641 MEMBER_FIELD@4102..41132618 MEMBER_FIELD_NORMAL@4102..4113
2642 FIELD_NORMAL@4102..41132619 FIELD_NAME_FIXED@4102..4105
2643 FIELD_NAME_FIXED@4102..4105
2644 STRING_SINGLE@4102..4105 "'>'"2620 STRING_SINGLE@4102..4105 "'>'"
2645 COLON@4105..4106 ":"2621 COLON@4105..4106 ":"
2646 WHITESPACE@4106..4107 " "2622 WHITESPACE@4106..4107 " "
2647 EXPR_STRING@4107..41132623 EXPR_STRING@4107..4113
2648 STRING_SINGLE@4107..4113 "'&gt;'"2624 STRING_SINGLE@4107..4113 "'&gt;'"
2649 COMMA@4113..4114 ","2625 COMMA@4113..4114 ","
2650 WHITESPACE@4114..4119 "\n "2626 WHITESPACE@4114..4119 "\n "
2651 MEMBER_FIELD@4119..41312627 MEMBER_FIELD_NORMAL@4119..4131
2652 FIELD_NORMAL@4119..41312628 FIELD_NAME_FIXED@4119..4122
2653 FIELD_NAME_FIXED@4119..4122
2654 STRING_SINGLE@4119..4122 "'&'"2629 STRING_SINGLE@4119..4122 "'&'"
2655 COLON@4122..4123 ":"2630 COLON@4122..4123 ":"
2656 WHITESPACE@4123..4124 " "2631 WHITESPACE@4123..4124 " "
2657 EXPR_STRING@4124..41312632 EXPR_STRING@4124..4131
2658 STRING_SINGLE@4124..4131 "'&amp;'"2633 STRING_SINGLE@4124..4131 "'&amp;'"
2659 COMMA@4131..4132 ","2634 COMMA@4131..4132 ","
2660 WHITESPACE@4132..4137 "\n "2635 WHITESPACE@4132..4137 "\n "
2661 MEMBER_FIELD@4137..41502636 MEMBER_FIELD_NORMAL@4137..4150
2662 FIELD_NORMAL@4137..41502637 FIELD_NAME_FIXED@4137..4140
2663 FIELD_NAME_FIXED@4137..4140
2664 STRING_SINGLE@4137..4140 "'\"'"2638 STRING_SINGLE@4137..4140 "'\"'"
2665 COLON@4140..4141 ":"2639 COLON@4140..4141 ":"
2666 WHITESPACE@4141..4142 " "2640 WHITESPACE@4141..4142 " "
2667 EXPR_STRING@4142..41502641 EXPR_STRING@4142..4150
2668 STRING_SINGLE@4142..4150 "'&quot;'"2642 STRING_SINGLE@4142..4150 "'&quot;'"
2669 COMMA@4150..4151 ","2643 COMMA@4150..4151 ","
2670 WHITESPACE@4151..4156 "\n "2644 WHITESPACE@4151..4156 "\n "
2671 MEMBER_FIELD@4156..41692645 MEMBER_FIELD_NORMAL@4156..4169
2672 FIELD_NORMAL@4156..41692646 FIELD_NAME_FIXED@4156..4159
2673 FIELD_NAME_FIXED@4156..4159
2674 STRING_DOUBLE@4156..4159 "\"'\""2647 STRING_DOUBLE@4156..4159 "\"'\""
2675 COLON@4159..4160 ":"2648 COLON@4159..4160 ":"
2676 WHITESPACE@4160..4161 " "2649 WHITESPACE@4160..4161 " "
2677 EXPR_STRING@4161..41692650 EXPR_STRING@4161..4169
2678 STRING_SINGLE@4161..4169 "'&apos;'"2651 STRING_SINGLE@4161..4169 "'&apos;'"
2679 COMMA@4169..4170 ","2652 COMMA@4169..4170 ","
2680 WHITESPACE@4170..4173 "\n "2653 WHITESPACE@4170..4173 "\n "
2681 R_BRACE@4173..4174 "}"2654 R_BRACE@4173..4174 "}"
2682 COMMA@4174..4175 ","2655 COMMA@4174..4175 ","
2683 WHITESPACE@4175..4179 "\n\n "2656 WHITESPACE@4175..4179 "\n\n "
2684 MEMBER_FIELD@4179..43182657 MEMBER_FIELD_METHOD@4179..4318
2685 FIELD_METHOD@4179..43182658 FIELD_NAME_FIXED@4179..4194
2686 FIELD_NAME_FIXED@4179..41942659 NAME@4179..4194
2687 NAME@4179..41942660 IDENT@4179..4194 "escapeStringXML"
2688 IDENT@4179..4194 "escapeStringXML"2661 PARAMS_DESC@4194..4200
2689 PARAMS_DESC@4194..42002662 L_PAREN@4194..4195 "("
2690 L_PAREN@4194..4195 "("2663 PARAM@4195..4199
2691 PARAM@4195..41992664 DESTRUCT_FULL@4195..4199
2692 DESTRUCT_FULL@4195..41992665 NAME@4195..4199
2693 NAME@4195..41992666 IDENT@4195..4199 "str_"
2694 IDENT@4195..4199 "str_"2667 R_PAREN@4199..4200 ")"
2695 R_PAREN@4199..4200 ")"2668 COLONCOLON@4200..4202 "::"
2696 COLONCOLON@4200..4202 "::"2669 WHITESPACE@4202..4207 "\n "
2697 WHITESPACE@4202..4207 "\n "2670 EXPR_LOCAL@4207..4318
2698 EXPR_LOCAL@4207..43182671 LOCAL_KW@4207..4212 "local"
2699 LOCAL_KW@4207..4212 "local"2672 WHITESPACE@4212..4213 " "
2700 WHITESPACE@4212..4213 " "2673 BIND_DESTRUCT@4213..4237
2701 BIND_DESTRUCT@4213..42372674 DESTRUCT_FULL@4213..4216
2702 DESTRUCT_FULL@4213..42162675 NAME@4213..4216
2703 NAME@4213..42162676 IDENT@4213..4216 "str"
2704 IDENT@4213..4216 "str"2677 WHITESPACE@4216..4217 " "
2705 WHITESPACE@4216..4217 " "2678 ASSIGN@4217..4218 "="
2706 ASSIGN@4217..4218 "="2679 WHITESPACE@4218..4219 " "
2707 WHITESPACE@4218..4219 " "2680 EXPR_APPLY@4219..4237
2708 EXPR_APPLY@4219..42372681 EXPR_INDEX@4219..4231
2709 EXPR_INDEX@4219..42312682 EXPR_VAR@4219..4222
2710 EXPR_VAR@4219..42222683 NAME@4219..4222
2711 NAME@4219..42222684 IDENT@4219..4222 "std"
2712 IDENT@4219..4222 "std"2685 DOT@4222..4223 "."
2713 DOT@4222..4223 "."2686 NAME@4223..4231
2714 NAME@4223..42312687 IDENT@4223..4231 "toString"
2715 IDENT@4223..4231 "toString"2688 ARGS_DESC@4231..4237
2716 ARGS_DESC@4231..42372689 L_PAREN@4231..4232 "("
2717 L_PAREN@4231..4232 "("2690 ARG@4232..4236
2718 ARG@4232..42362691 EXPR_VAR@4232..4236
2719 EXPR_VAR@4232..42362692 NAME@4232..4236
2720 NAME@4232..42362693 IDENT@4232..4236 "str_"
2721 IDENT@4232..4236 "str_"2694 R_PAREN@4236..4237 ")"
2722 R_PAREN@4236..4237 ")"2695 SEMI@4237..4238 ";"
2723 SEMI@4237..4238 ";"2696 WHITESPACE@4238..4243 "\n "
2724 WHITESPACE@4238..4243 "\n "2697 EXPR_APPLY@4243..4318
2725 EXPR_APPLY@4243..43182698 EXPR_INDEX@4243..4251
2726 EXPR_INDEX@4243..42512699 EXPR_VAR@4243..4246
2727 EXPR_VAR@4243..42462700 NAME@4243..4246
2728 NAME@4243..42462701 IDENT@4243..4246 "std"
2729 IDENT@4243..4246 "std"2702 DOT@4246..4247 "."
2730 DOT@4246..4247 "."2703 NAME@4247..4251
2731 NAME@4247..42512704 IDENT@4247..4251 "join"
2732 IDENT@4247..4251 "join"2705 ARGS_DESC@4251..4318
2733 ARGS_DESC@4251..43182706 L_PAREN@4251..4252 "("
2734 L_PAREN@4251..4252 "("2707 ARG@4252..4254
2735 ARG@4252..42542708 EXPR_STRING@4252..4254
2736 EXPR_STRING@4252..42542709 STRING_SINGLE@4252..4254 "''"
2737 STRING_SINGLE@4252..4254 "''"2710 COMMA@4254..4255 ","
2738 COMMA@4254..4255 ","2711 WHITESPACE@4255..4256 " "
2739 WHITESPACE@4255..4256 " "2712 ARG@4256..4317
2740 ARG@4256..43172713 EXPR_ARRAY_COMP@4256..4317
2741 EXPR_ARRAY_COMP@4256..43172714 L_BRACK@4256..4257 "["
2742 L_BRACK@4256..4257 "["2715 EXPR_APPLY@4257..4285
2743 EXPR_APPLY@4257..42852716 EXPR_INDEX@4257..4264
2744 EXPR_INDEX@4257..42642717 EXPR_VAR@4257..4260
2745 EXPR_VAR@4257..42602718 NAME@4257..4260
2746 NAME@4257..42602719 IDENT@4257..4260 "std"
2747 IDENT@4257..4260 "std"2720 DOT@4260..4261 "."
2748 DOT@4260..4261 "."2721 NAME@4261..4264
2749 NAME@4261..42642722 IDENT@4261..4264 "get"
2750 IDENT@4261..4264 "get"2723 ARGS_DESC@4264..4285
2751 ARGS_DESC@4264..42852724 L_PAREN@4264..4265 "("
2752 L_PAREN@4264..4265 "("2725 ARG@4265..4276
2753 ARG@4265..42762726 EXPR_VAR@4265..4276
2754 EXPR_VAR@4265..42762727 NAME@4265..4276
2755 NAME@4265..42762728 IDENT@4265..4276 "xml_escapes"
2756 IDENT@4265..4276 "xml_escapes"2729 COMMA@4276..4277 ","
2757 COMMA@4276..4277 ","2730 WHITESPACE@4277..4278 " "
2758 WHITESPACE@4277..4278 " "2731 ARG@4278..4280
2759 ARG@4278..42802732 EXPR_VAR@4278..4280
2760 EXPR_VAR@4278..42802733 NAME@4278..4280
2761 NAME@4278..42802734 IDENT@4278..4280 "ch"
2762 IDENT@4278..4280 "ch"2735 COMMA@4280..4281 ","
2763 COMMA@4280..4281 ","2736 WHITESPACE@4281..4282 " "
2764 WHITESPACE@4281..4282 " "2737 ARG@4282..4284
2765 ARG@4282..42842738 EXPR_VAR@4282..4284
2766 EXPR_VAR@4282..42842739 NAME@4282..4284
2767 NAME@4282..42842740 IDENT@4282..4284 "ch"
2768 IDENT@4282..4284 "ch"2741 R_PAREN@4284..4285 ")"
2769 R_PAREN@4284..4285 ")"2742 WHITESPACE@4285..4286 " "
2770 WHITESPACE@4285..4286 " "2743 FOR_SPEC@4286..4316
2771 FOR_SPEC@4286..43162744 FOR_KW@4286..4289 "for"
2772 FOR_KW@4286..4289 "for"2745 WHITESPACE@4289..4290 " "
2773 WHITESPACE@4289..4290 " "2746 NAME@4290..4292
2774 NAME@4290..42922747 IDENT@4290..4292 "ch"
2775 IDENT@4290..4292 "ch"2748 WHITESPACE@4292..4293 " "
2776 WHITESPACE@4292..4293 " "2749 IN_KW@4293..4295 "in"
2777 IN_KW@4293..4295 "in"2750 WHITESPACE@4295..4296 " "
2778 WHITESPACE@4295..4296 " "2751 EXPR_APPLY@4296..4316
2779 EXPR_APPLY@4296..43162752 EXPR_INDEX@4296..4311
2780 EXPR_INDEX@4296..43112753 EXPR_VAR@4296..4299
2781 EXPR_VAR@4296..42992754 NAME@4296..4299
2782 NAME@4296..42992755 IDENT@4296..4299 "std"
2783 IDENT@4296..4299 "std"2756 DOT@4299..4300 "."
2784 DOT@4299..4300 "."2757 NAME@4300..4311
2785 NAME@4300..43112758 IDENT@4300..4311 "stringChars"
2786 IDENT@4300..4311 "stringChars"2759 ARGS_DESC@4311..4316
2787 ARGS_DESC@4311..43162760 L_PAREN@4311..4312 "("
2788 L_PAREN@4311..4312 "("2761 ARG@4312..4315
2789 ARG@4312..43152762 EXPR_VAR@4312..4315
2790 EXPR_VAR@4312..43152763 NAME@4312..4315
2791 NAME@4312..43152764 IDENT@4312..4315 "str"
2792 IDENT@4312..4315 "str"2765 R_PAREN@4315..4316 ")"
2793 R_PAREN@4315..4316 ")"2766 R_BRACK@4316..4317 "]"
2794 R_BRACK@4316..4317 "]"2767 R_PAREN@4317..4318 ")"
2795 R_PAREN@4317..4318 ")"
2796 COMMA@4318..4319 ","2768 COMMA@4318..4319 ","
2797 WHITESPACE@4319..4323 "\n\n "2769 WHITESPACE@4319..4323 "\n\n "
2798 MEMBER_FIELD@4323..43892770 MEMBER_FIELD_METHOD@4323..4389
2799 FIELD_METHOD@4323..43892771 FIELD_NAME_FIXED@4323..4335
2800 FIELD_NAME_FIXED@4323..4335
2801 NAME@4323..43352772 NAME@4323..4335
2802 IDENT@4323..4335 "manifestJson"2773 IDENT@4323..4335 "manifestJson"
2803 PARAMS_DESC@4335..43422774 PARAMS_DESC@4335..4342
2804 L_PAREN@4335..4336 "("2775 L_PAREN@4335..4336 "("
2805 PARAM@4336..43412776 PARAM@4336..4341
2806 DESTRUCT_FULL@4336..43412777 DESTRUCT_FULL@4336..4341
2807 NAME@4336..43412778 NAME@4336..4341
2808 IDENT@4336..4341 "value"2779 IDENT@4336..4341 "value"
2809 R_PAREN@4341..4342 ")"2780 R_PAREN@4341..4342 ")"
2810 COLONCOLON@4342..4344 "::"2781 COLONCOLON@4342..4344 "::"
2811 WHITESPACE@4344..4345 " "2782 WHITESPACE@4344..4345 " "
2812 EXPR_APPLY@4345..43892783 EXPR_APPLY@4345..4389
2813 EXPR_INDEX@4345..43632784 EXPR_INDEX@4345..4363
2814 EXPR_VAR@4345..43482785 EXPR_VAR@4345..4348
2815 NAME@4345..43482786 NAME@4345..4348
2816 IDENT@4345..4348 "std"2787 IDENT@4345..4348 "std"
2817 DOT@4348..4349 "."2788 DOT@4348..4349 "."
2818 NAME@4349..43632789 NAME@4349..4363
2819 IDENT@4349..4363 "manifestJsonEx"2790 IDENT@4349..4363 "manifestJsonEx"
2820 ARGS_DESC@4363..43892791 ARGS_DESC@4363..4389
2821 L_PAREN@4363..4364 "("2792 L_PAREN@4363..4364 "("
2822 ARG@4364..43692793 ARG@4364..4369
2823 EXPR_VAR@4364..43692794 EXPR_VAR@4364..4369
2824 NAME@4364..43692795 NAME@4364..4369
2825 IDENT@4364..4369 "value"2796 IDENT@4364..4369 "value"
2826 COMMA@4369..4370 ","2797 COMMA@4369..4370 ","
2827 WHITESPACE@4370..4371 " "2798 WHITESPACE@4370..4371 " "
2828 ARG@4371..43772799 ARG@4371..4377
2829 EXPR_STRING@4371..43772800 EXPR_STRING@4371..4377
2830 STRING_SINGLE@4371..4377 "' '"2801 STRING_SINGLE@4371..4377 "' '"
2831 R_PAREN@4377..4378 ")"2802 R_PAREN@4377..4378 ")"
2832 WHITESPACE@4378..4379 " "2803 WHITESPACE@4378..4379 " "
2833 TAILSTRICT_KW@4379..4389 "tailstrict"2804 TAILSTRICT_KW@4379..4389 "tailstrict"
2834 COMMA@4389..4390 ","2805 COMMA@4389..4390 ","
2835 WHITESPACE@4390..4394 "\n\n "2806 WHITESPACE@4390..4394 "\n\n "
2836 MEMBER_FIELD@4394..44622807 MEMBER_FIELD_METHOD@4394..4462
2837 FIELD_METHOD@4394..44622808 FIELD_NAME_FIXED@4394..4414
2838 FIELD_NAME_FIXED@4394..44142809 NAME@4394..4414
2839 NAME@4394..44142810 IDENT@4394..4414 "manifestJsonMinified"
2840 IDENT@4394..4414 "manifestJsonMinified"2811 PARAMS_DESC@4414..4421
2841 PARAMS_DESC@4414..44212812 L_PAREN@4414..4415 "("
2842 L_PAREN@4414..4415 "("2813 PARAM@4415..4420
2843 PARAM@4415..44202814 DESTRUCT_FULL@4415..4420
2844 DESTRUCT_FULL@4415..44202815 NAME@4415..4420
2845 NAME@4415..44202816 IDENT@4415..4420 "value"
2846 IDENT@4415..4420 "value"2817 R_PAREN@4420..4421 ")"
2847 R_PAREN@4420..4421 ")"2818 COLONCOLON@4421..4423 "::"
2848 COLONCOLON@4421..4423 "::"2819 WHITESPACE@4423..4424 " "
2849 WHITESPACE@4423..4424 " "2820 EXPR_APPLY@4424..4462
2850 EXPR_APPLY@4424..44622821 EXPR_INDEX@4424..4442
2851 EXPR_INDEX@4424..44422822 EXPR_VAR@4424..4427
2852 EXPR_VAR@4424..44272823 NAME@4424..4427
2853 NAME@4424..44272824 IDENT@4424..4427 "std"
2854 IDENT@4424..4427 "std"2825 DOT@4427..4428 "."
2855 DOT@4427..4428 "."2826 NAME@4428..4442
2856 NAME@4428..44422827 IDENT@4428..4442 "manifestJsonEx"
2857 IDENT@4428..4442 "manifestJsonEx"2828 ARGS_DESC@4442..4462
2858 ARGS_DESC@4442..44622829 L_PAREN@4442..4443 "("
2859 L_PAREN@4442..4443 "("2830 ARG@4443..4448
2860 ARG@4443..44482831 EXPR_VAR@4443..4448
2861 EXPR_VAR@4443..44482832 NAME@4443..4448
2862 NAME@4443..44482833 IDENT@4443..4448 "value"
2863 IDENT@4443..4448 "value"2834 COMMA@4448..4449 ","
2864 COMMA@4448..4449 ","2835 WHITESPACE@4449..4450 " "
2865 WHITESPACE@4449..4450 " "2836 ARG@4450..4452
2866 ARG@4450..44522837 EXPR_STRING@4450..4452
2867 EXPR_STRING@4450..44522838 STRING_SINGLE@4450..4452 "''"
2868 STRING_SINGLE@4450..4452 "''"2839 COMMA@4452..4453 ","
2869 COMMA@4452..4453 ","2840 WHITESPACE@4453..4454 " "
2870 WHITESPACE@4453..4454 " "2841 ARG@4454..4456
2871 ARG@4454..44562842 EXPR_STRING@4454..4456
2872 EXPR_STRING@4454..44562843 STRING_SINGLE@4454..4456 "''"
2873 STRING_SINGLE@4454..4456 "''"2844 COMMA@4456..4457 ","
2874 COMMA@4456..4457 ","2845 WHITESPACE@4457..4458 " "
2875 WHITESPACE@4457..4458 " "2846 ARG@4458..4461
2876 ARG@4458..44612847 EXPR_STRING@4458..4461
2877 EXPR_STRING@4458..44612848 STRING_SINGLE@4458..4461 "':'"
2878 STRING_SINGLE@4458..4461 "':'"2849 R_PAREN@4461..4462 ")"
2879 R_PAREN@4461..4462 ")"
2880 COMMA@4462..4463 ","2850 COMMA@4462..4463 ","
2881 WHITESPACE@4463..4467 "\n\n "2851 WHITESPACE@4463..4467 "\n\n "
2882 MEMBER_FIELD@4467..48522852 MEMBER_FIELD_METHOD@4467..4852
2883 FIELD_METHOD@4467..48522853 FIELD_NAME_FIXED@4467..4485
2884 FIELD_NAME_FIXED@4467..44852854 NAME@4467..4485
2885 NAME@4467..44852855 IDENT@4467..4485 "manifestYamlStream"
2886 IDENT@4467..4485 "manifestYamlStream"2856 PARAMS_DESC@4485..4560
2887 PARAMS_DESC@4485..45602857 L_PAREN@4485..4486 "("
2888 L_PAREN@4485..4486 "("2858 PARAM@4486..4491
2889 PARAM@4486..44912859 DESTRUCT_FULL@4486..4491
2890 DESTRUCT_FULL@4486..44912860 NAME@4486..4491
2891 NAME@4486..44912861 IDENT@4486..4491 "value"
2892 IDENT@4486..4491 "value"2862 COMMA@4491..4492 ","
2893 COMMA@4491..4492 ","2863 WHITESPACE@4492..4493 " "
2894 WHITESPACE@4492..4493 " "2864 PARAM@4493..4521
2895 PARAM@4493..45212865 DESTRUCT_FULL@4493..4515
2896 DESTRUCT_FULL@4493..45152866 NAME@4493..4515
2897 NAME@4493..45152867 IDENT@4493..4515 "indent_array_in_object"
2898 IDENT@4493..4515 "indent_array_in_object"2868 ASSIGN@4515..4516 "="
2899 ASSIGN@4515..4516 "="2869 EXPR_LITERAL@4516..4521
2900 EXPR_LITERAL@4516..45212870 FALSE_KW@4516..4521 "false"
2901 FALSE_KW@4516..4521 "false"2871 COMMA@4521..4522 ","
2902 COMMA@4521..4522 ","2872 WHITESPACE@4522..4523 " "
2903 WHITESPACE@4522..4523 " "2873 PARAM@4523..4542
2904 PARAM@4523..45422874 DESTRUCT_FULL@4523..4537
2905 DESTRUCT_FULL@4523..45372875 NAME@4523..4537
2906 NAME@4523..45372876 IDENT@4523..4537 "c_document_end"
2907 IDENT@4523..4537 "c_document_end"2877 ASSIGN@4537..4538 "="
2908 ASSIGN@4537..4538 "="2878 EXPR_LITERAL@4538..4542
2909 EXPR_LITERAL@4538..45422879 TRUE_KW@4538..4542 "true"
2910 TRUE_KW@4538..4542 "true"2880 COMMA@4542..4543 ","
2911 COMMA@4542..4543 ","2881 WHITESPACE@4543..4544 " "
2912 WHITESPACE@4543..4544 " "2882 PARAM@4544..4559
2913 PARAM@4544..45592883 DESTRUCT_FULL@4544..4554
2914 DESTRUCT_FULL@4544..45542884 NAME@4544..4554
2915 NAME@4544..45542885 IDENT@4544..4554 "quote_keys"
2916 IDENT@4544..4554 "quote_keys"2886 ASSIGN@4554..4555 "="
2917 ASSIGN@4554..4555 "="2887 EXPR_LITERAL@4555..4559
2918 EXPR_LITERAL@4555..45592888 TRUE_KW@4555..4559 "true"
2919 TRUE_KW@4555..4559 "true"2889 R_PAREN@4559..4560 ")"
2920 R_PAREN@4559..4560 ")"2890 COLONCOLON@4560..4562 "::"
2921 COLONCOLON@4560..4562 "::"2891 WHITESPACE@4562..4567 "\n "
2922 WHITESPACE@4562..4567 "\n "2892 EXPR_IF_THEN_ELSE@4567..4852
2923 EXPR_IF_THEN_ELSE@4567..48522893 IF_KW@4567..4569 "if"
2924 IF_KW@4567..4569 "if"2894 WHITESPACE@4569..4570 " "
2925 WHITESPACE@4569..4570 " "2895 EXPR_UNARY@4570..4589
2926 EXPR_UNARY@4570..45892896 NOT@4570..4571 "!"
2927 NOT@4570..4571 "!"2897 EXPR_APPLY@4571..4589
2928 EXPR_APPLY@4571..45892898 EXPR_INDEX@4571..4582
2929 EXPR_INDEX@4571..45822899 EXPR_VAR@4571..4574
2930 EXPR_VAR@4571..45742900 NAME@4571..4574
2931 NAME@4571..45742901 IDENT@4571..4574 "std"
2932 IDENT@4571..4574 "std"2902 DOT@4574..4575 "."
2933 DOT@4574..4575 "."2903 NAME@4575..4582
2934 NAME@4575..45822904 IDENT@4575..4582 "isArray"
2935 IDENT@4575..4582 "isArray"2905 ARGS_DESC@4582..4589
2936 ARGS_DESC@4582..45892906 L_PAREN@4582..4583 "("
2937 L_PAREN@4582..4583 "("2907 ARG@4583..4588
2938 ARG@4583..45882908 EXPR_VAR@4583..4588
2939 EXPR_VAR@4583..45882909 NAME@4583..4588
2940 NAME@4583..45882910 IDENT@4583..4588 "value"
2941 IDENT@4583..4588 "value"2911 R_PAREN@4588..4589 ")"
2942 R_PAREN@4588..4589 ")"2912 WHITESPACE@4589..4590 " "
2943 WHITESPACE@4589..4590 " "2913 THEN_KW@4590..4594 "then"
2944 THEN_KW@4590..4594 "then"2914 WHITESPACE@4594..4601 "\n "
2945 WHITESPACE@4594..4601 "\n "2915 TRUE_EXPR@4601..4669
2946 TRUE_EXPR@4601..46692916 EXPR_ERROR@4601..4669
2947 EXPR_ERROR@4601..46692917 ERROR_KW@4601..4606 "error"
2948 ERROR_KW@4601..4606 "error"2918 WHITESPACE@4606..4607 " "
2949 WHITESPACE@4606..4607 " "2919 EXPR_BINARY@4607..4669
2950 EXPR_BINARY@4607..46692920 LHS_EXPR@4607..4651
2951 LHS_EXPR@4607..46512921 EXPR_STRING@4607..4651
2952 EXPR_STRING@4607..46512922 STRING_SINGLE@4607..4651 "'manifestYamlStream o ..."
2953 STRING_SINGLE@4607..4651 "'manifestYamlStream o ..."2923 WHITESPACE@4651..4652 " "
2954 WHITESPACE@4651..4652 " "2924 PLUS@4652..4653 "+"
2955 PLUS@4652..4653 "+"2925 WHITESPACE@4653..4654 " "
2956 WHITESPACE@4653..4654 " "2926 EXPR_APPLY@4654..4669
2957 EXPR_APPLY@4654..46692927 EXPR_INDEX@4654..4662
2958 EXPR_INDEX@4654..46622928 EXPR_VAR@4654..4657
2959 EXPR_VAR@4654..46572929 NAME@4654..4657
2960 NAME@4654..46572930 IDENT@4654..4657 "std"
2961 IDENT@4654..4657 "std"2931 DOT@4657..4658 "."
2962 DOT@4657..4658 "."2932 NAME@4658..4662
2963 NAME@4658..46622933 IDENT@4658..4662 "type"
2964 IDENT@4658..4662 "type"2934 ARGS_DESC@4662..4669
2965 ARGS_DESC@4662..46692935 L_PAREN@4662..4663 "("
2966 L_PAREN@4662..4663 "("2936 ARG@4663..4668
2967 ARG@4663..46682937 EXPR_VAR@4663..4668
2968 EXPR_VAR@4663..46682938 NAME@4663..4668
2969 NAME@4663..46682939 IDENT@4663..4668 "value"
2970 IDENT@4663..4668 "value"2940 R_PAREN@4668..4669 ")"
2971 R_PAREN@4668..4669 ")"2941 WHITESPACE@4669..4674 "\n "
2972 WHITESPACE@4669..4674 "\n "2942 ELSE_KW@4674..4678 "else"
2973 ELSE_KW@4674..4678 "else"2943 WHITESPACE@4678..4685 "\n "
2974 WHITESPACE@4678..4685 "\n "2944 FALSE_EXPR@4685..4852
2975 FALSE_EXPR@4685..48522945 EXPR_BINARY@4685..4852
2976 EXPR_BINARY@4685..48522946 LHS_EXPR@4685..4807
2977 LHS_EXPR@4685..48072947 EXPR_BINARY@4685..4807
2978 EXPR_BINARY@4685..48072948 LHS_EXPR@4685..4692
2979 LHS_EXPR@4685..46922949 EXPR_STRING@4685..4692
2980 EXPR_STRING@4685..46922950 STRING_SINGLE@4685..4692 "'---\\n'"
2981 STRING_SINGLE@4685..4692 "'---\\n'"2951 WHITESPACE@4692..4693 " "
2982 WHITESPACE@4692..4693 " "2952 PLUS@4693..4694 "+"
2983 PLUS@4693..4694 "+"2953 WHITESPACE@4694..4695 " "
2984 WHITESPACE@4694..4695 " "2954 EXPR_APPLY@4695..4807
2985 EXPR_APPLY@4695..48072955 EXPR_INDEX@4695..4703
2986 EXPR_INDEX@4695..47032956 EXPR_VAR@4695..4698
2987 EXPR_VAR@4695..46982957 NAME@4695..4698
2988 NAME@4695..46982958 IDENT@4695..4698 "std"
2989 IDENT@4695..4698 "std"2959 DOT@4698..4699 "."
2990 DOT@4698..4699 "."2960 NAME@4699..4703
2991 NAME@4699..47032961 IDENT@4699..4703 "join"
2992 IDENT@4699..4703 "join"2962 ARGS_DESC@4703..4807
2993 ARGS_DESC@4703..48072963 L_PAREN@4703..4704 "("
2994 L_PAREN@4703..4704 "("2964 WHITESPACE@4704..4713 "\n "
2995 WHITESPACE@4704..4713 "\n "2965 ARG@4713..4722
2996 ARG@4713..47222966 EXPR_STRING@4713..4722
2997 EXPR_STRING@4713..47222967 STRING_SINGLE@4713..4722 "'\\n---\\n'"
2998 STRING_SINGLE@4713..4722 "'\\n---\\n'"2968 COMMA@4722..4723 ","
2999 COMMA@4722..4723 ","2969 WHITESPACE@4723..4724 " "
3000 WHITESPACE@4723..4724 " "2970 ARG@4724..4799
3001 ARG@4724..47992971 EXPR_ARRAY_COMP@4724..4799
3002 EXPR_ARRAY_COMP@4724..47992972 L_BRACK@4724..4725 "["
3003 L_BRACK@4724..4725 "["2973 EXPR_APPLY@4725..4783
3004 EXPR_APPLY@4725..47832974 EXPR_INDEX@4725..4744
3005 EXPR_INDEX@4725..47442975 EXPR_VAR@4725..4728
3006 EXPR_VAR@4725..47282976 NAME@4725..4728
3007 NAME@4725..47282977 IDENT@4725..4728 "std"
3008 IDENT@4725..4728 "std"2978 DOT@4728..4729 "."
3009 DOT@4728..4729 "."2979 NAME@4729..4744
3010 NAME@4729..47442980 IDENT@4729..4744 "manifestYamlDoc"
3011 IDENT@4729..4744 "manifestYamlDoc"2981 ARGS_DESC@4744..4783
3012 ARGS_DESC@4744..47832982 L_PAREN@4744..4745 "("
3013 L_PAREN@4744..4745 "("2983 ARG@4745..4746
3014 ARG@4745..47462984 EXPR_VAR@4745..4746
3015 EXPR_VAR@4745..47462985 NAME@4745..4746
3016 NAME@4745..47462986 IDENT@4745..4746 "e"
3017 IDENT@4745..4746 "e"2987 COMMA@4746..4747 ","
3018 COMMA@4746..4747 ","2988 WHITESPACE@4747..4748 " "
3019 WHITESPACE@4747..4748 " "2989 ARG@4748..4770
3020 ARG@4748..47702990 EXPR_VAR@4748..4770
3021 EXPR_VAR@4748..47702991 NAME@4748..4770
3022 NAME@4748..47702992 IDENT@4748..4770 "indent_array_in_object"
3023 IDENT@4748..4770 "indent_array_in_object"2993 COMMA@4770..4771 ","
3024 COMMA@4770..4771 ","2994 WHITESPACE@4771..4772 " "
3025 WHITESPACE@4771..4772 " "2995 ARG@4772..4782
3026 ARG@4772..47822996 EXPR_VAR@4772..4782
3027 EXPR_VAR@4772..47822997 NAME@4772..4782
3028 NAME@4772..47822998 IDENT@4772..4782 "quote_keys"
3029 IDENT@4772..4782 "quote_keys"2999 R_PAREN@4782..4783 ")"
3030 R_PAREN@4782..4783 ")"3000 WHITESPACE@4783..4784 " "
3031 WHITESPACE@4783..4784 " "3001 FOR_SPEC@4784..4798
3032 FOR_SPEC@4784..47983002 FOR_KW@4784..4787 "for"
3033 FOR_KW@4784..4787 "for"3003 WHITESPACE@4787..4788 " "
3034 WHITESPACE@4787..4788 " "3004 NAME@4788..4789
3035 NAME@4788..47893005 IDENT@4788..4789 "e"
3036 IDENT@4788..4789 "e"3006 WHITESPACE@4789..4790 " "
3037 WHITESPACE@4789..4790 " "3007 IN_KW@4790..4792 "in"
3038 IN_KW@4790..4792 "in"3008 WHITESPACE@4792..4793 " "
3039 WHITESPACE@4792..4793 " "3009 EXPR_VAR@4793..4798
3040 EXPR_VAR@4793..47983010 NAME@4793..4798
3041 NAME@4793..47983011 IDENT@4793..4798 "value"
3042 IDENT@4793..4798 "value"3012 R_BRACK@4798..4799 "]"
3043 R_BRACK@4798..4799 "]"3013 WHITESPACE@4799..4806 "\n "
3044 WHITESPACE@4799..4806 "\n "3014 R_PAREN@4806..4807 ")"
3045 R_PAREN@4806..4807 ")"3015 WHITESPACE@4807..4808 " "
3046 WHITESPACE@4807..4808 " "3016 PLUS@4808..4809 "+"
3047 PLUS@4808..4809 "+"3017 WHITESPACE@4809..4810 " "
3048 WHITESPACE@4809..4810 " "3018 EXPR_IF_THEN_ELSE@4810..4852
3049 EXPR_IF_THEN_ELSE@4810..48523019 IF_KW@4810..4812 "if"
3050 IF_KW@4810..4812 "if"3020 WHITESPACE@4812..4813 " "
3051 WHITESPACE@4812..4813 " "3021 EXPR_VAR@4813..4827
3052 EXPR_VAR@4813..48273022 NAME@4813..4827
3053 NAME@4813..48273023 IDENT@4813..4827 "c_document_end"
3054 IDENT@4813..4827 "c_document_end"3024 WHITESPACE@4827..4828 " "
3055 WHITESPACE@4827..4828 " "3025 THEN_KW@4828..4832 "then"
3056 THEN_KW@4828..4832 "then"3026 WHITESPACE@4832..4833 " "
3057 WHITESPACE@4832..4833 " "3027 TRUE_EXPR@4833..4842
3058 TRUE_EXPR@4833..48423028 EXPR_STRING@4833..4842
3059 EXPR_STRING@4833..48423029 STRING_SINGLE@4833..4842 "'\\n...\\n'"
3060 STRING_SINGLE@4833..4842 "'\\n...\\n'"3030 WHITESPACE@4842..4843 " "
3061 WHITESPACE@4842..4843 " "3031 ELSE_KW@4843..4847 "else"
3062 ELSE_KW@4843..4847 "else"3032 WHITESPACE@4847..4848 " "
3063 WHITESPACE@4847..4848 " "3033 FALSE_EXPR@4848..4852
3064 FALSE_EXPR@4848..48523034 EXPR_STRING@4848..4852
3065 EXPR_STRING@4848..48523035 STRING_SINGLE@4848..4852 "'\\n'"
3066 STRING_SINGLE@4848..4852 "'\\n'"
3067 COMMA@4852..4853 ","3036 COMMA@4852..4853 ","
3068 WHITESPACE@4853..4857 "\n\n "3037 WHITESPACE@4853..4857 "\n\n "
3069 MEMBER_FIELD@4857..55133038 MEMBER_FIELD_METHOD@4857..5513
3070 FIELD_METHOD@4857..55133039 FIELD_NAME_FIXED@4857..4871
3071 FIELD_NAME_FIXED@4857..48713040 NAME@4857..4871
3072 NAME@4857..48713041 IDENT@4857..4871 "manifestPython"
3073 IDENT@4857..4871 "manifestPython"3042 PARAMS_DESC@4871..4874
3074 PARAMS_DESC@4871..48743043 L_PAREN@4871..4872 "("
3075 L_PAREN@4871..4872 "("3044 PARAM@4872..4873
3076 PARAM@4872..48733045 DESTRUCT_FULL@4872..4873
3077 DESTRUCT_FULL@4872..48733046 NAME@4872..4873
3078 NAME@4872..48733047 IDENT@4872..4873 "v"
3079 IDENT@4872..4873 "v"3048 R_PAREN@4873..4874 ")"
3080 R_PAREN@4873..4874 ")"3049 COLONCOLON@4874..4876 "::"
3081 COLONCOLON@4874..4876 "::"3050 WHITESPACE@4876..4881 "\n "
3082 WHITESPACE@4876..4881 "\n "3051 EXPR_IF_THEN_ELSE@4881..5513
3083 EXPR_IF_THEN_ELSE@4881..55133052 IF_KW@4881..4883 "if"
3084 IF_KW@4881..4883 "if"3053 WHITESPACE@4883..4884 " "
3085 WHITESPACE@4883..4884 " "3054 EXPR_APPLY@4884..4899
3086 EXPR_APPLY@4884..48993055 EXPR_INDEX@4884..4896
3087 EXPR_INDEX@4884..48963056 EXPR_VAR@4884..4887
3088 EXPR_VAR@4884..48873057 NAME@4884..4887
3089 NAME@4884..48873058 IDENT@4884..4887 "std"
3090 IDENT@4884..4887 "std"3059 DOT@4887..4888 "."
3091 DOT@4887..4888 "."3060 NAME@4888..4896
3092 NAME@4888..48963061 IDENT@4888..4896 "isObject"
3093 IDENT@4888..4896 "isObject"3062 ARGS_DESC@4896..4899
3094 ARGS_DESC@4896..48993063 L_PAREN@4896..4897 "("
3095 L_PAREN@4896..4897 "("3064 ARG@4897..4898
3096 ARG@4897..48983065 EXPR_VAR@4897..4898
3097 EXPR_VAR@4897..48983066 NAME@4897..4898
3098 NAME@4897..48983067 IDENT@4897..4898 "v"
3099 IDENT@4897..4898 "v"3068 R_PAREN@4898..4899 ")"
3100 R_PAREN@4898..4899 ")"3069 WHITESPACE@4899..4900 " "
3101 WHITESPACE@4899..4900 " "3070 THEN_KW@4900..4904 "then"
3102 THEN_KW@4900..4904 "then"3071 WHITESPACE@4904..4911 "\n "
3103 WHITESPACE@4904..4911 "\n "3072 TRUE_EXPR@4911..5086
3104 TRUE_EXPR@4911..50863073 EXPR_LOCAL@4911..5086
3105 EXPR_LOCAL@4911..50863074 LOCAL_KW@4911..4916 "local"
3106 LOCAL_KW@4911..4916 "local"3075 WHITESPACE@4916..4917 " "
3107 WHITESPACE@4916..4917 " "3076 BIND_DESTRUCT@4917..5045
3108 BIND_DESTRUCT@4917..50453077 DESTRUCT_FULL@4917..4923
3109 DESTRUCT_FULL@4917..49233078 NAME@4917..4923
3110 NAME@4917..49233079 IDENT@4917..4923 "fields"
3111 IDENT@4917..4923 "fields"3080 WHITESPACE@4923..4924 " "
3112 WHITESPACE@4923..4924 " "3081 ASSIGN@4924..4925 "="
3113 ASSIGN@4924..4925 "="3082 WHITESPACE@4925..4926 " "
3114 WHITESPACE@4925..4926 " "3083 EXPR_ARRAY_COMP@4926..5045
3115 EXPR_ARRAY_COMP@4926..50453084 L_BRACK@4926..4927 "["
3116 L_BRACK@4926..4927 "["3085 WHITESPACE@4927..4936 "\n "
3117 WHITESPACE@4927..4936 "\n "3086 EXPR_BINARY@4936..5000
3118 EXPR_BINARY@4936..50003087 LHS_EXPR@4936..4944
3119 LHS_EXPR@4936..49443088 EXPR_STRING@4936..4944
3120 EXPR_STRING@4936..49443089 STRING_SINGLE@4936..4944 "'%s: %s'"
3121 STRING_SINGLE@4936..4944 "'%s: %s'"3090 WHITESPACE@4944..4945 " "
3122 WHITESPACE@4944..4945 " "3091 MODULO@4945..4946 "%"
3123 MODULO@4945..4946 "%"3092 WHITESPACE@4946..4947 " "
3124 WHITESPACE@4946..4947 " "3093 EXPR_ARRAY@4947..5000
3125 EXPR_ARRAY@4947..50003094 L_BRACK@4947..4948 "["
3126 L_BRACK@4947..4948 "["3095 EXPR_APPLY@4948..4973
3127 EXPR_APPLY@4948..49733096 EXPR_INDEX@4948..4970
3128 EXPR_INDEX@4948..49703097 EXPR_VAR@4948..4951
3129 EXPR_VAR@4948..49513098 NAME@4948..4951
3130 NAME@4948..49513099 IDENT@4948..4951 "std"
3131 IDENT@4948..4951 "std"3100 DOT@4951..4952 "."
3132 DOT@4951..4952 "."3101 NAME@4952..4970
3133 NAME@4952..49703102 IDENT@4952..4970 "escapeStringPython"
3134 IDENT@4952..4970 "escapeStringPython"3103 ARGS_DESC@4970..4973
3135 ARGS_DESC@4970..49733104 L_PAREN@4970..4971 "("
3136 L_PAREN@4970..4971 "("3105 ARG@4971..4972
3137 ARG@4971..49723106 EXPR_VAR@4971..4972
3138 EXPR_VAR@4971..49723107 NAME@4971..4972
3139 NAME@4971..49723108 IDENT@4971..4972 "k"
3140 IDENT@4971..4972 "k"3109 R_PAREN@4972..4973 ")"
3141 R_PAREN@4972..4973 ")"3110 COMMA@4973..4974 ","
3142 COMMA@4973..4974 ","3111 WHITESPACE@4974..4975 " "
3143 WHITESPACE@4974..4975 " "3112 EXPR_APPLY@4975..4999
3144 EXPR_APPLY@4975..49993113 EXPR_INDEX@4975..4993
3145 EXPR_INDEX@4975..49933114 EXPR_VAR@4975..4978
3146 EXPR_VAR@4975..49783115 NAME@4975..4978
3147 NAME@4975..49783116 IDENT@4975..4978 "std"
3148 IDENT@4975..4978 "std"3117 DOT@4978..4979 "."
3149 DOT@4978..4979 "."3118 NAME@4979..4993
3150 NAME@4979..49933119 IDENT@4979..4993 "manifestPython"
3151 IDENT@4979..4993 "manifestPython"3120 ARGS_DESC@4993..4999
3152 ARGS_DESC@4993..49993121 L_PAREN@4993..4994 "("
3153 L_PAREN@4993..4994 "("3122 ARG@4994..4998
3154 ARG@4994..49983123 EXPR_INDEX_EXPR@4994..4998
3155 EXPR_INDEX_EXPR@4994..49983124 LHS_EXPR@4994..4995
3156 LHS_EXPR@4994..49953125 EXPR_VAR@4994..4995
3157 EXPR_VAR@4994..49953126 NAME@4994..4995
3158 NAME@4994..49953127 IDENT@4994..4995 "v"
3159 IDENT@4994..4995 "v"3128 L_BRACK@4995..4996 "["
3160 L_BRACK@4995..4996 "["3129 EXPR_VAR@4996..4997
3161 EXPR_VAR@4996..49973130 NAME@4996..4997
3162 NAME@4996..49973131 IDENT@4996..4997 "k"
3163 IDENT@4996..4997 "k"3132 R_BRACK@4997..4998 "]"
3164 R_BRACK@4997..4998 "]"3133 R_PAREN@4998..4999 ")"
3165 R_PAREN@4998..4999 ")"3134 R_BRACK@4999..5000 "]"
3166 R_BRACK@4999..5000 "]"3135 WHITESPACE@5000..5009 "\n "
3167 WHITESPACE@5000..5009 "\n "3136 FOR_SPEC@5009..5037
3168 FOR_SPEC@5009..50373137 FOR_KW@5009..5012 "for"
3169 FOR_KW@5009..5012 "for"3138 WHITESPACE@5012..5013 " "
3170 WHITESPACE@5012..5013 " "3139 NAME@5013..5014
3171 NAME@5013..50143140 IDENT@5013..5014 "k"
3172 IDENT@5013..5014 "k"3141 WHITESPACE@5014..5015 " "
3173 WHITESPACE@5014..5015 " "3142 IN_KW@5015..5017 "in"
3174 IN_KW@5015..5017 "in"3143 WHITESPACE@5017..5018 " "
3175 WHITESPACE@5017..5018 " "3144 EXPR_APPLY@5018..5037
3176 EXPR_APPLY@5018..50373145 EXPR_INDEX@5018..5034
3177 EXPR_INDEX@5018..50343146 EXPR_VAR@5018..5021
3178 EXPR_VAR@5018..50213147 NAME@5018..5021
3179 NAME@5018..50213148 IDENT@5018..5021 "std"
3180 IDENT@5018..5021 "std"3149 DOT@5021..5022 "."
3181 DOT@5021..5022 "."3150 NAME@5022..5034
3182 NAME@5022..50343151 IDENT@5022..5034 "objectFields"
3183 IDENT@5022..5034 "objectFields"3152 ARGS_DESC@5034..5037
3184 ARGS_DESC@5034..50373153 L_PAREN@5034..5035 "("
3185 L_PAREN@5034..5035 "("3154 ARG@5035..5036
3186 ARG@5035..50363155 EXPR_VAR@5035..5036
3187 EXPR_VAR@5035..50363156 NAME@5035..5036
3188 NAME@5035..50363157 IDENT@5035..5036 "v"
3189 IDENT@5035..5036 "v"3158 R_PAREN@5036..5037 ")"
3190 R_PAREN@5036..5037 ")"3159 WHITESPACE@5037..5044 "\n "
3191 WHITESPACE@5037..5044 "\n "3160 R_BRACK@5044..5045 "]"
3192 R_BRACK@5044..5045 "]"3161 SEMI@5045..5046 ";"
3193 SEMI@5045..5046 ";"3162 WHITESPACE@5046..5053 "\n "
3194 WHITESPACE@5046..5053 "\n "3163 EXPR_BINARY@5053..5086
3195 EXPR_BINARY@5053..50863164 LHS_EXPR@5053..5059
3196 LHS_EXPR@5053..50593165 EXPR_STRING@5053..5059
3197 EXPR_STRING@5053..50593166 STRING_SINGLE@5053..5059 "'{%s}'"
3198 STRING_SINGLE@5053..5059 "'{%s}'"3167 WHITESPACE@5059..5060 " "
3199 WHITESPACE@5059..5060 " "3168 MODULO@5060..5061 "%"
3200 MODULO@5060..5061 "%"3169 WHITESPACE@5061..5062 " "
3201 WHITESPACE@5061..5062 " "3170 EXPR_ARRAY@5062..5086
3202 EXPR_ARRAY@5062..50863171 L_BRACK@5062..5063 "["
3203 L_BRACK@5062..5063 "["3172 EXPR_APPLY@5063..5085
3204 EXPR_APPLY@5063..50853173 EXPR_INDEX@5063..5071
3205 EXPR_INDEX@5063..50713174 EXPR_VAR@5063..5066
3206 EXPR_VAR@5063..50663175 NAME@5063..5066
3207 NAME@5063..50663176 IDENT@5063..5066 "std"
3208 IDENT@5063..5066 "std"3177 DOT@5066..5067 "."
3209 DOT@5066..5067 "."3178 NAME@5067..5071
3210 NAME@5067..50713179 IDENT@5067..5071 "join"
3211 IDENT@5067..5071 "join"3180 ARGS_DESC@5071..5085
3212 ARGS_DESC@5071..50853181 L_PAREN@5071..5072 "("
3213 L_PAREN@5071..5072 "("3182 ARG@5072..5076
3214 ARG@5072..50763183 EXPR_STRING@5072..5076
3215 EXPR_STRING@5072..50763184 STRING_SINGLE@5072..5076 "', '"
3216 STRING_SINGLE@5072..5076 "', '"3185 COMMA@5076..5077 ","
3217 COMMA@5076..5077 ","3186 WHITESPACE@5077..5078 " "
3218 WHITESPACE@5077..5078 " "3187 ARG@5078..5084
3219 ARG@5078..50843188 EXPR_VAR@5078..5084
3220 EXPR_VAR@5078..50843189 NAME@5078..5084
3221 NAME@5078..50843190 IDENT@5078..5084 "fields"
3222 IDENT@5078..5084 "fields"3191 R_PAREN@5084..5085 ")"
3223 R_PAREN@5084..5085 ")"3192 R_BRACK@5085..5086 "]"
3224 R_BRACK@5085..5086 "]"3193 WHITESPACE@5086..5091 "\n "
3225 WHITESPACE@5086..5091 "\n "3194 ELSE_KW@5091..5095 "else"
3226 ELSE_KW@5091..5095 "else"3195 WHITESPACE@5095..5096 " "
3227 WHITESPACE@5095..5096 " "3196 FALSE_EXPR@5096..5513
3228 FALSE_EXPR@5096..55133197 EXPR_IF_THEN_ELSE@5096..5513
3229 EXPR_IF_THEN_ELSE@5096..55133198 IF_KW@5096..5098 "if"
3230 IF_KW@5096..5098 "if"3199 WHITESPACE@5098..5099 " "
3231 WHITESPACE@5098..5099 " "3200 EXPR_APPLY@5099..5113
3232 EXPR_APPLY@5099..51133201 EXPR_INDEX@5099..5110
3233 EXPR_INDEX@5099..51103202 EXPR_VAR@5099..5102
3234 EXPR_VAR@5099..51023203 NAME@5099..5102
3235 NAME@5099..51023204 IDENT@5099..5102 "std"
3236 IDENT@5099..5102 "std"3205 DOT@5102..5103 "."
3237 DOT@5102..5103 "."3206 NAME@5103..5110
3238 NAME@5103..51103207 IDENT@5103..5110 "isArray"
3239 IDENT@5103..5110 "isArray"3208 ARGS_DESC@5110..5113
3240 ARGS_DESC@5110..51133209 L_PAREN@5110..5111 "("
3241 L_PAREN@5110..5111 "("3210 ARG@5111..5112
3242 ARG@5111..51123211 EXPR_VAR@5111..5112
3243 EXPR_VAR@5111..51123212 NAME@5111..5112
3244 NAME@5111..51123213 IDENT@5111..5112 "v"
3245 IDENT@5111..5112 "v"3214 R_PAREN@5112..5113 ")"
3246 R_PAREN@5112..5113 ")"3215 WHITESPACE@5113..5114 " "
3247 WHITESPACE@5113..5114 " "3216 THEN_KW@5114..5118 "then"
3248 THEN_KW@5114..5118 "then"3217 WHITESPACE@5118..5125 "\n "
3249 WHITESPACE@5118..5125 "\n "3218 TRUE_EXPR@5125..5188
3250 TRUE_EXPR@5125..51883219 EXPR_BINARY@5125..5188
3251 EXPR_BINARY@5125..51883220 LHS_EXPR@5125..5131
3252 LHS_EXPR@5125..51313221 EXPR_STRING@5125..5131
3253 EXPR_STRING@5125..51313222 STRING_SINGLE@5125..5131 "'[%s]'"
3254 STRING_SINGLE@5125..5131 "'[%s]'"3223 WHITESPACE@5131..5132 " "
3255 WHITESPACE@5131..5132 " "3224 MODULO@5132..5133 "%"
3256 MODULO@5132..5133 "%"3225 WHITESPACE@5133..5134 " "
3257 WHITESPACE@5133..5134 " "3226 EXPR_ARRAY@5134..5188
3258 EXPR_ARRAY@5134..51883227 L_BRACK@5134..5135 "["
3259 L_BRACK@5134..5135 "["3228 EXPR_APPLY@5135..5187
3260 EXPR_APPLY@5135..51873229 EXPR_INDEX@5135..5143
3261 EXPR_INDEX@5135..51433230 EXPR_VAR@5135..5138
3262 EXPR_VAR@5135..51383231 NAME@5135..5138
3263 NAME@5135..51383232 IDENT@5135..5138 "std"
3264 IDENT@5135..5138 "std"3233 DOT@5138..5139 "."
3265 DOT@5138..5139 "."3234 NAME@5139..5143
3266 NAME@5139..51433235 IDENT@5139..5143 "join"
3267 IDENT@5139..5143 "join"3236 ARGS_DESC@5143..5187
3268 ARGS_DESC@5143..51873237 L_PAREN@5143..5144 "("
3269 L_PAREN@5143..5144 "("3238 ARG@5144..5148
3270 ARG@5144..51483239 EXPR_STRING@5144..5148
3271 EXPR_STRING@5144..51483240 STRING_SINGLE@5144..5148 "', '"
3272 STRING_SINGLE@5144..5148 "', '"3241 COMMA@5148..5149 ","
3273 COMMA@5148..5149 ","3242 WHITESPACE@5149..5150 " "
3274 WHITESPACE@5149..5150 " "3243 ARG@5150..5186
3275 ARG@5150..51863244 EXPR_ARRAY_COMP@5150..5186
3276 EXPR_ARRAY_COMP@5150..51863245 L_BRACK@5150..5151 "["
3277 L_BRACK@5150..5151 "["3246 EXPR_APPLY@5151..5173
3278 EXPR_APPLY@5151..51733247 EXPR_INDEX@5151..5169
3279 EXPR_INDEX@5151..51693248 EXPR_VAR@5151..5154
3280 EXPR_VAR@5151..51543249 NAME@5151..5154
3281 NAME@5151..51543250 IDENT@5151..5154 "std"
3282 IDENT@5151..5154 "std"3251 DOT@5154..5155 "."
3283 DOT@5154..5155 "."3252 NAME@5155..5169
3284 NAME@5155..51693253 IDENT@5155..5169 "manifestPython"
3285 IDENT@5155..5169 "manifestPython"3254 ARGS_DESC@5169..5173
3286 ARGS_DESC@5169..51733255 L_PAREN@5169..5170 "("
3287 L_PAREN@5169..5170 "("3256 ARG@5170..5172
3288 ARG@5170..51723257 EXPR_VAR@5170..5172
3289 EXPR_VAR@5170..51723258 NAME@5170..5172
3290 NAME@5170..51723259 IDENT@5170..5172 "v2"
3291 IDENT@5170..5172 "v2"3260 R_PAREN@5172..5173 ")"
3292 R_PAREN@5172..5173 ")"3261 WHITESPACE@5173..5174 " "
3293 WHITESPACE@5173..5174 " "3262 FOR_SPEC@5174..5185
3294 FOR_SPEC@5174..51853263 FOR_KW@5174..5177 "for"
3295 FOR_KW@5174..5177 "for"3264 WHITESPACE@5177..5178 " "
3296 WHITESPACE@5177..5178 " "3265 NAME@5178..5180
3297 NAME@5178..51803266 IDENT@5178..5180 "v2"
3298 IDENT@5178..5180 "v2"3267 WHITESPACE@5180..5181 " "
3299 WHITESPACE@5180..5181 " "3268 IN_KW@5181..5183 "in"
3300 IN_KW@5181..5183 "in"3269 WHITESPACE@5183..5184 " "
3301 WHITESPACE@5183..5184 " "3270 EXPR_VAR@5184..5185
3302 EXPR_VAR@5184..51853271 NAME@5184..5185
3303 NAME@5184..51853272 IDENT@5184..5185 "v"
3304 IDENT@5184..5185 "v"3273 R_BRACK@5185..5186 "]"
3305 R_BRACK@5185..5186 "]"3274 R_PAREN@5186..5187 ")"
3306 R_PAREN@5186..5187 ")"3275 R_BRACK@5187..5188 "]"
3307 R_BRACK@5187..5188 "]"3276 WHITESPACE@5188..5193 "\n "
3308 WHITESPACE@5188..5193 "\n "3277 ELSE_KW@5193..5197 "else"
3309 ELSE_KW@5193..5197 "else"3278 WHITESPACE@5197..5198 " "
3310 WHITESPACE@5197..5198 " "3279 FALSE_EXPR@5198..5513
3311 FALSE_EXPR@5198..55133280 EXPR_IF_THEN_ELSE@5198..5513
3312 EXPR_IF_THEN_ELSE@5198..55133281 IF_KW@5198..5200 "if"
3313 IF_KW@5198..5200 "if"3282 WHITESPACE@5200..5201 " "
3314 WHITESPACE@5200..5201 " "3283 EXPR_APPLY@5201..5216
3315 EXPR_APPLY@5201..52163284 EXPR_INDEX@5201..5213
3316 EXPR_INDEX@5201..52133285 EXPR_VAR@5201..5204
3317 EXPR_VAR@5201..52043286 NAME@5201..5204
3318 NAME@5201..52043287 IDENT@5201..5204 "std"
3319 IDENT@5201..5204 "std"3288 DOT@5204..5205 "."
3320 DOT@5204..5205 "."3289 NAME@5205..5213
3321 NAME@5205..52133290 IDENT@5205..5213 "isString"
3322 IDENT@5205..5213 "isString"3291 ARGS_DESC@5213..5216
3323 ARGS_DESC@5213..52163292 L_PAREN@5213..5214 "("
3324 L_PAREN@5213..5214 "("3293 ARG@5214..5215
3325 ARG@5214..52153294 EXPR_VAR@5214..5215
3326 EXPR_VAR@5214..52153295 NAME@5214..5215
3327 NAME@5214..52153296 IDENT@5214..5215 "v"
3328 IDENT@5214..5215 "v"3297 R_PAREN@5215..5216 ")"
3329 R_PAREN@5215..5216 ")"3298 WHITESPACE@5216..5217 " "
3330 WHITESPACE@5216..5217 " "3299 THEN_KW@5217..5221 "then"
3331 THEN_KW@5217..5221 "then"3300 WHITESPACE@5221..5228 "\n "
3332 WHITESPACE@5221..5228 "\n "3301 TRUE_EXPR@5228..5262
3333 TRUE_EXPR@5228..52623302 EXPR_BINARY@5228..5262
3334 EXPR_BINARY@5228..52623303 LHS_EXPR@5228..5232
3335 LHS_EXPR@5228..52323304 EXPR_STRING@5228..5232
3336 EXPR_STRING@5228..52323305 STRING_SINGLE@5228..5232 "'%s'"
3337 STRING_SINGLE@5228..5232 "'%s'"3306 WHITESPACE@5232..5233 " "
3338 WHITESPACE@5232..5233 " "3307 MODULO@5233..5234 "%"
3339 MODULO@5233..5234 "%"3308 WHITESPACE@5234..5235 " "
3340 WHITESPACE@5234..5235 " "3309 EXPR_ARRAY@5235..5262
3341 EXPR_ARRAY@5235..52623310 L_BRACK@5235..5236 "["
3342 L_BRACK@5235..5236 "["3311 EXPR_APPLY@5236..5261
3343 EXPR_APPLY@5236..52613312 EXPR_INDEX@5236..5258
3344 EXPR_INDEX@5236..52583313 EXPR_VAR@5236..5239
3345 EXPR_VAR@5236..52393314 NAME@5236..5239
3346 NAME@5236..52393315 IDENT@5236..5239 "std"
3347 IDENT@5236..5239 "std"3316 DOT@5239..5240 "."
3348 DOT@5239..5240 "."3317 NAME@5240..5258
3349 NAME@5240..52583318 IDENT@5240..5258 "escapeStringPython"
3350 IDENT@5240..5258 "escapeStringPython"3319 ARGS_DESC@5258..5261
3351 ARGS_DESC@5258..52613320 L_PAREN@5258..5259 "("
3352 L_PAREN@5258..5259 "("3321 ARG@5259..5260
3353 ARG@5259..52603322 EXPR_VAR@5259..5260
3354 EXPR_VAR@5259..52603323 NAME@5259..5260
3355 NAME@5259..52603324 IDENT@5259..5260 "v"
3356 IDENT@5259..5260 "v"3325 R_PAREN@5260..5261 ")"
3357 R_PAREN@5260..5261 ")"3326 R_BRACK@5261..5262 "]"
3358 R_BRACK@5261..5262 "]"3327 WHITESPACE@5262..5267 "\n "
3359 WHITESPACE@5262..5267 "\n "3328 ELSE_KW@5267..5271 "else"
3360 ELSE_KW@5267..5271 "else"3329 WHITESPACE@5271..5272 " "
3361 WHITESPACE@5271..5272 " "3330 FALSE_EXPR@5272..5513
3362 FALSE_EXPR@5272..55133331 EXPR_IF_THEN_ELSE@5272..5513
3363 EXPR_IF_THEN_ELSE@5272..55133332 IF_KW@5272..5274 "if"
3364 IF_KW@5272..5274 "if"3333 WHITESPACE@5274..5275 " "
3365 WHITESPACE@5274..5275 " "3334 EXPR_APPLY@5275..5292
3366 EXPR_APPLY@5275..52923335 EXPR_INDEX@5275..5289
3367 EXPR_INDEX@5275..52893336 EXPR_VAR@5275..5278
3368 EXPR_VAR@5275..52783337 NAME@5275..5278
3369 NAME@5275..52783338 IDENT@5275..5278 "std"
3370 IDENT@5275..5278 "std"3339 DOT@5278..5279 "."
3371 DOT@5278..5279 "."3340 NAME@5279..5289
3372 NAME@5279..52893341 IDENT@5279..5289 "isFunction"
3373 IDENT@5279..5289 "isFunction"3342 ARGS_DESC@5289..5292
3374 ARGS_DESC@5289..52923343 L_PAREN@5289..5290 "("
3375 L_PAREN@5289..5290 "("3344 ARG@5290..5291
3376 ARG@5290..52913345 EXPR_VAR@5290..5291
3377 EXPR_VAR@5290..52913346 NAME@5290..5291
3378 NAME@5290..52913347 IDENT@5290..5291 "v"
3379 IDENT@5290..5291 "v"3348 R_PAREN@5291..5292 ")"
3380 R_PAREN@5291..5292 ")"3349 WHITESPACE@5292..5293 " "
3381 WHITESPACE@5292..5293 " "3350 THEN_KW@5293..5297 "then"
3382 THEN_KW@5293..5297 "then"3351 WHITESPACE@5297..5304 "\n "
3383 WHITESPACE@5297..5304 "\n "3352 TRUE_EXPR@5304..5336
3384 TRUE_EXPR@5304..53363353 EXPR_ERROR@5304..5336
3385 EXPR_ERROR@5304..53363354 ERROR_KW@5304..5309 "error"
3386 ERROR_KW@5304..5309 "error"3355 WHITESPACE@5309..5310 " "
3387 WHITESPACE@5309..5310 " "3356 EXPR_STRING@5310..5336
3388 EXPR_STRING@5310..53363357 STRING_SINGLE@5310..5336 "'cannot manifest func ..."
3389 STRING_SINGLE@5310..5336 "'cannot manifest func ..."3358 WHITESPACE@5336..5341 "\n "
3390 WHITESPACE@5336..5341 "\n "3359 ELSE_KW@5341..5345 "else"
3391 ELSE_KW@5341..5345 "else"3360 WHITESPACE@5345..5346 " "
3392 WHITESPACE@5345..5346 " "3361 FALSE_EXPR@5346..5513
3393 FALSE_EXPR@5346..55133362 EXPR_IF_THEN_ELSE@5346..5513
3394 EXPR_IF_THEN_ELSE@5346..55133363 IF_KW@5346..5348 "if"
3395 IF_KW@5346..5348 "if"3364 WHITESPACE@5348..5349 " "
3396 WHITESPACE@5348..5349 " "3365 EXPR_APPLY@5349..5364
3397 EXPR_APPLY@5349..53643366 EXPR_INDEX@5349..5361
3398 EXPR_INDEX@5349..53613367 EXPR_VAR@5349..5352
3399 EXPR_VAR@5349..53523368 NAME@5349..5352
3400 NAME@5349..53523369 IDENT@5349..5352 "std"
3401 IDENT@5349..5352 "std"3370 DOT@5352..5353 "."
3402 DOT@5352..5353 "."3371 NAME@5353..5361
3403 NAME@5353..53613372 IDENT@5353..5361 "isNumber"
3404 IDENT@5353..5361 "isNumber"3373 ARGS_DESC@5361..5364
3405 ARGS_DESC@5361..53643374 L_PAREN@5361..5362 "("
3406 L_PAREN@5361..5362 "("3375 ARG@5362..5363
3407 ARG@5362..53633376 EXPR_VAR@5362..5363
3408 EXPR_VAR@5362..53633377 NAME@5362..5363
3409 NAME@5362..53633378 IDENT@5362..5363 "v"
3410 IDENT@5362..5363 "v"3379 R_PAREN@5363..5364 ")"
3411 R_PAREN@5363..5364 ")"3380 WHITESPACE@5364..5365 " "
3412 WHITESPACE@5364..5365 " "3381 THEN_KW@5365..5369 "then"
3413 THEN_KW@5365..5369 "then"3382 WHITESPACE@5369..5376 "\n "
3414 WHITESPACE@5369..5376 "\n "3383 TRUE_EXPR@5376..5391
3415 TRUE_EXPR@5376..53913384 EXPR_APPLY@5376..5391
3416 EXPR_APPLY@5376..53913385 EXPR_INDEX@5376..5388
3417 EXPR_INDEX@5376..53883386 EXPR_VAR@5376..5379
3418 EXPR_VAR@5376..53793387 NAME@5376..5379
3419 NAME@5376..53793388 IDENT@5376..5379 "std"
3420 IDENT@5376..5379 "std"3389 DOT@5379..5380 "."
3421 DOT@5379..5380 "."3390 NAME@5380..5388
3422 NAME@5380..53883391 IDENT@5380..5388 "toString"
3423 IDENT@5380..5388 "toString"3392 ARGS_DESC@5388..5391
3424 ARGS_DESC@5388..53913393 L_PAREN@5388..5389 "("
3425 L_PAREN@5388..5389 "("3394 ARG@5389..5390
3426 ARG@5389..53903395 EXPR_VAR@5389..5390
3427 EXPR_VAR@5389..53903396 NAME@5389..5390
3428 NAME@5389..53903397 IDENT@5389..5390 "v"
3429 IDENT@5389..5390 "v"3398 R_PAREN@5390..5391 ")"
3430 R_PAREN@5390..5391 ")"3399 WHITESPACE@5391..5396 "\n "
3431 WHITESPACE@5391..5396 "\n "3400 ELSE_KW@5396..5400 "else"
3432 ELSE_KW@5396..5400 "else"3401 WHITESPACE@5400..5401 " "
3433 WHITESPACE@5400..5401 " "3402 FALSE_EXPR@5401..5513
3434 FALSE_EXPR@5401..55133403 EXPR_IF_THEN_ELSE@5401..5513
3435 EXPR_IF_THEN_ELSE@5401..55133404 IF_KW@5401..5403 "if"
3436 IF_KW@5401..5403 "if"3405 WHITESPACE@5403..5404 " "
3437 WHITESPACE@5403..5404 " "3406 EXPR_BINARY@5404..5413
3438 EXPR_BINARY@5404..54133407 LHS_EXPR@5404..5405
3439 LHS_EXPR@5404..54053408 EXPR_VAR@5404..5405
3440 EXPR_VAR@5404..54053409 NAME@5404..5405
3441 NAME@5404..54053410 IDENT@5404..5405 "v"
3442 IDENT@5404..5405 "v"3411 WHITESPACE@5405..5406 " "
3443 WHITESPACE@5405..5406 " "3412 EQ@5406..5408 "=="
3444 EQ@5406..5408 "=="3413 WHITESPACE@5408..5409 " "
3445 WHITESPACE@5408..5409 " "3414 EXPR_LITERAL@5409..5413
3446 EXPR_LITERAL@5409..54133415 TRUE_KW@5409..5413 "true"
3447 TRUE_KW@5409..5413 "true"3416 WHITESPACE@5413..5414 " "
3448 WHITESPACE@5413..5414 " "3417 THEN_KW@5414..5418 "then"
3449 THEN_KW@5414..5418 "then"3418 WHITESPACE@5418..5425 "\n "
3450 WHITESPACE@5418..5425 "\n "3419 TRUE_EXPR@5425..5431
3451 TRUE_EXPR@5425..54313420 EXPR_STRING@5425..5431
3452 EXPR_STRING@5425..54313421 STRING_SINGLE@5425..5431 "'True'"
3453 STRING_SINGLE@5425..5431 "'True'"3422 WHITESPACE@5431..5436 "\n "
3454 WHITESPACE@5431..5436 "\n "3423 ELSE_KW@5436..5440 "else"
3455 ELSE_KW@5436..5440 "else"3424 WHITESPACE@5440..5441 " "
3456 WHITESPACE@5440..5441 " "3425 FALSE_EXPR@5441..5513
3457 FALSE_EXPR@5441..55133426 EXPR_IF_THEN_ELSE@5441..5513
3458 EXPR_IF_THEN_ELSE@5441..55133427 IF_KW@5441..5443 "if"
3459 IF_KW@5441..5443 "if"3428 WHITESPACE@5443..5444 " "
3460 WHITESPACE@5443..5444 " "3429 EXPR_BINARY@5444..5454
3461 EXPR_BINARY@5444..54543430 LHS_EXPR@5444..5445
3462 LHS_EXPR@5444..54453431 EXPR_VAR@5444..5445
3463 EXPR_VAR@5444..54453432 NAME@5444..5445
3464 NAME@5444..54453433 IDENT@5444..5445 "v"
3465 IDENT@5444..5445 "v"3434 WHITESPACE@5445..5446 " "
3466 WHITESPACE@5445..5446 " "3435 EQ@5446..5448 "=="
3467 EQ@5446..5448 "=="3436 WHITESPACE@5448..5449 " "
3468 WHITESPACE@5448..5449 " "3437 EXPR_LITERAL@5449..5454
3469 EXPR_LITERAL@5449..54543438 FALSE_KW@5449..5454 "false"
3470 FALSE_KW@5449..5454 "false"3439 WHITESPACE@5454..5455 " "
3471 WHITESPACE@5454..5455 " "3440 THEN_KW@5455..5459 "then"
3472 THEN_KW@5455..5459 "then"3441 WHITESPACE@5459..5466 "\n "
3473 WHITESPACE@5459..5466 "\n "3442 TRUE_EXPR@5466..5473
3474 TRUE_EXPR@5466..54733443 EXPR_STRING@5466..5473
3475 EXPR_STRING@5466..54733444 STRING_SINGLE@5466..5473 "'False'"
3476 STRING_SINGLE@5466..5473 "'False'"3445 WHITESPACE@5473..5478 "\n "
3477 WHITESPACE@5473..5478 "\n "3446 ELSE_KW@5478..5482 "else"
3478 ELSE_KW@5478..5482 "else"3447 WHITESPACE@5482..5483 " "
3479 WHITESPACE@5482..5483 " "3448 FALSE_EXPR@5483..5513
3480 FALSE_EXPR@5483..55133449 EXPR_IF_THEN_ELSE@5483..5513
3481 EXPR_IF_THEN_ELSE@5483..55133450 IF_KW@5483..5485 "if"
3482 IF_KW@5483..5485 "if"3451 WHITESPACE@5485..5486 " "
3483 WHITESPACE@5485..5486 " "3452 EXPR_BINARY@5486..5495
3484 EXPR_BINARY@5486..54953453 LHS_EXPR@5486..5487
3485 LHS_EXPR@5486..54873454 EXPR_VAR@5486..5487
3486 EXPR_VAR@5486..54873455 NAME@5486..5487
3487 NAME@5486..54873456 IDENT@5486..5487 "v"
3488 IDENT@5486..5487 "v"3457 WHITESPACE@5487..5488 " "
3489 WHITESPACE@5487..5488 " "3458 EQ@5488..5490 "=="
3490 EQ@5488..5490 "=="3459 WHITESPACE@5490..5491 " "
3491 WHITESPACE@5490..5491 " "3460 EXPR_LITERAL@5491..5495
3492 EXPR_LITERAL@5491..54953461 NULL_KW@5491..5495 "null"
3493 NULL_KW@5491..5495 "null"3462 WHITESPACE@5495..5496 " "
3494 WHITESPACE@5495..5496 " "3463 THEN_KW@5496..5500 "then"
3495 THEN_KW@5496..5500 "then"3464 WHITESPACE@5500..5507 "\n "
3496 WHITESPACE@5500..5507 "\n "3465 TRUE_EXPR@5507..5513
3497 TRUE_EXPR@5507..55133466 EXPR_STRING@5507..5513
3498 EXPR_STRING@5507..55133467 STRING_SINGLE@5507..5513 "'None'"
3499 STRING_SINGLE@5507..5513 "'None'"
3500 COMMA@5513..5514 ","3468 COMMA@5513..5514 ","
3501 WHITESPACE@5514..5518 "\n\n "3469 WHITESPACE@5514..5518 "\n\n "
3502 MEMBER_FIELD@5518..56733470 MEMBER_FIELD_METHOD@5518..5673
3503 FIELD_METHOD@5518..56733471 FIELD_NAME_FIXED@5518..5536
3504 FIELD_NAME_FIXED@5518..55363472 NAME@5518..5536
3505 NAME@5518..55363473 IDENT@5518..5536 "manifestPythonVars"
3506 IDENT@5518..5536 "manifestPythonVars"3474 PARAMS_DESC@5536..5542
3507 PARAMS_DESC@5536..55423475 L_PAREN@5536..5537 "("
3508 L_PAREN@5536..5537 "("3476 PARAM@5537..5541
3509 PARAM@5537..55413477 DESTRUCT_FULL@5537..5541
3510 DESTRUCT_FULL@5537..55413478 NAME@5537..5541
3511 NAME@5537..55413479 IDENT@5537..5541 "conf"
3512 IDENT@5537..5541 "conf"3480 R_PAREN@5541..5542 ")"
3513 R_PAREN@5541..5542 ")"3481 COLONCOLON@5542..5544 "::"
3514 COLONCOLON@5542..5544 "::"3482 WHITESPACE@5544..5549 "\n "
3515 WHITESPACE@5544..5549 "\n "3483 EXPR_LOCAL@5549..5673
3516 EXPR_LOCAL@5549..56733484 LOCAL_KW@5549..5554 "local"
3517 LOCAL_KW@5549..5554 "local"3485 WHITESPACE@5554..5555 " "
3518 WHITESPACE@5554..5555 " "3486 BIND_DESTRUCT@5555..5640
3519 BIND_DESTRUCT@5555..56403487 DESTRUCT_FULL@5555..5559
3520 DESTRUCT_FULL@5555..55593488 NAME@5555..5559
3521 NAME@5555..55593489 IDENT@5555..5559 "vars"
3522 IDENT@5555..5559 "vars"3490 WHITESPACE@5559..5560 " "
3523 WHITESPACE@5559..5560 " "3491 ASSIGN@5560..5561 "="
3524 ASSIGN@5560..5561 "="3492 WHITESPACE@5561..5562 " "
3525 WHITESPACE@5561..5562 " "3493 EXPR_ARRAY_COMP@5562..5640
3526 EXPR_ARRAY_COMP@5562..56403494 L_BRACK@5562..5563 "["
3527 L_BRACK@5562..5563 "["3495 EXPR_BINARY@5563..5607
3528 EXPR_BINARY@5563..56073496 LHS_EXPR@5563..5572
3529 LHS_EXPR@5563..55723497 EXPR_STRING@5563..5572
3530 EXPR_STRING@5563..55723498 STRING_SINGLE@5563..5572 "'%s = %s'"
3531 STRING_SINGLE@5563..5572 "'%s = %s'"3499 WHITESPACE@5572..5573 " "
3532 WHITESPACE@5572..5573 " "3500 MODULO@5573..5574 "%"
3533 MODULO@5573..5574 "%"3501 WHITESPACE@5574..5575 " "
3534 WHITESPACE@5574..5575 " "3502 EXPR_ARRAY@5575..5607
3535 EXPR_ARRAY@5575..56073503 L_BRACK@5575..5576 "["
3536 L_BRACK@5575..5576 "["3504 EXPR_VAR@5576..5577
3537 EXPR_VAR@5576..55773505 NAME@5576..5577
3538 NAME@5576..55773506 IDENT@5576..5577 "k"
3539 IDENT@5576..5577 "k"3507 COMMA@5577..5578 ","
3540 COMMA@5577..5578 ","3508 WHITESPACE@5578..5579 " "
3541 WHITESPACE@5578..5579 " "3509 EXPR_APPLY@5579..5606
3542 EXPR_APPLY@5579..56063510 EXPR_INDEX@5579..5597
3543 EXPR_INDEX@5579..55973511 EXPR_VAR@5579..5582
3544 EXPR_VAR@5579..55823512 NAME@5579..5582
3545 NAME@5579..55823513 IDENT@5579..5582 "std"
3546 IDENT@5579..5582 "std"3514 DOT@5582..5583 "."
3547 DOT@5582..5583 "."3515 NAME@5583..5597
3548 NAME@5583..55973516 IDENT@5583..5597 "manifestPython"
3549 IDENT@5583..5597 "manifestPython"3517 ARGS_DESC@5597..5606
3550 ARGS_DESC@5597..56063518 L_PAREN@5597..5598 "("
3551 L_PAREN@5597..5598 "("3519 ARG@5598..5605
3552 ARG@5598..56053520 EXPR_INDEX_EXPR@5598..5605
3553 EXPR_INDEX_EXPR@5598..56053521 LHS_EXPR@5598..5602
3554 LHS_EXPR@5598..56023522 EXPR_VAR@5598..5602
3555 EXPR_VAR@5598..56023523 NAME@5598..5602
3556 NAME@5598..56023524 IDENT@5598..5602 "conf"
3557 IDENT@5598..5602 "conf"3525 L_BRACK@5602..5603 "["
3558 L_BRACK@5602..5603 "["3526 EXPR_VAR@5603..5604
3559 EXPR_VAR@5603..56043527 NAME@5603..5604
3560 NAME@5603..56043528 IDENT@5603..5604 "k"
3561 IDENT@5603..5604 "k"3529 R_BRACK@5604..5605 "]"
3562 R_BRACK@5604..5605 "]"3530 R_PAREN@5605..5606 ")"
3563 R_PAREN@5605..5606 ")"3531 R_BRACK@5606..5607 "]"
3564 R_BRACK@5606..5607 "]"3532 WHITESPACE@5607..5608 " "
3565 WHITESPACE@5607..5608 " "3533 FOR_SPEC@5608..5639
3566 FOR_SPEC@5608..56393534 FOR_KW@5608..5611 "for"
3567 FOR_KW@5608..5611 "for"3535 WHITESPACE@5611..5612 " "
3568 WHITESPACE@5611..5612 " "3536 NAME@5612..5613
3569 NAME@5612..56133537 IDENT@5612..5613 "k"
3570 IDENT@5612..5613 "k"3538 WHITESPACE@5613..5614 " "
3571 WHITESPACE@5613..5614 " "3539 IN_KW@5614..5616 "in"
3572 IN_KW@5614..5616 "in"3540 WHITESPACE@5616..5617 " "
3573 WHITESPACE@5616..5617 " "3541 EXPR_APPLY@5617..5639
3574 EXPR_APPLY@5617..56393542 EXPR_INDEX@5617..5633
3575 EXPR_INDEX@5617..56333543 EXPR_VAR@5617..5620
3576 EXPR_VAR@5617..56203544 NAME@5617..5620
3577 NAME@5617..56203545 IDENT@5617..5620 "std"
3578 IDENT@5617..5620 "std"3546 DOT@5620..5621 "."
3579 DOT@5620..5621 "."3547 NAME@5621..5633
3580 NAME@5621..56333548 IDENT@5621..5633 "objectFields"
3581 IDENT@5621..5633 "objectFields"3549 ARGS_DESC@5633..5639
3582 ARGS_DESC@5633..56393550 L_PAREN@5633..5634 "("
3583 L_PAREN@5633..5634 "("3551 ARG@5634..5638
3584 ARG@5634..56383552 EXPR_VAR@5634..5638
3585 EXPR_VAR@5634..56383553 NAME@5634..5638
3586 NAME@5634..56383554 IDENT@5634..5638 "conf"
3587 IDENT@5634..5638 "conf"3555 R_PAREN@5638..5639 ")"
3588 R_PAREN@5638..5639 ")"3556 R_BRACK@5639..5640 "]"
3589 R_BRACK@5639..5640 "]"3557 SEMI@5640..5641 ";"
3590 SEMI@5640..5641 ";"3558 WHITESPACE@5641..5646 "\n "
3591 WHITESPACE@5641..5646 "\n "3559 EXPR_APPLY@5646..5673
3592 EXPR_APPLY@5646..56733560 EXPR_INDEX@5646..5654
3593 EXPR_INDEX@5646..56543561 EXPR_VAR@5646..5649
3594 EXPR_VAR@5646..56493562 NAME@5646..5649
3595 NAME@5646..56493563 IDENT@5646..5649 "std"
3596 IDENT@5646..5649 "std"3564 DOT@5649..5650 "."
3597 DOT@5649..5650 "."3565 NAME@5650..5654
3598 NAME@5650..56543566 IDENT@5650..5654 "join"
3599 IDENT@5650..5654 "join"3567 ARGS_DESC@5654..5673
3600 ARGS_DESC@5654..56733568 L_PAREN@5654..5655 "("
3601 L_PAREN@5654..5655 "("3569 ARG@5655..5659
3602 ARG@5655..56593570 EXPR_STRING@5655..5659
3603 EXPR_STRING@5655..56593571 STRING_SINGLE@5655..5659 "'\\n'"
3604 STRING_SINGLE@5655..5659 "'\\n'"3572 COMMA@5659..5660 ","
3605 COMMA@5659..5660 ","3573 WHITESPACE@5660..5661 " "
3606 WHITESPACE@5660..5661 " "3574 ARG@5661..5672
3607 ARG@5661..56723575 EXPR_BINARY@5661..5672
3608 EXPR_BINARY@5661..56723576 LHS_EXPR@5661..5665
3609 LHS_EXPR@5661..56653577 EXPR_VAR@5661..5665
3610 EXPR_VAR@5661..56653578 NAME@5661..5665
3611 NAME@5661..56653579 IDENT@5661..5665 "vars"
3612 IDENT@5661..5665 "vars"3580 WHITESPACE@5665..5666 " "
3613 WHITESPACE@5665..5666 " "3581 PLUS@5666..5667 "+"
3614 PLUS@5666..5667 "+"3582 WHITESPACE@5667..5668 " "
3615 WHITESPACE@5667..5668 " "3583 EXPR_ARRAY@5668..5672
3616 EXPR_ARRAY@5668..56723584 L_BRACK@5668..5669 "["
3617 L_BRACK@5668..5669 "["3585 EXPR_STRING@5669..5671
3618 EXPR_STRING@5669..56713586 STRING_SINGLE@5669..5671 "''"
3619 STRING_SINGLE@5669..5671 "''"3587 R_BRACK@5671..5672 "]"
3620 R_BRACK@5671..5672 "]"3588 R_PAREN@5672..5673 ")"
3621 R_PAREN@5672..5673 ")"
3622 COMMA@5673..5674 ","3589 COMMA@5673..5674 ","
3623 WHITESPACE@5674..5678 "\n\n "3590 WHITESPACE@5674..5678 "\n\n "
3624 MEMBER_FIELD@5678..63453591 MEMBER_FIELD_METHOD@5678..6345
3625 FIELD_METHOD@5678..63453592 FIELD_NAME_FIXED@5678..5695
3626 FIELD_NAME_FIXED@5678..56953593 NAME@5678..5695
3627 NAME@5678..56953594 IDENT@5678..5695 "manifestXmlJsonml"
3628 IDENT@5678..5695 "manifestXmlJsonml"3595 PARAMS_DESC@5695..5702
3629 PARAMS_DESC@5695..57023596 L_PAREN@5695..5696 "("
3630 L_PAREN@5695..5696 "("3597 PARAM@5696..5701
3631 PARAM@5696..57013598 DESTRUCT_FULL@5696..5701
3632 DESTRUCT_FULL@5696..57013599 NAME@5696..5701
3633 NAME@5696..57013600 IDENT@5696..5701 "value"
3634 IDENT@5696..5701 "value"3601 R_PAREN@5701..5702 ")"
3635 R_PAREN@5701..5702 ")"3602 COLONCOLON@5702..5704 "::"
3636 COLONCOLON@5702..5704 "::"3603 WHITESPACE@5704..5709 "\n "
3637 WHITESPACE@5704..5709 "\n "3604 EXPR_IF_THEN_ELSE@5709..6345
3638 EXPR_IF_THEN_ELSE@5709..63453605 IF_KW@5709..5711 "if"
3639 IF_KW@5709..5711 "if"3606 WHITESPACE@5711..5712 " "
3640 WHITESPACE@5711..5712 " "3607 EXPR_UNARY@5712..5731
3641 EXPR_UNARY@5712..57313608 NOT@5712..5713 "!"
3642 NOT@5712..5713 "!"3609 EXPR_APPLY@5713..5731
3643 EXPR_APPLY@5713..57313610 EXPR_INDEX@5713..5724
3644 EXPR_INDEX@5713..57243611 EXPR_VAR@5713..5716
3645 EXPR_VAR@5713..57163612 NAME@5713..5716
3646 NAME@5713..57163613 IDENT@5713..5716 "std"
3647 IDENT@5713..5716 "std"3614 DOT@5716..5717 "."
3648 DOT@5716..5717 "."3615 NAME@5717..5724
3649 NAME@5717..57243616 IDENT@5717..5724 "isArray"
3650 IDENT@5717..5724 "isArray"3617 ARGS_DESC@5724..5731
3651 ARGS_DESC@5724..57313618 L_PAREN@5724..5725 "("
3652 L_PAREN@5724..5725 "("3619 ARG@5725..5730
3653 ARG@5725..57303620 EXPR_VAR@5725..5730
3654 EXPR_VAR@5725..57303621 NAME@5725..5730
3655 NAME@5725..57303622 IDENT@5725..5730 "value"
3656 IDENT@5725..5730 "value"3623 R_PAREN@5730..5731 ")"
3657 R_PAREN@5730..5731 ")"3624 WHITESPACE@5731..5732 " "
3658 WHITESPACE@5731..5732 " "3625 THEN_KW@5732..5736 "then"
3659 THEN_KW@5732..5736 "then"3626 WHITESPACE@5736..5743 "\n "
3660 WHITESPACE@5736..5743 "\n "3627 TRUE_EXPR@5743..5811
3661 TRUE_EXPR@5743..58113628 EXPR_ERROR@5743..5811
3662 EXPR_ERROR@5743..58113629 ERROR_KW@5743..5748 "error"
3663 ERROR_KW@5743..5748 "error"3630 WHITESPACE@5748..5749 " "
3664 WHITESPACE@5748..5749 " "3631 EXPR_BINARY@5749..5811
3665 EXPR_BINARY@5749..58113632 LHS_EXPR@5749..5793
3666 LHS_EXPR@5749..57933633 EXPR_STRING@5749..5793
3667 EXPR_STRING@5749..57933634 STRING_SINGLE@5749..5793 "'Expected a JSONML va ..."
3668 STRING_SINGLE@5749..5793 "'Expected a JSONML va ..."3635 WHITESPACE@5793..5794 " "
3669 WHITESPACE@5793..5794 " "3636 MODULO@5794..5795 "%"
3670 MODULO@5794..5795 "%"3637 WHITESPACE@5795..5796 " "
3671 WHITESPACE@5795..5796 " "3638 EXPR_APPLY@5796..5811
3672 EXPR_APPLY@5796..58113639 EXPR_INDEX@5796..5804
3673 EXPR_INDEX@5796..58043640 EXPR_VAR@5796..5799
3674 EXPR_VAR@5796..57993641 NAME@5796..5799
3675 NAME@5796..57993642 IDENT@5796..5799 "std"
3676 IDENT@5796..5799 "std"3643 DOT@5799..5800 "."
3677 DOT@5799..5800 "."3644 NAME@5800..5804
3678 NAME@5800..58043645 IDENT@5800..5804 "type"
3679 IDENT@5800..5804 "type"3646 ARGS_DESC@5804..5811
3680 ARGS_DESC@5804..58113647 L_PAREN@5804..5805 "("
3681 L_PAREN@5804..5805 "("3648 ARG@5805..5810
3682 ARG@5805..58103649 EXPR_VAR@5805..5810
3683 EXPR_VAR@5805..58103650 NAME@5805..5810
3684 NAME@5805..58103651 IDENT@5805..5810 "value"
3685 IDENT@5805..5810 "value"3652 R_PAREN@5810..5811 ")"
3686 R_PAREN@5810..5811 ")"3653 WHITESPACE@5811..5816 "\n "
3687 WHITESPACE@5811..5816 "\n "3654 ELSE_KW@5816..5820 "else"
3688 ELSE_KW@5816..5820 "else"3655 WHITESPACE@5820..5827 "\n "
3689 WHITESPACE@5820..5827 "\n "3656 FALSE_EXPR@5827..6345
3690 FALSE_EXPR@5827..63453657 EXPR_LOCAL@5827..6345
3691 EXPR_LOCAL@5827..63453658 LOCAL_KW@5827..5832 "local"
3692 LOCAL_KW@5827..5832 "local"3659 WHITESPACE@5832..5833 " "
3693 WHITESPACE@5832..5833 " "3660 BIND_FUNCTION@5833..6326
3694 BIND_FUNCTION@5833..63263661 NAME@5833..5836
3695 NAME@5833..58363662 IDENT@5833..5836 "aux"
3696 IDENT@5833..5836 "aux"3663 PARAMS_DESC@5836..5839
3697 PARAMS_DESC@5836..58393664 L_PAREN@5836..5837 "("
3698 L_PAREN@5836..5837 "("3665 PARAM@5837..5838
3699 PARAM@5837..58383666 DESTRUCT_FULL@5837..5838
3700 DESTRUCT_FULL@5837..58383667 NAME@5837..5838
3701 NAME@5837..58383668 IDENT@5837..5838 "v"
3702 IDENT@5837..5838 "v"3669 R_PAREN@5838..5839 ")"
3703 R_PAREN@5838..5839 ")"3670 WHITESPACE@5839..5840 " "
3704 WHITESPACE@5839..5840 " "3671 ASSIGN@5840..5841 "="
3705 ASSIGN@5840..5841 "="3672 WHITESPACE@5841..5850 "\n "
3706 WHITESPACE@5841..5850 "\n "3673 EXPR_IF_THEN_ELSE@5850..6326
3707 EXPR_IF_THEN_ELSE@5850..63263674 IF_KW@5850..5852 "if"
3708 IF_KW@5850..5852 "if"3675 WHITESPACE@5852..5853 " "
3709 WHITESPACE@5852..5853 " "3676 EXPR_APPLY@5853..5868
3710 EXPR_APPLY@5853..58683677 EXPR_INDEX@5853..5865
3711 EXPR_INDEX@5853..58653678 EXPR_VAR@5853..5856
3712 EXPR_VAR@5853..58563679 NAME@5853..5856
3713 NAME@5853..58563680 IDENT@5853..5856 "std"
3714 IDENT@5853..5856 "std"3681 DOT@5856..5857 "."
3715 DOT@5856..5857 "."3682 NAME@5857..5865
3716 NAME@5857..58653683 IDENT@5857..5865 "isString"
3717 IDENT@5857..5865 "isString"3684 ARGS_DESC@5865..5868
3718 ARGS_DESC@5865..58683685 L_PAREN@5865..5866 "("
3719 L_PAREN@5865..5866 "("3686 ARG@5866..5867
3720 ARG@5866..58673687 EXPR_VAR@5866..5867
3721 EXPR_VAR@5866..58673688 NAME@5866..5867
3722 NAME@5866..58673689 IDENT@5866..5867 "v"
3723 IDENT@5866..5867 "v"3690 R_PAREN@5867..5868 ")"
3724 R_PAREN@5867..5868 ")"3691 WHITESPACE@5868..5869 " "
3725 WHITESPACE@5868..5869 " "3692 THEN_KW@5869..5873 "then"
3726 THEN_KW@5869..5873 "then"3693 WHITESPACE@5873..5884 "\n "
3727 WHITESPACE@5873..5884 "\n "3694 TRUE_EXPR@5884..5885
3728 TRUE_EXPR@5884..58853695 EXPR_VAR@5884..5885
3729 EXPR_VAR@5884..58853696 NAME@5884..5885
3730 NAME@5884..58853697 IDENT@5884..5885 "v"
3731 IDENT@5884..5885 "v"3698 WHITESPACE@5885..5894 "\n "
3732 WHITESPACE@5885..5894 "\n "3699 ELSE_KW@5894..5898 "else"
3733 ELSE_KW@5894..5898 "else"3700 WHITESPACE@5898..5909 "\n "
3734 WHITESPACE@5898..5909 "\n "3701 FALSE_EXPR@5909..6326
3735 FALSE_EXPR@5909..63263702 EXPR_LOCAL@5909..6326
3736 EXPR_LOCAL@5909..63263703 LOCAL_KW@5909..5914 "local"
3737 LOCAL_KW@5909..5914 "local"3704 WHITESPACE@5914..5915 " "
3738 WHITESPACE@5914..5915 " "3705 BIND_DESTRUCT@5915..5925
3739 BIND_DESTRUCT@5915..59253706 DESTRUCT_FULL@5915..5918
3740 DESTRUCT_FULL@5915..59183707 NAME@5915..5918
3741 NAME@5915..59183708 IDENT@5915..5918 "tag"
3742 IDENT@5915..5918 "tag"3709 WHITESPACE@5918..5919 " "
3743 WHITESPACE@5918..5919 " "3710 ASSIGN@5919..5920 "="
3744 ASSIGN@5919..5920 "="3711 WHITESPACE@5920..5921 " "
3745 WHITESPACE@5920..5921 " "3712 EXPR_INDEX_EXPR@5921..5925
3746 EXPR_INDEX_EXPR@5921..59253713 LHS_EXPR@5921..5922
3747 LHS_EXPR@5921..59223714 EXPR_VAR@5921..5922
3748 EXPR_VAR@5921..59223715 NAME@5921..5922
3749 NAME@5921..59223716 IDENT@5921..5922 "v"
3750 IDENT@5921..5922 "v"3717 L_BRACK@5922..5923 "["
3751 L_BRACK@5922..5923 "["3718 EXPR_NUMBER@5923..5924
3752 EXPR_NUMBER@5923..59243719 FLOAT@5923..5924 "0"
3753 FLOAT@5923..5924 "0"3720 R_BRACK@5924..5925 "]"
3754 R_BRACK@5924..5925 "]"3721 SEMI@5925..5926 ";"
3755 SEMI@5925..5926 ";"3722 WHITESPACE@5926..5937 "\n "
3756 WHITESPACE@5926..5937 "\n "3723 EXPR_LOCAL@5937..6326
3757 EXPR_LOCAL@5937..63263724 LOCAL_KW@5937..5942 "local"
3758 LOCAL_KW@5937..5942 "local"3725 WHITESPACE@5942..5943 " "
3759 WHITESPACE@5942..5943 " "3726 BIND_DESTRUCT@5943..5994
3760 BIND_DESTRUCT@5943..59943727 DESTRUCT_FULL@5943..5952
3761 DESTRUCT_FULL@5943..59523728 NAME@5943..5952
3762 NAME@5943..59523729 IDENT@5943..5952 "has_attrs"
3763 IDENT@5943..5952 "has_attrs"3730 WHITESPACE@5952..5953 " "
3764 WHITESPACE@5952..5953 " "3731 ASSIGN@5953..5954 "="
3765 ASSIGN@5953..5954 "="3732 WHITESPACE@5954..5955 " "
3766 WHITESPACE@5954..5955 " "3733 EXPR_BINARY@5955..5994
3767 EXPR_BINARY@5955..59943734 LHS_EXPR@5955..5972
3768 LHS_EXPR@5955..59723735 EXPR_BINARY@5955..5972
3769 EXPR_BINARY@5955..59723736 LHS_EXPR@5955..5968
3770 LHS_EXPR@5955..59683737 EXPR_APPLY@5955..5968
3771 EXPR_APPLY@5955..59683738 EXPR_INDEX@5955..5965
3772 EXPR_INDEX@5955..59653739 EXPR_VAR@5955..5958
3773 EXPR_VAR@5955..59583740 NAME@5955..5958
3774 NAME@5955..59583741 IDENT@5955..5958 "std"
3775 IDENT@5955..5958 "std"3742 DOT@5958..5959 "."
3776 DOT@5958..5959 "."3743 NAME@5959..5965
3777 NAME@5959..59653744 IDENT@5959..5965 "length"
3778 IDENT@5959..5965 "length"3745 ARGS_DESC@5965..5968
3779 ARGS_DESC@5965..59683746 L_PAREN@5965..5966 "("
3780 L_PAREN@5965..5966 "("3747 ARG@5966..5967
3781 ARG@5966..59673748 EXPR_VAR@5966..5967
3782 EXPR_VAR@5966..59673749 NAME@5966..5967
3783 NAME@5966..59673750 IDENT@5966..5967 "v"
3784 IDENT@5966..5967 "v"3751 R_PAREN@5967..5968 ")"
3785 R_PAREN@5967..5968 ")"3752 WHITESPACE@5968..5969 " "
3786 WHITESPACE@5968..5969 " "3753 GT@5969..5970 ">"
3787 GT@5969..5970 ">"3754 WHITESPACE@5970..5971 " "
3788 WHITESPACE@5970..5971 " "3755 EXPR_NUMBER@5971..5972
3789 EXPR_NUMBER@5971..59723756 FLOAT@5971..5972 "1"
3790 FLOAT@5971..5972 "1"3757 WHITESPACE@5972..5973 " "
3791 WHITESPACE@5972..5973 " "3758 AND@5973..5975 "&&"
3792 AND@5973..5975 "&&"3759 WHITESPACE@5975..5976 " "
3793 WHITESPACE@5975..5976 " "3760 EXPR_APPLY@5976..5994
3794 EXPR_APPLY@5976..59943761 EXPR_INDEX@5976..5988
3795 EXPR_INDEX@5976..59883762 EXPR_VAR@5976..5979
3796 EXPR_VAR@5976..59793763 NAME@5976..5979
3797 NAME@5976..59793764 IDENT@5976..5979 "std"
3798 IDENT@5976..5979 "std"3765 DOT@5979..5980 "."
3799 DOT@5979..5980 "."3766 NAME@5980..5988
3800 NAME@5980..59883767 IDENT@5980..5988 "isObject"
3801 IDENT@5980..5988 "isObject"3768 ARGS_DESC@5988..5994
3802 ARGS_DESC@5988..59943769 L_PAREN@5988..5989 "("
3803 L_PAREN@5988..5989 "("3770 ARG@5989..5993
3804 ARG@5989..59933771 EXPR_INDEX_EXPR@5989..5993
3805 EXPR_INDEX_EXPR@5989..59933772 LHS_EXPR@5989..5990
3806 LHS_EXPR@5989..59903773 EXPR_VAR@5989..5990
3807 EXPR_VAR@5989..59903774 NAME@5989..5990
3808 NAME@5989..59903775 IDENT@5989..5990 "v"
3809 IDENT@5989..5990 "v"3776 L_BRACK@5990..5991 "["
3810 L_BRACK@5990..5991 "["3777 EXPR_NUMBER@5991..5992
3811 EXPR_NUMBER@5991..59923778 FLOAT@5991..5992 "1"
3812 FLOAT@5991..5992 "1"3779 R_BRACK@5992..5993 "]"
3813 R_BRACK@5992..5993 "]"3780 R_PAREN@5993..5994 ")"
3814 R_PAREN@5993..5994 ")"3781 SEMI@5994..5995 ";"
3815 SEMI@5994..5995 ";"3782 WHITESPACE@5995..6006 "\n "
3816 WHITESPACE@5995..6006 "\n "3783 EXPR_LOCAL@6006..6326
3817 EXPR_LOCAL@6006..63263784 LOCAL_KW@6006..6011 "local"
3818 LOCAL_KW@6006..6011 "local"3785 WHITESPACE@6011..6012 " "
3819 WHITESPACE@6011..6012 " "3786 BIND_DESTRUCT@6012..6050
3820 BIND_DESTRUCT@6012..60503787 DESTRUCT_FULL@6012..6017
3821 DESTRUCT_FULL@6012..60173788 NAME@6012..6017
3822 NAME@6012..60173789 IDENT@6012..6017 "attrs"
3823 IDENT@6012..6017 "attrs"3790 WHITESPACE@6017..6018 " "
3824 WHITESPACE@6017..6018 " "3791 ASSIGN@6018..6019 "="
3825 ASSIGN@6018..6019 "="3792 WHITESPACE@6019..6020 " "
3826 WHITESPACE@6019..6020 " "3793 EXPR_IF_THEN_ELSE@6020..6050
3827 EXPR_IF_THEN_ELSE@6020..60503794 IF_KW@6020..6022 "if"
3828 IF_KW@6020..6022 "if"3795 WHITESPACE@6022..6023 " "
3829 WHITESPACE@6022..6023 " "3796 EXPR_VAR@6023..6032
3830 EXPR_VAR@6023..60323797 NAME@6023..6032
3831 NAME@6023..60323798 IDENT@6023..6032 "has_attrs"
3832 IDENT@6023..6032 "has_attrs"3799 WHITESPACE@6032..6033 " "
3833 WHITESPACE@6032..6033 " "3800 THEN_KW@6033..6037 "then"
3834 THEN_KW@6033..6037 "then"3801 WHITESPACE@6037..6038 " "
3835 WHITESPACE@6037..6038 " "3802 TRUE_EXPR@6038..6042
3836 TRUE_EXPR@6038..60423803 EXPR_INDEX_EXPR@6038..6042
3837 EXPR_INDEX_EXPR@6038..60423804 LHS_EXPR@6038..6039
3838 LHS_EXPR@6038..60393805 EXPR_VAR@6038..6039
3839 EXPR_VAR@6038..60393806 NAME@6038..6039
3840 NAME@6038..60393807 IDENT@6038..6039 "v"
3841 IDENT@6038..6039 "v"3808 L_BRACK@6039..6040 "["
3842 L_BRACK@6039..6040 "["3809 EXPR_NUMBER@6040..6041
3843 EXPR_NUMBER@6040..60413810 FLOAT@6040..6041 "1"
3844 FLOAT@6040..6041 "1"3811 R_BRACK@6041..6042 "]"
3845 R_BRACK@6041..6042 "]"3812 WHITESPACE@6042..6043 " "
3846 WHITESPACE@6042..6043 " "3813 ELSE_KW@6043..6047 "else"
3847 ELSE_KW@6043..6047 "else"3814 WHITESPACE@6047..6048 " "
3848 WHITESPACE@6047..6048 " "3815 FALSE_EXPR@6048..6050
3849 FALSE_EXPR@6048..60503816 EXPR_OBJECT@6048..6050
3850 EXPR_OBJECT@6048..60503817 OBJ_BODY_MEMBER_LIST@6048..6050
3851 OBJ_BODY_MEMBER_LIST@6048..60503818 L_BRACE@6048..6049 "{"
3852 L_BRACE@6048..6049 "{"3819 R_BRACE@6049..6050 "}"
3853 R_BRACE@6049..6050 "}"3820 SEMI@6050..6051 ";"
3854 SEMI@6050..6051 ";"3821 WHITESPACE@6051..6062 "\n "
3855 WHITESPACE@6051..6062 "\n "3822 EXPR_LOCAL@6062..6326
3856 EXPR_LOCAL@6062..63263823 LOCAL_KW@6062..6067 "local"
3857 LOCAL_KW@6062..6067 "local"3824 WHITESPACE@6067..6068 " "
3858 WHITESPACE@6067..6068 " "3825 BIND_DESTRUCT@6068..6113
3859 BIND_DESTRUCT@6068..61133826 DESTRUCT_FULL@6068..6076
3860 DESTRUCT_FULL@6068..60763827 NAME@6068..6076
3861 NAME@6068..60763828 IDENT@6068..6076 "children"
3862 IDENT@6068..6076 "children"3829 WHITESPACE@6076..6077 " "
3863 WHITESPACE@6076..6077 " "3830 ASSIGN@6077..6078 "="
3864 ASSIGN@6077..6078 "="3831 WHITESPACE@6078..6079 " "
3865 WHITESPACE@6078..6079 " "3832 EXPR_IF_THEN_ELSE@6079..6113
3866 EXPR_IF_THEN_ELSE@6079..61133833 IF_KW@6079..6081 "if"
3867 IF_KW@6079..6081 "if"3834 WHITESPACE@6081..6082 " "
3868 WHITESPACE@6081..6082 " "3835 EXPR_VAR@6082..6091
3869 EXPR_VAR@6082..60913836 NAME@6082..6091
3870 NAME@6082..60913837 IDENT@6082..6091 "has_attrs"
3871 IDENT@6082..6091 "has_attrs"3838 WHITESPACE@6091..6092 " "
3872 WHITESPACE@6091..6092 " "3839 THEN_KW@6092..6096 "then"
3873 THEN_KW@6092..6096 "then"3840 WHITESPACE@6096..6097 " "
3874 WHITESPACE@6096..6097 " "3841 TRUE_EXPR@6097..6102
3875 TRUE_EXPR@6097..61023842 EXPR_SLICE@6097..6102
3876 EXPR_SLICE@6097..61023843 EXPR_VAR@6097..6098
3877 EXPR_VAR@6097..60983844 NAME@6097..6098
3878 NAME@6097..60983845 IDENT@6097..6098 "v"
3879 IDENT@6097..6098 "v"3846 SLICE_DESC@6098..6102
3880 SLICE_DESC@6098..61023847 L_BRACK@6098..6099 "["
3881 L_BRACK@6098..6099 "["3848 EXPR_NUMBER@6099..6100
3882 EXPR_NUMBER@6099..61003849 FLOAT@6099..6100 "2"
3883 FLOAT@6099..6100 "2"3850 COLON@6100..6101 ":"
3884 COLON@6100..6101 ":"3851 R_BRACK@6101..6102 "]"
3885 R_BRACK@6101..6102 "]"3852 WHITESPACE@6102..6103 " "
3886 WHITESPACE@6102..6103 " "3853 ELSE_KW@6103..6107 "else"
3887 ELSE_KW@6103..6107 "else"3854 WHITESPACE@6107..6108 " "
3888 WHITESPACE@6107..6108 " "3855 FALSE_EXPR@6108..6113
3889 FALSE_EXPR@6108..61133856 EXPR_SLICE@6108..6113
3890 EXPR_SLICE@6108..61133857 EXPR_VAR@6108..6109
3891 EXPR_VAR@6108..61093858 NAME@6108..6109
3892 NAME@6108..61093859 IDENT@6108..6109 "v"
3893 IDENT@6108..6109 "v"3860 SLICE_DESC@6109..6113
3894 SLICE_DESC@6109..61133861 L_BRACK@6109..6110 "["
3895 L_BRACK@6109..6110 "["3862 EXPR_NUMBER@6110..6111
3896 EXPR_NUMBER@6110..61113863 FLOAT@6110..6111 "1"
3897 FLOAT@6110..6111 "1"3864 COLON@6111..6112 ":"
3898 COLON@6111..6112 ":"3865 R_BRACK@6112..6113 "]"
3899 R_BRACK@6112..6113 "]"3866 SEMI@6113..6114 ";"
3900 SEMI@6113..6114 ";"3867 WHITESPACE@6114..6125 "\n "
3901 WHITESPACE@6114..6125 "\n "3868 EXPR_LOCAL@6125..6326
3902 EXPR_LOCAL@6125..63263869 LOCAL_KW@6125..6130 "local"
3903 LOCAL_KW@6125..6130 "local"3870 WHITESPACE@6130..6131 " "
3904 WHITESPACE@6130..6131 " "3871 BIND_DESTRUCT@6131..6230
3905 BIND_DESTRUCT@6131..62303872 DESTRUCT_FULL@6131..6140
3906 DESTRUCT_FULL@6131..61403873 NAME@6131..6140
3907 NAME@6131..61403874 IDENT@6131..6140 "attrs_str"
3908 IDENT@6131..6140 "attrs_str"3875 WHITESPACE@6140..6141 " "
3909 WHITESPACE@6140..6141 " "3876 ASSIGN@6141..6142 "="
3910 ASSIGN@6141..6142 "="3877 WHITESPACE@6142..6155 "\n "
3911 WHITESPACE@6142..6155 "\n "3878 EXPR_APPLY@6155..6230
3912 EXPR_APPLY@6155..62303879 EXPR_INDEX@6155..6163
3913 EXPR_INDEX@6155..61633880 EXPR_VAR@6155..6158
3914 EXPR_VAR@6155..61583881 NAME@6155..6158
3915 NAME@6155..61583882 IDENT@6155..6158 "std"
3916 IDENT@6155..6158 "std"3883 DOT@6158..6159 "."
3917 DOT@6158..6159 "."3884 NAME@6159..6163
3918 NAME@6159..61633885 IDENT@6159..6163 "join"
3919 IDENT@6159..6163 "join"3886 ARGS_DESC@6163..6230
3920 ARGS_DESC@6163..62303887 L_PAREN@6163..6164 "("
3921 L_PAREN@6163..6164 "("3888 ARG@6164..6166
3922 ARG@6164..61663889 EXPR_STRING@6164..6166
3923 EXPR_STRING@6164..61663890 STRING_SINGLE@6164..6166 "''"
3924 STRING_SINGLE@6164..6166 "''"3891 COMMA@6166..6167 ","
3925 COMMA@6166..6167 ","3892 WHITESPACE@6167..6168 " "
3926 WHITESPACE@6167..6168 " "3893 ARG@6168..6229
3927 ARG@6168..62293894 EXPR_ARRAY_COMP@6168..6229
3928 EXPR_ARRAY_COMP@6168..62293895 L_BRACK@6168..6169 "["
3929 L_BRACK@6168..6169 "["3896 EXPR_BINARY@6169..6195
3930 EXPR_BINARY@6169..61953897 LHS_EXPR@6169..6179
3931 LHS_EXPR@6169..61793898 EXPR_STRING@6169..6179
3932 EXPR_STRING@6169..61793899 STRING_SINGLE@6169..6179 "' %s=\"%s\"'"
3933 STRING_SINGLE@6169..6179 "' %s=\"%s\"'"3900 WHITESPACE@6179..6180 " "
3934 WHITESPACE@6179..6180 " "3901 MODULO@6180..6181 "%"
3935 MODULO@6180..6181 "%"3902 WHITESPACE@6181..6182 " "
3936 WHITESPACE@6181..6182 " "3903 EXPR_ARRAY@6182..6195
3937 EXPR_ARRAY@6182..61953904 L_BRACK@6182..6183 "["
3938 L_BRACK@6182..6183 "["3905 EXPR_VAR@6183..6184
3939 EXPR_VAR@6183..61843906 NAME@6183..6184
3940 NAME@6183..61843907 IDENT@6183..6184 "k"
3941 IDENT@6183..6184 "k"3908 COMMA@6184..6185 ","
3942 COMMA@6184..6185 ","3909 WHITESPACE@6185..6186 " "
3943 WHITESPACE@6185..6186 " "3910 EXPR_INDEX_EXPR@6186..6194
3944 EXPR_INDEX_EXPR@6186..61943911 LHS_EXPR@6186..6191
3945 LHS_EXPR@6186..61913912 EXPR_VAR@6186..6191
3946 EXPR_VAR@6186..61913913 NAME@6186..6191
3947 NAME@6186..61913914 IDENT@6186..6191 "attrs"
3948 IDENT@6186..6191 "attrs"3915 L_BRACK@6191..6192 "["
3949 L_BRACK@6191..6192 "["3916 EXPR_VAR@6192..6193
3950 EXPR_VAR@6192..61933917 NAME@6192..6193
3951 NAME@6192..61933918 IDENT@6192..6193 "k"
3952 IDENT@6192..6193 "k"3919 R_BRACK@6193..6194 "]"
3953 R_BRACK@6193..6194 "]"3920 R_BRACK@6194..6195 "]"
3954 R_BRACK@6194..6195 "]"3921 WHITESPACE@6195..6196 " "
3955 WHITESPACE@6195..6196 " "3922 FOR_SPEC@6196..6228
3956 FOR_SPEC@6196..62283923 FOR_KW@6196..6199 "for"
3957 FOR_KW@6196..6199 "for"3924 WHITESPACE@6199..6200 " "
3958 WHITESPACE@6199..6200 " "3925 NAME@6200..6201
3959 NAME@6200..62013926 IDENT@6200..6201 "k"
3960 IDENT@6200..6201 "k"3927 WHITESPACE@6201..6202 " "
3961 WHITESPACE@6201..6202 " "3928 IN_KW@6202..6204 "in"
3962 IN_KW@6202..6204 "in"3929 WHITESPACE@6204..6205 " "
3963 WHITESPACE@6204..6205 " "3930 EXPR_APPLY@6205..6228
3964 EXPR_APPLY@6205..62283931 EXPR_INDEX@6205..6221
3965 EXPR_INDEX@6205..62213932 EXPR_VAR@6205..6208
3966 EXPR_VAR@6205..62083933 NAME@6205..6208
3967 NAME@6205..62083934 IDENT@6205..6208 "std"
3968 IDENT@6205..6208 "std"3935 DOT@6208..6209 "."
3969 DOT@6208..6209 "."3936 NAME@6209..6221
3970 NAME@6209..62213937 IDENT@6209..6221 "objectFields"
3971 IDENT@6209..6221 "objectFields"3938 ARGS_DESC@6221..6228
3972 ARGS_DESC@6221..62283939 L_PAREN@6221..6222 "("
3973 L_PAREN@6221..6222 "("3940 ARG@6222..6227
3974 ARG@6222..62273941 EXPR_VAR@6222..6227
3975 EXPR_VAR@6222..62273942 NAME@6222..6227
3976 NAME@6222..62273943 IDENT@6222..6227 "attrs"
3977 IDENT@6222..6227 "attrs"3944 R_PAREN@6227..6228 ")"
3978 R_PAREN@6227..6228 ")"3945 R_BRACK@6228..6229 "]"
3979 R_BRACK@6228..6229 "]"3946 R_PAREN@6229..6230 ")"
3980 R_PAREN@6229..6230 ")"3947 SEMI@6230..6231 ";"
3981 SEMI@6230..6231 ";"3948 WHITESPACE@6231..6242 "\n "
3982 WHITESPACE@6231..6242 "\n "3949 EXPR_APPLY@6242..6326
3983 EXPR_APPLY@6242..63263950 EXPR_INDEX@6242..6254
3984 EXPR_INDEX@6242..62543951 EXPR_VAR@6242..6245
3985 EXPR_VAR@6242..62453952 NAME@6242..6245
3986 NAME@6242..62453953 IDENT@6242..6245 "std"
3987 IDENT@6242..6245 "std"3954 DOT@6245..6246 "."
3988 DOT@6245..6246 "."3955 NAME@6246..6254
3989 NAME@6246..62543956 IDENT@6246..6254 "deepJoin"
3990 IDENT@6246..6254 "deepJoin"3957 ARGS_DESC@6254..6326
3991 ARGS_DESC@6254..63263958 L_PAREN@6254..6255 "("
3992 L_PAREN@6254..6255 "("3959 ARG@6255..6325
3993 ARG@6255..63253960 EXPR_ARRAY@6255..6325
3994 EXPR_ARRAY@6255..63253961 L_BRACK@6255..6256 "["
3995 L_BRACK@6255..6256 "["3962 EXPR_STRING@6256..6259
3996 EXPR_STRING@6256..62593963 STRING_SINGLE@6256..6259 "'<'"
3997 STRING_SINGLE@6256..6259 "'<'"3964 COMMA@6259..6260 ","
3998 COMMA@6259..6260 ","3965 WHITESPACE@6260..6261 " "
3999 WHITESPACE@6260..6261 " "3966 EXPR_VAR@6261..6264
4000 EXPR_VAR@6261..62643967 NAME@6261..6264
4001 NAME@6261..62643968 IDENT@6261..6264 "tag"
4002 IDENT@6261..6264 "tag"3969 COMMA@6264..6265 ","
4003 COMMA@6264..6265 ","3970 WHITESPACE@6265..6266 " "
4004 WHITESPACE@6265..6266 " "3971 EXPR_VAR@6266..6275
4005 EXPR_VAR@6266..62753972 NAME@6266..6275
4006 NAME@6266..62753973 IDENT@6266..6275 "attrs_str"
4007 IDENT@6266..6275 "attrs_str"3974 COMMA@6275..6276 ","
4008 COMMA@6275..6276 ","3975 WHITESPACE@6276..6277 " "
4009 WHITESPACE@6276..6277 " "3976 EXPR_STRING@6277..6280
4010 EXPR_STRING@6277..62803977 STRING_SINGLE@6277..6280 "'>'"
4011 STRING_SINGLE@6277..6280 "'>'"3978 COMMA@6280..6281 ","
4012 COMMA@6280..6281 ","3979 WHITESPACE@6281..6282 " "
4013 WHITESPACE@6281..6282 " "3980 EXPR_ARRAY_COMP@6282..6308
4014 EXPR_ARRAY_COMP@6282..63083981 L_BRACK@6282..6283 "["
4015 L_BRACK@6282..6283 "["3982 EXPR_APPLY@6283..6289
4016 EXPR_APPLY@6283..62893983 EXPR_VAR@6283..6286
4017 EXPR_VAR@6283..62863984 NAME@6283..6286
4018 NAME@6283..62863985 IDENT@6283..6286 "aux"
4019 IDENT@6283..6286 "aux"3986 ARGS_DESC@6286..6289
4020 ARGS_DESC@6286..62893987 L_PAREN@6286..6287 "("
4021 L_PAREN@6286..6287 "("3988 ARG@6287..6288
4022 ARG@6287..62883989 EXPR_VAR@6287..6288
4023 EXPR_VAR@6287..62883990 NAME@6287..6288
4024 NAME@6287..62883991 IDENT@6287..6288 "x"
4025 IDENT@6287..6288 "x"3992 R_PAREN@6288..6289 ")"
4026 R_PAREN@6288..6289 ")"3993 WHITESPACE@6289..6290 " "
4027 WHITESPACE@6289..6290 " "3994 FOR_SPEC@6290..6307
4028 FOR_SPEC@6290..63073995 FOR_KW@6290..6293 "for"
4029 FOR_KW@6290..6293 "for"3996 WHITESPACE@6293..6294 " "
4030 WHITESPACE@6293..6294 " "3997 NAME@6294..6295
4031 NAME@6294..62953998 IDENT@6294..6295 "x"
4032 IDENT@6294..6295 "x"3999 WHITESPACE@6295..6296 " "
4033 WHITESPACE@6295..6296 " "4000 IN_KW@6296..6298 "in"
4034 IN_KW@6296..6298 "in"4001 WHITESPACE@6298..6299 " "
4035 WHITESPACE@6298..6299 " "4002 EXPR_VAR@6299..6307
4036 EXPR_VAR@6299..63074003 NAME@6299..6307
4037 NAME@6299..63074004 IDENT@6299..6307 "children"
4038 IDENT@6299..6307 "children"4005 R_BRACK@6307..6308 "]"
4039 R_BRACK@6307..6308 "]"4006 COMMA@6308..6309 ","
4040 COMMA@6308..6309 ","4007 WHITESPACE@6309..6310 " "
4041 WHITESPACE@6309..6310 " "4008 EXPR_STRING@6310..6314
4042 EXPR_STRING@6310..63144009 STRING_SINGLE@6310..6314 "'</'"
4043 STRING_SINGLE@6310..6314 "'</'"4010 COMMA@6314..6315 ","
4044 COMMA@6314..6315 ","4011 WHITESPACE@6315..6316 " "
4045 WHITESPACE@6315..6316 " "4012 EXPR_VAR@6316..6319
4046 EXPR_VAR@6316..63194013 NAME@6316..6319
4047 NAME@6316..63194014 IDENT@6316..6319 "tag"
4048 IDENT@6316..6319 "tag"4015 COMMA@6319..6320 ","
4049 COMMA@6319..6320 ","4016 WHITESPACE@6320..6321 " "
4050 WHITESPACE@6320..6321 " "4017 EXPR_STRING@6321..6324
4051 EXPR_STRING@6321..63244018 STRING_SINGLE@6321..6324 "'>'"
4052 STRING_SINGLE@6321..6324 "'>'"4019 R_BRACK@6324..6325 "]"
4053 R_BRACK@6324..6325 "]"4020 R_PAREN@6325..6326 ")"
4054 R_PAREN@6325..6326 ")"4021 SEMI@6326..6327 ";"
4055 SEMI@6326..6327 ";"4022 WHITESPACE@6327..6335 "\n\n "
4056 WHITESPACE@6327..6335 "\n\n "4023 EXPR_APPLY@6335..6345
4057 EXPR_APPLY@6335..63454024 EXPR_VAR@6335..6338
4058 EXPR_VAR@6335..63384025 NAME@6335..6338
4059 NAME@6335..63384026 IDENT@6335..6338 "aux"
4060 IDENT@6335..6338 "aux"4027 ARGS_DESC@6338..6345
4061 ARGS_DESC@6338..63454028 L_PAREN@6338..6339 "("
4062 L_PAREN@6338..6339 "("4029 ARG@6339..6344
4063 ARG@6339..63444030 EXPR_VAR@6339..6344
4064 EXPR_VAR@6339..63444031 NAME@6339..6344
4065 NAME@6339..63444032 IDENT@6339..6344 "value"
4066 IDENT@6339..6344 "value"4033 R_PAREN@6344..6345 ")"
4067 R_PAREN@6344..6345 ")"
4068 COMMA@6345..6346 ","4034 COMMA@6345..6346 ","
4069 WHITESPACE@6346..6350 "\n\n "4035 WHITESPACE@6346..6350 "\n\n "
4070 MEMBER_FIELD@6350..65564036 MEMBER_FIELD_METHOD@6350..6556
4071 FIELD_METHOD@6350..65564037 FIELD_NAME_FIXED@6350..6354
4072 FIELD_NAME_FIXED@6350..63544038 NAME@6350..6354
4073 NAME@6350..63544039 IDENT@6350..6354 "uniq"
4074 IDENT@6350..6354 "uniq"4040 PARAMS_DESC@6354..6368
4075 PARAMS_DESC@6354..63684041 L_PAREN@6354..6355 "("
4076 L_PAREN@6354..6355 "("4042 PARAM@6355..6358
4077 PARAM@6355..63584043 DESTRUCT_FULL@6355..6358
4078 DESTRUCT_FULL@6355..63584044 NAME@6355..6358
4079 NAME@6355..63584045 IDENT@6355..6358 "arr"
4080 IDENT@6355..6358 "arr"4046 COMMA@6358..6359 ","
4081 COMMA@6358..6359 ","4047 WHITESPACE@6359..6360 " "
4082 WHITESPACE@6359..6360 " "4048 PARAM@6360..6367
4083 PARAM@6360..63674049 DESTRUCT_FULL@6360..6364
4084 DESTRUCT_FULL@6360..63644050 NAME@6360..6364
4085 NAME@6360..63644051 IDENT@6360..6364 "keyF"
4086 IDENT@6360..6364 "keyF"4052 ASSIGN@6364..6365 "="
4087 ASSIGN@6364..6365 "="4053 EXPR_VAR@6365..6367
4088 EXPR_VAR@6365..63674054 NAME@6365..6367
4089 NAME@6365..63674055 IDENT@6365..6367 "id"
4090 IDENT@6365..6367 "id"4056 R_PAREN@6367..6368 ")"
4091 R_PAREN@6367..6368 ")"4057 COLONCOLON@6368..6370 "::"
4092 COLONCOLON@6368..6370 "::"4058 WHITESPACE@6370..6375 "\n "
4093 WHITESPACE@6370..6375 "\n "4059 EXPR_LOCAL@6375..6556
4094 EXPR_LOCAL@6375..65564060 LOCAL_KW@6375..6380 "local"
4095 LOCAL_KW@6375..6380 "local"4061 WHITESPACE@6380..6381 " "
4096 WHITESPACE@6380..6381 " "4062 BIND_FUNCTION@6381..6529
4097 BIND_FUNCTION@6381..65294063 NAME@6381..6382
4098 NAME@6381..63824064 IDENT@6381..6382 "f"
4099 IDENT@6381..6382 "f"4065 PARAMS_DESC@6382..6388
4100 PARAMS_DESC@6382..63884066 L_PAREN@6382..6383 "("
4101 L_PAREN@6382..6383 "("4067 PARAM@6383..6384
4102 PARAM@6383..63844068 DESTRUCT_FULL@6383..6384
4103 DESTRUCT_FULL@6383..63844069 NAME@6383..6384
4104 NAME@6383..63844070 IDENT@6383..6384 "a"
4105 IDENT@6383..6384 "a"4071 COMMA@6384..6385 ","
4106 COMMA@6384..6385 ","4072 WHITESPACE@6385..6386 " "
4107 WHITESPACE@6385..6386 " "4073 PARAM@6386..6387
4108 PARAM@6386..63874074 DESTRUCT_FULL@6386..6387
4109 DESTRUCT_FULL@6386..63874075 NAME@6386..6387
4110 NAME@6386..63874076 IDENT@6386..6387 "b"
4111 IDENT@6386..6387 "b"4077 R_PAREN@6387..6388 ")"
4112 R_PAREN@6387..6388 ")"4078 WHITESPACE@6388..6389 " "
4113 WHITESPACE@6388..6389 " "4079 ASSIGN@6389..6390 "="
4114 ASSIGN@6389..6390 "="4080 WHITESPACE@6390..6397 "\n "
4115 WHITESPACE@6390..6397 "\n "4081 EXPR_IF_THEN_ELSE@6397..6529
4116 EXPR_IF_THEN_ELSE@6397..65294082 IF_KW@6397..6399 "if"
4117 IF_KW@6397..6399 "if"4083 WHITESPACE@6399..6400 " "
4118 WHITESPACE@6399..6400 " "4084 EXPR_BINARY@6400..6418
4119 EXPR_BINARY@6400..64184085 LHS_EXPR@6400..6413
4120 LHS_EXPR@6400..64134086 EXPR_APPLY@6400..6413
4121 EXPR_APPLY@6400..64134087 EXPR_INDEX@6400..6410
4122 EXPR_INDEX@6400..64104088 EXPR_VAR@6400..6403
4123 EXPR_VAR@6400..64034089 NAME@6400..6403
4124 NAME@6400..64034090 IDENT@6400..6403 "std"
4125 IDENT@6400..6403 "std"4091 DOT@6403..6404 "."
4126 DOT@6403..6404 "."4092 NAME@6404..6410
4127 NAME@6404..64104093 IDENT@6404..6410 "length"
4128 IDENT@6404..6410 "length"4094 ARGS_DESC@6410..6413
4129 ARGS_DESC@6410..64134095 L_PAREN@6410..6411 "("
4130 L_PAREN@6410..6411 "("4096 ARG@6411..6412
4131 ARG@6411..64124097 EXPR_VAR@6411..6412
4132 EXPR_VAR@6411..64124098 NAME@6411..6412
4133 NAME@6411..64124099 IDENT@6411..6412 "a"
4134 IDENT@6411..6412 "a"4100 R_PAREN@6412..6413 ")"
4135 R_PAREN@6412..6413 ")"4101 WHITESPACE@6413..6414 " "
4136 WHITESPACE@6413..6414 " "4102 EQ@6414..6416 "=="
4137 EQ@6414..6416 "=="4103 WHITESPACE@6416..6417 " "
4138 WHITESPACE@6416..6417 " "4104 EXPR_NUMBER@6417..6418
4139 EXPR_NUMBER@6417..64184105 FLOAT@6417..6418 "0"
4140 FLOAT@6417..6418 "0"4106 WHITESPACE@6418..6419 " "
4141 WHITESPACE@6418..6419 " "4107 THEN_KW@6419..6423 "then"
4142 THEN_KW@6419..6423 "then"4108 WHITESPACE@6423..6432 "\n "
4143 WHITESPACE@6423..6432 "\n "4109 TRUE_EXPR@6432..6435
4144 TRUE_EXPR@6432..64354110 EXPR_ARRAY@6432..6435
4145 EXPR_ARRAY@6432..64354111 L_BRACK@6432..6433 "["
4146 L_BRACK@6432..6433 "["4112 EXPR_VAR@6433..6434
4147 EXPR_VAR@6433..64344113 NAME@6433..6434
4148 NAME@6433..64344114 IDENT@6433..6434 "b"
4149 IDENT@6433..6434 "b"4115 R_BRACK@6434..6435 "]"
4150 R_BRACK@6434..6435 "]"4116 WHITESPACE@6435..6442 "\n "
4151 WHITESPACE@6435..6442 "\n "4117 ELSE_KW@6442..6446 "else"
4152 ELSE_KW@6442..6446 "else"4118 WHITESPACE@6446..6447 " "
4153 WHITESPACE@6446..6447 " "4119 FALSE_EXPR@6447..6529
4154 FALSE_EXPR@6447..65294120 EXPR_IF_THEN_ELSE@6447..6529
4155 EXPR_IF_THEN_ELSE@6447..65294121 IF_KW@6447..6449 "if"
4156 IF_KW@6447..6449 "if"4122 WHITESPACE@6449..6450 " "
4157 WHITESPACE@6449..6450 " "4123 EXPR_BINARY@6450..6487
4158 EXPR_BINARY@6450..64874124 LHS_EXPR@6450..6476
4159 LHS_EXPR@6450..64764125 EXPR_APPLY@6450..6476
4160 EXPR_APPLY@6450..64764126 EXPR_VAR@6450..6454
4161 EXPR_VAR@6450..64544127 NAME@6450..6454
4162 NAME@6450..64544128 IDENT@6450..6454 "keyF"
4163 IDENT@6450..6454 "keyF"4129 ARGS_DESC@6454..6476
4164 ARGS_DESC@6454..64764130 L_PAREN@6454..6455 "("
4165 L_PAREN@6454..6455 "("4131 ARG@6455..6475
4166 ARG@6455..64754132 EXPR_INDEX_EXPR@6455..6475
4167 EXPR_INDEX_EXPR@6455..64754133 LHS_EXPR@6455..6456
4168 LHS_EXPR@6455..64564134 EXPR_VAR@6455..6456
4169 EXPR_VAR@6455..64564135 NAME@6455..6456
4170 NAME@6455..64564136 IDENT@6455..6456 "a"
4171 IDENT@6455..6456 "a"4137 L_BRACK@6456..6457 "["
4172 L_BRACK@6456..6457 "["4138 EXPR_BINARY@6457..6474
4173 EXPR_BINARY@6457..64744139 LHS_EXPR@6457..6470
4174 LHS_EXPR@6457..64704140 EXPR_APPLY@6457..6470
4175 EXPR_APPLY@6457..64704141 EXPR_INDEX@6457..6467
4176 EXPR_INDEX@6457..64674142 EXPR_VAR@6457..6460
4177 EXPR_VAR@6457..64604143 NAME@6457..6460
4178 NAME@6457..64604144 IDENT@6457..6460 "std"
4179 IDENT@6457..6460 "std"4145 DOT@6460..6461 "."
4180 DOT@6460..6461 "."4146 NAME@6461..6467
4181 NAME@6461..64674147 IDENT@6461..6467 "length"
4182 IDENT@6461..6467 "length"4148 ARGS_DESC@6467..6470
4183 ARGS_DESC@6467..64704149 L_PAREN@6467..6468 "("
4184 L_PAREN@6467..6468 "("4150 ARG@6468..6469
4185 ARG@6468..64694151 EXPR_VAR@6468..6469
4186 EXPR_VAR@6468..64694152 NAME@6468..6469
4187 NAME@6468..64694153 IDENT@6468..6469 "a"
4188 IDENT@6468..6469 "a"4154 R_PAREN@6469..6470 ")"
4189 R_PAREN@6469..6470 ")"4155 WHITESPACE@6470..6471 " "
4190 WHITESPACE@6470..6471 " "4156 MINUS@6471..6472 "-"
4191 MINUS@6471..6472 "-"4157 WHITESPACE@6472..6473 " "
4192 WHITESPACE@6472..6473 " "4158 EXPR_NUMBER@6473..6474
4193 EXPR_NUMBER@6473..64744159 FLOAT@6473..6474 "1"
4194 FLOAT@6473..6474 "1"4160 R_BRACK@6474..6475 "]"
4195 R_BRACK@6474..6475 "]"4161 R_PAREN@6475..6476 ")"
4196 R_PAREN@6475..6476 ")"4162 WHITESPACE@6476..6477 " "
4197 WHITESPACE@6476..6477 " "4163 EQ@6477..6479 "=="
4198 EQ@6477..6479 "=="4164 WHITESPACE@6479..6480 " "
4199 WHITESPACE@6479..6480 " "4165 EXPR_APPLY@6480..6487
4200 EXPR_APPLY@6480..64874166 EXPR_VAR@6480..6484
4201 EXPR_VAR@6480..64844167 NAME@6480..6484
4202 NAME@6480..64844168 IDENT@6480..6484 "keyF"
4203 IDENT@6480..6484 "keyF"4169 ARGS_DESC@6484..6487
4204 ARGS_DESC@6484..64874170 L_PAREN@6484..6485 "("
4205 L_PAREN@6484..6485 "("4171 ARG@6485..6486
4206 ARG@6485..64864172 EXPR_VAR@6485..6486
4207 EXPR_VAR@6485..64864173 NAME@6485..6486
4208 NAME@6485..64864174 IDENT@6485..6486 "b"
4209 IDENT@6485..6486 "b"4175 R_PAREN@6486..6487 ")"
4210 R_PAREN@6486..6487 ")"4176 WHITESPACE@6487..6488 " "
4211 WHITESPACE@6487..6488 " "4177 THEN_KW@6488..6492 "then"
4212 THEN_KW@6488..6492 "then"4178 WHITESPACE@6492..6501 "\n "
4213 WHITESPACE@6492..6501 "\n "4179 TRUE_EXPR@6501..6502
4214 TRUE_EXPR@6501..65024180 EXPR_VAR@6501..6502
4215 EXPR_VAR@6501..65024181 NAME@6501..6502
4216 NAME@6501..65024182 IDENT@6501..6502 "a"
4217 IDENT@6501..6502 "a"4183 WHITESPACE@6502..6509 "\n "
4218 WHITESPACE@6502..6509 "\n "4184 ELSE_KW@6509..6513 "else"
4219 ELSE_KW@6509..6513 "else"4185 WHITESPACE@6513..6522 "\n "
4220 WHITESPACE@6513..6522 "\n "4186 FALSE_EXPR@6522..6529
4221 FALSE_EXPR@6522..65294187 EXPR_BINARY@6522..6529
4222 EXPR_BINARY@6522..65294188 LHS_EXPR@6522..6523
4223 LHS_EXPR@6522..65234189 EXPR_VAR@6522..6523
4224 EXPR_VAR@6522..65234190 NAME@6522..6523
4225 NAME@6522..65234191 IDENT@6522..6523 "a"
4226 IDENT@6522..6523 "a"4192 WHITESPACE@6523..6524 " "
4227 WHITESPACE@6523..6524 " "4193 PLUS@6524..6525 "+"
4228 PLUS@6524..6525 "+"4194 WHITESPACE@6525..6526 " "
4229 WHITESPACE@6525..6526 " "4195 EXPR_ARRAY@6526..6529
4230 EXPR_ARRAY@6526..65294196 L_BRACK@6526..6527 "["
4231 L_BRACK@6526..6527 "["4197 EXPR_VAR@6527..6528
4232 EXPR_VAR@6527..65284198 NAME@6527..6528
4233 NAME@6527..65284199 IDENT@6527..6528 "b"
4234 IDENT@6527..6528 "b"4200 R_BRACK@6528..6529 "]"
4235 R_BRACK@6528..6529 "]"4201 SEMI@6529..6530 ";"
4236 SEMI@6529..6530 ";"4202 WHITESPACE@6530..6535 "\n "
4237 WHITESPACE@6530..6535 "\n "4203 EXPR_APPLY@6535..6556
4238 EXPR_APPLY@6535..65564204 EXPR_INDEX@6535..6544
4239 EXPR_INDEX@6535..65444205 EXPR_VAR@6535..6538
4240 EXPR_VAR@6535..65384206 NAME@6535..6538
4241 NAME@6535..65384207 IDENT@6535..6538 "std"
4242 IDENT@6535..6538 "std"4208 DOT@6538..6539 "."
4243 DOT@6538..6539 "."4209 NAME@6539..6544
4244 NAME@6539..65444210 IDENT@6539..6544 "foldl"
4245 IDENT@6539..6544 "foldl"4211 ARGS_DESC@6544..6556
4246 ARGS_DESC@6544..65564212 L_PAREN@6544..6545 "("
4247 L_PAREN@6544..6545 "("4213 ARG@6545..6546
4248 ARG@6545..65464214 EXPR_VAR@6545..6546
4249 EXPR_VAR@6545..65464215 NAME@6545..6546
4250 NAME@6545..65464216 IDENT@6545..6546 "f"
4251 IDENT@6545..6546 "f"4217 COMMA@6546..6547 ","
4252 COMMA@6546..6547 ","4218 WHITESPACE@6547..6548 " "
4253 WHITESPACE@6547..6548 " "4219 ARG@6548..6551
4254 ARG@6548..65514220 EXPR_VAR@6548..6551
4255 EXPR_VAR@6548..65514221 NAME@6548..6551
4256 NAME@6548..65514222 IDENT@6548..6551 "arr"
4257 IDENT@6548..6551 "arr"4223 COMMA@6551..6552 ","
4258 COMMA@6551..6552 ","4224 WHITESPACE@6552..6553 " "
4259 WHITESPACE@6552..6553 " "4225 ARG@6553..6555
4260 ARG@6553..65554226 EXPR_ARRAY@6553..6555
4261 EXPR_ARRAY@6553..65554227 L_BRACK@6553..6554 "["
4262 L_BRACK@6553..6554 "["4228 R_BRACK@6554..6555 "]"
4263 R_BRACK@6554..6555 "]"4229 R_PAREN@6555..6556 ")"
4264 R_PAREN@6555..6556 ")"
4265 COMMA@6556..6557 ","4230 COMMA@6556..6557 ","
4266 WHITESPACE@6557..6561 "\n\n "4231 WHITESPACE@6557..6561 "\n\n "
4267 MEMBER_FIELD@6561..66204232 MEMBER_FIELD_METHOD@6561..6620
4268 FIELD_METHOD@6561..66204233 FIELD_NAME_FIXED@6561..6564
4269 FIELD_NAME_FIXED@6561..65644234 NAME@6561..6564
4270 NAME@6561..65644235 IDENT@6561..6564 "set"
4271 IDENT@6561..6564 "set"4236 PARAMS_DESC@6564..6578
4272 PARAMS_DESC@6564..65784237 L_PAREN@6564..6565 "("
4273 L_PAREN@6564..6565 "("4238 PARAM@6565..6568
4274 PARAM@6565..65684239 DESTRUCT_FULL@6565..6568
4275 DESTRUCT_FULL@6565..65684240 NAME@6565..6568
4276 NAME@6565..65684241 IDENT@6565..6568 "arr"
4277 IDENT@6565..6568 "arr"4242 COMMA@6568..6569 ","
4278 COMMA@6568..6569 ","4243 WHITESPACE@6569..6570 " "
4279 WHITESPACE@6569..6570 " "4244 PARAM@6570..6577
4280 PARAM@6570..65774245 DESTRUCT_FULL@6570..6574
4281 DESTRUCT_FULL@6570..65744246 NAME@6570..6574
4282 NAME@6570..65744247 IDENT@6570..6574 "keyF"
4283 IDENT@6570..6574 "keyF"4248 ASSIGN@6574..6575 "="
4284 ASSIGN@6574..6575 "="4249 EXPR_VAR@6575..6577
4285 EXPR_VAR@6575..65774250 NAME@6575..6577
4286 NAME@6575..65774251 IDENT@6575..6577 "id"
4287 IDENT@6575..6577 "id"4252 R_PAREN@6577..6578 ")"
4288 R_PAREN@6577..6578 ")"4253 COLONCOLON@6578..6580 "::"
4289 COLONCOLON@6578..6580 "::"4254 WHITESPACE@6580..6585 "\n "
4290 WHITESPACE@6580..6585 "\n "4255 EXPR_APPLY@6585..6620
4291 EXPR_APPLY@6585..66204256 EXPR_INDEX@6585..6593
4292 EXPR_INDEX@6585..65934257 EXPR_VAR@6585..6588
4293 EXPR_VAR@6585..65884258 NAME@6585..6588
4294 NAME@6585..65884259 IDENT@6585..6588 "std"
4295 IDENT@6585..6588 "std"4260 DOT@6588..6589 "."
4296 DOT@6588..6589 "."4261 NAME@6589..6593
4297 NAME@6589..65934262 IDENT@6589..6593 "uniq"
4298 IDENT@6589..6593 "uniq"4263 ARGS_DESC@6593..6620
4299 ARGS_DESC@6593..66204264 L_PAREN@6593..6594 "("
4300 L_PAREN@6593..6594 "("4265 ARG@6594..6613
4301 ARG@6594..66134266 EXPR_APPLY@6594..6613
4302 EXPR_APPLY@6594..66134267 EXPR_INDEX@6594..6602
4303 EXPR_INDEX@6594..66024268 EXPR_VAR@6594..6597
4304 EXPR_VAR@6594..65974269 NAME@6594..6597
4305 NAME@6594..65974270 IDENT@6594..6597 "std"
4306 IDENT@6594..6597 "std"4271 DOT@6597..6598 "."
4307 DOT@6597..6598 "."4272 NAME@6598..6602
4308 NAME@6598..66024273 IDENT@6598..6602 "sort"
4309 IDENT@6598..6602 "sort"4274 ARGS_DESC@6602..6613
4310 ARGS_DESC@6602..66134275 L_PAREN@6602..6603 "("
4311 L_PAREN@6602..6603 "("4276 ARG@6603..6606
4312 ARG@6603..66064277 EXPR_VAR@6603..6606
4313 EXPR_VAR@6603..66064278 NAME@6603..6606
4314 NAME@6603..66064279 IDENT@6603..6606 "arr"
4315 IDENT@6603..6606 "arr"4280 COMMA@6606..6607 ","
4316 COMMA@6606..6607 ","4281 WHITESPACE@6607..6608 " "
4317 WHITESPACE@6607..6608 " "4282 ARG@6608..6612
4318 ARG@6608..66124283 EXPR_VAR@6608..6612
4319 EXPR_VAR@6608..66124284 NAME@6608..6612
4320 NAME@6608..66124285 IDENT@6608..6612 "keyF"
4321 IDENT@6608..6612 "keyF"4286 R_PAREN@6612..6613 ")"
4322 R_PAREN@6612..6613 ")"4287 COMMA@6613..6614 ","
4323 COMMA@6613..6614 ","4288 WHITESPACE@6614..6615 " "
4324 WHITESPACE@6614..6615 " "4289 ARG@6615..6619
4325 ARG@6615..66194290 EXPR_VAR@6615..6619
4326 EXPR_VAR@6615..66194291 NAME@6615..6619
4327 NAME@6615..66194292 IDENT@6615..6619 "keyF"
4328 IDENT@6615..6619 "keyF"4293 R_PAREN@6619..6620 ")"
4329 R_PAREN@6619..6620 ")"
4330 COMMA@6620..6621 ","4294 COMMA@6620..6621 ","
4331 WHITESPACE@6621..6625 "\n\n "4295 WHITESPACE@6621..6625 "\n\n "
4332 MEMBER_FIELD@6625..67604296 MEMBER_FIELD_METHOD@6625..6760
4333 FIELD_METHOD@6625..67604297 FIELD_NAME_FIXED@6625..6634
4334 FIELD_NAME_FIXED@6625..66344298 NAME@6625..6634
4335 NAME@6625..66344299 IDENT@6625..6634 "setMember"
4336 IDENT@6625..6634 "setMember"4300 PARAMS_DESC@6634..6651
4337 PARAMS_DESC@6634..66514301 L_PAREN@6634..6635 "("
4338 L_PAREN@6634..6635 "("4302 PARAM@6635..6636
4339 PARAM@6635..66364303 DESTRUCT_FULL@6635..6636
4340 DESTRUCT_FULL@6635..66364304 NAME@6635..6636
4341 NAME@6635..66364305 IDENT@6635..6636 "x"
4342 IDENT@6635..6636 "x"4306 COMMA@6636..6637 ","
4343 COMMA@6636..6637 ","4307 WHITESPACE@6637..6638 " "
4344 WHITESPACE@6637..6638 " "4308 PARAM@6638..6641
4345 PARAM@6638..66414309 DESTRUCT_FULL@6638..6641
4346 DESTRUCT_FULL@6638..66414310 NAME@6638..6641
4347 NAME@6638..66414311 IDENT@6638..6641 "arr"
4348 IDENT@6638..6641 "arr"4312 COMMA@6641..6642 ","
4349 COMMA@6641..6642 ","4313 WHITESPACE@6642..6643 " "
4350 WHITESPACE@6642..6643 " "4314 PARAM@6643..6650
4351 PARAM@6643..66504315 DESTRUCT_FULL@6643..6647
4352 DESTRUCT_FULL@6643..66474316 NAME@6643..6647
4353 NAME@6643..66474317 IDENT@6643..6647 "keyF"
4354 IDENT@6643..6647 "keyF"4318 ASSIGN@6647..6648 "="
4355 ASSIGN@6647..6648 "="4319 EXPR_VAR@6648..6650
4356 EXPR_VAR@6648..66504320 NAME@6648..6650
4357 NAME@6648..66504321 IDENT@6648..6650 "id"
4358 IDENT@6648..6650 "id"4322 R_PAREN@6650..6651 ")"
4359 R_PAREN@6650..6651 ")"4323 COLONCOLON@6651..6653 "::"
4360 COLONCOLON@6651..6653 "::"4324 WHITESPACE@6653..6658 "\n "
4361 WHITESPACE@6653..6658 "\n "4325 SINGLE_LINE_SLASH_COMMENT@6658..6712 "// TODO(dcunnin): Bin ..."
4362 SINGLE_LINE_SLASH_COMMENT@6658..6712 "// TODO(dcunnin): Bin ..."4326 WHITESPACE@6712..6716 " "
4363 WHITESPACE@6712..6716 " "4327 EXPR_BINARY@6716..6760
4364 EXPR_BINARY@6716..67604328 LHS_EXPR@6716..6756
4365 LHS_EXPR@6716..67564329 EXPR_APPLY@6716..6756
4366 EXPR_APPLY@6716..67564330 EXPR_INDEX@6716..6726
4367 EXPR_INDEX@6716..67264331 EXPR_VAR@6716..6719
4368 EXPR_VAR@6716..67194332 NAME@6716..6719
4369 NAME@6716..67194333 IDENT@6716..6719 "std"
4370 IDENT@6716..6719 "std"4334 DOT@6719..6720 "."
4371 DOT@6719..6720 "."4335 NAME@6720..6726
4372 NAME@6720..67264336 IDENT@6720..6726 "length"
4373 IDENT@6720..6726 "length"4337 ARGS_DESC@6726..6756
4374 ARGS_DESC@6726..67564338 L_PAREN@6726..6727 "("
4375 L_PAREN@6726..6727 "("4339 ARG@6727..6755
4376 ARG@6727..67554340 EXPR_APPLY@6727..6755
4377 EXPR_APPLY@6727..67554341 EXPR_INDEX@6727..6739
4378 EXPR_INDEX@6727..67394342 EXPR_VAR@6727..6730
4379 EXPR_VAR@6727..67304343 NAME@6727..6730
4380 NAME@6727..67304344 IDENT@6727..6730 "std"
4381 IDENT@6727..6730 "std"4345 DOT@6730..6731 "."
4382 DOT@6730..6731 "."4346 NAME@6731..6739
4383 NAME@6731..67394347 IDENT@6731..6739 "setInter"
4384 IDENT@6731..6739 "setInter"4348 ARGS_DESC@6739..6755
4385 ARGS_DESC@6739..67554349 L_PAREN@6739..6740 "("
4386 L_PAREN@6739..6740 "("4350 ARG@6740..6743
4387 ARG@6740..67434351 EXPR_ARRAY@6740..6743
4388 EXPR_ARRAY@6740..67434352 L_BRACK@6740..6741 "["
4389 L_BRACK@6740..6741 "["4353 EXPR_VAR@6741..6742
4390 EXPR_VAR@6741..67424354 NAME@6741..6742
4391 NAME@6741..67424355 IDENT@6741..6742 "x"
4392 IDENT@6741..6742 "x"4356 R_BRACK@6742..6743 "]"
4393 R_BRACK@6742..6743 "]"4357 COMMA@6743..6744 ","
4394 COMMA@6743..6744 ","4358 WHITESPACE@6744..6745 " "
4395 WHITESPACE@6744..6745 " "4359 ARG@6745..6748
4396 ARG@6745..67484360 EXPR_VAR@6745..6748
4397 EXPR_VAR@6745..67484361 NAME@6745..6748
4398 NAME@6745..67484362 IDENT@6745..6748 "arr"
4399 IDENT@6745..6748 "arr"4363 COMMA@6748..6749 ","
4400 COMMA@6748..6749 ","4364 WHITESPACE@6749..6750 " "
4401 WHITESPACE@6749..6750 " "4365 ARG@6750..6754
4402 ARG@6750..67544366 EXPR_VAR@6750..6754
4403 EXPR_VAR@6750..67544367 NAME@6750..6754
4404 NAME@6750..67544368 IDENT@6750..6754 "keyF"
4405 IDENT@6750..6754 "keyF"4369 R_PAREN@6754..6755 ")"
4406 R_PAREN@6754..6755 ")"4370 R_PAREN@6755..6756 ")"
4407 R_PAREN@6755..6756 ")"4371 WHITESPACE@6756..6757 " "
4408 WHITESPACE@6756..6757 " "4372 GT@6757..6758 ">"
4409 GT@6757..6758 ">"4373 WHITESPACE@6758..6759 " "
4410 WHITESPACE@6758..6759 " "4374 EXPR_NUMBER@6759..6760
4411 EXPR_NUMBER@6759..67604375 FLOAT@6759..6760 "0"
4412 FLOAT@6759..6760 "0"
4413 COMMA@6760..6761 ","4376 COMMA@6760..6761 ","
4414 WHITESPACE@6761..6765 "\n\n "4377 WHITESPACE@6761..6765 "\n\n "
4415 MEMBER_FIELD@6765..73144378 MEMBER_FIELD_METHOD@6765..7314
4416 FIELD_METHOD@6765..73144379 FIELD_NAME_FIXED@6765..6773
4417 FIELD_NAME_FIXED@6765..67734380 NAME@6765..6773
4418 NAME@6765..67734381 IDENT@6765..6773 "setUnion"
4419 IDENT@6765..6773 "setUnion"4382 PARAMS_DESC@6773..6788
4420 PARAMS_DESC@6773..67884383 L_PAREN@6773..6774 "("
4421 L_PAREN@6773..6774 "("4384 PARAM@6774..6775
4422 PARAM@6774..67754385 DESTRUCT_FULL@6774..6775
4423 DESTRUCT_FULL@6774..67754386 NAME@6774..6775
4424 NAME@6774..67754387 IDENT@6774..6775 "a"
4425 IDENT@6774..6775 "a"4388 COMMA@6775..6776 ","
4426 COMMA@6775..6776 ","4389 WHITESPACE@6776..6777 " "
4427 WHITESPACE@6776..6777 " "4390 PARAM@6777..6778
4428 PARAM@6777..67784391 DESTRUCT_FULL@6777..6778
4429 DESTRUCT_FULL@6777..67784392 NAME@6777..6778
4430 NAME@6777..67784393 IDENT@6777..6778 "b"
4431 IDENT@6777..6778 "b"4394 COMMA@6778..6779 ","
4432 COMMA@6778..6779 ","4395 WHITESPACE@6779..6780 " "
4433 WHITESPACE@6779..6780 " "4396 PARAM@6780..6787
4434 PARAM@6780..67874397 DESTRUCT_FULL@6780..6784
4435 DESTRUCT_FULL@6780..67844398 NAME@6780..6784
4436 NAME@6780..67844399 IDENT@6780..6784 "keyF"
4437 IDENT@6780..6784 "keyF"4400 ASSIGN@6784..6785 "="
4438 ASSIGN@6784..6785 "="4401 EXPR_VAR@6785..6787
4439 EXPR_VAR@6785..67874402 NAME@6785..6787
4440 NAME@6785..67874403 IDENT@6785..6787 "id"
4441 IDENT@6785..6787 "id"4404 R_PAREN@6787..6788 ")"
4442 R_PAREN@6787..6788 ")"4405 COLONCOLON@6788..6790 "::"
4443 COLONCOLON@6788..6790 "::"4406 WHITESPACE@6790..6795 "\n "
4444 WHITESPACE@6790..6795 "\n "4407 SINGLE_LINE_SLASH_COMMENT@6795..6837 "// NOTE: order matter ..."
4445 SINGLE_LINE_SLASH_COMMENT@6795..6837 "// NOTE: order matter ..."4408 WHITESPACE@6837..6841 " "
4446 WHITESPACE@6837..6841 " "4409 EXPR_LOCAL@6841..7314
4447 EXPR_LOCAL@6841..73144410 LOCAL_KW@6841..6846 "local"
4448 LOCAL_KW@6841..6846 "local"4411 WHITESPACE@6846..6847 " "
4449 WHITESPACE@6846..6847 " "4412 BIND_FUNCTION@6847..7289
4450 BIND_FUNCTION@6847..72894413 NAME@6847..6850
4451 NAME@6847..68504414 IDENT@6847..6850 "aux"
4452 IDENT@6847..6850 "aux"4415 PARAMS_DESC@6850..6867
4453 PARAMS_DESC@6850..68674416 L_PAREN@6850..6851 "("
4454 L_PAREN@6850..6851 "("4417 PARAM@6851..6852
4455 PARAM@6851..68524418 DESTRUCT_FULL@6851..6852
4456 DESTRUCT_FULL@6851..68524419 NAME@6851..6852
4457 NAME@6851..68524420 IDENT@6851..6852 "a"
4458 IDENT@6851..6852 "a"4421 COMMA@6852..6853 ","
4459 COMMA@6852..6853 ","4422 WHITESPACE@6853..6854 " "
4460 WHITESPACE@6853..6854 " "4423 PARAM@6854..6855
4461 PARAM@6854..68554424 DESTRUCT_FULL@6854..6855
4462 DESTRUCT_FULL@6854..68554425 NAME@6854..6855
4463 NAME@6854..68554426 IDENT@6854..6855 "b"
4464 IDENT@6854..6855 "b"4427 COMMA@6855..6856 ","
4465 COMMA@6855..6856 ","4428 WHITESPACE@6856..6857 " "
4466 WHITESPACE@6856..6857 " "4429 PARAM@6857..6858
4467 PARAM@6857..68584430 DESTRUCT_FULL@6857..6858
4468 DESTRUCT_FULL@6857..68584431 NAME@6857..6858
4469 NAME@6857..68584432 IDENT@6857..6858 "i"
4470 IDENT@6857..6858 "i"4433 COMMA@6858..6859 ","
4471 COMMA@6858..6859 ","4434 WHITESPACE@6859..6860 " "
4472 WHITESPACE@6859..6860 " "4435 PARAM@6860..6861
4473 PARAM@6860..68614436 DESTRUCT_FULL@6860..6861
4474 DESTRUCT_FULL@6860..68614437 NAME@6860..6861
4475 NAME@6860..68614438 IDENT@6860..6861 "j"
4476 IDENT@6860..6861 "j"4439 COMMA@6861..6862 ","
4477 COMMA@6861..6862 ","4440 WHITESPACE@6862..6863 " "
4478 WHITESPACE@6862..6863 " "4441 PARAM@6863..6866
4479 PARAM@6863..68664442 DESTRUCT_FULL@6863..6866
4480 DESTRUCT_FULL@6863..68664443 NAME@6863..6866
4481 NAME@6863..68664444 IDENT@6863..6866 "acc"
4482 IDENT@6863..6866 "acc"4445 R_PAREN@6866..6867 ")"
4483 R_PAREN@6866..6867 ")"4446 WHITESPACE@6867..6868 " "
4484 WHITESPACE@6867..6868 " "4447 ASSIGN@6868..6869 "="
4485 ASSIGN@6868..6869 "="4448 WHITESPACE@6869..6876 "\n "
4486 WHITESPACE@6869..6876 "\n "4449 EXPR_IF_THEN_ELSE@6876..7289
4487 EXPR_IF_THEN_ELSE@6876..72894450 IF_KW@6876..6878 "if"
4488 IF_KW@6876..6878 "if"4451 WHITESPACE@6878..6879 " "
4489 WHITESPACE@6878..6879 " "4452 EXPR_BINARY@6879..6897
4490 EXPR_BINARY@6879..68974453 LHS_EXPR@6879..6880
4491 LHS_EXPR@6879..68804454 EXPR_VAR@6879..6880
4492 EXPR_VAR@6879..68804455 NAME@6879..6880
4493 NAME@6879..68804456 IDENT@6879..6880 "i"
4494 IDENT@6879..6880 "i"4457 WHITESPACE@6880..6881 " "
4495 WHITESPACE@6880..6881 " "4458 GE@6881..6883 ">="
4496 GE@6881..6883 ">="4459 WHITESPACE@6883..6884 " "
4497 WHITESPACE@6883..6884 " "4460 EXPR_APPLY@6884..6897
4498 EXPR_APPLY@6884..68974461 EXPR_INDEX@6884..6894
4499 EXPR_INDEX@6884..68944462 EXPR_VAR@6884..6887
4500 EXPR_VAR@6884..68874463 NAME@6884..6887
4501 NAME@6884..68874464 IDENT@6884..6887 "std"
4502 IDENT@6884..6887 "std"4465 DOT@6887..6888 "."
4503 DOT@6887..6888 "."4466 NAME@6888..6894
4504 NAME@6888..68944467 IDENT@6888..6894 "length"
4505 IDENT@6888..6894 "length"4468 ARGS_DESC@6894..6897
4506 ARGS_DESC@6894..68974469 L_PAREN@6894..6895 "("
4507 L_PAREN@6894..6895 "("4470 ARG@6895..6896
4508 ARG@6895..68964471 EXPR_VAR@6895..6896
4509 EXPR_VAR@6895..68964472 NAME@6895..6896
4510 NAME@6895..68964473 IDENT@6895..6896 "a"
4511 IDENT@6895..6896 "a"4474 R_PAREN@6896..6897 ")"
4512 R_PAREN@6896..6897 ")"4475 WHITESPACE@6897..6898 " "
4513 WHITESPACE@6897..6898 " "4476 THEN_KW@6898..6902 "then"
4514 THEN_KW@6898..6902 "then"4477 WHITESPACE@6902..6911 "\n "
4515 WHITESPACE@6902..6911 "\n "4478 TRUE_EXPR@6911..6922
4516 TRUE_EXPR@6911..69224479 EXPR_BINARY@6911..6922
4517 EXPR_BINARY@6911..69224480 LHS_EXPR@6911..6914
4518 LHS_EXPR@6911..69144481 EXPR_VAR@6911..6914
4519 EXPR_VAR@6911..69144482 NAME@6911..6914
4520 NAME@6911..69144483 IDENT@6911..6914 "acc"
4521 IDENT@6911..6914 "acc"4484 WHITESPACE@6914..6915 " "
4522 WHITESPACE@6914..6915 " "4485 PLUS@6915..6916 "+"
4523 PLUS@6915..6916 "+"4486 WHITESPACE@6916..6917 " "
4524 WHITESPACE@6916..6917 " "4487 EXPR_SLICE@6917..6922
4525 EXPR_SLICE@6917..69224488 EXPR_VAR@6917..6918
4526 EXPR_VAR@6917..69184489 NAME@6917..6918
4527 NAME@6917..69184490 IDENT@6917..6918 "b"
4528 IDENT@6917..6918 "b"4491 SLICE_DESC@6918..6922
4529 SLICE_DESC@6918..69224492 L_BRACK@6918..6919 "["
4530 L_BRACK@6918..6919 "["4493 EXPR_VAR@6919..6920
4531 EXPR_VAR@6919..69204494 NAME@6919..6920
4532 NAME@6919..69204495 IDENT@6919..6920 "j"
4533 IDENT@6919..6920 "j"4496 COLON@6920..6921 ":"
4534 COLON@6920..6921 ":"4497 R_BRACK@6921..6922 "]"
4535 R_BRACK@6921..6922 "]"4498 WHITESPACE@6922..6929 "\n "
4536 WHITESPACE@6922..6929 "\n "4499 ELSE_KW@6929..6933 "else"
4537 ELSE_KW@6929..6933 "else"4500 WHITESPACE@6933..6934 " "
4538 WHITESPACE@6933..6934 " "4501 FALSE_EXPR@6934..7289
4539 FALSE_EXPR@6934..72894502 EXPR_IF_THEN_ELSE@6934..7289
4540 EXPR_IF_THEN_ELSE@6934..72894503 IF_KW@6934..6936 "if"
4541 IF_KW@6934..6936 "if"4504 WHITESPACE@6936..6937 " "
4542 WHITESPACE@6936..6937 " "4505 EXPR_BINARY@6937..6955
4543 EXPR_BINARY@6937..69554506 LHS_EXPR@6937..6938
4544 LHS_EXPR@6937..69384507 EXPR_VAR@6937..6938
4545 EXPR_VAR@6937..69384508 NAME@6937..6938
4546 NAME@6937..69384509 IDENT@6937..6938 "j"
4547 IDENT@6937..6938 "j"4510 WHITESPACE@6938..6939 " "
4548 WHITESPACE@6938..6939 " "4511 GE@6939..6941 ">="
4549 GE@6939..6941 ">="4512 WHITESPACE@6941..6942 " "
4550 WHITESPACE@6941..6942 " "4513 EXPR_APPLY@6942..6955
4551 EXPR_APPLY@6942..69554514 EXPR_INDEX@6942..6952
4552 EXPR_INDEX@6942..69524515 EXPR_VAR@6942..6945
4553 EXPR_VAR@6942..69454516 NAME@6942..6945
4554 NAME@6942..69454517 IDENT@6942..6945 "std"
4555 IDENT@6942..6945 "std"4518 DOT@6945..6946 "."
4556 DOT@6945..6946 "."4519 NAME@6946..6952
4557 NAME@6946..69524520 IDENT@6946..6952 "length"
4558 IDENT@6946..6952 "length"4521 ARGS_DESC@6952..6955
4559 ARGS_DESC@6952..69554522 L_PAREN@6952..6953 "("
4560 L_PAREN@6952..6953 "("4523 ARG@6953..6954
4561 ARG@6953..69544524 EXPR_VAR@6953..6954
4562 EXPR_VAR@6953..69544525 NAME@6953..6954
4563 NAME@6953..69544526 IDENT@6953..6954 "b"
4564 IDENT@6953..6954 "b"4527 R_PAREN@6954..6955 ")"
4565 R_PAREN@6954..6955 ")"4528 WHITESPACE@6955..6956 " "
4566 WHITESPACE@6955..6956 " "4529 THEN_KW@6956..6960 "then"
4567 THEN_KW@6956..6960 "then"4530 WHITESPACE@6960..6969 "\n "
4568 WHITESPACE@6960..6969 "\n "4531 TRUE_EXPR@6969..6980
4569 TRUE_EXPR@6969..69804532 EXPR_BINARY@6969..6980
4570 EXPR_BINARY@6969..69804533 LHS_EXPR@6969..6972
4571 LHS_EXPR@6969..69724534 EXPR_VAR@6969..6972
4572 EXPR_VAR@6969..69724535 NAME@6969..6972
4573 NAME@6969..69724536 IDENT@6969..6972 "acc"
4574 IDENT@6969..6972 "acc"4537 WHITESPACE@6972..6973 " "
4575 WHITESPACE@6972..6973 " "4538 PLUS@6973..6974 "+"
4576 PLUS@6973..6974 "+"4539 WHITESPACE@6974..6975 " "
4577 WHITESPACE@6974..6975 " "4540 EXPR_SLICE@6975..6980
4578 EXPR_SLICE@6975..69804541 EXPR_VAR@6975..6976
4579 EXPR_VAR@6975..69764542 NAME@6975..6976
4580 NAME@6975..69764543 IDENT@6975..6976 "a"
4581 IDENT@6975..6976 "a"4544 SLICE_DESC@6976..6980
4582 SLICE_DESC@6976..69804545 L_BRACK@6976..6977 "["
4583 L_BRACK@6976..6977 "["4546 EXPR_VAR@6977..6978
4584 EXPR_VAR@6977..69784547 NAME@6977..6978
4585 NAME@6977..69784548 IDENT@6977..6978 "i"
4586 IDENT@6977..6978 "i"4549 COLON@6978..6979 ":"
4587 COLON@6978..6979 ":"4550 R_BRACK@6979..6980 "]"
4588 R_BRACK@6979..6980 "]"4551 WHITESPACE@6980..6987 "\n "
4589 WHITESPACE@6980..6987 "\n "4552 ELSE_KW@6987..6991 "else"
4590 ELSE_KW@6987..6991 "else"4553 WHITESPACE@6991..7000 "\n "
4591 WHITESPACE@6991..7000 "\n "4554 FALSE_EXPR@7000..7289
4592 FALSE_EXPR@7000..72894555 EXPR_LOCAL@7000..7289
4593 EXPR_LOCAL@7000..72894556 LOCAL_KW@7000..7005 "local"
4594 LOCAL_KW@7000..7005 "local"4557 WHITESPACE@7005..7006 " "
4595 WHITESPACE@7005..7006 " "4558 BIND_DESTRUCT@7006..7021
4596 BIND_DESTRUCT@7006..70214559 DESTRUCT_FULL@7006..7008
4597 DESTRUCT_FULL@7006..70084560 NAME@7006..7008
4598 NAME@7006..70084561 IDENT@7006..7008 "ak"
4599 IDENT@7006..7008 "ak"4562 WHITESPACE@7008..7009 " "
4600 WHITESPACE@7008..7009 " "4563 ASSIGN@7009..7010 "="
4601 ASSIGN@7009..7010 "="4564 WHITESPACE@7010..7011 " "
4602 WHITESPACE@7010..7011 " "4565 EXPR_APPLY@7011..7021
4603 EXPR_APPLY@7011..70214566 EXPR_VAR@7011..7015
4604 EXPR_VAR@7011..70154567 NAME@7011..7015
4605 NAME@7011..70154568 IDENT@7011..7015 "keyF"
4606 IDENT@7011..7015 "keyF"4569 ARGS_DESC@7015..7021
4607 ARGS_DESC@7015..70214570 L_PAREN@7015..7016 "("
4608 L_PAREN@7015..7016 "("4571 ARG@7016..7020
4609 ARG@7016..70204572 EXPR_INDEX_EXPR@7016..7020
4610 EXPR_INDEX_EXPR@7016..70204573 LHS_EXPR@7016..7017
4611 LHS_EXPR@7016..70174574 EXPR_VAR@7016..7017
4612 EXPR_VAR@7016..70174575 NAME@7016..7017
4613 NAME@7016..70174576 IDENT@7016..7017 "a"
4614 IDENT@7016..7017 "a"4577 L_BRACK@7017..7018 "["
4615 L_BRACK@7017..7018 "["4578 EXPR_VAR@7018..7019
4616 EXPR_VAR@7018..70194579 NAME@7018..7019
4617 NAME@7018..70194580 IDENT@7018..7019 "i"
4618 IDENT@7018..7019 "i"4581 R_BRACK@7019..7020 "]"
4619 R_BRACK@7019..7020 "]"4582 R_PAREN@7020..7021 ")"
4620 R_PAREN@7020..7021 ")"4583 SEMI@7021..7022 ";"
4621 SEMI@7021..7022 ";"4584 WHITESPACE@7022..7031 "\n "
4622 WHITESPACE@7022..7031 "\n "4585 EXPR_LOCAL@7031..7289
4623 EXPR_LOCAL@7031..72894586 LOCAL_KW@7031..7036 "local"
4624 LOCAL_KW@7031..7036 "local"4587 WHITESPACE@7036..7037 " "
4625 WHITESPACE@7036..7037 " "4588 BIND_DESTRUCT@7037..7052
4626 BIND_DESTRUCT@7037..70524589 DESTRUCT_FULL@7037..7039
4627 DESTRUCT_FULL@7037..70394590 NAME@7037..7039
4628 NAME@7037..70394591 IDENT@7037..7039 "bk"
4629 IDENT@7037..7039 "bk"4592 WHITESPACE@7039..7040 " "
4630 WHITESPACE@7039..7040 " "4593 ASSIGN@7040..7041 "="
4631 ASSIGN@7040..7041 "="4594 WHITESPACE@7041..7042 " "
4632 WHITESPACE@7041..7042 " "4595 EXPR_APPLY@7042..7052
4633 EXPR_APPLY@7042..70524596 EXPR_VAR@7042..7046
4634 EXPR_VAR@7042..70464597 NAME@7042..7046
4635 NAME@7042..70464598 IDENT@7042..7046 "keyF"
4636 IDENT@7042..7046 "keyF"4599 ARGS_DESC@7046..7052
4637 ARGS_DESC@7046..70524600 L_PAREN@7046..7047 "("
4638 L_PAREN@7046..7047 "("4601 ARG@7047..7051
4639 ARG@7047..70514602 EXPR_INDEX_EXPR@7047..7051
4640 EXPR_INDEX_EXPR@7047..70514603 LHS_EXPR@7047..7048
4641 LHS_EXPR@7047..70484604 EXPR_VAR@7047..7048
4642 EXPR_VAR@7047..70484605 NAME@7047..7048
4643 NAME@7047..70484606 IDENT@7047..7048 "b"
4644 IDENT@7047..7048 "b"4607 L_BRACK@7048..7049 "["
4645 L_BRACK@7048..7049 "["4608 EXPR_VAR@7049..7050
4646 EXPR_VAR@7049..70504609 NAME@7049..7050
4647 NAME@7049..70504610 IDENT@7049..7050 "j"
4648 IDENT@7049..7050 "j"4611 R_BRACK@7050..7051 "]"
4649 R_BRACK@7050..7051 "]"4612 R_PAREN@7051..7052 ")"
4650 R_PAREN@7051..7052 ")"4613 SEMI@7052..7053 ";"
4651 SEMI@7052..7053 ";"4614 WHITESPACE@7053..7062 "\n "
4652 WHITESPACE@7053..7062 "\n "4615 EXPR_IF_THEN_ELSE@7062..7289
4653 EXPR_IF_THEN_ELSE@7062..72894616 IF_KW@7062..7064 "if"
4654 IF_KW@7062..7064 "if"4617 WHITESPACE@7064..7065 " "
4655 WHITESPACE@7064..7065 " "4618 EXPR_BINARY@7065..7073
4656 EXPR_BINARY@7065..70734619 LHS_EXPR@7065..7067
4657 LHS_EXPR@7065..70674620 EXPR_VAR@7065..7067
4658 EXPR_VAR@7065..70674621 NAME@7065..7067
4659 NAME@7065..70674622 IDENT@7065..7067 "ak"
4660 IDENT@7065..7067 "ak"4623 WHITESPACE@7067..7068 " "
4661 WHITESPACE@7067..7068 " "4624 EQ@7068..7070 "=="
4662 EQ@7068..7070 "=="4625 WHITESPACE@7070..7071 " "
4663 WHITESPACE@7070..7071 " "4626 EXPR_VAR@7071..7073
4664 EXPR_VAR@7071..70734627 NAME@7071..7073
4665 NAME@7071..70734628 IDENT@7071..7073 "bk"
4666 IDENT@7071..7073 "bk"4629 WHITESPACE@7073..7074 " "
4667 WHITESPACE@7073..7074 " "4630 THEN_KW@7074..7078 "then"
4668 THEN_KW@7074..7078 "then"4631 WHITESPACE@7078..7089 "\n "
4669 WHITESPACE@7078..7089 "\n "4632 TRUE_EXPR@7089..7137
4670 TRUE_EXPR@7089..71374633 EXPR_APPLY@7089..7137
4671 EXPR_APPLY@7089..71374634 EXPR_VAR@7089..7092
4672 EXPR_VAR@7089..70924635 NAME@7089..7092
4673 NAME@7089..70924636 IDENT@7089..7092 "aux"
4674 IDENT@7089..7092 "aux"4637 ARGS_DESC@7092..7137
4675 ARGS_DESC@7092..71374638 L_PAREN@7092..7093 "("
4676 L_PAREN@7092..7093 "("4639 ARG@7093..7094
4677 ARG@7093..70944640 EXPR_VAR@7093..7094
4678 EXPR_VAR@7093..70944641 NAME@7093..7094
4679 NAME@7093..70944642 IDENT@7093..7094 "a"
4680 IDENT@7093..7094 "a"4643 COMMA@7094..7095 ","
4681 COMMA@7094..7095 ","4644 WHITESPACE@7095..7096 " "
4682 WHITESPACE@7095..7096 " "4645 ARG@7096..7097
4683 ARG@7096..70974646 EXPR_VAR@7096..7097
4684 EXPR_VAR@7096..70974647 NAME@7096..7097
4685 NAME@7096..70974648 IDENT@7096..7097 "b"
4686 IDENT@7096..7097 "b"4649 COMMA@7097..7098 ","
4687 COMMA@7097..7098 ","4650 WHITESPACE@7098..7099 " "
4688 WHITESPACE@7098..7099 " "4651 ARG@7099..7104
4689 ARG@7099..71044652 EXPR_BINARY@7099..7104
4690 EXPR_BINARY@7099..71044653 LHS_EXPR@7099..7100
4691 LHS_EXPR@7099..71004654 EXPR_VAR@7099..7100
4692 EXPR_VAR@7099..71004655 NAME@7099..7100
4693 NAME@7099..71004656 IDENT@7099..7100 "i"
4694 IDENT@7099..7100 "i"4657 WHITESPACE@7100..7101 " "
4695 WHITESPACE@7100..7101 " "4658 PLUS@7101..7102 "+"
4696 PLUS@7101..7102 "+"4659 WHITESPACE@7102..7103 " "
4697 WHITESPACE@7102..7103 " "4660 EXPR_NUMBER@7103..7104
4698 EXPR_NUMBER@7103..71044661 FLOAT@7103..7104 "1"
4699 FLOAT@7103..7104 "1"4662 COMMA@7104..7105 ","
4700 COMMA@7104..7105 ","4663 WHITESPACE@7105..7106 " "
4701 WHITESPACE@7105..7106 " "4664 ARG@7106..7111
4702 ARG@7106..71114665 EXPR_BINARY@7106..7111
4703 EXPR_BINARY@7106..71114666 LHS_EXPR@7106..7107
4704 LHS_EXPR@7106..71074667 EXPR_VAR@7106..7107
4705 EXPR_VAR@7106..71074668 NAME@7106..7107
4706 NAME@7106..71074669 IDENT@7106..7107 "j"
4707 IDENT@7106..7107 "j"4670 WHITESPACE@7107..7108 " "
4708 WHITESPACE@7107..7108 " "4671 PLUS@7108..7109 "+"
4709 PLUS@7108..7109 "+"4672 WHITESPACE@7109..7110 " "
4710 WHITESPACE@7109..7110 " "4673 EXPR_NUMBER@7110..7111
4711 EXPR_NUMBER@7110..71114674 FLOAT@7110..7111 "1"
4712 FLOAT@7110..7111 "1"4675 COMMA@7111..7112 ","
4713 COMMA@7111..7112 ","4676 WHITESPACE@7112..7113 " "
4714 WHITESPACE@7112..7113 " "4677 ARG@7113..7125
4715 ARG@7113..71254678 EXPR_BINARY@7113..7125
4716 EXPR_BINARY@7113..71254679 LHS_EXPR@7113..7116
4717 LHS_EXPR@7113..71164680 EXPR_VAR@7113..7116
4718 EXPR_VAR@7113..71164681 NAME@7113..7116
4719 NAME@7113..71164682 IDENT@7113..7116 "acc"
4720 IDENT@7113..7116 "acc"4683 WHITESPACE@7116..7117 " "
4721 WHITESPACE@7116..7117 " "4684 PLUS@7117..7118 "+"
4722 PLUS@7117..7118 "+"4685 WHITESPACE@7118..7119 " "
4723 WHITESPACE@7118..7119 " "4686 EXPR_ARRAY@7119..7125
4724 EXPR_ARRAY@7119..71254687 L_BRACK@7119..7120 "["
4725 L_BRACK@7119..7120 "["4688 EXPR_INDEX_EXPR@7120..7124
4726 EXPR_INDEX_EXPR@7120..71244689 LHS_EXPR@7120..7121
4727 LHS_EXPR@7120..71214690 EXPR_VAR@7120..7121
4728 EXPR_VAR@7120..71214691 NAME@7120..7121
4729 NAME@7120..71214692 IDENT@7120..7121 "a"
4730 IDENT@7120..7121 "a"4693 L_BRACK@7121..7122 "["
4731 L_BRACK@7121..7122 "["4694 EXPR_VAR@7122..7123
4732 EXPR_VAR@7122..71234695 NAME@7122..7123
4733 NAME@7122..71234696 IDENT@7122..7123 "i"
4734 IDENT@7122..7123 "i"4697 R_BRACK@7123..7124 "]"
4735 R_BRACK@7123..7124 "]"4698 R_BRACK@7124..7125 "]"
4736 R_BRACK@7124..7125 "]"4699 R_PAREN@7125..7126 ")"
4737 R_PAREN@7125..7126 ")"4700 WHITESPACE@7126..7127 " "
4738 WHITESPACE@7126..7127 " "4701 TAILSTRICT_KW@7127..7137 "tailstrict"
4739 TAILSTRICT_KW@7127..7137 "tailstrict"4702 WHITESPACE@7137..7146 "\n "
4740 WHITESPACE@7137..7146 "\n "4703 ELSE_KW@7146..7150 "else"
4741 ELSE_KW@7146..7150 "else"4704 WHITESPACE@7150..7151 " "
4742 WHITESPACE@7150..7151 " "4705 FALSE_EXPR@7151..7289
4743 FALSE_EXPR@7151..72894706 EXPR_IF_THEN_ELSE@7151..7289
4744 EXPR_IF_THEN_ELSE@7151..72894707 IF_KW@7151..7153 "if"
4745 IF_KW@7151..7153 "if"4708 WHITESPACE@7153..7154 " "
4746 WHITESPACE@7153..7154 " "4709 EXPR_BINARY@7154..7161
4747 EXPR_BINARY@7154..71614710 LHS_EXPR@7154..7156
4748 LHS_EXPR@7154..71564711 EXPR_VAR@7154..7156
4749 EXPR_VAR@7154..71564712 NAME@7154..7156
4750 NAME@7154..71564713 IDENT@7154..7156 "ak"
4751 IDENT@7154..7156 "ak"4714 WHITESPACE@7156..7157 " "
4752 WHITESPACE@7156..7157 " "4715 LT@7157..7158 "<"
4753 LT@7157..7158 "<"4716 WHITESPACE@7158..7159 " "
4754 WHITESPACE@7158..7159 " "4717 EXPR_VAR@7159..7161
4755 EXPR_VAR@7159..71614718 NAME@7159..7161
4756 NAME@7159..71614719 IDENT@7159..7161 "bk"
4757 IDENT@7159..7161 "bk"4720 WHITESPACE@7161..7162 " "
4758 WHITESPACE@7161..7162 " "4721 THEN_KW@7162..7166 "then"
4759 THEN_KW@7162..7166 "then"4722 WHITESPACE@7166..7177 "\n "
4760 WHITESPACE@7166..7177 "\n "4723 TRUE_EXPR@7177..7221
4761 TRUE_EXPR@7177..72214724 EXPR_APPLY@7177..7221
4762 EXPR_APPLY@7177..72214725 EXPR_VAR@7177..7180
4763 EXPR_VAR@7177..71804726 NAME@7177..7180
4764 NAME@7177..71804727 IDENT@7177..7180 "aux"
4765 IDENT@7177..7180 "aux"4728 ARGS_DESC@7180..7221
4766 ARGS_DESC@7180..72214729 L_PAREN@7180..7181 "("
4767 L_PAREN@7180..7181 "("4730 ARG@7181..7182
4768 ARG@7181..71824731 EXPR_VAR@7181..7182
4769 EXPR_VAR@7181..71824732 NAME@7181..7182
4770 NAME@7181..71824733 IDENT@7181..7182 "a"
4771 IDENT@7181..7182 "a"4734 COMMA@7182..7183 ","
4772 COMMA@7182..7183 ","4735 WHITESPACE@7183..7184 " "
4773 WHITESPACE@7183..7184 " "4736 ARG@7184..7185
4774 ARG@7184..71854737 EXPR_VAR@7184..7185
4775 EXPR_VAR@7184..71854738 NAME@7184..7185
4776 NAME@7184..71854739 IDENT@7184..7185 "b"
4777 IDENT@7184..7185 "b"4740 COMMA@7185..7186 ","
4778 COMMA@7185..7186 ","4741 WHITESPACE@7186..7187 " "
4779 WHITESPACE@7186..7187 " "4742 ARG@7187..7192
4780 ARG@7187..71924743 EXPR_BINARY@7187..7192
4781 EXPR_BINARY@7187..71924744 LHS_EXPR@7187..7188
4782 LHS_EXPR@7187..71884745 EXPR_VAR@7187..7188
4783 EXPR_VAR@7187..71884746 NAME@7187..7188
4784 NAME@7187..71884747 IDENT@7187..7188 "i"
4785 IDENT@7187..7188 "i"4748 WHITESPACE@7188..7189 " "
4786 WHITESPACE@7188..7189 " "4749 PLUS@7189..7190 "+"
4787 PLUS@7189..7190 "+"4750 WHITESPACE@7190..7191 " "
4788 WHITESPACE@7190..7191 " "4751 EXPR_NUMBER@7191..7192
4789 EXPR_NUMBER@7191..71924752 FLOAT@7191..7192 "1"
4790 FLOAT@7191..7192 "1"4753 COMMA@7192..7193 ","
4791 COMMA@7192..7193 ","4754 WHITESPACE@7193..7194 " "
4792 WHITESPACE@7193..7194 " "4755 ARG@7194..7195
4793 ARG@7194..71954756 EXPR_VAR@7194..7195
4794 EXPR_VAR@7194..71954757 NAME@7194..7195
4795 NAME@7194..71954758 IDENT@7194..7195 "j"
4796 IDENT@7194..7195 "j"4759 COMMA@7195..7196 ","
4797 COMMA@7195..7196 ","4760 WHITESPACE@7196..7197 " "
4798 WHITESPACE@7196..7197 " "4761 ARG@7197..7209
4799 ARG@7197..72094762 EXPR_BINARY@7197..7209
4800 EXPR_BINARY@7197..72094763 LHS_EXPR@7197..7200
4801 LHS_EXPR@7197..72004764 EXPR_VAR@7197..7200
4802 EXPR_VAR@7197..72004765 NAME@7197..7200
4803 NAME@7197..72004766 IDENT@7197..7200 "acc"
4804 IDENT@7197..7200 "acc"4767 WHITESPACE@7200..7201 " "
4805 WHITESPACE@7200..7201 " "4768 PLUS@7201..7202 "+"
4806 PLUS@7201..7202 "+"4769 WHITESPACE@7202..7203 " "
4807 WHITESPACE@7202..7203 " "4770 EXPR_ARRAY@7203..7209
4808 EXPR_ARRAY@7203..72094771 L_BRACK@7203..7204 "["
4809 L_BRACK@7203..7204 "["4772 EXPR_INDEX_EXPR@7204..7208
4810 EXPR_INDEX_EXPR@7204..72084773 LHS_EXPR@7204..7205
4811 LHS_EXPR@7204..72054774 EXPR_VAR@7204..7205
4812 EXPR_VAR@7204..72054775 NAME@7204..7205
4813 NAME@7204..72054776 IDENT@7204..7205 "a"
4814 IDENT@7204..7205 "a"4777 L_BRACK@7205..7206 "["
4815 L_BRACK@7205..7206 "["4778 EXPR_VAR@7206..7207
4816 EXPR_VAR@7206..72074779 NAME@7206..7207
4817 NAME@7206..72074780 IDENT@7206..7207 "i"
4818 IDENT@7206..7207 "i"4781 R_BRACK@7207..7208 "]"
4819 R_BRACK@7207..7208 "]"4782 R_BRACK@7208..7209 "]"
4820 R_BRACK@7208..7209 "]"4783 R_PAREN@7209..7210 ")"
4821 R_PAREN@7209..7210 ")"4784 WHITESPACE@7210..7211 " "
4822 WHITESPACE@7210..7211 " "4785 TAILSTRICT_KW@7211..7221 "tailstrict"
4823 TAILSTRICT_KW@7211..7221 "tailstrict"4786 WHITESPACE@7221..7230 "\n "
4824 WHITESPACE@7221..7230 "\n "4787 ELSE_KW@7230..7234 "else"
4825 ELSE_KW@7230..7234 "else"4788 WHITESPACE@7234..7245 "\n "
4826 WHITESPACE@7234..7245 "\n "4789 FALSE_EXPR@7245..7289
4827 FALSE_EXPR@7245..72894790 EXPR_APPLY@7245..7289
4828 EXPR_APPLY@7245..72894791 EXPR_VAR@7245..7248
4829 EXPR_VAR@7245..72484792 NAME@7245..7248
4830 NAME@7245..72484793 IDENT@7245..7248 "aux"
4831 IDENT@7245..7248 "aux"4794 ARGS_DESC@7248..7289
4832 ARGS_DESC@7248..72894795 L_PAREN@7248..7249 "("
4833 L_PAREN@7248..7249 "("4796 ARG@7249..7250
4834 ARG@7249..72504797 EXPR_VAR@7249..7250
4835 EXPR_VAR@7249..72504798 NAME@7249..7250
4836 NAME@7249..72504799 IDENT@7249..7250 "a"
4837 IDENT@7249..7250 "a"4800 COMMA@7250..7251 ","
4838 COMMA@7250..7251 ","4801 WHITESPACE@7251..7252 " "
4839 WHITESPACE@7251..7252 " "4802 ARG@7252..7253
4840 ARG@7252..72534803 EXPR_VAR@7252..7253
4841 EXPR_VAR@7252..72534804 NAME@7252..7253
4842 NAME@7252..72534805 IDENT@7252..7253 "b"
4843 IDENT@7252..7253 "b"4806 COMMA@7253..7254 ","
4844 COMMA@7253..7254 ","4807 WHITESPACE@7254..7255 " "
4845 WHITESPACE@7254..7255 " "4808 ARG@7255..7256
4846 ARG@7255..72564809 EXPR_VAR@7255..7256
4847 EXPR_VAR@7255..72564810 NAME@7255..7256
4848 NAME@7255..72564811 IDENT@7255..7256 "i"
4849 IDENT@7255..7256 "i"4812 COMMA@7256..7257 ","
4850 COMMA@7256..7257 ","4813 WHITESPACE@7257..7258 " "
4851 WHITESPACE@7257..7258 " "4814 ARG@7258..7263
4852 ARG@7258..72634815 EXPR_BINARY@7258..7263
4853 EXPR_BINARY@7258..72634816 LHS_EXPR@7258..7259
4854 LHS_EXPR@7258..72594817 EXPR_VAR@7258..7259
4855 EXPR_VAR@7258..72594818 NAME@7258..7259
4856 NAME@7258..72594819 IDENT@7258..7259 "j"
4857 IDENT@7258..7259 "j"4820 WHITESPACE@7259..7260 " "
4858 WHITESPACE@7259..7260 " "4821 PLUS@7260..7261 "+"
4859 PLUS@7260..7261 "+"4822 WHITESPACE@7261..7262 " "
4860 WHITESPACE@7261..7262 " "4823 EXPR_NUMBER@7262..7263
4861 EXPR_NUMBER@7262..72634824 FLOAT@7262..7263 "1"
4862 FLOAT@7262..7263 "1"4825 COMMA@7263..7264 ","
4863 COMMA@7263..7264 ","4826 WHITESPACE@7264..7265 " "
4864 WHITESPACE@7264..7265 " "4827 ARG@7265..7277
4865 ARG@7265..72774828 EXPR_BINARY@7265..7277
4866 EXPR_BINARY@7265..72774829 LHS_EXPR@7265..7268
4867 LHS_EXPR@7265..72684830 EXPR_VAR@7265..7268
4868 EXPR_VAR@7265..72684831 NAME@7265..7268
4869 NAME@7265..72684832 IDENT@7265..7268 "acc"
4870 IDENT@7265..7268 "acc"4833 WHITESPACE@7268..7269 " "
4871 WHITESPACE@7268..7269 " "4834 PLUS@7269..7270 "+"
4872 PLUS@7269..7270 "+"4835 WHITESPACE@7270..7271 " "
4873 WHITESPACE@7270..7271 " "4836 EXPR_ARRAY@7271..7277
4874 EXPR_ARRAY@7271..72774837 L_BRACK@7271..7272 "["
4875 L_BRACK@7271..7272 "["4838 EXPR_INDEX_EXPR@7272..7276
4876 EXPR_INDEX_EXPR@7272..72764839 LHS_EXPR@7272..7273
4877 LHS_EXPR@7272..72734840 EXPR_VAR@7272..7273
4878 EXPR_VAR@7272..72734841 NAME@7272..7273
4879 NAME@7272..72734842 IDENT@7272..7273 "b"
4880 IDENT@7272..7273 "b"4843 L_BRACK@7273..7274 "["
4881 L_BRACK@7273..7274 "["4844 EXPR_VAR@7274..7275
4882 EXPR_VAR@7274..72754845 NAME@7274..7275
4883 NAME@7274..72754846 IDENT@7274..7275 "j"
4884 IDENT@7274..7275 "j"4847 R_BRACK@7275..7276 "]"
4885 R_BRACK@7275..7276 "]"4848 R_BRACK@7276..7277 "]"
4886 R_BRACK@7276..7277 "]"4849 R_PAREN@7277..7278 ")"
4887 R_PAREN@7277..7278 ")"4850 WHITESPACE@7278..7279 " "
4888 WHITESPACE@7278..7279 " "4851 TAILSTRICT_KW@7279..7289 "tailstrict"
4889 TAILSTRICT_KW@7279..7289 "tailstrict"4852 SEMI@7289..7290 ";"
4890 SEMI@7289..7290 ";"4853 WHITESPACE@7290..7295 "\n "
4891 WHITESPACE@7290..7295 "\n "4854 EXPR_APPLY@7295..7314
4892 EXPR_APPLY@7295..73144855 EXPR_VAR@7295..7298
4893 EXPR_VAR@7295..72984856 NAME@7295..7298
4894 NAME@7295..72984857 IDENT@7295..7298 "aux"
4895 IDENT@7295..7298 "aux"4858 ARGS_DESC@7298..7314
4896 ARGS_DESC@7298..73144859 L_PAREN@7298..7299 "("
4897 L_PAREN@7298..7299 "("4860 ARG@7299..7300
4898 ARG@7299..73004861 EXPR_VAR@7299..7300
4899 EXPR_VAR@7299..73004862 NAME@7299..7300
4900 NAME@7299..73004863 IDENT@7299..7300 "a"
4901 IDENT@7299..7300 "a"4864 COMMA@7300..7301 ","
4902 COMMA@7300..7301 ","4865 WHITESPACE@7301..7302 " "
4903 WHITESPACE@7301..7302 " "4866 ARG@7302..7303
4904 ARG@7302..73034867 EXPR_VAR@7302..7303
4905 EXPR_VAR@7302..73034868 NAME@7302..7303
4906 NAME@7302..73034869 IDENT@7302..7303 "b"
4907 IDENT@7302..7303 "b"4870 COMMA@7303..7304 ","
4908 COMMA@7303..7304 ","4871 WHITESPACE@7304..7305 " "
4909 WHITESPACE@7304..7305 " "4872 ARG@7305..7306
4910 ARG@7305..73064873 EXPR_NUMBER@7305..7306
4911 EXPR_NUMBER@7305..73064874 FLOAT@7305..7306 "0"
4912 FLOAT@7305..7306 "0"4875 COMMA@7306..7307 ","
4913 COMMA@7306..7307 ","4876 WHITESPACE@7307..7308 " "
4914 WHITESPACE@7307..7308 " "4877 ARG@7308..7309
4915 ARG@7308..73094878 EXPR_NUMBER@7308..7309
4916 EXPR_NUMBER@7308..73094879 FLOAT@7308..7309 "0"
4917 FLOAT@7308..7309 "0"4880 COMMA@7309..7310 ","
4918 COMMA@7309..7310 ","4881 WHITESPACE@7310..7311 " "
4919 WHITESPACE@7310..7311 " "4882 ARG@7311..7313
4920 ARG@7311..73134883 EXPR_ARRAY@7311..7313
4921 EXPR_ARRAY@7311..73134884 L_BRACK@7311..7312 "["
4922 L_BRACK@7311..7312 "["4885 R_BRACK@7312..7313 "]"
4923 R_BRACK@7312..7313 "]"4886 R_PAREN@7313..7314 ")"
4924 R_PAREN@7313..7314 ")"
4925 COMMA@7314..7315 ","4887 COMMA@7314..7315 ","
4926 WHITESPACE@7315..7319 "\n\n "4888 WHITESPACE@7315..7319 "\n\n "
4927 MEMBER_FIELD@7319..77414889 MEMBER_FIELD_METHOD@7319..7741
4928 FIELD_METHOD@7319..77414890 FIELD_NAME_FIXED@7319..7327
4929 FIELD_NAME_FIXED@7319..73274891 NAME@7319..7327
4930 NAME@7319..73274892 IDENT@7319..7327 "setInter"
4931 IDENT@7319..7327 "setInter"4893 PARAMS_DESC@7327..7342
4932 PARAMS_DESC@7327..73424894 L_PAREN@7327..7328 "("
4933 L_PAREN@7327..7328 "("4895 PARAM@7328..7329
4934 PARAM@7328..73294896 DESTRUCT_FULL@7328..7329
4935 DESTRUCT_FULL@7328..73294897 NAME@7328..7329
4936 NAME@7328..73294898 IDENT@7328..7329 "a"
4937 IDENT@7328..7329 "a"4899 COMMA@7329..7330 ","
4938 COMMA@7329..7330 ","4900 WHITESPACE@7330..7331 " "
4939 WHITESPACE@7330..7331 " "4901 PARAM@7331..7332
4940 PARAM@7331..73324902 DESTRUCT_FULL@7331..7332
4941 DESTRUCT_FULL@7331..73324903 NAME@7331..7332
4942 NAME@7331..73324904 IDENT@7331..7332 "b"
4943 IDENT@7331..7332 "b"4905 COMMA@7332..7333 ","
4944 COMMA@7332..7333 ","4906 WHITESPACE@7333..7334 " "
4945 WHITESPACE@7333..7334 " "4907 PARAM@7334..7341
4946 PARAM@7334..73414908 DESTRUCT_FULL@7334..7338
4947 DESTRUCT_FULL@7334..73384909 NAME@7334..7338
4948 NAME@7334..73384910 IDENT@7334..7338 "keyF"
4949 IDENT@7334..7338 "keyF"4911 ASSIGN@7338..7339 "="
4950 ASSIGN@7338..7339 "="4912 EXPR_VAR@7339..7341
4951 EXPR_VAR@7339..73414913 NAME@7339..7341
4952 NAME@7339..73414914 IDENT@7339..7341 "id"
4953 IDENT@7339..7341 "id"4915 R_PAREN@7341..7342 ")"
4954 R_PAREN@7341..7342 ")"4916 COLONCOLON@7342..7344 "::"
4955 COLONCOLON@7342..7344 "::"4917 WHITESPACE@7344..7349 "\n "
4956 WHITESPACE@7344..7349 "\n "4918 EXPR_LOCAL@7349..7741
4957 EXPR_LOCAL@7349..77414919 LOCAL_KW@7349..7354 "local"
4958 LOCAL_KW@7349..7354 "local"4920 WHITESPACE@7354..7355 " "
4959 WHITESPACE@7354..7355 " "4921 BIND_FUNCTION@7355..7705
4960 BIND_FUNCTION@7355..77054922 NAME@7355..7358
4961 NAME@7355..73584923 IDENT@7355..7358 "aux"
4962 IDENT@7355..7358 "aux"4924 PARAMS_DESC@7358..7375
4963 PARAMS_DESC@7358..73754925 L_PAREN@7358..7359 "("
4964 L_PAREN@7358..7359 "("4926 PARAM@7359..7360
4965 PARAM@7359..73604927 DESTRUCT_FULL@7359..7360
4966 DESTRUCT_FULL@7359..73604928 NAME@7359..7360
4967 NAME@7359..73604929 IDENT@7359..7360 "a"
4968 IDENT@7359..7360 "a"4930 COMMA@7360..7361 ","
4969 COMMA@7360..7361 ","4931 WHITESPACE@7361..7362 " "
4970 WHITESPACE@7361..7362 " "4932 PARAM@7362..7363
4971 PARAM@7362..73634933 DESTRUCT_FULL@7362..7363
4972 DESTRUCT_FULL@7362..73634934 NAME@7362..7363
4973 NAME@7362..73634935 IDENT@7362..7363 "b"
4974 IDENT@7362..7363 "b"4936 COMMA@7363..7364 ","
4975 COMMA@7363..7364 ","4937 WHITESPACE@7364..7365 " "
4976 WHITESPACE@7364..7365 " "4938 PARAM@7365..7366
4977 PARAM@7365..73664939 DESTRUCT_FULL@7365..7366
4978 DESTRUCT_FULL@7365..73664940 NAME@7365..7366
4979 NAME@7365..73664941 IDENT@7365..7366 "i"
4980 IDENT@7365..7366 "i"4942 COMMA@7366..7367 ","
4981 COMMA@7366..7367 ","4943 WHITESPACE@7367..7368 " "
4982 WHITESPACE@7367..7368 " "4944 PARAM@7368..7369
4983 PARAM@7368..73694945 DESTRUCT_FULL@7368..7369
4984 DESTRUCT_FULL@7368..73694946 NAME@7368..7369
4985 NAME@7368..73694947 IDENT@7368..7369 "j"
4986 IDENT@7368..7369 "j"4948 COMMA@7369..7370 ","
4987 COMMA@7369..7370 ","4949 WHITESPACE@7370..7371 " "
4988 WHITESPACE@7370..7371 " "4950 PARAM@7371..7374
4989 PARAM@7371..73744951 DESTRUCT_FULL@7371..7374
4990 DESTRUCT_FULL@7371..73744952 NAME@7371..7374
4991 NAME@7371..73744953 IDENT@7371..7374 "acc"
4992 IDENT@7371..7374 "acc"4954 R_PAREN@7374..7375 ")"
4993 R_PAREN@7374..7375 ")"4955 WHITESPACE@7375..7376 " "
4994 WHITESPACE@7375..7376 " "4956 ASSIGN@7376..7377 "="
4995 ASSIGN@7376..7377 "="4957 WHITESPACE@7377..7384 "\n "
4996 WHITESPACE@7377..7384 "\n "4958 EXPR_IF_THEN_ELSE@7384..7705
4997 EXPR_IF_THEN_ELSE@7384..77054959 IF_KW@7384..7386 "if"
4998 IF_KW@7384..7386 "if"4960 WHITESPACE@7386..7387 " "
4999 WHITESPACE@7386..7387 " "4961 EXPR_BINARY@7387..7427
5000 EXPR_BINARY@7387..74274962 LHS_EXPR@7387..7405
5001 LHS_EXPR@7387..74054963 EXPR_BINARY@7387..7405
5002 EXPR_BINARY@7387..74054964 LHS_EXPR@7387..7388
5003 LHS_EXPR@7387..73884965 EXPR_VAR@7387..7388
5004 EXPR_VAR@7387..73884966 NAME@7387..7388
5005 NAME@7387..73884967 IDENT@7387..7388 "i"
5006 IDENT@7387..7388 "i"4968 WHITESPACE@7388..7389 " "
5007 WHITESPACE@7388..7389 " "4969 GE@7389..7391 ">="
5008 GE@7389..7391 ">="4970 WHITESPACE@7391..7392 " "
5009 WHITESPACE@7391..7392 " "4971 EXPR_APPLY@7392..7405
5010 EXPR_APPLY@7392..74054972 EXPR_INDEX@7392..7402
5011 EXPR_INDEX@7392..74024973 EXPR_VAR@7392..7395
5012 EXPR_VAR@7392..73954974 NAME@7392..7395
5013 NAME@7392..73954975 IDENT@7392..7395 "std"
5014 IDENT@7392..7395 "std"4976 DOT@7395..7396 "."
5015 DOT@7395..7396 "."4977 NAME@7396..7402
5016 NAME@7396..74024978 IDENT@7396..7402 "length"
5017 IDENT@7396..7402 "length"4979 ARGS_DESC@7402..7405
5018 ARGS_DESC@7402..74054980 L_PAREN@7402..7403 "("
5019 L_PAREN@7402..7403 "("4981 ARG@7403..7404
5020 ARG@7403..74044982 EXPR_VAR@7403..7404
5021 EXPR_VAR@7403..74044983 NAME@7403..7404
5022 NAME@7403..74044984 IDENT@7403..7404 "a"
5023 IDENT@7403..7404 "a"4985 R_PAREN@7404..7405 ")"
5024 R_PAREN@7404..7405 ")"4986 WHITESPACE@7405..7406 " "
5025 WHITESPACE@7405..7406 " "4987 OR@7406..7408 "||"
5026 OR@7406..7408 "||"4988 WHITESPACE@7408..7409 " "
5027 WHITESPACE@7408..7409 " "4989 EXPR_BINARY@7409..7427
5028 EXPR_BINARY@7409..74274990 LHS_EXPR@7409..7410
5029 LHS_EXPR@7409..74104991 EXPR_VAR@7409..7410
5030 EXPR_VAR@7409..74104992 NAME@7409..7410
5031 NAME@7409..74104993 IDENT@7409..7410 "j"
5032 IDENT@7409..7410 "j"4994 WHITESPACE@7410..7411 " "
5033 WHITESPACE@7410..7411 " "4995 GE@7411..7413 ">="
5034 GE@7411..7413 ">="4996 WHITESPACE@7413..7414 " "
5035 WHITESPACE@7413..7414 " "4997 EXPR_APPLY@7414..7427
5036 EXPR_APPLY@7414..74274998 EXPR_INDEX@7414..7424
5037 EXPR_INDEX@7414..74244999 EXPR_VAR@7414..7417
5038 EXPR_VAR@7414..74175000 NAME@7414..7417
5039 NAME@7414..74175001 IDENT@7414..7417 "std"
5040 IDENT@7414..7417 "std"5002 DOT@7417..7418 "."
5041 DOT@7417..7418 "."5003 NAME@7418..7424
5042 NAME@7418..74245004 IDENT@7418..7424 "length"
5043 IDENT@7418..7424 "length"5005 ARGS_DESC@7424..7427
5044 ARGS_DESC@7424..74275006 L_PAREN@7424..7425 "("
5045 L_PAREN@7424..7425 "("5007 ARG@7425..7426
5046 ARG@7425..74265008 EXPR_VAR@7425..7426
5047 EXPR_VAR@7425..74265009 NAME@7425..7426
5048 NAME@7425..74265010 IDENT@7425..7426 "b"
5049 IDENT@7425..7426 "b"5011 R_PAREN@7426..7427 ")"
5050 R_PAREN@7426..7427 ")"5012 WHITESPACE@7427..7428 " "
5051 WHITESPACE@7427..7428 " "5013 THEN_KW@7428..7432 "then"
5052 THEN_KW@7428..7432 "then"5014 WHITESPACE@7432..7441 "\n "
5053 WHITESPACE@7432..7441 "\n "5015 TRUE_EXPR@7441..7444
5054 TRUE_EXPR@7441..74445016 EXPR_VAR@7441..7444
5055 EXPR_VAR@7441..74445017 NAME@7441..7444
5056 NAME@7441..74445018 IDENT@7441..7444 "acc"
5057 IDENT@7441..7444 "acc"5019 WHITESPACE@7444..7451 "\n "
5058 WHITESPACE@7444..7451 "\n "5020 ELSE_KW@7451..7455 "else"
5059 ELSE_KW@7451..7455 "else"5021 WHITESPACE@7455..7464 "\n "
5060 WHITESPACE@7455..7464 "\n "5022 FALSE_EXPR@7464..7705
5061 FALSE_EXPR@7464..77055023 EXPR_IF_THEN_ELSE@7464..7705
5062 EXPR_IF_THEN_ELSE@7464..77055024 IF_KW@7464..7466 "if"
5063 IF_KW@7464..7466 "if"5025 WHITESPACE@7466..7467 " "
5064 WHITESPACE@7466..7467 " "5026 EXPR_BINARY@7467..7491
5065 EXPR_BINARY@7467..74915027 LHS_EXPR@7467..7477
5066 LHS_EXPR@7467..74775028 EXPR_APPLY@7467..7477
5067 EXPR_APPLY@7467..74775029 EXPR_VAR@7467..7471
5068 EXPR_VAR@7467..74715030 NAME@7467..7471
5069 NAME@7467..74715031 IDENT@7467..7471 "keyF"
5070 IDENT@7467..7471 "keyF"5032 ARGS_DESC@7471..7477
5071 ARGS_DESC@7471..74775033 L_PAREN@7471..7472 "("
5072 L_PAREN@7471..7472 "("5034 ARG@7472..7476
5073 ARG@7472..74765035 EXPR_INDEX_EXPR@7472..7476
5074 EXPR_INDEX_EXPR@7472..74765036 LHS_EXPR@7472..7473
5075 LHS_EXPR@7472..74735037 EXPR_VAR@7472..7473
5076 EXPR_VAR@7472..74735038 NAME@7472..7473
5077 NAME@7472..74735039 IDENT@7472..7473 "a"
5078 IDENT@7472..7473 "a"5040 L_BRACK@7473..7474 "["
5079 L_BRACK@7473..7474 "["5041 EXPR_VAR@7474..7475
5080 EXPR_VAR@7474..74755042 NAME@7474..7475
5081 NAME@7474..74755043 IDENT@7474..7475 "i"
5082 IDENT@7474..7475 "i"5044 R_BRACK@7475..7476 "]"
5083 R_BRACK@7475..7476 "]"5045 R_PAREN@7476..7477 ")"
5084 R_PAREN@7476..7477 ")"5046 WHITESPACE@7477..7478 " "
5085 WHITESPACE@7477..7478 " "5047 EQ@7478..7480 "=="
5086 EQ@7478..7480 "=="5048 WHITESPACE@7480..7481 " "
5087 WHITESPACE@7480..7481 " "5049 EXPR_APPLY@7481..7491
5088 EXPR_APPLY@7481..74915050 EXPR_VAR@7481..7485
5089 EXPR_VAR@7481..74855051 NAME@7481..7485
5090 NAME@7481..74855052 IDENT@7481..7485 "keyF"
5091 IDENT@7481..7485 "keyF"5053 ARGS_DESC@7485..7491
5092 ARGS_DESC@7485..74915054 L_PAREN@7485..7486 "("
5093 L_PAREN@7485..7486 "("5055 ARG@7486..7490
5094 ARG@7486..74905056 EXPR_INDEX_EXPR@7486..7490
5095 EXPR_INDEX_EXPR@7486..74905057 LHS_EXPR@7486..7487
5096 LHS_EXPR@7486..74875058 EXPR_VAR@7486..7487
5097 EXPR_VAR@7486..74875059 NAME@7486..7487
5098 NAME@7486..74875060 IDENT@7486..7487 "b"
5099 IDENT@7486..7487 "b"5061 L_BRACK@7487..7488 "["
5100 L_BRACK@7487..7488 "["5062 EXPR_VAR@7488..7489
5101 EXPR_VAR@7488..74895063 NAME@7488..7489
5102 NAME@7488..74895064 IDENT@7488..7489 "j"
5103 IDENT@7488..7489 "j"5065 R_BRACK@7489..7490 "]"
5104 R_BRACK@7489..7490 "]"5066 R_PAREN@7490..7491 ")"
5105 R_PAREN@7490..7491 ")"5067 WHITESPACE@7491..7492 " "
5106 WHITESPACE@7491..7492 " "5068 THEN_KW@7492..7496 "then"
5107 THEN_KW@7492..7496 "then"5069 WHITESPACE@7496..7507 "\n "
5108 WHITESPACE@7496..7507 "\n "5070 TRUE_EXPR@7507..7555
5109 TRUE_EXPR@7507..75555071 EXPR_APPLY@7507..7555
5110 EXPR_APPLY@7507..75555072 EXPR_VAR@7507..7510
5111 EXPR_VAR@7507..75105073 NAME@7507..7510
5112 NAME@7507..75105074 IDENT@7507..7510 "aux"
5113 IDENT@7507..7510 "aux"5075 ARGS_DESC@7510..7555
5114 ARGS_DESC@7510..75555076 L_PAREN@7510..7511 "("
5115 L_PAREN@7510..7511 "("5077 ARG@7511..7512
5116 ARG@7511..75125078 EXPR_VAR@7511..7512
5117 EXPR_VAR@7511..75125079 NAME@7511..7512
5118 NAME@7511..75125080 IDENT@7511..7512 "a"
5119 IDENT@7511..7512 "a"5081 COMMA@7512..7513 ","
5120 COMMA@7512..7513 ","5082 WHITESPACE@7513..7514 " "
5121 WHITESPACE@7513..7514 " "5083 ARG@7514..7515
5122 ARG@7514..75155084 EXPR_VAR@7514..7515
5123 EXPR_VAR@7514..75155085 NAME@7514..7515
5124 NAME@7514..75155086 IDENT@7514..7515 "b"
5125 IDENT@7514..7515 "b"5087 COMMA@7515..7516 ","
5126 COMMA@7515..7516 ","5088 WHITESPACE@7516..7517 " "
5127 WHITESPACE@7516..7517 " "5089 ARG@7517..7522
5128 ARG@7517..75225090 EXPR_BINARY@7517..7522
5129 EXPR_BINARY@7517..75225091 LHS_EXPR@7517..7518
5130 LHS_EXPR@7517..75185092 EXPR_VAR@7517..7518
5131 EXPR_VAR@7517..75185093 NAME@7517..7518
5132 NAME@7517..75185094 IDENT@7517..7518 "i"
5133 IDENT@7517..7518 "i"5095 WHITESPACE@7518..7519 " "
5134 WHITESPACE@7518..7519 " "5096 PLUS@7519..7520 "+"
5135 PLUS@7519..7520 "+"5097 WHITESPACE@7520..7521 " "
5136 WHITESPACE@7520..7521 " "5098 EXPR_NUMBER@7521..7522
5137 EXPR_NUMBER@7521..75225099 FLOAT@7521..7522 "1"
5138 FLOAT@7521..7522 "1"5100 COMMA@7522..7523 ","
5139 COMMA@7522..7523 ","5101 WHITESPACE@7523..7524 " "
5140 WHITESPACE@7523..7524 " "5102 ARG@7524..7529
5141 ARG@7524..75295103 EXPR_BINARY@7524..7529
5142 EXPR_BINARY@7524..75295104 LHS_EXPR@7524..7525
5143 LHS_EXPR@7524..75255105 EXPR_VAR@7524..7525
5144 EXPR_VAR@7524..75255106 NAME@7524..7525
5145 NAME@7524..75255107 IDENT@7524..7525 "j"
5146 IDENT@7524..7525 "j"5108 WHITESPACE@7525..7526 " "
5147 WHITESPACE@7525..7526 " "5109 PLUS@7526..7527 "+"
5148 PLUS@7526..7527 "+"5110 WHITESPACE@7527..7528 " "
5149 WHITESPACE@7527..7528 " "5111 EXPR_NUMBER@7528..7529
5150 EXPR_NUMBER@7528..75295112 FLOAT@7528..7529 "1"
5151 FLOAT@7528..7529 "1"5113 COMMA@7529..7530 ","
5152 COMMA@7529..7530 ","5114 WHITESPACE@7530..7531 " "
5153 WHITESPACE@7530..7531 " "5115 ARG@7531..7543
5154 ARG@7531..75435116 EXPR_BINARY@7531..7543
5155 EXPR_BINARY@7531..75435117 LHS_EXPR@7531..7534
5156 LHS_EXPR@7531..75345118 EXPR_VAR@7531..7534
5157 EXPR_VAR@7531..75345119 NAME@7531..7534
5158 NAME@7531..75345120 IDENT@7531..7534 "acc"
5159 IDENT@7531..7534 "acc"5121 WHITESPACE@7534..7535 " "
5160 WHITESPACE@7534..7535 " "5122 PLUS@7535..7536 "+"
5161 PLUS@7535..7536 "+"5123 WHITESPACE@7536..7537 " "
5162 WHITESPACE@7536..7537 " "5124 EXPR_ARRAY@7537..7543
5163 EXPR_ARRAY@7537..75435125 L_BRACK@7537..7538 "["
5164 L_BRACK@7537..7538 "["5126 EXPR_INDEX_EXPR@7538..7542
5165 EXPR_INDEX_EXPR@7538..75425127 LHS_EXPR@7538..7539
5166 LHS_EXPR@7538..75395128 EXPR_VAR@7538..7539
5167 EXPR_VAR@7538..75395129 NAME@7538..7539
5168 NAME@7538..75395130 IDENT@7538..7539 "a"
5169 IDENT@7538..7539 "a"5131 L_BRACK@7539..7540 "["
5170 L_BRACK@7539..7540 "["5132 EXPR_VAR@7540..7541
5171 EXPR_VAR@7540..75415133 NAME@7540..7541
5172 NAME@7540..75415134 IDENT@7540..7541 "i"
5173 IDENT@7540..7541 "i"5135 R_BRACK@7541..7542 "]"
5174 R_BRACK@7541..7542 "]"5136 R_BRACK@7542..7543 "]"
5175 R_BRACK@7542..7543 "]"5137 R_PAREN@7543..7544 ")"
5176 R_PAREN@7543..7544 ")"5138 WHITESPACE@7544..7545 " "
5177 WHITESPACE@7544..7545 " "5139 TAILSTRICT_KW@7545..7555 "tailstrict"
5178 TAILSTRICT_KW@7545..7555 "tailstrict"5140 WHITESPACE@7555..7564 "\n "
5179 WHITESPACE@7555..7564 "\n "5141 ELSE_KW@7564..7568 "else"
5180 ELSE_KW@7564..7568 "else"5142 WHITESPACE@7568..7569 " "
5181 WHITESPACE@7568..7569 " "5143 FALSE_EXPR@7569..7705
5182 FALSE_EXPR@7569..77055144 EXPR_IF_THEN_ELSE@7569..7705
5183 EXPR_IF_THEN_ELSE@7569..77055145 IF_KW@7569..7571 "if"
5184 IF_KW@7569..7571 "if"5146 WHITESPACE@7571..7572 " "
5185 WHITESPACE@7571..7572 " "5147 EXPR_BINARY@7572..7595
5186 EXPR_BINARY@7572..75955148 LHS_EXPR@7572..7582
5187 LHS_EXPR@7572..75825149 EXPR_APPLY@7572..7582
5188 EXPR_APPLY@7572..75825150 EXPR_VAR@7572..7576
5189 EXPR_VAR@7572..75765151 NAME@7572..7576
5190 NAME@7572..75765152 IDENT@7572..7576 "keyF"
5191 IDENT@7572..7576 "keyF"5153 ARGS_DESC@7576..7582
5192 ARGS_DESC@7576..75825154 L_PAREN@7576..7577 "("
5193 L_PAREN@7576..7577 "("5155 ARG@7577..7581
5194 ARG@7577..75815156 EXPR_INDEX_EXPR@7577..7581
5195 EXPR_INDEX_EXPR@7577..75815157 LHS_EXPR@7577..7578
5196 LHS_EXPR@7577..75785158 EXPR_VAR@7577..7578
5197 EXPR_VAR@7577..75785159 NAME@7577..7578
5198 NAME@7577..75785160 IDENT@7577..7578 "a"
5199 IDENT@7577..7578 "a"5161 L_BRACK@7578..7579 "["
5200 L_BRACK@7578..7579 "["5162 EXPR_VAR@7579..7580
5201 EXPR_VAR@7579..75805163 NAME@7579..7580
5202 NAME@7579..75805164 IDENT@7579..7580 "i"
5203 IDENT@7579..7580 "i"5165 R_BRACK@7580..7581 "]"
5204 R_BRACK@7580..7581 "]"5166 R_PAREN@7581..7582 ")"
5205 R_PAREN@7581..7582 ")"5167 WHITESPACE@7582..7583 " "
5206 WHITESPACE@7582..7583 " "5168 LT@7583..7584 "<"
5207 LT@7583..7584 "<"5169 WHITESPACE@7584..7585 " "
5208 WHITESPACE@7584..7585 " "5170 EXPR_APPLY@7585..7595
5209 EXPR_APPLY@7585..75955171 EXPR_VAR@7585..7589
5210 EXPR_VAR@7585..75895172 NAME@7585..7589
5211 NAME@7585..75895173 IDENT@7585..7589 "keyF"
5212 IDENT@7585..7589 "keyF"5174 ARGS_DESC@7589..7595
5213 ARGS_DESC@7589..75955175 L_PAREN@7589..7590 "("
5214 L_PAREN@7589..7590 "("5176 ARG@7590..7594
5215 ARG@7590..75945177 EXPR_INDEX_EXPR@7590..7594
5216 EXPR_INDEX_EXPR@7590..75945178 LHS_EXPR@7590..7591
5217 LHS_EXPR@7590..75915179 EXPR_VAR@7590..7591
5218 EXPR_VAR@7590..75915180 NAME@7590..7591
5219 NAME@7590..75915181 IDENT@7590..7591 "b"
5220 IDENT@7590..7591 "b"5182 L_BRACK@7591..7592 "["
5221 L_BRACK@7591..7592 "["5183 EXPR_VAR@7592..7593
5222 EXPR_VAR@7592..75935184 NAME@7592..7593
5223 NAME@7592..75935185 IDENT@7592..7593 "j"
5224 IDENT@7592..7593 "j"5186 R_BRACK@7593..7594 "]"
5225 R_BRACK@7593..7594 "]"5187 R_PAREN@7594..7595 ")"
5226 R_PAREN@7594..7595 ")"5188 WHITESPACE@7595..7596 " "
5227 WHITESPACE@7595..7596 " "5189 THEN_KW@7596..7600 "then"
5228 THEN_KW@7596..7600 "then"5190 WHITESPACE@7600..7611 "\n "
5229 WHITESPACE@7600..7611 "\n "5191 TRUE_EXPR@7611..7646
5230 TRUE_EXPR@7611..76465192 EXPR_APPLY@7611..7646
5231 EXPR_APPLY@7611..76465193 EXPR_VAR@7611..7614
5232 EXPR_VAR@7611..76145194 NAME@7611..7614
5233 NAME@7611..76145195 IDENT@7611..7614 "aux"
5234 IDENT@7611..7614 "aux"5196 ARGS_DESC@7614..7646
5235 ARGS_DESC@7614..76465197 L_PAREN@7614..7615 "("
5236 L_PAREN@7614..7615 "("5198 ARG@7615..7616
5237 ARG@7615..76165199 EXPR_VAR@7615..7616
5238 EXPR_VAR@7615..76165200 NAME@7615..7616
5239 NAME@7615..76165201 IDENT@7615..7616 "a"
5240 IDENT@7615..7616 "a"5202 COMMA@7616..7617 ","
5241 COMMA@7616..7617 ","5203 WHITESPACE@7617..7618 " "
5242 WHITESPACE@7617..7618 " "5204 ARG@7618..7619
5243 ARG@7618..76195205 EXPR_VAR@7618..7619
5244 EXPR_VAR@7618..76195206 NAME@7618..7619
5245 NAME@7618..76195207 IDENT@7618..7619 "b"
5246 IDENT@7618..7619 "b"5208 COMMA@7619..7620 ","
5247 COMMA@7619..7620 ","5209 WHITESPACE@7620..7621 " "
5248 WHITESPACE@7620..7621 " "5210 ARG@7621..7626
5249 ARG@7621..76265211 EXPR_BINARY@7621..7626
5250 EXPR_BINARY@7621..76265212 LHS_EXPR@7621..7622
5251 LHS_EXPR@7621..76225213 EXPR_VAR@7621..7622
5252 EXPR_VAR@7621..76225214 NAME@7621..7622
5253 NAME@7621..76225215 IDENT@7621..7622 "i"
5254 IDENT@7621..7622 "i"5216 WHITESPACE@7622..7623 " "
5255 WHITESPACE@7622..7623 " "5217 PLUS@7623..7624 "+"
5256 PLUS@7623..7624 "+"5218 WHITESPACE@7624..7625 " "
5257 WHITESPACE@7624..7625 " "5219 EXPR_NUMBER@7625..7626
5258 EXPR_NUMBER@7625..76265220 FLOAT@7625..7626 "1"
5259 FLOAT@7625..7626 "1"5221 COMMA@7626..7627 ","
5260 COMMA@7626..7627 ","5222 WHITESPACE@7627..7628 " "
5261 WHITESPACE@7627..7628 " "5223 ARG@7628..7629
5262 ARG@7628..76295224 EXPR_VAR@7628..7629
5263 EXPR_VAR@7628..76295225 NAME@7628..7629
5264 NAME@7628..76295226 IDENT@7628..7629 "j"
5265 IDENT@7628..7629 "j"5227 COMMA@7629..7630 ","
5266 COMMA@7629..7630 ","5228 WHITESPACE@7630..7631 " "
5267 WHITESPACE@7630..7631 " "5229 ARG@7631..7634
5268 ARG@7631..76345230 EXPR_VAR@7631..7634
5269 EXPR_VAR@7631..76345231 NAME@7631..7634
5270 NAME@7631..76345232 IDENT@7631..7634 "acc"
5271 IDENT@7631..7634 "acc"5233 R_PAREN@7634..7635 ")"
5272 R_PAREN@7634..7635 ")"5234 WHITESPACE@7635..7636 " "
5273 WHITESPACE@7635..7636 " "5235 TAILSTRICT_KW@7636..7646 "tailstrict"
5274 TAILSTRICT_KW@7636..7646 "tailstrict"5236 WHITESPACE@7646..7655 "\n "
5275 WHITESPACE@7646..7655 "\n "5237 ELSE_KW@7655..7659 "else"
5276 ELSE_KW@7655..7659 "else"5238 WHITESPACE@7659..7670 "\n "
5277 WHITESPACE@7659..7670 "\n "5239 FALSE_EXPR@7670..7705
5278 FALSE_EXPR@7670..77055240 EXPR_APPLY@7670..7705
5279 EXPR_APPLY@7670..77055241 EXPR_VAR@7670..7673
5280 EXPR_VAR@7670..76735242 NAME@7670..7673
5281 NAME@7670..76735243 IDENT@7670..7673 "aux"
5282 IDENT@7670..7673 "aux"5244 ARGS_DESC@7673..7705
5283 ARGS_DESC@7673..77055245 L_PAREN@7673..7674 "("
5284 L_PAREN@7673..7674 "("5246 ARG@7674..7675
5285 ARG@7674..76755247 EXPR_VAR@7674..7675
5286 EXPR_VAR@7674..76755248 NAME@7674..7675
5287 NAME@7674..76755249 IDENT@7674..7675 "a"
5288 IDENT@7674..7675 "a"5250 COMMA@7675..7676 ","
5289 COMMA@7675..7676 ","5251 WHITESPACE@7676..7677 " "
5290 WHITESPACE@7676..7677 " "5252 ARG@7677..7678
5291 ARG@7677..76785253 EXPR_VAR@7677..7678
5292 EXPR_VAR@7677..76785254 NAME@7677..7678
5293 NAME@7677..76785255 IDENT@7677..7678 "b"
5294 IDENT@7677..7678 "b"5256 COMMA@7678..7679 ","
5295 COMMA@7678..7679 ","5257 WHITESPACE@7679..7680 " "
5296 WHITESPACE@7679..7680 " "5258 ARG@7680..7681
5297 ARG@7680..76815259 EXPR_VAR@7680..7681
5298 EXPR_VAR@7680..76815260 NAME@7680..7681
5299 NAME@7680..76815261 IDENT@7680..7681 "i"
5300 IDENT@7680..7681 "i"5262 COMMA@7681..7682 ","
5301 COMMA@7681..7682 ","5263 WHITESPACE@7682..7683 " "
5302 WHITESPACE@7682..7683 " "5264 ARG@7683..7688
5303 ARG@7683..76885265 EXPR_BINARY@7683..7688
5304 EXPR_BINARY@7683..76885266 LHS_EXPR@7683..7684
5305 LHS_EXPR@7683..76845267 EXPR_VAR@7683..7684
5306 EXPR_VAR@7683..76845268 NAME@7683..7684
5307 NAME@7683..76845269 IDENT@7683..7684 "j"
5308 IDENT@7683..7684 "j"5270 WHITESPACE@7684..7685 " "
5309 WHITESPACE@7684..7685 " "5271 PLUS@7685..7686 "+"
5310 PLUS@7685..7686 "+"5272 WHITESPACE@7686..7687 " "
5311 WHITESPACE@7686..7687 " "5273 EXPR_NUMBER@7687..7688
5312 EXPR_NUMBER@7687..76885274 FLOAT@7687..7688 "1"
5313 FLOAT@7687..7688 "1"5275 COMMA@7688..7689 ","
5314 COMMA@7688..7689 ","5276 WHITESPACE@7689..7690 " "
5315 WHITESPACE@7689..7690 " "5277 ARG@7690..7693
5316 ARG@7690..76935278 EXPR_VAR@7690..7693
5317 EXPR_VAR@7690..76935279 NAME@7690..7693
5318 NAME@7690..76935280 IDENT@7690..7693 "acc"
5319 IDENT@7690..7693 "acc"5281 R_PAREN@7693..7694 ")"
5320 R_PAREN@7693..7694 ")"5282 WHITESPACE@7694..7695 " "
5321 WHITESPACE@7694..7695 " "5283 TAILSTRICT_KW@7695..7705 "tailstrict"
5322 TAILSTRICT_KW@7695..7705 "tailstrict"5284 SEMI@7705..7706 ";"
5323 SEMI@7705..7706 ";"5285 WHITESPACE@7706..7711 "\n "
5324 WHITESPACE@7706..7711 "\n "5286 EXPR_APPLY@7711..7741
5325 EXPR_APPLY@7711..77415287 EXPR_VAR@7711..7714
5326 EXPR_VAR@7711..77145288 NAME@7711..7714
5327 NAME@7711..77145289 IDENT@7711..7714 "aux"
5328 IDENT@7711..7714 "aux"5290 ARGS_DESC@7714..7741
5329 ARGS_DESC@7714..77415291 L_PAREN@7714..7715 "("
5330 L_PAREN@7714..7715 "("5292 ARG@7715..7716
5331 ARG@7715..77165293 EXPR_VAR@7715..7716
5332 EXPR_VAR@7715..77165294 NAME@7715..7716
5333 NAME@7715..77165295 IDENT@7715..7716 "a"
5334 IDENT@7715..7716 "a"5296 COMMA@7716..7717 ","
5335 COMMA@7716..7717 ","5297 WHITESPACE@7717..7718 " "
5336 WHITESPACE@7717..7718 " "5298 ARG@7718..7719
5337 ARG@7718..77195299 EXPR_VAR@7718..7719
5338 EXPR_VAR@7718..77195300 NAME@7718..7719
5339 NAME@7718..77195301 IDENT@7718..7719 "b"
5340 IDENT@7718..7719 "b"5302 COMMA@7719..7720 ","
5341 COMMA@7719..7720 ","5303 WHITESPACE@7720..7721 " "
5342 WHITESPACE@7720..7721 " "5304 ARG@7721..7722
5343 ARG@7721..77225305 EXPR_NUMBER@7721..7722
5344 EXPR_NUMBER@7721..77225306 FLOAT@7721..7722 "0"
5345 FLOAT@7721..7722 "0"5307 COMMA@7722..7723 ","
5346 COMMA@7722..7723 ","5308 WHITESPACE@7723..7724 " "
5347 WHITESPACE@7723..7724 " "5309 ARG@7724..7725
5348 ARG@7724..77255310 EXPR_NUMBER@7724..7725
5349 EXPR_NUMBER@7724..77255311 FLOAT@7724..7725 "0"
5350 FLOAT@7724..7725 "0"5312 COMMA@7725..7726 ","
5351 COMMA@7725..7726 ","5313 WHITESPACE@7726..7727 " "
5352 WHITESPACE@7726..7727 " "5314 ARG@7727..7729
5353 ARG@7727..77295315 EXPR_ARRAY@7727..7729
5354 EXPR_ARRAY@7727..77295316 L_BRACK@7727..7728 "["
5355 L_BRACK@7727..7728 "["5317 R_BRACK@7728..7729 "]"
5356 R_BRACK@7728..7729 "]"5318 R_PAREN@7729..7730 ")"
5357 R_PAREN@7729..7730 ")"5319 WHITESPACE@7730..7731 " "
5358 WHITESPACE@7730..7731 " "5320 TAILSTRICT_KW@7731..7741 "tailstrict"
5359 TAILSTRICT_KW@7731..7741 "tailstrict"
5360 COMMA@7741..7742 ","5321 COMMA@7741..7742 ","
5361 WHITESPACE@7742..7746 "\n\n "5322 WHITESPACE@7742..7746 "\n\n "
5362 MEMBER_FIELD@7746..82035323 MEMBER_FIELD_METHOD@7746..8203
5363 FIELD_METHOD@7746..82035324 FIELD_NAME_FIXED@7746..7753
5364 FIELD_NAME_FIXED@7746..77535325 NAME@7746..7753
5365 NAME@7746..77535326 IDENT@7746..7753 "setDiff"
5366 IDENT@7746..7753 "setDiff"5327 PARAMS_DESC@7753..7768
5367 PARAMS_DESC@7753..77685328 L_PAREN@7753..7754 "("
5368 L_PAREN@7753..7754 "("5329 PARAM@7754..7755
5369 PARAM@7754..77555330 DESTRUCT_FULL@7754..7755
5370 DESTRUCT_FULL@7754..77555331 NAME@7754..7755
5371 NAME@7754..77555332 IDENT@7754..7755 "a"
5372 IDENT@7754..7755 "a"5333 COMMA@7755..7756 ","
5373 COMMA@7755..7756 ","5334 WHITESPACE@7756..7757 " "
5374 WHITESPACE@7756..7757 " "5335 PARAM@7757..7758
5375 PARAM@7757..77585336 DESTRUCT_FULL@7757..7758
5376 DESTRUCT_FULL@7757..77585337 NAME@7757..7758
5377 NAME@7757..77585338 IDENT@7757..7758 "b"
5378 IDENT@7757..7758 "b"5339 COMMA@7758..7759 ","
5379 COMMA@7758..7759 ","5340 WHITESPACE@7759..7760 " "
5380 WHITESPACE@7759..7760 " "5341 PARAM@7760..7767
5381 PARAM@7760..77675342 DESTRUCT_FULL@7760..7764
5382 DESTRUCT_FULL@7760..77645343 NAME@7760..7764
5383 NAME@7760..77645344 IDENT@7760..7764 "keyF"
5384 IDENT@7760..7764 "keyF"5345 ASSIGN@7764..7765 "="
5385 ASSIGN@7764..7765 "="5346 EXPR_VAR@7765..7767
5386 EXPR_VAR@7765..77675347 NAME@7765..7767
5387 NAME@7765..77675348 IDENT@7765..7767 "id"
5388 IDENT@7765..7767 "id"5349 R_PAREN@7767..7768 ")"
5389 R_PAREN@7767..7768 ")"5350 COLONCOLON@7768..7770 "::"
5390 COLONCOLON@7768..7770 "::"5351 WHITESPACE@7770..7775 "\n "
5391 WHITESPACE@7770..7775 "\n "5352 EXPR_LOCAL@7775..8203
5392 EXPR_LOCAL@7775..82035353 LOCAL_KW@7775..7780 "local"
5393 LOCAL_KW@7775..7780 "local"5354 WHITESPACE@7780..7781 " "
5394 WHITESPACE@7780..7781 " "5355 BIND_FUNCTION@7781..8167
5395 BIND_FUNCTION@7781..81675356 NAME@7781..7784
5396 NAME@7781..77845357 IDENT@7781..7784 "aux"
5397 IDENT@7781..7784 "aux"5358 PARAMS_DESC@7784..7801
5398 PARAMS_DESC@7784..78015359 L_PAREN@7784..7785 "("
5399 L_PAREN@7784..7785 "("5360 PARAM@7785..7786
5400 PARAM@7785..77865361 DESTRUCT_FULL@7785..7786
5401 DESTRUCT_FULL@7785..77865362 NAME@7785..7786
5402 NAME@7785..77865363 IDENT@7785..7786 "a"
5403 IDENT@7785..7786 "a"5364 COMMA@7786..7787 ","
5404 COMMA@7786..7787 ","5365 WHITESPACE@7787..7788 " "
5405 WHITESPACE@7787..7788 " "5366 PARAM@7788..7789
5406 PARAM@7788..77895367 DESTRUCT_FULL@7788..7789
5407 DESTRUCT_FULL@7788..77895368 NAME@7788..7789
5408 NAME@7788..77895369 IDENT@7788..7789 "b"
5409 IDENT@7788..7789 "b"5370 COMMA@7789..7790 ","
5410 COMMA@7789..7790 ","5371 WHITESPACE@7790..7791 " "
5411 WHITESPACE@7790..7791 " "5372 PARAM@7791..7792
5412 PARAM@7791..77925373 DESTRUCT_FULL@7791..7792
5413 DESTRUCT_FULL@7791..77925374 NAME@7791..7792
5414 NAME@7791..77925375 IDENT@7791..7792 "i"
5415 IDENT@7791..7792 "i"5376 COMMA@7792..7793 ","
5416 COMMA@7792..7793 ","5377 WHITESPACE@7793..7794 " "
5417 WHITESPACE@7793..7794 " "5378 PARAM@7794..7795
5418 PARAM@7794..77955379 DESTRUCT_FULL@7794..7795
5419 DESTRUCT_FULL@7794..77955380 NAME@7794..7795
5420 NAME@7794..77955381 IDENT@7794..7795 "j"
5421 IDENT@7794..7795 "j"5382 COMMA@7795..7796 ","
5422 COMMA@7795..7796 ","5383 WHITESPACE@7796..7797 " "
5423 WHITESPACE@7796..7797 " "5384 PARAM@7797..7800
5424 PARAM@7797..78005385 DESTRUCT_FULL@7797..7800
5425 DESTRUCT_FULL@7797..78005386 NAME@7797..7800
5426 NAME@7797..78005387 IDENT@7797..7800 "acc"
5427 IDENT@7797..7800 "acc"5388 R_PAREN@7800..7801 ")"
5428 R_PAREN@7800..7801 ")"5389 WHITESPACE@7801..7802 " "
5429 WHITESPACE@7801..7802 " "5390 ASSIGN@7802..7803 "="
5430 ASSIGN@7802..7803 "="5391 WHITESPACE@7803..7810 "\n "
5431 WHITESPACE@7803..7810 "\n "5392 EXPR_IF_THEN_ELSE@7810..8167
5432 EXPR_IF_THEN_ELSE@7810..81675393 IF_KW@7810..7812 "if"
5433 IF_KW@7810..7812 "if"5394 WHITESPACE@7812..7813 " "
5434 WHITESPACE@7812..7813 " "5395 EXPR_BINARY@7813..7831
5435 EXPR_BINARY@7813..78315396 LHS_EXPR@7813..7814
5436 LHS_EXPR@7813..78145397 EXPR_VAR@7813..7814
5437 EXPR_VAR@7813..78145398 NAME@7813..7814
5438 NAME@7813..78145399 IDENT@7813..7814 "i"
5439 IDENT@7813..7814 "i"5400 WHITESPACE@7814..7815 " "
5440 WHITESPACE@7814..7815 " "5401 GE@7815..7817 ">="
5441 GE@7815..7817 ">="5402 WHITESPACE@7817..7818 " "
5442 WHITESPACE@7817..7818 " "5403 EXPR_APPLY@7818..7831
5443 EXPR_APPLY@7818..78315404 EXPR_INDEX@7818..7828
5444 EXPR_INDEX@7818..78285405 EXPR_VAR@7818..7821
5445 EXPR_VAR@7818..78215406 NAME@7818..7821
5446 NAME@7818..78215407 IDENT@7818..7821 "std"
5447 IDENT@7818..7821 "std"5408 DOT@7821..7822 "."
5448 DOT@7821..7822 "."5409 NAME@7822..7828
5449 NAME@7822..78285410 IDENT@7822..7828 "length"
5450 IDENT@7822..7828 "length"5411 ARGS_DESC@7828..7831
5451 ARGS_DESC@7828..78315412 L_PAREN@7828..7829 "("
5452 L_PAREN@7828..7829 "("5413 ARG@7829..7830
5453 ARG@7829..78305414 EXPR_VAR@7829..7830
5454 EXPR_VAR@7829..78305415 NAME@7829..7830
5455 NAME@7829..78305416 IDENT@7829..7830 "a"
5456 IDENT@7829..7830 "a"5417 R_PAREN@7830..7831 ")"
5457 R_PAREN@7830..7831 ")"5418 WHITESPACE@7831..7832 " "
5458 WHITESPACE@7831..7832 " "5419 THEN_KW@7832..7836 "then"
5459 THEN_KW@7832..7836 "then"5420 WHITESPACE@7836..7845 "\n "
5460 WHITESPACE@7836..7845 "\n "5421 TRUE_EXPR@7845..7848
5461 TRUE_EXPR@7845..78485422 EXPR_VAR@7845..7848
5462 EXPR_VAR@7845..78485423 NAME@7845..7848
5463 NAME@7845..78485424 IDENT@7845..7848 "acc"
5464 IDENT@7845..7848 "acc"5425 WHITESPACE@7848..7855 "\n "
5465 WHITESPACE@7848..7855 "\n "5426 ELSE_KW@7855..7859 "else"
5466 ELSE_KW@7855..7859 "else"5427 WHITESPACE@7859..7860 " "
5467 WHITESPACE@7859..7860 " "5428 FALSE_EXPR@7860..8167
5468 FALSE_EXPR@7860..81675429 EXPR_IF_THEN_ELSE@7860..8167
5469 EXPR_IF_THEN_ELSE@7860..81675430 IF_KW@7860..7862 "if"
5470 IF_KW@7860..7862 "if"5431 WHITESPACE@7862..7863 " "
5471 WHITESPACE@7862..7863 " "5432 EXPR_BINARY@7863..7881
5472 EXPR_BINARY@7863..78815433 LHS_EXPR@7863..7864
5473 LHS_EXPR@7863..78645434 EXPR_VAR@7863..7864
5474 EXPR_VAR@7863..78645435 NAME@7863..7864
5475 NAME@7863..78645436 IDENT@7863..7864 "j"
5476 IDENT@7863..7864 "j"5437 WHITESPACE@7864..7865 " "
5477 WHITESPACE@7864..7865 " "5438 GE@7865..7867 ">="
5478 GE@7865..7867 ">="5439 WHITESPACE@7867..7868 " "
5479 WHITESPACE@7867..7868 " "5440 EXPR_APPLY@7868..7881
5480 EXPR_APPLY@7868..78815441 EXPR_INDEX@7868..7878
5481 EXPR_INDEX@7868..78785442 EXPR_VAR@7868..7871
5482 EXPR_VAR@7868..78715443 NAME@7868..7871
5483 NAME@7868..78715444 IDENT@7868..7871 "std"
5484 IDENT@7868..7871 "std"5445 DOT@7871..7872 "."
5485 DOT@7871..7872 "."5446 NAME@7872..7878
5486 NAME@7872..78785447 IDENT@7872..7878 "length"
5487 IDENT@7872..7878 "length"5448 ARGS_DESC@7878..7881
5488 ARGS_DESC@7878..78815449 L_PAREN@7878..7879 "("
5489 L_PAREN@7878..7879 "("5450 ARG@7879..7880
5490 ARG@7879..78805451 EXPR_VAR@7879..7880
5491 EXPR_VAR@7879..78805452 NAME@7879..7880
5492 NAME@7879..78805453 IDENT@7879..7880 "b"
5493 IDENT@7879..7880 "b"5454 R_PAREN@7880..7881 ")"
5494 R_PAREN@7880..7881 ")"5455 WHITESPACE@7881..7882 " "
5495 WHITESPACE@7881..7882 " "5456 THEN_KW@7882..7886 "then"
5496 THEN_KW@7882..7886 "then"5457 WHITESPACE@7886..7895 "\n "
5497 WHITESPACE@7886..7895 "\n "5458 TRUE_EXPR@7895..7906
5498 TRUE_EXPR@7895..79065459 EXPR_BINARY@7895..7906
5499 EXPR_BINARY@7895..79065460 LHS_EXPR@7895..7898
5500 LHS_EXPR@7895..78985461 EXPR_VAR@7895..7898
5501 EXPR_VAR@7895..78985462 NAME@7895..7898
5502 NAME@7895..78985463 IDENT@7895..7898 "acc"
5503 IDENT@7895..7898 "acc"5464 WHITESPACE@7898..7899 " "
5504 WHITESPACE@7898..7899 " "5465 PLUS@7899..7900 "+"
5505 PLUS@7899..7900 "+"5466 WHITESPACE@7900..7901 " "
5506 WHITESPACE@7900..7901 " "5467 EXPR_SLICE@7901..7906
5507 EXPR_SLICE@7901..79065468 EXPR_VAR@7901..7902
5508 EXPR_VAR@7901..79025469 NAME@7901..7902
5509 NAME@7901..79025470 IDENT@7901..7902 "a"
5510 IDENT@7901..7902 "a"5471 SLICE_DESC@7902..7906
5511 SLICE_DESC@7902..79065472 L_BRACK@7902..7903 "["
5512 L_BRACK@7902..7903 "["5473 EXPR_VAR@7903..7904
5513 EXPR_VAR@7903..79045474 NAME@7903..7904
5514 NAME@7903..79045475 IDENT@7903..7904 "i"
5515 IDENT@7903..7904 "i"5476 COLON@7904..7905 ":"
5516 COLON@7904..7905 ":"5477 R_BRACK@7905..7906 "]"
5517 R_BRACK@7905..7906 "]"5478 WHITESPACE@7906..7913 "\n "
5518 WHITESPACE@7906..7913 "\n "5479 ELSE_KW@7913..7917 "else"
5519 ELSE_KW@7913..7917 "else"5480 WHITESPACE@7917..7926 "\n "
5520 WHITESPACE@7917..7926 "\n "5481 FALSE_EXPR@7926..8167
5521 FALSE_EXPR@7926..81675482 EXPR_IF_THEN_ELSE@7926..8167
5522 EXPR_IF_THEN_ELSE@7926..81675483 IF_KW@7926..7928 "if"
5523 IF_KW@7926..7928 "if"5484 WHITESPACE@7928..7929 " "
5524 WHITESPACE@7928..7929 " "5485 EXPR_BINARY@7929..7953
5525 EXPR_BINARY@7929..79535486 LHS_EXPR@7929..7939
5526 LHS_EXPR@7929..79395487 EXPR_APPLY@7929..7939
5527 EXPR_APPLY@7929..79395488 EXPR_VAR@7929..7933
5528 EXPR_VAR@7929..79335489 NAME@7929..7933
5529 NAME@7929..79335490 IDENT@7929..7933 "keyF"
5530 IDENT@7929..7933 "keyF"5491 ARGS_DESC@7933..7939
5531 ARGS_DESC@7933..79395492 L_PAREN@7933..7934 "("
5532 L_PAREN@7933..7934 "("5493 ARG@7934..7938
5533 ARG@7934..79385494 EXPR_INDEX_EXPR@7934..7938
5534 EXPR_INDEX_EXPR@7934..79385495 LHS_EXPR@7934..7935
5535 LHS_EXPR@7934..79355496 EXPR_VAR@7934..7935
5536 EXPR_VAR@7934..79355497 NAME@7934..7935
5537 NAME@7934..79355498 IDENT@7934..7935 "a"
5538 IDENT@7934..7935 "a"5499 L_BRACK@7935..7936 "["
5539 L_BRACK@7935..7936 "["5500 EXPR_VAR@7936..7937
5540 EXPR_VAR@7936..79375501 NAME@7936..7937
5541 NAME@7936..79375502 IDENT@7936..7937 "i"
5542 IDENT@7936..7937 "i"5503 R_BRACK@7937..7938 "]"
5543 R_BRACK@7937..7938 "]"5504 R_PAREN@7938..7939 ")"
5544 R_PAREN@7938..7939 ")"5505 WHITESPACE@7939..7940 " "
5545 WHITESPACE@7939..7940 " "5506 EQ@7940..7942 "=="
5546 EQ@7940..7942 "=="5507 WHITESPACE@7942..7943 " "
5547 WHITESPACE@7942..7943 " "5508 EXPR_APPLY@7943..7953
5548 EXPR_APPLY@7943..79535509 EXPR_VAR@7943..7947
5549 EXPR_VAR@7943..79475510 NAME@7943..7947
5550 NAME@7943..79475511 IDENT@7943..7947 "keyF"
5551 IDENT@7943..7947 "keyF"5512 ARGS_DESC@7947..7953
5552 ARGS_DESC@7947..79535513 L_PAREN@7947..7948 "("
5553 L_PAREN@7947..7948 "("5514 ARG@7948..7952
5554 ARG@7948..79525515 EXPR_INDEX_EXPR@7948..7952
5555 EXPR_INDEX_EXPR@7948..79525516 LHS_EXPR@7948..7949
5556 LHS_EXPR@7948..79495517 EXPR_VAR@7948..7949
5557 EXPR_VAR@7948..79495518 NAME@7948..7949
5558 NAME@7948..79495519 IDENT@7948..7949 "b"
5559 IDENT@7948..7949 "b"5520 L_BRACK@7949..7950 "["
5560 L_BRACK@7949..7950 "["5521 EXPR_VAR@7950..7951
5561 EXPR_VAR@7950..79515522 NAME@7950..7951
5562 NAME@7950..79515523 IDENT@7950..7951 "j"
5563 IDENT@7950..7951 "j"5524 R_BRACK@7951..7952 "]"
5564 R_BRACK@7951..7952 "]"5525 R_PAREN@7952..7953 ")"
5565 R_PAREN@7952..7953 ")"5526 WHITESPACE@7953..7954 " "
5566 WHITESPACE@7953..7954 " "5527 THEN_KW@7954..7958 "then"
5567 THEN_KW@7954..7958 "then"5528 WHITESPACE@7958..7969 "\n "
5568 WHITESPACE@7958..7969 "\n "5529 TRUE_EXPR@7969..8008
5569 TRUE_EXPR@7969..80085530 EXPR_APPLY@7969..8008
5570 EXPR_APPLY@7969..80085531 EXPR_VAR@7969..7972
5571 EXPR_VAR@7969..79725532 NAME@7969..7972
5572 NAME@7969..79725533 IDENT@7969..7972 "aux"
5573 IDENT@7969..7972 "aux"5534 ARGS_DESC@7972..8008
5574 ARGS_DESC@7972..80085535 L_PAREN@7972..7973 "("
5575 L_PAREN@7972..7973 "("5536 ARG@7973..7974
5576 ARG@7973..79745537 EXPR_VAR@7973..7974
5577 EXPR_VAR@7973..79745538 NAME@7973..7974
5578 NAME@7973..79745539 IDENT@7973..7974 "a"
5579 IDENT@7973..7974 "a"5540 COMMA@7974..7975 ","
5580 COMMA@7974..7975 ","5541 WHITESPACE@7975..7976 " "
5581 WHITESPACE@7975..7976 " "5542 ARG@7976..7977
5582 ARG@7976..79775543 EXPR_VAR@7976..7977
5583 EXPR_VAR@7976..79775544 NAME@7976..7977
5584 NAME@7976..79775545 IDENT@7976..7977 "b"
5585 IDENT@7976..7977 "b"5546 COMMA@7977..7978 ","
5586 COMMA@7977..7978 ","5547 WHITESPACE@7978..7979 " "
5587 WHITESPACE@7978..7979 " "5548 ARG@7979..7984
5588 ARG@7979..79845549 EXPR_BINARY@7979..7984
5589 EXPR_BINARY@7979..79845550 LHS_EXPR@7979..7980
5590 LHS_EXPR@7979..79805551 EXPR_VAR@7979..7980
5591 EXPR_VAR@7979..79805552 NAME@7979..7980
5592 NAME@7979..79805553 IDENT@7979..7980 "i"
5593 IDENT@7979..7980 "i"5554 WHITESPACE@7980..7981 " "
5594 WHITESPACE@7980..7981 " "5555 PLUS@7981..7982 "+"
5595 PLUS@7981..7982 "+"5556 WHITESPACE@7982..7983 " "
5596 WHITESPACE@7982..7983 " "5557 EXPR_NUMBER@7983..7984
5597 EXPR_NUMBER@7983..79845558 FLOAT@7983..7984 "1"
5598 FLOAT@7983..7984 "1"5559 COMMA@7984..7985 ","
5599 COMMA@7984..7985 ","5560 WHITESPACE@7985..7986 " "
5600 WHITESPACE@7985..7986 " "5561 ARG@7986..7991
5601 ARG@7986..79915562 EXPR_BINARY@7986..7991
5602 EXPR_BINARY@7986..79915563 LHS_EXPR@7986..7987
5603 LHS_EXPR@7986..79875564 EXPR_VAR@7986..7987
5604 EXPR_VAR@7986..79875565 NAME@7986..7987
5605 NAME@7986..79875566 IDENT@7986..7987 "j"
5606 IDENT@7986..7987 "j"5567 WHITESPACE@7987..7988 " "
5607 WHITESPACE@7987..7988 " "5568 PLUS@7988..7989 "+"
5608 PLUS@7988..7989 "+"5569 WHITESPACE@7989..7990 " "
5609 WHITESPACE@7989..7990 " "5570 EXPR_NUMBER@7990..7991
5610 EXPR_NUMBER@7990..79915571 FLOAT@7990..7991 "1"
5611 FLOAT@7990..7991 "1"5572 COMMA@7991..7992 ","
5612 COMMA@7991..7992 ","5573 WHITESPACE@7992..7993 " "
5613 WHITESPACE@7992..7993 " "5574 ARG@7993..7996
5614 ARG@7993..79965575 EXPR_VAR@7993..7996
5615 EXPR_VAR@7993..79965576 NAME@7993..7996
5616 NAME@7993..79965577 IDENT@7993..7996 "acc"
5617 IDENT@7993..7996 "acc"5578 R_PAREN@7996..7997 ")"
5618 R_PAREN@7996..7997 ")"5579 WHITESPACE@7997..7998 " "
5619 WHITESPACE@7997..7998 " "5580 TAILSTRICT_KW@7998..8008 "tailstrict"
5620 TAILSTRICT_KW@7998..8008 "tailstrict"5581 WHITESPACE@8008..8017 "\n "
5621 WHITESPACE@8008..8017 "\n "5582 ELSE_KW@8017..8021 "else"
5622 ELSE_KW@8017..8021 "else"5583 WHITESPACE@8021..8022 " "
5623 WHITESPACE@8021..8022 " "5584 FALSE_EXPR@8022..8167
5624 FALSE_EXPR@8022..81675585 EXPR_IF_THEN_ELSE@8022..8167
5625 EXPR_IF_THEN_ELSE@8022..81675586 IF_KW@8022..8024 "if"
5626 IF_KW@8022..8024 "if"5587 WHITESPACE@8024..8025 " "
5627 WHITESPACE@8024..8025 " "5588 EXPR_BINARY@8025..8048
5628 EXPR_BINARY@8025..80485589 LHS_EXPR@8025..8035
5629 LHS_EXPR@8025..80355590 EXPR_APPLY@8025..8035
5630 EXPR_APPLY@8025..80355591 EXPR_VAR@8025..8029
5631 EXPR_VAR@8025..80295592 NAME@8025..8029
5632 NAME@8025..80295593 IDENT@8025..8029 "keyF"
5633 IDENT@8025..8029 "keyF"5594 ARGS_DESC@8029..8035
5634 ARGS_DESC@8029..80355595 L_PAREN@8029..8030 "("
5635 L_PAREN@8029..8030 "("5596 ARG@8030..8034
5636 ARG@8030..80345597 EXPR_INDEX_EXPR@8030..8034
5637 EXPR_INDEX_EXPR@8030..80345598 LHS_EXPR@8030..8031
5638 LHS_EXPR@8030..80315599 EXPR_VAR@8030..8031
5639 EXPR_VAR@8030..80315600 NAME@8030..8031
5640 NAME@8030..80315601 IDENT@8030..8031 "a"
5641 IDENT@8030..8031 "a"5602 L_BRACK@8031..8032 "["
5642 L_BRACK@8031..8032 "["5603 EXPR_VAR@8032..8033
5643 EXPR_VAR@8032..80335604 NAME@8032..8033
5644 NAME@8032..80335605 IDENT@8032..8033 "i"
5645 IDENT@8032..8033 "i"5606 R_BRACK@8033..8034 "]"
5646 R_BRACK@8033..8034 "]"5607 R_PAREN@8034..8035 ")"
5647 R_PAREN@8034..8035 ")"5608 WHITESPACE@8035..8036 " "
5648 WHITESPACE@8035..8036 " "5609 LT@8036..8037 "<"
5649 LT@8036..8037 "<"5610 WHITESPACE@8037..8038 " "
5650 WHITESPACE@8037..8038 " "5611 EXPR_APPLY@8038..8048
5651 EXPR_APPLY@8038..80485612 EXPR_VAR@8038..8042
5652 EXPR_VAR@8038..80425613 NAME@8038..8042
5653 NAME@8038..80425614 IDENT@8038..8042 "keyF"
5654 IDENT@8038..8042 "keyF"5615 ARGS_DESC@8042..8048
5655 ARGS_DESC@8042..80485616 L_PAREN@8042..8043 "("
5656 L_PAREN@8042..8043 "("5617 ARG@8043..8047
5657 ARG@8043..80475618 EXPR_INDEX_EXPR@8043..8047
5658 EXPR_INDEX_EXPR@8043..80475619 LHS_EXPR@8043..8044
5659 LHS_EXPR@8043..80445620 EXPR_VAR@8043..8044
5660 EXPR_VAR@8043..80445621 NAME@8043..8044
5661 NAME@8043..80445622 IDENT@8043..8044 "b"
5662 IDENT@8043..8044 "b"5623 L_BRACK@8044..8045 "["
5663 L_BRACK@8044..8045 "["5624 EXPR_VAR@8045..8046
5664 EXPR_VAR@8045..80465625 NAME@8045..8046
5665 NAME@8045..80465626 IDENT@8045..8046 "j"
5666 IDENT@8045..8046 "j"5627 R_BRACK@8046..8047 "]"
5667 R_BRACK@8046..8047 "]"5628 R_PAREN@8047..8048 ")"
5668 R_PAREN@8047..8048 ")"5629 WHITESPACE@8048..8049 " "
5669 WHITESPACE@8048..8049 " "5630 THEN_KW@8049..8053 "then"
5670 THEN_KW@8049..8053 "then"5631 WHITESPACE@8053..8064 "\n "
5671 WHITESPACE@8053..8064 "\n "5632 TRUE_EXPR@8064..8108
5672 TRUE_EXPR@8064..81085633 EXPR_APPLY@8064..8108
5673 EXPR_APPLY@8064..81085634 EXPR_VAR@8064..8067
5674 EXPR_VAR@8064..80675635 NAME@8064..8067
5675 NAME@8064..80675636 IDENT@8064..8067 "aux"
5676 IDENT@8064..8067 "aux"5637 ARGS_DESC@8067..8108
5677 ARGS_DESC@8067..81085638 L_PAREN@8067..8068 "("
5678 L_PAREN@8067..8068 "("5639 ARG@8068..8069
5679 ARG@8068..80695640 EXPR_VAR@8068..8069
5680 EXPR_VAR@8068..80695641 NAME@8068..8069
5681 NAME@8068..80695642 IDENT@8068..8069 "a"
5682 IDENT@8068..8069 "a"5643 COMMA@8069..8070 ","
5683 COMMA@8069..8070 ","5644 WHITESPACE@8070..8071 " "
5684 WHITESPACE@8070..8071 " "5645 ARG@8071..8072
5685 ARG@8071..80725646 EXPR_VAR@8071..8072
5686 EXPR_VAR@8071..80725647 NAME@8071..8072
5687 NAME@8071..80725648 IDENT@8071..8072 "b"
5688 IDENT@8071..8072 "b"5649 COMMA@8072..8073 ","
5689 COMMA@8072..8073 ","5650 WHITESPACE@8073..8074 " "
5690 WHITESPACE@8073..8074 " "5651 ARG@8074..8079
5691 ARG@8074..80795652 EXPR_BINARY@8074..8079
5692 EXPR_BINARY@8074..80795653 LHS_EXPR@8074..8075
5693 LHS_EXPR@8074..80755654 EXPR_VAR@8074..8075
5694 EXPR_VAR@8074..80755655 NAME@8074..8075
5695 NAME@8074..80755656 IDENT@8074..8075 "i"
5696 IDENT@8074..8075 "i"5657 WHITESPACE@8075..8076 " "
5697 WHITESPACE@8075..8076 " "5658 PLUS@8076..8077 "+"
5698 PLUS@8076..8077 "+"5659 WHITESPACE@8077..8078 " "
5699 WHITESPACE@8077..8078 " "5660 EXPR_NUMBER@8078..8079
5700 EXPR_NUMBER@8078..80795661 FLOAT@8078..8079 "1"
5701 FLOAT@8078..8079 "1"5662 COMMA@8079..8080 ","
5702 COMMA@8079..8080 ","5663 WHITESPACE@8080..8081 " "
5703 WHITESPACE@8080..8081 " "5664 ARG@8081..8082
5704 ARG@8081..80825665 EXPR_VAR@8081..8082
5705 EXPR_VAR@8081..80825666 NAME@8081..8082
5706 NAME@8081..80825667 IDENT@8081..8082 "j"
5707 IDENT@8081..8082 "j"5668 COMMA@8082..8083 ","
5708 COMMA@8082..8083 ","5669 WHITESPACE@8083..8084 " "
5709 WHITESPACE@8083..8084 " "5670 ARG@8084..8096
5710 ARG@8084..80965671 EXPR_BINARY@8084..8096
5711 EXPR_BINARY@8084..80965672 LHS_EXPR@8084..8087
5712 LHS_EXPR@8084..80875673 EXPR_VAR@8084..8087
5713 EXPR_VAR@8084..80875674 NAME@8084..8087
5714 NAME@8084..80875675 IDENT@8084..8087 "acc"
5715 IDENT@8084..8087 "acc"5676 WHITESPACE@8087..8088 " "
5716 WHITESPACE@8087..8088 " "5677 PLUS@8088..8089 "+"
5717 PLUS@8088..8089 "+"5678 WHITESPACE@8089..8090 " "
5718 WHITESPACE@8089..8090 " "5679 EXPR_ARRAY@8090..8096
5719 EXPR_ARRAY@8090..80965680 L_BRACK@8090..8091 "["
5720 L_BRACK@8090..8091 "["5681 EXPR_INDEX_EXPR@8091..8095
5721 EXPR_INDEX_EXPR@8091..80955682 LHS_EXPR@8091..8092
5722 LHS_EXPR@8091..80925683 EXPR_VAR@8091..8092
5723 EXPR_VAR@8091..80925684 NAME@8091..8092
5724 NAME@8091..80925685 IDENT@8091..8092 "a"
5725 IDENT@8091..8092 "a"5686 L_BRACK@8092..8093 "["
5726 L_BRACK@8092..8093 "["5687 EXPR_VAR@8093..8094
5727 EXPR_VAR@8093..80945688 NAME@8093..8094
5728 NAME@8093..80945689 IDENT@8093..8094 "i"
5729 IDENT@8093..8094 "i"5690 R_BRACK@8094..8095 "]"
5730 R_BRACK@8094..8095 "]"5691 R_BRACK@8095..8096 "]"
5731 R_BRACK@8095..8096 "]"5692 R_PAREN@8096..8097 ")"
5732 R_PAREN@8096..8097 ")"5693 WHITESPACE@8097..8098 " "
5733 WHITESPACE@8097..8098 " "5694 TAILSTRICT_KW@8098..8108 "tailstrict"
5734 TAILSTRICT_KW@8098..8108 "tailstrict"5695 WHITESPACE@8108..8117 "\n "
5735 WHITESPACE@8108..8117 "\n "5696 ELSE_KW@8117..8121 "else"
5736 ELSE_KW@8117..8121 "else"5697 WHITESPACE@8121..8132 "\n "
5737 WHITESPACE@8121..8132 "\n "5698 FALSE_EXPR@8132..8167
5738 FALSE_EXPR@8132..81675699 EXPR_APPLY@8132..8167
5739 EXPR_APPLY@8132..81675700 EXPR_VAR@8132..8135
5740 EXPR_VAR@8132..81355701 NAME@8132..8135
5741 NAME@8132..81355702 IDENT@8132..8135 "aux"
5742 IDENT@8132..8135 "aux"5703 ARGS_DESC@8135..8167
5743 ARGS_DESC@8135..81675704 L_PAREN@8135..8136 "("
5744 L_PAREN@8135..8136 "("5705 ARG@8136..8137
5745 ARG@8136..81375706 EXPR_VAR@8136..8137
5746 EXPR_VAR@8136..81375707 NAME@8136..8137
5747 NAME@8136..81375708 IDENT@8136..8137 "a"
5748 IDENT@8136..8137 "a"5709 COMMA@8137..8138 ","
5749 COMMA@8137..8138 ","5710 WHITESPACE@8138..8139 " "
5750 WHITESPACE@8138..8139 " "5711 ARG@8139..8140
5751 ARG@8139..81405712 EXPR_VAR@8139..8140
5752 EXPR_VAR@8139..81405713 NAME@8139..8140
5753 NAME@8139..81405714 IDENT@8139..8140 "b"
5754 IDENT@8139..8140 "b"5715 COMMA@8140..8141 ","
5755 COMMA@8140..8141 ","5716 WHITESPACE@8141..8142 " "
5756 WHITESPACE@8141..8142 " "5717 ARG@8142..8143
5757 ARG@8142..81435718 EXPR_VAR@8142..8143
5758 EXPR_VAR@8142..81435719 NAME@8142..8143
5759 NAME@8142..81435720 IDENT@8142..8143 "i"
5760 IDENT@8142..8143 "i"5721 COMMA@8143..8144 ","
5761 COMMA@8143..8144 ","5722 WHITESPACE@8144..8145 " "
5762 WHITESPACE@8144..8145 " "5723 ARG@8145..8150
5763 ARG@8145..81505724 EXPR_BINARY@8145..8150
5764 EXPR_BINARY@8145..81505725 LHS_EXPR@8145..8146
5765 LHS_EXPR@8145..81465726 EXPR_VAR@8145..8146
5766 EXPR_VAR@8145..81465727 NAME@8145..8146
5767 NAME@8145..81465728 IDENT@8145..8146 "j"
5768 IDENT@8145..8146 "j"5729 WHITESPACE@8146..8147 " "
5769 WHITESPACE@8146..8147 " "5730 PLUS@8147..8148 "+"
5770 PLUS@8147..8148 "+"5731 WHITESPACE@8148..8149 " "
5771 WHITESPACE@8148..8149 " "5732 EXPR_NUMBER@8149..8150
5772 EXPR_NUMBER@8149..81505733 FLOAT@8149..8150 "1"
5773 FLOAT@8149..8150 "1"5734 COMMA@8150..8151 ","
5774 COMMA@8150..8151 ","5735 WHITESPACE@8151..8152 " "
5775 WHITESPACE@8151..8152 " "5736 ARG@8152..8155
5776 ARG@8152..81555737 EXPR_VAR@8152..8155
5777 EXPR_VAR@8152..81555738 NAME@8152..8155
5778 NAME@8152..81555739 IDENT@8152..8155 "acc"
5779 IDENT@8152..8155 "acc"5740 R_PAREN@8155..8156 ")"
5780 R_PAREN@8155..8156 ")"5741 WHITESPACE@8156..8157 " "
5781 WHITESPACE@8156..8157 " "5742 TAILSTRICT_KW@8157..8167 "tailstrict"
5782 TAILSTRICT_KW@8157..8167 "tailstrict"5743 SEMI@8167..8168 ";"
5783 SEMI@8167..8168 ";"5744 WHITESPACE@8168..8173 "\n "
5784 WHITESPACE@8168..8173 "\n "5745 EXPR_APPLY@8173..8203
5785 EXPR_APPLY@8173..82035746 EXPR_VAR@8173..8176
5786 EXPR_VAR@8173..81765747 NAME@8173..8176
5787 NAME@8173..81765748 IDENT@8173..8176 "aux"
5788 IDENT@8173..8176 "aux"5749 ARGS_DESC@8176..8203
5789 ARGS_DESC@8176..82035750 L_PAREN@8176..8177 "("
5790 L_PAREN@8176..8177 "("5751 ARG@8177..8178
5791 ARG@8177..81785752 EXPR_VAR@8177..8178
5792 EXPR_VAR@8177..81785753 NAME@8177..8178
5793 NAME@8177..81785754 IDENT@8177..8178 "a"
5794 IDENT@8177..8178 "a"5755 COMMA@8178..8179 ","
5795 COMMA@8178..8179 ","5756 WHITESPACE@8179..8180 " "
5796 WHITESPACE@8179..8180 " "5757 ARG@8180..8181
5797 ARG@8180..81815758 EXPR_VAR@8180..8181
5798 EXPR_VAR@8180..81815759 NAME@8180..8181
5799 NAME@8180..81815760 IDENT@8180..8181 "b"
5800 IDENT@8180..8181 "b"5761 COMMA@8181..8182 ","
5801 COMMA@8181..8182 ","5762 WHITESPACE@8182..8183 " "
5802 WHITESPACE@8182..8183 " "5763 ARG@8183..8184
5803 ARG@8183..81845764 EXPR_NUMBER@8183..8184
5804 EXPR_NUMBER@8183..81845765 FLOAT@8183..8184 "0"
5805 FLOAT@8183..8184 "0"5766 COMMA@8184..8185 ","
5806 COMMA@8184..8185 ","5767 WHITESPACE@8185..8186 " "
5807 WHITESPACE@8185..8186 " "5768 ARG@8186..8187
5808 ARG@8186..81875769 EXPR_NUMBER@8186..8187
5809 EXPR_NUMBER@8186..81875770 FLOAT@8186..8187 "0"
5810 FLOAT@8186..8187 "0"5771 COMMA@8187..8188 ","
5811 COMMA@8187..8188 ","5772 WHITESPACE@8188..8189 " "
5812 WHITESPACE@8188..8189 " "5773 ARG@8189..8191
5813 ARG@8189..81915774 EXPR_ARRAY@8189..8191
5814 EXPR_ARRAY@8189..81915775 L_BRACK@8189..8190 "["
5815 L_BRACK@8189..8190 "["5776 R_BRACK@8190..8191 "]"
5816 R_BRACK@8190..8191 "]"5777 R_PAREN@8191..8192 ")"
5817 R_PAREN@8191..8192 ")"5778 WHITESPACE@8192..8193 " "
5818 WHITESPACE@8192..8193 " "5779 TAILSTRICT_KW@8193..8203 "tailstrict"
5819 TAILSTRICT_KW@8193..8203 "tailstrict"
5820 COMMA@8203..8204 ","5780 COMMA@8203..8204 ","
5821 WHITESPACE@8204..8208 "\n\n "5781 WHITESPACE@8204..8208 "\n\n "
5822 MEMBER_FIELD@8208..89965782 MEMBER_FIELD_METHOD@8208..8996
5823 FIELD_METHOD@8208..89965783 FIELD_NAME_FIXED@8208..8218
5824 FIELD_NAME_FIXED@8208..82185784 NAME@8208..8218
5825 NAME@8208..82185785 IDENT@8208..8218 "mergePatch"
5826 IDENT@8208..8218 "mergePatch"5786 PARAMS_DESC@8218..8233
5827 PARAMS_DESC@8218..82335787 L_PAREN@8218..8219 "("
5828 L_PAREN@8218..8219 "("5788 PARAM@8219..8225
5829 PARAM@8219..82255789 DESTRUCT_FULL@8219..8225
5830 DESTRUCT_FULL@8219..82255790 NAME@8219..8225
5831 NAME@8219..82255791 IDENT@8219..8225 "target"
5832 IDENT@8219..8225 "target"5792 COMMA@8225..8226 ","
5833 COMMA@8225..8226 ","5793 WHITESPACE@8226..8227 " "
5834 WHITESPACE@8226..8227 " "5794 PARAM@8227..8232
5835 PARAM@8227..82325795 DESTRUCT_FULL@8227..8232
5836 DESTRUCT_FULL@8227..82325796 NAME@8227..8232
5837 NAME@8227..82325797 IDENT@8227..8232 "patch"
5838 IDENT@8227..8232 "patch"5798 R_PAREN@8232..8233 ")"
5839 R_PAREN@8232..8233 ")"5799 COLONCOLON@8233..8235 "::"
5840 COLONCOLON@8233..8235 "::"5800 WHITESPACE@8235..8240 "\n "
5841 WHITESPACE@8235..8240 "\n "5801 EXPR_IF_THEN_ELSE@8240..8996
5842 EXPR_IF_THEN_ELSE@8240..89965802 IF_KW@8240..8242 "if"
5843 IF_KW@8240..8242 "if"5803 WHITESPACE@8242..8243 " "
5844 WHITESPACE@8242..8243 " "5804 EXPR_APPLY@8243..8262
5845 EXPR_APPLY@8243..82625805 EXPR_INDEX@8243..8255
5846 EXPR_INDEX@8243..82555806 EXPR_VAR@8243..8246
5847 EXPR_VAR@8243..82465807 NAME@8243..8246
5848 NAME@8243..82465808 IDENT@8243..8246 "std"
5849 IDENT@8243..8246 "std"5809 DOT@8246..8247 "."
5850 DOT@8246..8247 "."5810 NAME@8247..8255
5851 NAME@8247..82555811 IDENT@8247..8255 "isObject"
5852 IDENT@8247..8255 "isObject"5812 ARGS_DESC@8255..8262
5853 ARGS_DESC@8255..82625813 L_PAREN@8255..8256 "("
5854 L_PAREN@8255..8256 "("5814 ARG@8256..8261
5855 ARG@8256..82615815 EXPR_VAR@8256..8261
5856 EXPR_VAR@8256..82615816 NAME@8256..8261
5857 NAME@8256..82615817 IDENT@8256..8261 "patch"
5858 IDENT@8256..8261 "patch"5818 R_PAREN@8261..8262 ")"
5859 R_PAREN@8261..8262 ")"5819 WHITESPACE@8262..8263 " "
5860 WHITESPACE@8262..8263 " "5820 THEN_KW@8263..8267 "then"
5861 THEN_KW@8263..8267 "then"5821 WHITESPACE@8267..8274 "\n "
5862 WHITESPACE@8267..8274 "\n "5822 TRUE_EXPR@8274..8975
5863 TRUE_EXPR@8274..89755823 EXPR_LOCAL@8274..8975
5864 EXPR_LOCAL@8274..89755824 LOCAL_KW@8274..8279 "local"
5865 LOCAL_KW@8274..8279 "local"5825 WHITESPACE@8279..8280 " "
5866 WHITESPACE@8279..8280 " "5826 BIND_DESTRUCT@8280..8347
5867 BIND_DESTRUCT@8280..83475827 DESTRUCT_FULL@8280..8293
5868 DESTRUCT_FULL@8280..82935828 NAME@8280..8293
5869 NAME@8280..82935829 IDENT@8280..8293 "target_object"
5870 IDENT@8280..8293 "target_object"5830 WHITESPACE@8293..8294 " "
5871 WHITESPACE@8293..8294 " "5831 ASSIGN@8294..8295 "="
5872 ASSIGN@8294..8295 "="5832 WHITESPACE@8295..8304 "\n "
5873 WHITESPACE@8295..8304 "\n "5833 EXPR_IF_THEN_ELSE@8304..8347
5874 EXPR_IF_THEN_ELSE@8304..83475834 IF_KW@8304..8306 "if"
5875 IF_KW@8304..8306 "if"5835 WHITESPACE@8306..8307 " "
5876 WHITESPACE@8306..8307 " "5836 EXPR_APPLY@8307..8327
5877 EXPR_APPLY@8307..83275837 EXPR_INDEX@8307..8319
5878 EXPR_INDEX@8307..83195838 EXPR_VAR@8307..8310
5879 EXPR_VAR@8307..83105839 NAME@8307..8310
5880 NAME@8307..83105840 IDENT@8307..8310 "std"
5881 IDENT@8307..8310 "std"5841 DOT@8310..8311 "."
5882 DOT@8310..8311 "."5842 NAME@8311..8319
5883 NAME@8311..83195843 IDENT@8311..8319 "isObject"
5884 IDENT@8311..8319 "isObject"5844 ARGS_DESC@8319..8327
5885 ARGS_DESC@8319..83275845 L_PAREN@8319..8320 "("
5886 L_PAREN@8319..8320 "("5846 ARG@8320..8326
5887 ARG@8320..83265847 EXPR_VAR@8320..8326
5888 EXPR_VAR@8320..83265848 NAME@8320..8326
5889 NAME@8320..83265849 IDENT@8320..8326 "target"
5890 IDENT@8320..8326 "target"5850 R_PAREN@8326..8327 ")"
5891 R_PAREN@8326..8327 ")"5851 WHITESPACE@8327..8328 " "
5892 WHITESPACE@8327..8328 " "5852 THEN_KW@8328..8332 "then"
5893 THEN_KW@8328..8332 "then"5853 WHITESPACE@8332..8333 " "
5894 WHITESPACE@8332..8333 " "5854 TRUE_EXPR@8333..8339
5895 TRUE_EXPR@8333..83395855 EXPR_VAR@8333..8339
5896 EXPR_VAR@8333..83395856 NAME@8333..8339
5897 NAME@8333..83395857 IDENT@8333..8339 "target"
5898 IDENT@8333..8339 "target"5858 WHITESPACE@8339..8340 " "
5899 WHITESPACE@8339..8340 " "5859 ELSE_KW@8340..8344 "else"
5900 ELSE_KW@8340..8344 "else"5860 WHITESPACE@8344..8345 " "
5901 WHITESPACE@8344..8345 " "5861 FALSE_EXPR@8345..8347
5902 FALSE_EXPR@8345..83475862 EXPR_OBJECT@8345..8347
5903 EXPR_OBJECT@8345..83475863 OBJ_BODY_MEMBER_LIST@8345..8347
5904 OBJ_BODY_MEMBER_LIST@8345..83475864 L_BRACE@8345..8346 "{"
5905 L_BRACE@8345..8346 "{"5865 R_BRACE@8346..8347 "}"
5906 R_BRACE@8346..8347 "}"5866 SEMI@8347..8348 ";"
5907 SEMI@8347..8348 ";"5867 WHITESPACE@8348..8356 "\n\n "
5908 WHITESPACE@8348..8356 "\n\n "5868 EXPR_LOCAL@8356..8975
5909 EXPR_LOCAL@8356..89755869 LOCAL_KW@8356..8361 "local"
5910 LOCAL_KW@8356..8361 "local"5870 WHITESPACE@8361..8362 " "
5911 WHITESPACE@8361..8362 " "5871 BIND_DESTRUCT@8362..8461
5912 BIND_DESTRUCT@8362..84615872 DESTRUCT_FULL@8362..8375
5913 DESTRUCT_FULL@8362..83755873 NAME@8362..8375
5914 NAME@8362..83755874 IDENT@8362..8375 "target_fields"
5915 IDENT@8362..8375 "target_fields"5875 WHITESPACE@8375..8376 " "
5916 WHITESPACE@8375..8376 " "5876 ASSIGN@8376..8377 "="
5917 ASSIGN@8376..8377 "="5877 WHITESPACE@8377..8386 "\n "
5918 WHITESPACE@8377..8386 "\n "5878 EXPR_IF_THEN_ELSE@8386..8461
5919 EXPR_IF_THEN_ELSE@8386..84615879 IF_KW@8386..8388 "if"
5920 IF_KW@8386..8388 "if"5880 WHITESPACE@8388..8389 " "
5921 WHITESPACE@8388..8389 " "5881 EXPR_APPLY@8389..8416
5922 EXPR_APPLY@8389..84165882 EXPR_INDEX@8389..8401
5923 EXPR_INDEX@8389..84015883 EXPR_VAR@8389..8392
5924 EXPR_VAR@8389..83925884 NAME@8389..8392
5925 NAME@8389..83925885 IDENT@8389..8392 "std"
5926 IDENT@8389..8392 "std"5886 DOT@8392..8393 "."
5927 DOT@8392..8393 "."5887 NAME@8393..8401
5928 NAME@8393..84015888 IDENT@8393..8401 "isObject"
5929 IDENT@8393..8401 "isObject"5889 ARGS_DESC@8401..8416
5930 ARGS_DESC@8401..84165890 L_PAREN@8401..8402 "("
5931 L_PAREN@8401..8402 "("5891 ARG@8402..8415
5932 ARG@8402..84155892 EXPR_VAR@8402..8415
5933 EXPR_VAR@8402..84155893 NAME@8402..8415
5934 NAME@8402..84155894 IDENT@8402..8415 "target_object"
5935 IDENT@8402..8415 "target_object"5895 R_PAREN@8415..8416 ")"
5936 R_PAREN@8415..8416 ")"5896 WHITESPACE@8416..8417 " "
5937 WHITESPACE@8416..8417 " "5897 THEN_KW@8417..8421 "then"
5938 THEN_KW@8417..8421 "then"5898 WHITESPACE@8421..8422 " "
5939 WHITESPACE@8421..8422 " "5899 TRUE_EXPR@8422..8453
5940 TRUE_EXPR@8422..84535900 EXPR_APPLY@8422..8453
5941 EXPR_APPLY@8422..84535901 EXPR_INDEX@8422..8438
5942 EXPR_INDEX@8422..84385902 EXPR_VAR@8422..8425
5943 EXPR_VAR@8422..84255903 NAME@8422..8425
5944 NAME@8422..84255904 IDENT@8422..8425 "std"
5945 IDENT@8422..8425 "std"5905 DOT@8425..8426 "."
5946 DOT@8425..8426 "."5906 NAME@8426..8438
5947 NAME@8426..84385907 IDENT@8426..8438 "objectFields"
5948 IDENT@8426..8438 "objectFields"5908 ARGS_DESC@8438..8453
5949 ARGS_DESC@8438..84535909 L_PAREN@8438..8439 "("
5950 L_PAREN@8438..8439 "("5910 ARG@8439..8452
5951 ARG@8439..84525911 EXPR_VAR@8439..8452
5952 EXPR_VAR@8439..84525912 NAME@8439..8452
5953 NAME@8439..84525913 IDENT@8439..8452 "target_object"
5954 IDENT@8439..8452 "target_object"5914 R_PAREN@8452..8453 ")"
5955 R_PAREN@8452..8453 ")"5915 WHITESPACE@8453..8454 " "
5956 WHITESPACE@8453..8454 " "5916 ELSE_KW@8454..8458 "else"
5957 ELSE_KW@8454..8458 "else"5917 WHITESPACE@8458..8459 " "
5958 WHITESPACE@8458..8459 " "5918 FALSE_EXPR@8459..8461
5959 FALSE_EXPR@8459..84615919 EXPR_ARRAY@8459..8461
5960 EXPR_ARRAY@8459..84615920 L_BRACK@8459..8460 "["
5961 L_BRACK@8459..8460 "["5921 R_BRACK@8460..8461 "]"
5962 R_BRACK@8460..8461 "]"5922 SEMI@8461..8462 ";"
5963 SEMI@8461..8462 ";"5923 WHITESPACE@8462..8470 "\n\n "
5964 WHITESPACE@8462..8470 "\n\n "5924 EXPR_LOCAL@8470..8975
5965 EXPR_LOCAL@8470..89755925 LOCAL_KW@8470..8475 "local"
5966 LOCAL_KW@8470..8475 "local"5926 WHITESPACE@8475..8476 " "
5967 WHITESPACE@8475..8476 " "5927 BIND_DESTRUCT@8476..8546
5968 BIND_DESTRUCT@8476..85465928 DESTRUCT_FULL@8476..8487
5969 DESTRUCT_FULL@8476..84875929 NAME@8476..8487
5970 NAME@8476..84875930 IDENT@8476..8487 "null_fields"
5971 IDENT@8476..8487 "null_fields"5931 WHITESPACE@8487..8488 " "
5972 WHITESPACE@8487..8488 " "5932 ASSIGN@8488..8489 "="
5973 ASSIGN@8488..8489 "="5933 WHITESPACE@8489..8490 " "
5974 WHITESPACE@8489..8490 " "5934 EXPR_ARRAY_COMP@8490..8546
5975 EXPR_ARRAY_COMP@8490..85465935 L_BRACK@8490..8491 "["
5976 L_BRACK@8490..8491 "["5936 EXPR_VAR@8491..8492
5977 EXPR_VAR@8491..84925937 NAME@8491..8492
5978 NAME@8491..84925938 IDENT@8491..8492 "k"
5979 IDENT@8491..8492 "k"5939 WHITESPACE@8492..8493 " "
5980 WHITESPACE@8492..8493 " "5940 FOR_SPEC@8493..8525
5981 FOR_SPEC@8493..85255941 FOR_KW@8493..8496 "for"
5982 FOR_KW@8493..8496 "for"5942 WHITESPACE@8496..8497 " "
5983 WHITESPACE@8496..8497 " "5943 NAME@8497..8498
5984 NAME@8497..84985944 IDENT@8497..8498 "k"
5985 IDENT@8497..8498 "k"5945 WHITESPACE@8498..8499 " "
5986 WHITESPACE@8498..8499 " "5946 IN_KW@8499..8501 "in"
5987 IN_KW@8499..8501 "in"5947 WHITESPACE@8501..8502 " "
5988 WHITESPACE@8501..8502 " "5948 EXPR_APPLY@8502..8525
5989 EXPR_APPLY@8502..85255949 EXPR_INDEX@8502..8518
5990 EXPR_INDEX@8502..85185950 EXPR_VAR@8502..8505
5991 EXPR_VAR@8502..85055951 NAME@8502..8505
5992 NAME@8502..85055952 IDENT@8502..8505 "std"
5993 IDENT@8502..8505 "std"5953 DOT@8505..8506 "."
5994 DOT@8505..8506 "."5954 NAME@8506..8518
5995 NAME@8506..85185955 IDENT@8506..8518 "objectFields"
5996 IDENT@8506..8518 "objectFields"5956 ARGS_DESC@8518..8525
5997 ARGS_DESC@8518..85255957 L_PAREN@8518..8519 "("
5998 L_PAREN@8518..8519 "("5958 ARG@8519..8524
5999 ARG@8519..85245959 EXPR_VAR@8519..8524
6000 EXPR_VAR@8519..85245960 NAME@8519..8524
6001 NAME@8519..85245961 IDENT@8519..8524 "patch"
6002 IDENT@8519..8524 "patch"5962 R_PAREN@8524..8525 ")"
6003 R_PAREN@8524..8525 ")"5963 WHITESPACE@8525..8526 " "
6004 WHITESPACE@8525..8526 " "5964 IF_SPEC@8526..8545
6005 IF_SPEC@8526..85455965 IF_KW@8526..8528 "if"
6006 IF_KW@8526..8528 "if"5966 WHITESPACE@8528..8529 " "
6007 WHITESPACE@8528..8529 " "5967 EXPR_BINARY@8529..8545
6008 EXPR_BINARY@8529..85455968 LHS_EXPR@8529..8537
6009 LHS_EXPR@8529..85375969 EXPR_INDEX_EXPR@8529..8537
6010 EXPR_INDEX_EXPR@8529..85375970 LHS_EXPR@8529..8534
6011 LHS_EXPR@8529..85345971 EXPR_VAR@8529..8534
6012 EXPR_VAR@8529..85345972 NAME@8529..8534
6013 NAME@8529..85345973 IDENT@8529..8534 "patch"
6014 IDENT@8529..8534 "patch"5974 L_BRACK@8534..8535 "["
6015 L_BRACK@8534..8535 "["5975 EXPR_VAR@8535..8536
6016 EXPR_VAR@8535..85365976 NAME@8535..8536
6017 NAME@8535..85365977 IDENT@8535..8536 "k"
6018 IDENT@8535..8536 "k"5978 R_BRACK@8536..8537 "]"
6019 R_BRACK@8536..8537 "]"5979 WHITESPACE@8537..8538 " "
6020 WHITESPACE@8537..8538 " "5980 EQ@8538..8540 "=="
6021 EQ@8538..8540 "=="5981 WHITESPACE@8540..8541 " "
6022 WHITESPACE@8540..8541 " "5982 EXPR_LITERAL@8541..8545
6023 EXPR_LITERAL@8541..85455983 NULL_KW@8541..8545 "null"
6024 NULL_KW@8541..8545 "null"5984 R_BRACK@8545..8546 "]"
6025 R_BRACK@8545..8546 "]"5985 SEMI@8546..8547 ";"
6026 SEMI@8546..8547 ";"5986 WHITESPACE@8547..8554 "\n "
6027 WHITESPACE@8547..8554 "\n "5987 EXPR_LOCAL@8554..8975
6028 EXPR_LOCAL@8554..89755988 LOCAL_KW@8554..8559 "local"
6029 LOCAL_KW@8554..8559 "local"5989 WHITESPACE@8559..8560 " "
6030 WHITESPACE@8559..8560 " "5990 BIND_DESTRUCT@8560..8626
6031 BIND_DESTRUCT@8560..86265991 DESTRUCT_FULL@8560..8571
6032 DESTRUCT_FULL@8560..85715992 NAME@8560..8571
6033 NAME@8560..85715993 IDENT@8560..8571 "both_fields"
6034 IDENT@8560..8571 "both_fields"5994 WHITESPACE@8571..8572 " "
6035 WHITESPACE@8571..8572 " "5995 ASSIGN@8572..8573 "="
6036 ASSIGN@8572..8573 "="5996 WHITESPACE@8573..8574 " "
6037 WHITESPACE@8573..8574 " "5997 EXPR_APPLY@8574..8626
6038 EXPR_APPLY@8574..86265998 EXPR_INDEX@8574..8586
6039 EXPR_INDEX@8574..85865999 EXPR_VAR@8574..8577
6040 EXPR_VAR@8574..85776000 NAME@8574..8577
6041 NAME@8574..85776001 IDENT@8574..8577 "std"
6042 IDENT@8574..8577 "std"6002 DOT@8577..8578 "."
6043 DOT@8577..8578 "."6003 NAME@8578..8586
6044 NAME@8578..85866004 IDENT@8578..8586 "setUnion"
6045 IDENT@8578..8586 "setUnion"6005 ARGS_DESC@8586..8626
6046 ARGS_DESC@8586..86266006 L_PAREN@8586..8587 "("
6047 L_PAREN@8586..8587 "("6007 ARG@8587..8600
6048 ARG@8587..86006008 EXPR_VAR@8587..8600
6049 EXPR_VAR@8587..86006009 NAME@8587..8600
6050 NAME@8587..86006010 IDENT@8587..8600 "target_fields"
6051 IDENT@8587..8600 "target_fields"6011 COMMA@8600..8601 ","
6052 COMMA@8600..8601 ","6012 WHITESPACE@8601..8602 " "
6053 WHITESPACE@8601..8602 " "6013 ARG@8602..8625
6054 ARG@8602..86256014 EXPR_APPLY@8602..8625
6055 EXPR_APPLY@8602..86256015 EXPR_INDEX@8602..8618
6056 EXPR_INDEX@8602..86186016 EXPR_VAR@8602..8605
6057 EXPR_VAR@8602..86056017 NAME@8602..8605
6058 NAME@8602..86056018 IDENT@8602..8605 "std"
6059 IDENT@8602..8605 "std"6019 DOT@8605..8606 "."
6060 DOT@8605..8606 "."6020 NAME@8606..8618
6061 NAME@8606..86186021 IDENT@8606..8618 "objectFields"
6062 IDENT@8606..8618 "objectFields"6022 ARGS_DESC@8618..8625
6063 ARGS_DESC@8618..86256023 L_PAREN@8618..8619 "("
6064 L_PAREN@8618..8619 "("6024 ARG@8619..8624
6065 ARG@8619..86246025 EXPR_VAR@8619..8624
6066 EXPR_VAR@8619..86246026 NAME@8619..8624
6067 NAME@8619..86246027 IDENT@8619..8624 "patch"
6068 IDENT@8619..8624 "patch"6028 R_PAREN@8624..8625 ")"
6069 R_PAREN@8624..8625 ")"6029 R_PAREN@8625..8626 ")"
6070 R_PAREN@8625..8626 ")"6030 SEMI@8626..8627 ";"
6071 SEMI@8626..8627 ";"6031 WHITESPACE@8627..8635 "\n\n "
6072 WHITESPACE@8627..8635 "\n\n "6032 EXPR_OBJECT@8635..8975
6073 EXPR_OBJECT@8635..89756033 OBJ_BODY_COMP@8635..8975
6074 OBJ_BODY_MEMBER_LIST@8635..89756034 L_BRACE@8635..8636 "{"
6075 L_BRACE@8635..8636 "{"6035 WHITESPACE@8636..8645 "\n "
6076 WHITESPACE@8636..8645 "\n "6036 MEMBER_FIELD_NORMAL@8645..8912
6077 MEMBER_FIELD@8645..89676037 FIELD_NAME_DYNAMIC@8645..8648
6078 FIELD_NORMAL@8645..89126038 L_BRACK@8645..8646 "["
6079 FIELD_NAME_DYNAMIC@8645..86486039 EXPR_VAR@8646..8647
6080 L_BRACK@8645..8646 "["6040 NAME@8646..8647
6081 EXPR_VAR@8646..86476041 IDENT@8646..8647 "k"
6082 NAME@8646..86476042 R_BRACK@8647..8648 "]"
6083 IDENT@8646..8647 "k"6043 COLON@8648..8649 ":"
6084 R_BRACK@8647..8648 "]"6044 WHITESPACE@8649..8660 "\n "
6085 COLON@8648..8649 ":"6045 EXPR_IF_THEN_ELSE@8660..8912
6086 WHITESPACE@8649..8660 "\n "6046 IF_KW@8660..8662 "if"
6087 EXPR_IF_THEN_ELSE@8660..89126047 WHITESPACE@8662..8663 " "
6088 IF_KW@8660..8662 "if"6048 EXPR_UNARY@8663..8687
6089 WHITESPACE@8662..8663 " "6049 NOT@8663..8664 "!"
6090 EXPR_UNARY@8663..86876050 EXPR_APPLY@8664..8687
6091 NOT@8663..8664 "!"6051 EXPR_INDEX@8664..8677
6092 EXPR_APPLY@8664..86876052 EXPR_VAR@8664..8667
6093 EXPR_INDEX@8664..86776053 NAME@8664..8667
6094 EXPR_VAR@8664..86676054 IDENT@8664..8667 "std"
6095 NAME@8664..86676055 DOT@8667..8668 "."
6096 IDENT@8664..8667 "std"6056 NAME@8668..8677
6097 DOT@8667..8668 "."6057 IDENT@8668..8677 "objectHas"
6098 NAME@8668..86776058 ARGS_DESC@8677..8687
6099 IDENT@8668..8677 "objectHas"6059 L_PAREN@8677..8678 "("
6100 ARGS_DESC@8677..86876060 ARG@8678..8683
6101 L_PAREN@8677..8678 "("6061 EXPR_VAR@8678..8683
6102 ARG@8678..86836062 NAME@8678..8683
6103 EXPR_VAR@8678..86836063 IDENT@8678..8683 "patch"
6104 NAME@8678..86836064 COMMA@8683..8684 ","
6105 IDENT@8678..8683 "patch"6065 WHITESPACE@8684..8685 " "
6106 COMMA@8683..8684 ","6066 ARG@8685..8686
6107 WHITESPACE@8684..8685 " "6067 EXPR_VAR@8685..8686
6108 ARG@8685..86866068 NAME@8685..8686
6109 EXPR_VAR@8685..86866069 IDENT@8685..8686 "k"
6110 NAME@8685..86866070 R_PAREN@8686..8687 ")"
6111 IDENT@8685..8686 "k"6071 WHITESPACE@8687..8688 " "
6112 R_PAREN@8686..8687 ")"6072 THEN_KW@8688..8692 "then"
6113 WHITESPACE@8687..8688 " "6073 WHITESPACE@8692..8705 "\n "
6114 THEN_KW@8688..8692 "then"6074 TRUE_EXPR@8705..8721
6115 WHITESPACE@8692..8705 "\n "6075 EXPR_INDEX_EXPR@8705..8721
6116 TRUE_EXPR@8705..87216076 LHS_EXPR@8705..8718
6117 EXPR_INDEX_EXPR@8705..87216077 EXPR_VAR@8705..8718
6118 LHS_EXPR@8705..87186078 NAME@8705..8718
6119 EXPR_VAR@8705..87186079 IDENT@8705..8718 "target_object"
6120 NAME@8705..87186080 L_BRACK@8718..8719 "["
6121 IDENT@8705..8718 "target_object"6081 EXPR_VAR@8719..8720
6122 L_BRACK@8718..8719 "["6082 NAME@8719..8720
6123 EXPR_VAR@8719..87206083 IDENT@8719..8720 "k"
6124 NAME@8719..87206084 R_BRACK@8720..8721 "]"
6125 IDENT@8719..8720 "k"6085 WHITESPACE@8721..8732 "\n "
6126 R_BRACK@8720..8721 "]"6086 ELSE_KW@8732..8736 "else"
6127 WHITESPACE@8721..8732 "\n "6087 WHITESPACE@8736..8737 " "
6128 ELSE_KW@8732..8736 "else"6088 FALSE_EXPR@8737..8912
6129 WHITESPACE@8736..8737 " "6089 EXPR_IF_THEN_ELSE@8737..8912
6130 FALSE_EXPR@8737..89126090 IF_KW@8737..8739 "if"
6131 EXPR_IF_THEN_ELSE@8737..89126091 WHITESPACE@8739..8740 " "
6132 IF_KW@8737..8739 "if"6092 EXPR_UNARY@8740..8772
6133 WHITESPACE@8739..8740 " "6093 NOT@8740..8741 "!"
6134 EXPR_UNARY@8740..87726094 EXPR_APPLY@8741..8772
6135 NOT@8740..8741 "!"6095 EXPR_INDEX@8741..8754
6136 EXPR_APPLY@8741..87726096 EXPR_VAR@8741..8744
6137 EXPR_INDEX@8741..87546097 NAME@8741..8744
6138 EXPR_VAR@8741..87446098 IDENT@8741..8744 "std"
6139 NAME@8741..87446099 DOT@8744..8745 "."
6140 IDENT@8741..8744 "std"6100 NAME@8745..8754
6141 DOT@8744..8745 "."6101 IDENT@8745..8754 "objectHas"
6142 NAME@8745..87546102 ARGS_DESC@8754..8772
6143 IDENT@8745..8754 "objectHas"6103 L_PAREN@8754..8755 "("
6144 ARGS_DESC@8754..87726104 ARG@8755..8768
6145 L_PAREN@8754..8755 "("6105 EXPR_VAR@8755..8768
6146 ARG@8755..87686106 NAME@8755..8768
6147 EXPR_VAR@8755..87686107 IDENT@8755..8768 "target_object"
6148 NAME@8755..87686108 COMMA@8768..8769 ","
6149 IDENT@8755..8768 "target_object"6109 WHITESPACE@8769..8770 " "
6150 COMMA@8768..8769 ","6110 ARG@8770..8771
6151 WHITESPACE@8769..8770 " "6111 EXPR_VAR@8770..8771
6152 ARG@8770..87716112 NAME@8770..8771
6153 EXPR_VAR@8770..87716113 IDENT@8770..8771 "k"
6154 NAME@8770..87716114 R_PAREN@8771..8772 ")"
6155 IDENT@8770..8771 "k"6115 WHITESPACE@8772..8773 " "
6156 R_PAREN@8771..8772 ")"6116 THEN_KW@8773..8777 "then"
6157 WHITESPACE@8772..8773 " "6117 WHITESPACE@8777..8790 "\n "
6158 THEN_KW@8773..8777 "then"6118 TRUE_EXPR@8790..8831
6159 WHITESPACE@8777..8790 "\n "6119 EXPR_APPLY@8790..8831
6160 TRUE_EXPR@8790..88316120 EXPR_INDEX@8790..8804
6161 EXPR_APPLY@8790..88316121 EXPR_VAR@8790..8793
6162 EXPR_INDEX@8790..88046122 NAME@8790..8793
6163 EXPR_VAR@8790..87936123 IDENT@8790..8793 "std"
6164 NAME@8790..87936124 DOT@8793..8794 "."
6165 IDENT@8790..8793 "std"6125 NAME@8794..8804
6166 DOT@8793..8794 "."6126 IDENT@8794..8804 "mergePatch"
6167 NAME@8794..88046127 ARGS_DESC@8804..8831
6168 IDENT@8794..8804 "mergePatch"6128 L_PAREN@8804..8805 "("
6169 ARGS_DESC@8804..88316129 ARG@8805..8809
6170 L_PAREN@8804..8805 "("6130 EXPR_LITERAL@8805..8809
6171 ARG@8805..88096131 NULL_KW@8805..8809 "null"
6172 EXPR_LITERAL@8805..88096132 COMMA@8809..8810 ","
6173 NULL_KW@8805..8809 "null"6133 WHITESPACE@8810..8811 " "
6174 COMMA@8809..8810 ","6134 ARG@8811..8819
6175 WHITESPACE@8810..8811 " "6135 EXPR_INDEX_EXPR@8811..8819
6176 ARG@8811..88196136 LHS_EXPR@8811..8816
6177 EXPR_INDEX_EXPR@8811..88196137 EXPR_VAR@8811..8816
6178 LHS_EXPR@8811..88166138 NAME@8811..8816
6179 EXPR_VAR@8811..88166139 IDENT@8811..8816 "patch"
6180 NAME@8811..88166140 L_BRACK@8816..8817 "["
6181 IDENT@8811..8816 "patch"6141 EXPR_VAR@8817..8818
6182 L_BRACK@8816..8817 "["6142 NAME@8817..8818
6183 EXPR_VAR@8817..88186143 IDENT@8817..8818 "k"
6184 NAME@8817..88186144 R_BRACK@8818..8819 "]"
6185 IDENT@8817..8818 "k"6145 R_PAREN@8819..8820 ")"
6186 R_BRACK@8818..8819 "]"6146 WHITESPACE@8820..8821 " "
6187 R_PAREN@8819..8820 ")"6147 TAILSTRICT_KW@8821..8831 "tailstrict"
6188 WHITESPACE@8820..8821 " "6148 WHITESPACE@8831..8842 "\n "
6189 TAILSTRICT_KW@8821..8831 "tailstrict"6149 ELSE_KW@8842..8846 "else"
6190 WHITESPACE@8831..8842 "\n "6150 WHITESPACE@8846..8859 "\n "
6191 ELSE_KW@8842..8846 "else"6151 FALSE_EXPR@8859..8912
6192 WHITESPACE@8846..8859 "\n "6152 EXPR_APPLY@8859..8912
6193 FALSE_EXPR@8859..89126153 EXPR_INDEX@8859..8873
6194 EXPR_APPLY@8859..89126154 EXPR_VAR@8859..8862
6195 EXPR_INDEX@8859..88736155 NAME@8859..8862
6196 EXPR_VAR@8859..88626156 IDENT@8859..8862 "std"
6197 NAME@8859..88626157 DOT@8862..8863 "."
6198 IDENT@8859..8862 "std"6158 NAME@8863..8873
6199 DOT@8862..8863 "."6159 IDENT@8863..8873 "mergePatch"
6200 NAME@8863..88736160 ARGS_DESC@8873..8912
6201 IDENT@8863..8873 "mergePatch"6161 L_PAREN@8873..8874 "("
6202 ARGS_DESC@8873..89126162 ARG@8874..8890
6203 L_PAREN@8873..8874 "("6163 EXPR_INDEX_EXPR@8874..8890
6204 ARG@8874..88906164 LHS_EXPR@8874..8887
6205 EXPR_INDEX_EXPR@8874..88906165 EXPR_VAR@8874..8887
6206 LHS_EXPR@8874..88876166 NAME@8874..8887
6207 EXPR_VAR@8874..88876167 IDENT@8874..8887 "target_object"
6208 NAME@8874..88876168 L_BRACK@8887..8888 "["
6209 IDENT@8874..8887 "target_object"6169 EXPR_VAR@8888..8889
6210 L_BRACK@8887..8888 "["6170 NAME@8888..8889
6211 EXPR_VAR@8888..88896171 IDENT@8888..8889 "k"
6212 NAME@8888..88896172 R_BRACK@8889..8890 "]"
6213 IDENT@8888..8889 "k"6173 COMMA@8890..8891 ","
6214 R_BRACK@8889..8890 "]"6174 WHITESPACE@8891..8892 " "
6215 COMMA@8890..8891 ","6175 ARG@8892..8900
6216 WHITESPACE@8891..8892 " "6176 EXPR_INDEX_EXPR@8892..8900
6217 ARG@8892..89006177 LHS_EXPR@8892..8897
6218 EXPR_INDEX_EXPR@8892..89006178 EXPR_VAR@8892..8897
6219 LHS_EXPR@8892..88976179 NAME@8892..8897
6220 EXPR_VAR@8892..88976180 IDENT@8892..8897 "patch"
6221 NAME@8892..88976181 L_BRACK@8897..8898 "["
6222 IDENT@8892..8897 "patch"6182 EXPR_VAR@8898..8899
6223 L_BRACK@8897..8898 "["6183 NAME@8898..8899
6224 EXPR_VAR@8898..88996184 IDENT@8898..8899 "k"
6225 NAME@8898..88996185 R_BRACK@8899..8900 "]"
6226 IDENT@8898..8899 "k"6186 R_PAREN@8900..8901 ")"
6227 R_BRACK@8899..8900 "]"6187 WHITESPACE@8901..8902 " "
6228 R_PAREN@8900..8901 ")"6188 TAILSTRICT_KW@8902..8912 "tailstrict"
6229 WHITESPACE@8901..8902 " "6189 WHITESPACE@8912..8921 "\n "
6230 TAILSTRICT_KW@8902..8912 "tailstrict"6190 FOR_SPEC@8921..8967
6231 WHITESPACE@8912..8921 "\n "6191 FOR_KW@8921..8924 "for"
6232 FOR_SPEC@8921..89676192 WHITESPACE@8924..8925 " "
6233 FOR_KW@8921..8924 "for"6193 NAME@8925..8926
6234 WHITESPACE@8924..8925 " "6194 IDENT@8925..8926 "k"
6235 NAME@8925..89266195 WHITESPACE@8926..8927 " "
6236 IDENT@8925..8926 "k"6196 IN_KW@8927..8929 "in"
6237 WHITESPACE@8926..8927 " "6197 WHITESPACE@8929..8930 " "
6238 IN_KW@8927..8929 "in"6198 EXPR_APPLY@8930..8967
6239 WHITESPACE@8929..8930 " "6199 EXPR_INDEX@8930..8941
6240 EXPR_APPLY@8930..89676200 EXPR_VAR@8930..8933
6241 EXPR_INDEX@8930..89416201 NAME@8930..8933
6242 EXPR_VAR@8930..89336202 IDENT@8930..8933 "std"
6243 NAME@8930..89336203 DOT@8933..8934 "."
6244 IDENT@8930..8933 "std"6204 NAME@8934..8941
6245 DOT@8933..8934 "."6205 IDENT@8934..8941 "setDiff"
6246 NAME@8934..89416206 ARGS_DESC@8941..8967
6247 IDENT@8934..8941 "setDiff"6207 L_PAREN@8941..8942 "("
6248 ARGS_DESC@8941..89676208 ARG@8942..8953
6249 L_PAREN@8941..8942 "("6209 EXPR_VAR@8942..8953
6250 ARG@8942..89536210 NAME@8942..8953
6251 EXPR_VAR@8942..89536211 IDENT@8942..8953 "both_fields"
6252 NAME@8942..89536212 COMMA@8953..8954 ","
6253 IDENT@8942..8953 "both_fields"6213 WHITESPACE@8954..8955 " "
6254 COMMA@8953..8954 ","6214 ARG@8955..8966
6255 WHITESPACE@8954..8955 " "6215 EXPR_VAR@8955..8966
6256 ARG@8955..89666216 NAME@8955..8966
6257 EXPR_VAR@8955..89666217 IDENT@8955..8966 "null_fields"
6258 NAME@8955..89666218 R_PAREN@8966..8967 ")"
6259 IDENT@8955..8966 "null_fields"6219 WHITESPACE@8967..8974 "\n "
6260 R_PAREN@8966..8967 ")"6220 R_BRACE@8974..8975 "}"
6261 WHITESPACE@8967..8974 "\n "6221 WHITESPACE@8975..8980 "\n "
6262 R_BRACE@8974..8975 "}"6222 ELSE_KW@8980..8984 "else"
6263 WHITESPACE@8975..8980 "\n "6223 WHITESPACE@8984..8991 "\n "
6264 ELSE_KW@8980..8984 "else"6224 FALSE_EXPR@8991..8996
6265 WHITESPACE@8984..8991 "\n "6225 EXPR_VAR@8991..8996
6266 FALSE_EXPR@8991..89966226 NAME@8991..8996
6267 EXPR_VAR@8991..89966227 IDENT@8991..8996 "patch"
6268 NAME@8991..8996
6269 IDENT@8991..8996 "patch"
6270 COMMA@8996..8997 ","6228 COMMA@8996..8997 ","
6271 WHITESPACE@8997..9001 "\n\n "6229 WHITESPACE@8997..9001 "\n\n "
6272 MEMBER_FIELD@9001..91076230 MEMBER_FIELD_METHOD@9001..9107
6273 FIELD_METHOD@9001..91076231 FIELD_NAME_FIXED@9001..9004
6274 FIELD_NAME_FIXED@9001..90046232 NAME@9001..9004
6275 NAME@9001..90046233 IDENT@9001..9004 "get"
6276 IDENT@9001..9004 "get"6234 PARAMS_DESC@9004..9041
6277 PARAMS_DESC@9004..90416235 L_PAREN@9004..9005 "("
6278 L_PAREN@9004..9005 "("6236 PARAM@9005..9006
6279 PARAM@9005..90066237 DESTRUCT_FULL@9005..9006
6280 DESTRUCT_FULL@9005..90066238 NAME@9005..9006
6281 NAME@9005..90066239 IDENT@9005..9006 "o"
6282 IDENT@9005..9006 "o"6240 COMMA@9006..9007 ","
6283 COMMA@9006..9007 ","6241 WHITESPACE@9007..9008 " "
6284 WHITESPACE@9007..9008 " "6242 PARAM@9008..9009
6285 PARAM@9008..90096243 DESTRUCT_FULL@9008..9009
6286 DESTRUCT_FULL@9008..90096244 NAME@9008..9009
6287 NAME@9008..90096245 IDENT@9008..9009 "f"
6288 IDENT@9008..9009 "f"6246 COMMA@9009..9010 ","
6289 COMMA@9009..9010 ","6247 WHITESPACE@9010..9011 " "
6290 WHITESPACE@9010..9011 " "6248 PARAM@9011..9023
6291 PARAM@9011..90236249 DESTRUCT_FULL@9011..9018
6292 DESTRUCT_FULL@9011..90186250 NAME@9011..9018
6293 NAME@9011..90186251 IDENT@9011..9018 "default"
6294 IDENT@9011..9018 "default"6252 ASSIGN@9018..9019 "="
6295 ASSIGN@9018..9019 "="6253 EXPR_LITERAL@9019..9023
6296 EXPR_LITERAL@9019..90236254 NULL_KW@9019..9023 "null"
6297 NULL_KW@9019..9023 "null"6255 COMMA@9023..9024 ","
6298 COMMA@9023..9024 ","6256 WHITESPACE@9024..9025 " "
6299 WHITESPACE@9024..9025 " "6257 PARAM@9025..9040
6300 PARAM@9025..90406258 DESTRUCT_FULL@9025..9035
6301 DESTRUCT_FULL@9025..90356259 NAME@9025..9035
6302 NAME@9025..90356260 IDENT@9025..9035 "inc_hidden"
6303 IDENT@9025..9035 "inc_hidden"6261 ASSIGN@9035..9036 "="
6304 ASSIGN@9035..9036 "="6262 EXPR_LITERAL@9036..9040
6305 EXPR_LITERAL@9036..90406263 TRUE_KW@9036..9040 "true"
6306 TRUE_KW@9036..9040 "true"6264 R_PAREN@9040..9041 ")"
6307 R_PAREN@9040..9041 ")"6265 COLONCOLON@9041..9043 "::"
6308 COLONCOLON@9041..9043 "::"6266 WHITESPACE@9043..9048 "\n "
6309 WHITESPACE@9043..9048 "\n "6267 EXPR_IF_THEN_ELSE@9048..9107
6310 EXPR_IF_THEN_ELSE@9048..91076268 IF_KW@9048..9050 "if"
6311 IF_KW@9048..9050 "if"6269 WHITESPACE@9050..9051 " "
6312 WHITESPACE@9050..9051 " "6270 EXPR_APPLY@9051..9084
6313 EXPR_APPLY@9051..90846271 EXPR_INDEX@9051..9066
6314 EXPR_INDEX@9051..90666272 EXPR_VAR@9051..9054
6315 EXPR_VAR@9051..90546273 NAME@9051..9054
6316 NAME@9051..90546274 IDENT@9051..9054 "std"
6317 IDENT@9051..9054 "std"6275 DOT@9054..9055 "."
6318 DOT@9054..9055 "."6276 NAME@9055..9066
6319 NAME@9055..90666277 IDENT@9055..9066 "objectHasEx"
6320 IDENT@9055..9066 "objectHasEx"6278 ARGS_DESC@9066..9084
6321 ARGS_DESC@9066..90846279 L_PAREN@9066..9067 "("
6322 L_PAREN@9066..9067 "("6280 ARG@9067..9068
6323 ARG@9067..90686281 EXPR_VAR@9067..9068
6324 EXPR_VAR@9067..90686282 NAME@9067..9068
6325 NAME@9067..90686283 IDENT@9067..9068 "o"
6326 IDENT@9067..9068 "o"6284 COMMA@9068..9069 ","
6327 COMMA@9068..9069 ","6285 WHITESPACE@9069..9070 " "
6328 WHITESPACE@9069..9070 " "6286 ARG@9070..9071
6329 ARG@9070..90716287 EXPR_VAR@9070..9071
6330 EXPR_VAR@9070..90716288 NAME@9070..9071
6331 NAME@9070..90716289 IDENT@9070..9071 "f"
6332 IDENT@9070..9071 "f"6290 COMMA@9071..9072 ","
6333 COMMA@9071..9072 ","6291 WHITESPACE@9072..9073 " "
6334 WHITESPACE@9072..9073 " "6292 ARG@9073..9083
6335 ARG@9073..90836293 EXPR_VAR@9073..9083
6336 EXPR_VAR@9073..90836294 NAME@9073..9083
6337 NAME@9073..90836295 IDENT@9073..9083 "inc_hidden"
6338 IDENT@9073..9083 "inc_hidden"6296 R_PAREN@9083..9084 ")"
6339 R_PAREN@9083..9084 ")"6297 WHITESPACE@9084..9085 " "
6340 WHITESPACE@9084..9085 " "6298 THEN_KW@9085..9089 "then"
6341 THEN_KW@9085..9089 "then"6299 WHITESPACE@9089..9090 " "
6342 WHITESPACE@9089..9090 " "6300 TRUE_EXPR@9090..9094
6343 TRUE_EXPR@9090..90946301 EXPR_INDEX_EXPR@9090..9094
6344 EXPR_INDEX_EXPR@9090..90946302 LHS_EXPR@9090..9091
6345 LHS_EXPR@9090..90916303 EXPR_VAR@9090..9091
6346 EXPR_VAR@9090..90916304 NAME@9090..9091
6347 NAME@9090..90916305 IDENT@9090..9091 "o"
6348 IDENT@9090..9091 "o"6306 L_BRACK@9091..9092 "["
6349 L_BRACK@9091..9092 "["6307 EXPR_VAR@9092..9093
6350 EXPR_VAR@9092..90936308 NAME@9092..9093
6351 NAME@9092..90936309 IDENT@9092..9093 "f"
6352 IDENT@9092..9093 "f"6310 R_BRACK@9093..9094 "]"
6353 R_BRACK@9093..9094 "]"6311 WHITESPACE@9094..9095 " "
6354 WHITESPACE@9094..9095 " "6312 ELSE_KW@9095..9099 "else"
6355 ELSE_KW@9095..9099 "else"6313 WHITESPACE@9099..9100 " "
6356 WHITESPACE@9099..9100 " "6314 FALSE_EXPR@9100..9107
6357 FALSE_EXPR@9100..91076315 EXPR_VAR@9100..9107
6358 EXPR_VAR@9100..91076316 NAME@9100..9107
6359 NAME@9100..91076317 IDENT@9100..9107 "default"
6360 IDENT@9100..9107 "default"
6361 COMMA@9107..9108 ","6318 COMMA@9107..9108 ","
6362 WHITESPACE@9108..9112 "\n\n "6319 WHITESPACE@9108..9112 "\n\n "
6363 MEMBER_FIELD@9112..91626320 MEMBER_FIELD_METHOD@9112..9162
6364 FIELD_METHOD@9112..91626321 FIELD_NAME_FIXED@9112..9124
6365 FIELD_NAME_FIXED@9112..9124
6366 NAME@9112..91246322 NAME@9112..9124
6367 IDENT@9112..9124 "objectFields"6323 IDENT@9112..9124 "objectFields"
6368 PARAMS_DESC@9124..91276324 PARAMS_DESC@9124..9127
6369 L_PAREN@9124..9125 "("6325 L_PAREN@9124..9125 "("
6370 PARAM@9125..91266326 PARAM@9125..9126
6371 DESTRUCT_FULL@9125..91266327 DESTRUCT_FULL@9125..9126
6372 NAME@9125..91266328 NAME@9125..9126
6373 IDENT@9125..9126 "o"6329 IDENT@9125..9126 "o"
6374 R_PAREN@9126..9127 ")"6330 R_PAREN@9126..9127 ")"
6375 COLONCOLON@9127..9129 "::"6331 COLONCOLON@9127..9129 "::"
6376 WHITESPACE@9129..9134 "\n "6332 WHITESPACE@9129..9134 "\n "
6377 EXPR_APPLY@9134..91626333 EXPR_APPLY@9134..9162
6378 EXPR_INDEX@9134..91526334 EXPR_INDEX@9134..9152
6379 EXPR_VAR@9134..91376335 EXPR_VAR@9134..9137
6380 NAME@9134..91376336 NAME@9134..9137
6381 IDENT@9134..9137 "std"6337 IDENT@9134..9137 "std"
6382 DOT@9137..9138 "."6338 DOT@9137..9138 "."
6383 NAME@9138..91526339 NAME@9138..9152
6384 IDENT@9138..9152 "objectFieldsEx"6340 IDENT@9138..9152 "objectFieldsEx"
6385 ARGS_DESC@9152..91626341 ARGS_DESC@9152..9162
6386 L_PAREN@9152..9153 "("6342 L_PAREN@9152..9153 "("
6387 ARG@9153..91546343 ARG@9153..9154
6388 EXPR_VAR@9153..91546344 EXPR_VAR@9153..9154
6389 NAME@9153..91546345 NAME@9153..9154
6390 IDENT@9153..9154 "o"6346 IDENT@9153..9154 "o"
6391 COMMA@9154..9155 ","6347 COMMA@9154..9155 ","
6392 WHITESPACE@9155..9156 " "6348 WHITESPACE@9155..9156 " "
6393 ARG@9156..91616349 ARG@9156..9161
6394 EXPR_LITERAL@9156..91616350 EXPR_LITERAL@9156..9161
6395 FALSE_KW@9156..9161 "false"6351 FALSE_KW@9156..9161 "false"
6396 R_PAREN@9161..9162 ")"6352 R_PAREN@9161..9162 ")"
6397 COMMA@9162..9163 ","6353 COMMA@9162..9163 ","
6398 WHITESPACE@9163..9167 "\n\n "6354 WHITESPACE@9163..9167 "\n\n "
6399 MEMBER_FIELD@9167..92196355 MEMBER_FIELD_METHOD@9167..9219
6400 FIELD_METHOD@9167..92196356 FIELD_NAME_FIXED@9167..9182
6401 FIELD_NAME_FIXED@9167..9182
6402 NAME@9167..91826357 NAME@9167..9182
6403 IDENT@9167..9182 "objectFieldsAll"6358 IDENT@9167..9182 "objectFieldsAll"
6404 PARAMS_DESC@9182..91856359 PARAMS_DESC@9182..9185
6405 L_PAREN@9182..9183 "("6360 L_PAREN@9182..9183 "("
6406 PARAM@9183..91846361 PARAM@9183..9184
6407 DESTRUCT_FULL@9183..91846362 DESTRUCT_FULL@9183..9184
6408 NAME@9183..91846363 NAME@9183..9184
6409 IDENT@9183..9184 "o"6364 IDENT@9183..9184 "o"
6410 R_PAREN@9184..9185 ")"6365 R_PAREN@9184..9185 ")"
6411 COLONCOLON@9185..9187 "::"6366 COLONCOLON@9185..9187 "::"
6412 WHITESPACE@9187..9192 "\n "6367 WHITESPACE@9187..9192 "\n "
6413 EXPR_APPLY@9192..92196368 EXPR_APPLY@9192..9219
6414 EXPR_INDEX@9192..92106369 EXPR_INDEX@9192..9210
6415 EXPR_VAR@9192..91956370 EXPR_VAR@9192..9195
6416 NAME@9192..91956371 NAME@9192..9195
6417 IDENT@9192..9195 "std"6372 IDENT@9192..9195 "std"
6418 DOT@9195..9196 "."6373 DOT@9195..9196 "."
6419 NAME@9196..92106374 NAME@9196..9210
6420 IDENT@9196..9210 "objectFieldsEx"6375 IDENT@9196..9210 "objectFieldsEx"
6421 ARGS_DESC@9210..92196376 ARGS_DESC@9210..9219
6422 L_PAREN@9210..9211 "("6377 L_PAREN@9210..9211 "("
6423 ARG@9211..92126378 ARG@9211..9212
6424 EXPR_VAR@9211..92126379 EXPR_VAR@9211..9212
6425 NAME@9211..92126380 NAME@9211..9212
6426 IDENT@9211..9212 "o"6381 IDENT@9211..9212 "o"
6427 COMMA@9212..9213 ","6382 COMMA@9212..9213 ","
6428 WHITESPACE@9213..9214 " "6383 WHITESPACE@9213..9214 " "
6429 ARG@9214..92186384 ARG@9214..9218
6430 EXPR_LITERAL@9214..92186385 EXPR_LITERAL@9214..9218
6431 TRUE_KW@9214..9218 "true"6386 TRUE_KW@9214..9218 "true"
6432 R_PAREN@9218..9219 ")"6387 R_PAREN@9218..9219 ")"
6433 COMMA@9219..9220 ","6388 COMMA@9219..9220 ","
6434 WHITESPACE@9220..9224 "\n\n "6389 WHITESPACE@9220..9224 "\n\n "
6435 MEMBER_FIELD@9224..92746390 MEMBER_FIELD_METHOD@9224..9274
6436 FIELD_METHOD@9224..92746391 FIELD_NAME_FIXED@9224..9233
6437 FIELD_NAME_FIXED@9224..92336392 NAME@9224..9233
6438 NAME@9224..92336393 IDENT@9224..9233 "objectHas"
6439 IDENT@9224..9233 "objectHas"6394 PARAMS_DESC@9233..9239
6440 PARAMS_DESC@9233..92396395 L_PAREN@9233..9234 "("
6441 L_PAREN@9233..9234 "("6396 PARAM@9234..9235
6442 PARAM@9234..92356397 DESTRUCT_FULL@9234..9235
6443 DESTRUCT_FULL@9234..92356398 NAME@9234..9235
6444 NAME@9234..92356399 IDENT@9234..9235 "o"
6445 IDENT@9234..9235 "o"6400 COMMA@9235..9236 ","
6446 COMMA@9235..9236 ","6401 WHITESPACE@9236..9237 " "
6447 WHITESPACE@9236..9237 " "6402 PARAM@9237..9238
6448 PARAM@9237..92386403 DESTRUCT_FULL@9237..9238
6449 DESTRUCT_FULL@9237..92386404 NAME@9237..9238
6450 NAME@9237..92386405 IDENT@9237..9238 "f"
6451 IDENT@9237..9238 "f"6406 R_PAREN@9238..9239 ")"
6452 R_PAREN@9238..9239 ")"6407 COLONCOLON@9239..9241 "::"
6453 COLONCOLON@9239..9241 "::"6408 WHITESPACE@9241..9246 "\n "
6454 WHITESPACE@9241..9246 "\n "6409 EXPR_APPLY@9246..9274
6455 EXPR_APPLY@9246..92746410 EXPR_INDEX@9246..9261
6456 EXPR_INDEX@9246..92616411 EXPR_VAR@9246..9249
6457 EXPR_VAR@9246..92496412 NAME@9246..9249
6458 NAME@9246..92496413 IDENT@9246..9249 "std"
6459 IDENT@9246..9249 "std"6414 DOT@9249..9250 "."
6460 DOT@9249..9250 "."6415 NAME@9250..9261
6461 NAME@9250..92616416 IDENT@9250..9261 "objectHasEx"
6462 IDENT@9250..9261 "objectHasEx"6417 ARGS_DESC@9261..9274
6463 ARGS_DESC@9261..92746418 L_PAREN@9261..9262 "("
6464 L_PAREN@9261..9262 "("6419 ARG@9262..9263
6465 ARG@9262..92636420 EXPR_VAR@9262..9263
6466 EXPR_VAR@9262..92636421 NAME@9262..9263
6467 NAME@9262..92636422 IDENT@9262..9263 "o"
6468 IDENT@9262..9263 "o"6423 COMMA@9263..9264 ","
6469 COMMA@9263..9264 ","6424 WHITESPACE@9264..9265 " "
6470 WHITESPACE@9264..9265 " "6425 ARG@9265..9266
6471 ARG@9265..92666426 EXPR_VAR@9265..9266
6472 EXPR_VAR@9265..92666427 NAME@9265..9266
6473 NAME@9265..92666428 IDENT@9265..9266 "f"
6474 IDENT@9265..9266 "f"6429 COMMA@9266..9267 ","
6475 COMMA@9266..9267 ","6430 WHITESPACE@9267..9268 " "
6476 WHITESPACE@9267..9268 " "6431 ARG@9268..9273
6477 ARG@9268..92736432 EXPR_LITERAL@9268..9273
6478 EXPR_LITERAL@9268..92736433 FALSE_KW@9268..9273 "false"
6479 FALSE_KW@9268..9273 "false"6434 R_PAREN@9273..9274 ")"
6480 R_PAREN@9273..9274 ")"
6481 COMMA@9274..9275 ","6435 COMMA@9274..9275 ","
6482 WHITESPACE@9275..9279 "\n\n "6436 WHITESPACE@9275..9279 "\n\n "
6483 MEMBER_FIELD@9279..93316437 MEMBER_FIELD_METHOD@9279..9331
6484 FIELD_METHOD@9279..93316438 FIELD_NAME_FIXED@9279..9291
6485 FIELD_NAME_FIXED@9279..92916439 NAME@9279..9291
6486 NAME@9279..92916440 IDENT@9279..9291 "objectHasAll"
6487 IDENT@9279..9291 "objectHasAll"6441 PARAMS_DESC@9291..9297
6488 PARAMS_DESC@9291..92976442 L_PAREN@9291..9292 "("
6489 L_PAREN@9291..9292 "("6443 PARAM@9292..9293
6490 PARAM@9292..92936444 DESTRUCT_FULL@9292..9293
6491 DESTRUCT_FULL@9292..92936445 NAME@9292..9293
6492 NAME@9292..92936446 IDENT@9292..9293 "o"
6493 IDENT@9292..9293 "o"6447 COMMA@9293..9294 ","
6494 COMMA@9293..9294 ","6448 WHITESPACE@9294..9295 " "
6495 WHITESPACE@9294..9295 " "6449 PARAM@9295..9296
6496 PARAM@9295..92966450 DESTRUCT_FULL@9295..9296
6497 DESTRUCT_FULL@9295..92966451 NAME@9295..9296
6498 NAME@9295..92966452 IDENT@9295..9296 "f"
6499 IDENT@9295..9296 "f"6453 R_PAREN@9296..9297 ")"
6500 R_PAREN@9296..9297 ")"6454 COLONCOLON@9297..9299 "::"
6501 COLONCOLON@9297..9299 "::"6455 WHITESPACE@9299..9304 "\n "
6502 WHITESPACE@9299..9304 "\n "6456 EXPR_APPLY@9304..9331
6503 EXPR_APPLY@9304..93316457 EXPR_INDEX@9304..9319
6504 EXPR_INDEX@9304..93196458 EXPR_VAR@9304..9307
6505 EXPR_VAR@9304..93076459 NAME@9304..9307
6506 NAME@9304..93076460 IDENT@9304..9307 "std"
6507 IDENT@9304..9307 "std"6461 DOT@9307..9308 "."
6508 DOT@9307..9308 "."6462 NAME@9308..9319
6509 NAME@9308..93196463 IDENT@9308..9319 "objectHasEx"
6510 IDENT@9308..9319 "objectHasEx"6464 ARGS_DESC@9319..9331
6511 ARGS_DESC@9319..93316465 L_PAREN@9319..9320 "("
6512 L_PAREN@9319..9320 "("6466 ARG@9320..9321
6513 ARG@9320..93216467 EXPR_VAR@9320..9321
6514 EXPR_VAR@9320..93216468 NAME@9320..9321
6515 NAME@9320..93216469 IDENT@9320..9321 "o"
6516 IDENT@9320..9321 "o"6470 COMMA@9321..9322 ","
6517 COMMA@9321..9322 ","6471 WHITESPACE@9322..9323 " "
6518 WHITESPACE@9322..9323 " "6472 ARG@9323..9324
6519 ARG@9323..93246473 EXPR_VAR@9323..9324
6520 EXPR_VAR@9323..93246474 NAME@9323..9324
6521 NAME@9323..93246475 IDENT@9323..9324 "f"
6522 IDENT@9323..9324 "f"6476 COMMA@9324..9325 ","
6523 COMMA@9324..9325 ","6477 WHITESPACE@9325..9326 " "
6524 WHITESPACE@9325..9326 " "6478 ARG@9326..9330
6525 ARG@9326..93306479 EXPR_LITERAL@9326..9330
6526 EXPR_LITERAL@9326..93306480 TRUE_KW@9326..9330 "true"
6527 TRUE_KW@9326..9330 "true"6481 R_PAREN@9330..9331 ")"
6528 R_PAREN@9330..9331 ")"
6529 COMMA@9331..9332 ","6482 COMMA@9331..9332 ","
6530 WHITESPACE@9332..9336 "\n\n "6483 WHITESPACE@9332..9336 "\n\n "
6531 MEMBER_FIELD@9336..93936484 MEMBER_FIELD_METHOD@9336..9393
6532 FIELD_METHOD@9336..93936485 FIELD_NAME_FIXED@9336..9348
6533 FIELD_NAME_FIXED@9336..93486486 NAME@9336..9348
6534 NAME@9336..93486487 IDENT@9336..9348 "objectValues"
6535 IDENT@9336..9348 "objectValues"6488 PARAMS_DESC@9348..9351
6536 PARAMS_DESC@9348..93516489 L_PAREN@9348..9349 "("
6537 L_PAREN@9348..9349 "("6490 PARAM@9349..9350
6538 PARAM@9349..93506491 DESTRUCT_FULL@9349..9350
6539 DESTRUCT_FULL@9349..93506492 NAME@9349..9350
6540 NAME@9349..93506493 IDENT@9349..9350 "o"
6541 IDENT@9349..9350 "o"6494 R_PAREN@9350..9351 ")"
6542 R_PAREN@9350..9351 ")"6495 COLONCOLON@9351..9353 "::"
6543 COLONCOLON@9351..9353 "::"6496 WHITESPACE@9353..9358 "\n "
6544 WHITESPACE@9353..9358 "\n "6497 EXPR_ARRAY_COMP@9358..9393
6545 EXPR_ARRAY_COMP@9358..93936498 L_BRACK@9358..9359 "["
6546 L_BRACK@9358..9359 "["6499 EXPR_INDEX_EXPR@9359..9363
6547 EXPR_INDEX_EXPR@9359..93636500 LHS_EXPR@9359..9360
6548 LHS_EXPR@9359..93606501 EXPR_VAR@9359..9360
6549 EXPR_VAR@9359..93606502 NAME@9359..9360
6550 NAME@9359..93606503 IDENT@9359..9360 "o"
6551 IDENT@9359..9360 "o"6504 L_BRACK@9360..9361 "["
6552 L_BRACK@9360..9361 "["6505 EXPR_VAR@9361..9362
6553 EXPR_VAR@9361..93626506 NAME@9361..9362
6554 NAME@9361..93626507 IDENT@9361..9362 "k"
6555 IDENT@9361..9362 "k"6508 R_BRACK@9362..9363 "]"
6556 R_BRACK@9362..9363 "]"6509 WHITESPACE@9363..9364 " "
6557 WHITESPACE@9363..9364 " "6510 FOR_SPEC@9364..9392
6558 FOR_SPEC@9364..93926511 FOR_KW@9364..9367 "for"
6559 FOR_KW@9364..9367 "for"6512 WHITESPACE@9367..9368 " "
6560 WHITESPACE@9367..9368 " "6513 NAME@9368..9369
6561 NAME@9368..93696514 IDENT@9368..9369 "k"
6562 IDENT@9368..9369 "k"6515 WHITESPACE@9369..9370 " "
6563 WHITESPACE@9369..9370 " "6516 IN_KW@9370..9372 "in"
6564 IN_KW@9370..9372 "in"6517 WHITESPACE@9372..9373 " "
6565 WHITESPACE@9372..9373 " "6518 EXPR_APPLY@9373..9392
6566 EXPR_APPLY@9373..93926519 EXPR_INDEX@9373..9389
6567 EXPR_INDEX@9373..93896520 EXPR_VAR@9373..9376
6568 EXPR_VAR@9373..93766521 NAME@9373..9376
6569 NAME@9373..93766522 IDENT@9373..9376 "std"
6570 IDENT@9373..9376 "std"6523 DOT@9376..9377 "."
6571 DOT@9376..9377 "."6524 NAME@9377..9389
6572 NAME@9377..93896525 IDENT@9377..9389 "objectFields"
6573 IDENT@9377..9389 "objectFields"6526 ARGS_DESC@9389..9392
6574 ARGS_DESC@9389..93926527 L_PAREN@9389..9390 "("
6575 L_PAREN@9389..9390 "("6528 ARG@9390..9391
6576 ARG@9390..93916529 EXPR_VAR@9390..9391
6577 EXPR_VAR@9390..93916530 NAME@9390..9391
6578 NAME@9390..93916531 IDENT@9390..9391 "o"
6579 IDENT@9390..9391 "o"6532 R_PAREN@9391..9392 ")"
6580 R_PAREN@9391..9392 ")"6533 R_BRACK@9392..9393 "]"
6581 R_BRACK@9392..9393 "]"
6582 COMMA@9393..9394 ","6534 COMMA@9393..9394 ","
6583 WHITESPACE@9394..9398 "\n\n "6535 WHITESPACE@9394..9398 "\n\n "
6584 MEMBER_FIELD@9398..94616536 MEMBER_FIELD_METHOD@9398..9461
6585 FIELD_METHOD@9398..94616537 FIELD_NAME_FIXED@9398..9413
6586 FIELD_NAME_FIXED@9398..94136538 NAME@9398..9413
6587 NAME@9398..94136539 IDENT@9398..9413 "objectValuesAll"
6588 IDENT@9398..9413 "objectValuesAll"6540 PARAMS_DESC@9413..9416
6589 PARAMS_DESC@9413..94166541 L_PAREN@9413..9414 "("
6590 L_PAREN@9413..9414 "("6542 PARAM@9414..9415
6591 PARAM@9414..94156543 DESTRUCT_FULL@9414..9415
6592 DESTRUCT_FULL@9414..94156544 NAME@9414..9415
6593 NAME@9414..94156545 IDENT@9414..9415 "o"
6594 IDENT@9414..9415 "o"6546 R_PAREN@9415..9416 ")"
6595 R_PAREN@9415..9416 ")"6547 COLONCOLON@9416..9418 "::"
6596 COLONCOLON@9416..9418 "::"6548 WHITESPACE@9418..9423 "\n "
6597 WHITESPACE@9418..9423 "\n "6549 EXPR_ARRAY_COMP@9423..9461
6598 EXPR_ARRAY_COMP@9423..94616550 L_BRACK@9423..9424 "["
6599 L_BRACK@9423..9424 "["6551 EXPR_INDEX_EXPR@9424..9428
6600 EXPR_INDEX_EXPR@9424..94286552 LHS_EXPR@9424..9425
6601 LHS_EXPR@9424..94256553 EXPR_VAR@9424..9425
6602 EXPR_VAR@9424..94256554 NAME@9424..9425
6603 NAME@9424..94256555 IDENT@9424..9425 "o"
6604 IDENT@9424..9425 "o"6556 L_BRACK@9425..9426 "["
6605 L_BRACK@9425..9426 "["6557 EXPR_VAR@9426..9427
6606 EXPR_VAR@9426..94276558 NAME@9426..9427
6607 NAME@9426..94276559 IDENT@9426..9427 "k"
6608 IDENT@9426..9427 "k"6560 R_BRACK@9427..9428 "]"
6609 R_BRACK@9427..9428 "]"6561 WHITESPACE@9428..9429 " "
6610 WHITESPACE@9428..9429 " "6562 FOR_SPEC@9429..9460
6611 FOR_SPEC@9429..94606563 FOR_KW@9429..9432 "for"
6612 FOR_KW@9429..9432 "for"6564 WHITESPACE@9432..9433 " "
6613 WHITESPACE@9432..9433 " "6565 NAME@9433..9434
6614 NAME@9433..94346566 IDENT@9433..9434 "k"
6615 IDENT@9433..9434 "k"6567 WHITESPACE@9434..9435 " "
6616 WHITESPACE@9434..9435 " "6568 IN_KW@9435..9437 "in"
6617 IN_KW@9435..9437 "in"6569 WHITESPACE@9437..9438 " "
6618 WHITESPACE@9437..9438 " "6570 EXPR_APPLY@9438..9460
6619 EXPR_APPLY@9438..94606571 EXPR_INDEX@9438..9457
6620 EXPR_INDEX@9438..94576572 EXPR_VAR@9438..9441
6621 EXPR_VAR@9438..94416573 NAME@9438..9441
6622 NAME@9438..94416574 IDENT@9438..9441 "std"
6623 IDENT@9438..9441 "std"6575 DOT@9441..9442 "."
6624 DOT@9441..9442 "."6576 NAME@9442..9457
6625 NAME@9442..94576577 IDENT@9442..9457 "objectFieldsAll"
6626 IDENT@9442..9457 "objectFieldsAll"6578 ARGS_DESC@9457..9460
6627 ARGS_DESC@9457..94606579 L_PAREN@9457..9458 "("
6628 L_PAREN@9457..9458 "("6580 ARG@9458..9459
6629 ARG@9458..94596581 EXPR_VAR@9458..9459
6630 EXPR_VAR@9458..94596582 NAME@9458..9459
6631 NAME@9458..94596583 IDENT@9458..9459 "o"
6632 IDENT@9458..9459 "o"6584 R_PAREN@9459..9460 ")"
6633 R_PAREN@9459..9460 ")"6585 R_BRACK@9460..9461 "]"
6634 R_BRACK@9460..9461 "]"
6635 COMMA@9461..9462 ","6586 COMMA@9461..9462 ","
6636 WHITESPACE@9462..9466 "\n\n "6587 WHITESPACE@9462..9466 "\n\n "
6637 MEMBER_FIELD@9466..96006588 MEMBER_FIELD_METHOD@9466..9600
6638 FIELD_METHOD@9466..96006589 FIELD_NAME_FIXED@9466..9477
6639 FIELD_NAME_FIXED@9466..94776590 NAME@9466..9477
6640 NAME@9466..94776591 IDENT@9466..9477 "resolvePath"
6641 IDENT@9466..9477 "resolvePath"6592 PARAMS_DESC@9477..9483
6642 PARAMS_DESC@9477..94836593 L_PAREN@9477..9478 "("
6643 L_PAREN@9477..9478 "("6594 PARAM@9478..9479
6644 PARAM@9478..94796595 DESTRUCT_FULL@9478..9479
6645 DESTRUCT_FULL@9478..94796596 NAME@9478..9479
6646 NAME@9478..94796597 IDENT@9478..9479 "f"
6647 IDENT@9478..9479 "f"6598 COMMA@9479..9480 ","
6648 COMMA@9479..9480 ","6599 WHITESPACE@9480..9481 " "
6649 WHITESPACE@9480..9481 " "6600 PARAM@9481..9482
6650 PARAM@9481..94826601 DESTRUCT_FULL@9481..9482
6651 DESTRUCT_FULL@9481..94826602 NAME@9481..9482
6652 NAME@9481..94826603 IDENT@9481..9482 "r"
6653 IDENT@9481..9482 "r"6604 R_PAREN@9482..9483 ")"
6654 R_PAREN@9482..9483 ")"6605 COLONCOLON@9483..9485 "::"
6655 COLONCOLON@9483..9485 "::"6606 WHITESPACE@9485..9490 "\n "
6656 WHITESPACE@9485..9490 "\n "6607 EXPR_LOCAL@9490..9600
6657 EXPR_LOCAL@9490..96006608 LOCAL_KW@9490..9495 "local"
6658 LOCAL_KW@9490..9495 "local"6609 WHITESPACE@9495..9496 " "
6659 WHITESPACE@9495..9496 " "6610 BIND_DESTRUCT@9496..9519
6660 BIND_DESTRUCT@9496..95196611 DESTRUCT_FULL@9496..9499
6661 DESTRUCT_FULL@9496..94996612 NAME@9496..9499
6662 NAME@9496..94996613 IDENT@9496..9499 "arr"
6663 IDENT@9496..9499 "arr"6614 WHITESPACE@9499..9500 " "
6664 WHITESPACE@9499..9500 " "6615 ASSIGN@9500..9501 "="
6665 ASSIGN@9500..9501 "="6616 WHITESPACE@9501..9502 " "
6666 WHITESPACE@9501..9502 " "6617 EXPR_APPLY@9502..9519
6667 EXPR_APPLY@9502..95196618 EXPR_INDEX@9502..9511
6668 EXPR_INDEX@9502..95116619 EXPR_VAR@9502..9505
6669 EXPR_VAR@9502..95056620 NAME@9502..9505
6670 NAME@9502..95056621 IDENT@9502..9505 "std"
6671 IDENT@9502..9505 "std"6622 DOT@9505..9506 "."
6672 DOT@9505..9506 "."6623 NAME@9506..9511
6673 NAME@9506..95116624 IDENT@9506..9511 "split"
6674 IDENT@9506..9511 "split"6625 ARGS_DESC@9511..9519
6675 ARGS_DESC@9511..95196626 L_PAREN@9511..9512 "("
6676 L_PAREN@9511..9512 "("6627 ARG@9512..9513
6677 ARG@9512..95136628 EXPR_VAR@9512..9513
6678 EXPR_VAR@9512..95136629 NAME@9512..9513
6679 NAME@9512..95136630 IDENT@9512..9513 "f"
6680 IDENT@9512..9513 "f"6631 COMMA@9513..9514 ","
6681 COMMA@9513..9514 ","6632 WHITESPACE@9514..9515 " "
6682 WHITESPACE@9514..9515 " "6633 ARG@9515..9518
6683 ARG@9515..95186634 EXPR_STRING@9515..9518
6684 EXPR_STRING@9515..95186635 STRING_SINGLE@9515..9518 "'/'"
6685 STRING_SINGLE@9515..9518 "'/'"6636 R_PAREN@9518..9519 ")"
6686 R_PAREN@9518..9519 ")"6637 SEMI@9519..9520 ";"
6687 SEMI@9519..9520 ";"6638 WHITESPACE@9520..9525 "\n "
6688 WHITESPACE@9520..9525 "\n "6639 EXPR_APPLY@9525..9600
6689 EXPR_APPLY@9525..96006640 EXPR_INDEX@9525..9533
6690 EXPR_INDEX@9525..95336641 EXPR_VAR@9525..9528
6691 EXPR_VAR@9525..95286642 NAME@9525..9528
6692 NAME@9525..95286643 IDENT@9525..9528 "std"
6693 IDENT@9525..9528 "std"6644 DOT@9528..9529 "."
6694 DOT@9528..9529 "."6645 NAME@9529..9533
6695 NAME@9529..95336646 IDENT@9529..9533 "join"
6696 IDENT@9529..9533 "join"6647 ARGS_DESC@9533..9600
6697 ARGS_DESC@9533..96006648 L_PAREN@9533..9534 "("
6698 L_PAREN@9533..9534 "("6649 ARG@9534..9537
6699 ARG@9534..95376650 EXPR_STRING@9534..9537
6700 EXPR_STRING@9534..95376651 STRING_SINGLE@9534..9537 "'/'"
6701 STRING_SINGLE@9534..9537 "'/'"6652 COMMA@9537..9538 ","
6702 COMMA@9537..9538 ","6653 WHITESPACE@9538..9539 " "
6703 WHITESPACE@9538..9539 " "6654 ARG@9539..9599
6704 ARG@9539..95996655 EXPR_BINARY@9539..9599
6705 EXPR_BINARY@9539..95996656 LHS_EXPR@9539..9593
6706 LHS_EXPR@9539..95936657 EXPR_APPLY@9539..9593
6707 EXPR_APPLY@9539..95936658 EXPR_INDEX@9539..9552
6708 EXPR_INDEX@9539..95526659 EXPR_VAR@9539..9542
6709 EXPR_VAR@9539..95426660 NAME@9539..9542
6710 NAME@9539..95426661 IDENT@9539..9542 "std"
6711 IDENT@9539..9542 "std"6662 DOT@9542..9543 "."
6712 DOT@9542..9543 "."6663 NAME@9543..9552
6713 NAME@9543..95526664 IDENT@9543..9552 "makeArray"
6714 IDENT@9543..9552 "makeArray"6665 ARGS_DESC@9552..9593
6715 ARGS_DESC@9552..95936666 L_PAREN@9552..9553 "("
6716 L_PAREN@9552..9553 "("6667 ARG@9553..9572
6717 ARG@9553..95726668 EXPR_BINARY@9553..9572
6718 EXPR_BINARY@9553..95726669 LHS_EXPR@9553..9568
6719 LHS_EXPR@9553..95686670 EXPR_APPLY@9553..9568
6720 EXPR_APPLY@9553..95686671 EXPR_INDEX@9553..9563
6721 EXPR_INDEX@9553..95636672 EXPR_VAR@9553..9556
6722 EXPR_VAR@9553..95566673 NAME@9553..9556
6723 NAME@9553..95566674 IDENT@9553..9556 "std"
6724 IDENT@9553..9556 "std"6675 DOT@9556..9557 "."
6725 DOT@9556..9557 "."6676 NAME@9557..9563
6726 NAME@9557..95636677 IDENT@9557..9563 "length"
6727 IDENT@9557..9563 "length"6678 ARGS_DESC@9563..9568
6728 ARGS_DESC@9563..95686679 L_PAREN@9563..9564 "("
6729 L_PAREN@9563..9564 "("6680 ARG@9564..9567
6730 ARG@9564..95676681 EXPR_VAR@9564..9567
6731 EXPR_VAR@9564..95676682 NAME@9564..9567
6732 NAME@9564..95676683 IDENT@9564..9567 "arr"
6733 IDENT@9564..9567 "arr"6684 R_PAREN@9567..9568 ")"
6734 R_PAREN@9567..9568 ")"6685 WHITESPACE@9568..9569 " "
6735 WHITESPACE@9568..9569 " "6686 MINUS@9569..9570 "-"
6736 MINUS@9569..9570 "-"6687 WHITESPACE@9570..9571 " "
6737 WHITESPACE@9570..9571 " "6688 EXPR_NUMBER@9571..9572
6738 EXPR_NUMBER@9571..95726689 FLOAT@9571..9572 "1"
6739 FLOAT@9571..9572 "1"6690 COMMA@9572..9573 ","
6740 COMMA@9572..9573 ","6691 WHITESPACE@9573..9574 " "
6741 WHITESPACE@9573..9574 " "6692 ARG@9574..9592
6742 ARG@9574..95926693 EXPR_FUNCTION@9574..9592
6743 EXPR_FUNCTION@9574..95926694 FUNCTION_KW@9574..9582 "function"
6744 FUNCTION_KW@9574..9582 "function"6695 PARAMS_DESC@9582..9585
6745 PARAMS_DESC@9582..95856696 L_PAREN@9582..9583 "("
6746 L_PAREN@9582..9583 "("6697 PARAM@9583..9584
6747 PARAM@9583..95846698 DESTRUCT_FULL@9583..9584
6748 DESTRUCT_FULL@9583..95846699 NAME@9583..9584
6749 NAME@9583..95846700 IDENT@9583..9584 "i"
6750 IDENT@9583..9584 "i"6701 R_PAREN@9584..9585 ")"
6751 R_PAREN@9584..9585 ")"6702 WHITESPACE@9585..9586 " "
6752 WHITESPACE@9585..9586 " "6703 EXPR_INDEX_EXPR@9586..9592
6753 EXPR_INDEX_EXPR@9586..95926704 LHS_EXPR@9586..9589
6754 LHS_EXPR@9586..95896705 EXPR_VAR@9586..9589
6755 EXPR_VAR@9586..95896706 NAME@9586..9589
6756 NAME@9586..95896707 IDENT@9586..9589 "arr"
6757 IDENT@9586..9589 "arr"6708 L_BRACK@9589..9590 "["
6758 L_BRACK@9589..9590 "["6709 EXPR_VAR@9590..9591
6759 EXPR_VAR@9590..95916710 NAME@9590..9591
6760 NAME@9590..95916711 IDENT@9590..9591 "i"
6761 IDENT@9590..9591 "i"6712 R_BRACK@9591..9592 "]"
6762 R_BRACK@9591..9592 "]"6713 R_PAREN@9592..9593 ")"
6763 R_PAREN@9592..9593 ")"6714 WHITESPACE@9593..9594 " "
6764 WHITESPACE@9593..9594 " "6715 PLUS@9594..9595 "+"
6765 PLUS@9594..9595 "+"6716 WHITESPACE@9595..9596 " "
6766 WHITESPACE@9595..9596 " "6717 EXPR_ARRAY@9596..9599
6767 EXPR_ARRAY@9596..95996718 L_BRACK@9596..9597 "["
6768 L_BRACK@9596..9597 "["6719 EXPR_VAR@9597..9598
6769 EXPR_VAR@9597..95986720 NAME@9597..9598
6770 NAME@9597..95986721 IDENT@9597..9598 "r"
6771 IDENT@9597..9598 "r"6722 R_BRACK@9598..9599 "]"
6772 R_BRACK@9598..9599 "]"6723 R_PAREN@9599..9600 ")"
6773 R_PAREN@9599..9600 ")"
6774 COMMA@9600..9601 ","6724 COMMA@9600..9601 ","
6775 WHITESPACE@9601..9605 "\n\n "6725 WHITESPACE@9601..9605 "\n\n "
6776 MEMBER_FIELD@9605..100586726 MEMBER_FIELD_METHOD@9605..10058
6777 FIELD_METHOD@9605..100586727 FIELD_NAME_FIXED@9605..9610
6778 FIELD_NAME_FIXED@9605..96106728 NAME@9605..9610
6779 NAME@9605..96106729 IDENT@9605..9610 "prune"
6780 IDENT@9605..9610 "prune"6730 PARAMS_DESC@9610..9613
6781 PARAMS_DESC@9610..96136731 L_PAREN@9610..9611 "("
6782 L_PAREN@9610..9611 "("6732 PARAM@9611..9612
6783 PARAM@9611..96126733 DESTRUCT_FULL@9611..9612
6784 DESTRUCT_FULL@9611..96126734 NAME@9611..9612
6785 NAME@9611..96126735 IDENT@9611..9612 "a"
6786 IDENT@9611..9612 "a"6736 R_PAREN@9612..9613 ")"
6787 R_PAREN@9612..9613 ")"6737 COLONCOLON@9613..9615 "::"
6788 COLONCOLON@9613..9615 "::"6738 WHITESPACE@9615..9620 "\n "
6789 WHITESPACE@9615..9620 "\n "6739 EXPR_LOCAL@9620..10058
6790 EXPR_LOCAL@9620..100586740 LOCAL_KW@9620..9625 "local"
6791 LOCAL_KW@9620..9625 "local"6741 WHITESPACE@9625..9626 " "
6792 WHITESPACE@9625..9626 " "6742 BIND_FUNCTION@9626..9823
6793 BIND_FUNCTION@9626..98236743 NAME@9626..9635
6794 NAME@9626..96356744 IDENT@9626..9635 "isContent"
6795 IDENT@9626..9635 "isContent"6745 PARAMS_DESC@9635..9638
6796 PARAMS_DESC@9635..96386746 L_PAREN@9635..9636 "("
6797 L_PAREN@9635..9636 "("6747 PARAM@9636..9637
6798 PARAM@9636..96376748 DESTRUCT_FULL@9636..9637
6799 DESTRUCT_FULL@9636..96376749 NAME@9636..9637
6800 NAME@9636..96376750 IDENT@9636..9637 "b"
6801 IDENT@9636..9637 "b"6751 R_PAREN@9637..9638 ")"
6802 R_PAREN@9637..9638 ")"6752 WHITESPACE@9638..9639 " "
6803 WHITESPACE@9638..9639 " "6753 ASSIGN@9639..9640 "="
6804 ASSIGN@9639..9640 "="6754 WHITESPACE@9640..9647 "\n "
6805 WHITESPACE@9640..9647 "\n "6755 EXPR_IF_THEN_ELSE@9647..9823
6806 EXPR_IF_THEN_ELSE@9647..98236756 IF_KW@9647..9649 "if"
6807 IF_KW@9647..9649 "if"6757 WHITESPACE@9649..9650 " "
6808 WHITESPACE@9649..9650 " "6758 EXPR_BINARY@9650..9659
6809 EXPR_BINARY@9650..96596759 LHS_EXPR@9650..9651
6810 LHS_EXPR@9650..96516760 EXPR_VAR@9650..9651
6811 EXPR_VAR@9650..96516761 NAME@9650..9651
6812 NAME@9650..96516762 IDENT@9650..9651 "b"
6813 IDENT@9650..9651 "b"6763 WHITESPACE@9651..9652 " "
6814 WHITESPACE@9651..9652 " "6764 EQ@9652..9654 "=="
6815 EQ@9652..9654 "=="6765 WHITESPACE@9654..9655 " "
6816 WHITESPACE@9654..9655 " "6766 EXPR_LITERAL@9655..9659
6817 EXPR_LITERAL@9655..96596767 NULL_KW@9655..9659 "null"
6818 NULL_KW@9655..9659 "null"6768 WHITESPACE@9659..9660 " "
6819 WHITESPACE@9659..9660 " "6769 THEN_KW@9660..9664 "then"
6820 THEN_KW@9660..9664 "then"6770 WHITESPACE@9664..9673 "\n "
6821 WHITESPACE@9664..9673 "\n "6771 TRUE_EXPR@9673..9678
6822 TRUE_EXPR@9673..96786772 EXPR_LITERAL@9673..9678
6823 EXPR_LITERAL@9673..96786773 FALSE_KW@9673..9678 "false"
6824 FALSE_KW@9673..9678 "false"6774 WHITESPACE@9678..9685 "\n "
6825 WHITESPACE@9678..9685 "\n "6775 ELSE_KW@9685..9689 "else"
6826 ELSE_KW@9685..9689 "else"6776 WHITESPACE@9689..9690 " "
6827 WHITESPACE@9689..9690 " "6777 FALSE_EXPR@9690..9823
6828 FALSE_EXPR@9690..98236778 EXPR_IF_THEN_ELSE@9690..9823
6829 EXPR_IF_THEN_ELSE@9690..98236779 IF_KW@9690..9692 "if"
6830 IF_KW@9690..9692 "if"6780 WHITESPACE@9692..9693 " "
6831 WHITESPACE@9692..9693 " "6781 EXPR_APPLY@9693..9707
6832 EXPR_APPLY@9693..97076782 EXPR_INDEX@9693..9704
6833 EXPR_INDEX@9693..97046783 EXPR_VAR@9693..9696
6834 EXPR_VAR@9693..96966784 NAME@9693..9696
6835 NAME@9693..96966785 IDENT@9693..9696 "std"
6836 IDENT@9693..9696 "std"6786 DOT@9696..9697 "."
6837 DOT@9696..9697 "."6787 NAME@9697..9704
6838 NAME@9697..97046788 IDENT@9697..9704 "isArray"
6839 IDENT@9697..9704 "isArray"6789 ARGS_DESC@9704..9707
6840 ARGS_DESC@9704..97076790 L_PAREN@9704..9705 "("
6841 L_PAREN@9704..9705 "("6791 ARG@9705..9706
6842 ARG@9705..97066792 EXPR_VAR@9705..9706
6843 EXPR_VAR@9705..97066793 NAME@9705..9706
6844 NAME@9705..97066794 IDENT@9705..9706 "b"
6845 IDENT@9705..9706 "b"6795 R_PAREN@9706..9707 ")"
6846 R_PAREN@9706..9707 ")"6796 WHITESPACE@9707..9708 " "
6847 WHITESPACE@9707..9708 " "6797 THEN_KW@9708..9712 "then"
6848 THEN_KW@9708..9712 "then"6798 WHITESPACE@9712..9721 "\n "
6849 WHITESPACE@9712..9721 "\n "6799 TRUE_EXPR@9721..9738
6850 TRUE_EXPR@9721..97386800 EXPR_BINARY@9721..9738
6851 EXPR_BINARY@9721..97386801 LHS_EXPR@9721..9734
6852 LHS_EXPR@9721..97346802 EXPR_APPLY@9721..9734
6853 EXPR_APPLY@9721..97346803 EXPR_INDEX@9721..9731
6854 EXPR_INDEX@9721..97316804 EXPR_VAR@9721..9724
6855 EXPR_VAR@9721..97246805 NAME@9721..9724
6856 NAME@9721..97246806 IDENT@9721..9724 "std"
6857 IDENT@9721..9724 "std"6807 DOT@9724..9725 "."
6858 DOT@9724..9725 "."6808 NAME@9725..9731
6859 NAME@9725..97316809 IDENT@9725..9731 "length"
6860 IDENT@9725..9731 "length"6810 ARGS_DESC@9731..9734
6861 ARGS_DESC@9731..97346811 L_PAREN@9731..9732 "("
6862 L_PAREN@9731..9732 "("6812 ARG@9732..9733
6863 ARG@9732..97336813 EXPR_VAR@9732..9733
6864 EXPR_VAR@9732..97336814 NAME@9732..9733
6865 NAME@9732..97336815 IDENT@9732..9733 "b"
6866 IDENT@9732..9733 "b"6816 R_PAREN@9733..9734 ")"
6867 R_PAREN@9733..9734 ")"6817 WHITESPACE@9734..9735 " "
6868 WHITESPACE@9734..9735 " "6818 GT@9735..9736 ">"
6869 GT@9735..9736 ">"6819 WHITESPACE@9736..9737 " "
6870 WHITESPACE@9736..9737 " "6820 EXPR_NUMBER@9737..9738
6871 EXPR_NUMBER@9737..97386821 FLOAT@9737..9738 "0"
6872 FLOAT@9737..9738 "0"6822 WHITESPACE@9738..9745 "\n "
6873 WHITESPACE@9738..9745 "\n "6823 ELSE_KW@9745..9749 "else"
6874 ELSE_KW@9745..9749 "else"6824 WHITESPACE@9749..9750 " "
6875 WHITESPACE@9749..9750 " "6825 FALSE_EXPR@9750..9823
6876 FALSE_EXPR@9750..98236826 EXPR_IF_THEN_ELSE@9750..9823
6877 EXPR_IF_THEN_ELSE@9750..98236827 IF_KW@9750..9752 "if"
6878 IF_KW@9750..9752 "if"6828 WHITESPACE@9752..9753 " "
6879 WHITESPACE@9752..9753 " "6829 EXPR_APPLY@9753..9768
6880 EXPR_APPLY@9753..97686830 EXPR_INDEX@9753..9765
6881 EXPR_INDEX@9753..97656831 EXPR_VAR@9753..9756
6882 EXPR_VAR@9753..97566832 NAME@9753..9756
6883 NAME@9753..97566833 IDENT@9753..9756 "std"
6884 IDENT@9753..9756 "std"6834 DOT@9756..9757 "."
6885 DOT@9756..9757 "."6835 NAME@9757..9765
6886 NAME@9757..97656836 IDENT@9757..9765 "isObject"
6887 IDENT@9757..9765 "isObject"6837 ARGS_DESC@9765..9768
6888 ARGS_DESC@9765..97686838 L_PAREN@9765..9766 "("
6889 L_PAREN@9765..9766 "("6839 ARG@9766..9767
6890 ARG@9766..97676840 EXPR_VAR@9766..9767
6891 EXPR_VAR@9766..97676841 NAME@9766..9767
6892 NAME@9766..97676842 IDENT@9766..9767 "b"
6893 IDENT@9766..9767 "b"6843 R_PAREN@9767..9768 ")"
6894 R_PAREN@9767..9768 ")"6844 WHITESPACE@9768..9769 " "
6895 WHITESPACE@9768..9769 " "6845 THEN_KW@9769..9773 "then"
6896 THEN_KW@9769..9773 "then"6846 WHITESPACE@9773..9782 "\n "
6897 WHITESPACE@9773..9782 "\n "6847 TRUE_EXPR@9782..9799
6898 TRUE_EXPR@9782..97996848 EXPR_BINARY@9782..9799
6899 EXPR_BINARY@9782..97996849 LHS_EXPR@9782..9795
6900 LHS_EXPR@9782..97956850 EXPR_APPLY@9782..9795
6901 EXPR_APPLY@9782..97956851 EXPR_INDEX@9782..9792
6902 EXPR_INDEX@9782..97926852 EXPR_VAR@9782..9785
6903 EXPR_VAR@9782..97856853 NAME@9782..9785
6904 NAME@9782..97856854 IDENT@9782..9785 "std"
6905 IDENT@9782..9785 "std"6855 DOT@9785..9786 "."
6906 DOT@9785..9786 "."6856 NAME@9786..9792
6907 NAME@9786..97926857 IDENT@9786..9792 "length"
6908 IDENT@9786..9792 "length"6858 ARGS_DESC@9792..9795
6909 ARGS_DESC@9792..97956859 L_PAREN@9792..9793 "("
6910 L_PAREN@9792..9793 "("6860 ARG@9793..9794
6911 ARG@9793..97946861 EXPR_VAR@9793..9794
6912 EXPR_VAR@9793..97946862 NAME@9793..9794
6913 NAME@9793..97946863 IDENT@9793..9794 "b"
6914 IDENT@9793..9794 "b"6864 R_PAREN@9794..9795 ")"
6915 R_PAREN@9794..9795 ")"6865 WHITESPACE@9795..9796 " "
6916 WHITESPACE@9795..9796 " "6866 GT@9796..9797 ">"
6917 GT@9796..9797 ">"6867 WHITESPACE@9797..9798 " "
6918 WHITESPACE@9797..9798 " "6868 EXPR_NUMBER@9798..9799
6919 EXPR_NUMBER@9798..97996869 FLOAT@9798..9799 "0"
6920 FLOAT@9798..9799 "0"6870 WHITESPACE@9799..9806 "\n "
6921 WHITESPACE@9799..9806 "\n "6871 ELSE_KW@9806..9810 "else"
6922 ELSE_KW@9806..9810 "else"6872 WHITESPACE@9810..9819 "\n "
6923 WHITESPACE@9810..9819 "\n "6873 FALSE_EXPR@9819..9823
6924 FALSE_EXPR@9819..98236874 EXPR_LITERAL@9819..9823
6925 EXPR_LITERAL@9819..98236875 TRUE_KW@9819..9823 "true"
6926 TRUE_KW@9819..9823 "true"6876 SEMI@9823..9824 ";"
6927 SEMI@9823..9824 ";"6877 WHITESPACE@9824..9829 "\n "
6928 WHITESPACE@9824..9829 "\n "6878 EXPR_IF_THEN_ELSE@9829..10058
6929 EXPR_IF_THEN_ELSE@9829..100586879 IF_KW@9829..9831 "if"
6930 IF_KW@9829..9831 "if"6880 WHITESPACE@9831..9832 " "
6931 WHITESPACE@9831..9832 " "6881 EXPR_APPLY@9832..9846
6932 EXPR_APPLY@9832..98466882 EXPR_INDEX@9832..9843
6933 EXPR_INDEX@9832..98436883 EXPR_VAR@9832..9835
6934 EXPR_VAR@9832..98356884 NAME@9832..9835
6935 NAME@9832..98356885 IDENT@9832..9835 "std"
6936 IDENT@9832..9835 "std"6886 DOT@9835..9836 "."
6937 DOT@9835..9836 "."6887 NAME@9836..9843
6938 NAME@9836..98436888 IDENT@9836..9843 "isArray"
6939 IDENT@9836..9843 "isArray"6889 ARGS_DESC@9843..9846
6940 ARGS_DESC@9843..98466890 L_PAREN@9843..9844 "("
6941 L_PAREN@9843..9844 "("6891 ARG@9844..9845
6942 ARG@9844..98456892 EXPR_VAR@9844..9845
6943 EXPR_VAR@9844..98456893 NAME@9844..9845
6944 NAME@9844..98456894 IDENT@9844..9845 "a"
6945 IDENT@9844..9845 "a"6895 R_PAREN@9845..9846 ")"
6946 R_PAREN@9845..9846 ")"6896 WHITESPACE@9846..9847 " "
6947 WHITESPACE@9846..9847 " "6897 THEN_KW@9847..9851 "then"
6948 THEN_KW@9847..9851 "then"6898 WHITESPACE@9851..9858 "\n "
6949 WHITESPACE@9851..9858 "\n "6899 TRUE_EXPR@9858..9908
6950 TRUE_EXPR@9858..99086900 EXPR_ARRAY_COMP@9858..9908
6951 EXPR_ARRAY_COMP@9858..99086901 L_BRACK@9858..9859 "["
6952 L_BRACK@9858..9859 "["6902 EXPR_APPLY@9859..9871
6953 EXPR_APPLY@9859..98716903 EXPR_INDEX@9859..9868
6954 EXPR_INDEX@9859..98686904 EXPR_VAR@9859..9862
6955 EXPR_VAR@9859..98626905 NAME@9859..9862
6956 NAME@9859..98626906 IDENT@9859..9862 "std"
6957 IDENT@9859..9862 "std"6907 DOT@9862..9863 "."
6958 DOT@9862..9863 "."6908 NAME@9863..9868
6959 NAME@9863..98686909 IDENT@9863..9868 "prune"
6960 IDENT@9863..9868 "prune"6910 ARGS_DESC@9868..9871
6961 ARGS_DESC@9868..98716911 L_PAREN@9868..9869 "("
6962 L_PAREN@9868..9869 "("6912 ARG@9869..9870
6963 ARG@9869..98706913 EXPR_VAR@9869..9870
6964 EXPR_VAR@9869..98706914 NAME@9869..9870
6965 NAME@9869..98706915 IDENT@9869..9870 "x"
6966 IDENT@9869..9870 "x"6916 R_PAREN@9870..9871 ")"
6967 R_PAREN@9870..9871 ")"6917 WHITESPACE@9871..9872 " "
6968 WHITESPACE@9871..9872 " "6918 FOR_SPEC@9872..9882
6969 FOR_SPEC@9872..98826919 FOR_KW@9872..9875 "for"
6970 FOR_KW@9872..9875 "for"6920 WHITESPACE@9875..9876 " "
6971 WHITESPACE@9875..9876 " "6921 NAME@9876..9877
6972 NAME@9876..98776922 IDENT@9876..9877 "x"
6973 IDENT@9876..9877 "x"6923 WHITESPACE@9877..9878 " "
6974 WHITESPACE@9877..9878 " "6924 IN_KW@9878..9880 "in"
6975 IN_KW@9878..9880 "in"6925 WHITESPACE@9880..9881 " "
6976 WHITESPACE@9880..9881 " "6926 EXPR_VAR@9881..9882
6977 EXPR_VAR@9881..98826927 NAME@9881..9882
6978 NAME@9881..98826928 IDENT@9881..9882 "a"
6979 IDENT@9881..9882 "a"6929 WHITESPACE@9882..9883 " "
6980 WHITESPACE@9882..9883 " "6930 IF_SPEC@9883..9907
6981 IF_SPEC@9883..99076931 IF_KW@9883..9885 "if"
6982 IF_KW@9883..9885 "if"6932 WHITESPACE@9885..9886 " "
6983 WHITESPACE@9885..9886 " "6933 EXPR_APPLY@9886..9907
6984 EXPR_APPLY@9886..99076934 EXPR_VAR@9886..9895
6985 EXPR_VAR@9886..98956935 NAME@9886..9895
6986 NAME@9886..98956936 IDENT@9886..9895 "isContent"
6987 IDENT@9886..9895 "isContent"6937 ARGS_DESC@9895..9907
6988 ARGS_DESC@9895..99076938 L_PAREN@9895..9896 "("
6989 L_PAREN@9895..9896 "("6939 ARG@9896..9906
6990 ARG@9896..99066940 EXPR_APPLY@9896..9906
6991 EXPR_APPLY@9896..99066941 EXPR_INDEX@9896..9903
6992 EXPR_INDEX@9896..99036942 EXPR_LITERAL@9896..9897
6993 EXPR_LITERAL@9896..98976943 DOLLAR@9896..9897 "$"
6994 DOLLAR@9896..9897 "$"6944 DOT@9897..9898 "."
6995 DOT@9897..9898 "."6945 NAME@9898..9903
6996 NAME@9898..99036946 IDENT@9898..9903 "prune"
6997 IDENT@9898..9903 "prune"6947 ARGS_DESC@9903..9906
6998 ARGS_DESC@9903..99066948 L_PAREN@9903..9904 "("
6999 L_PAREN@9903..9904 "("6949 ARG@9904..9905
7000 ARG@9904..99056950 EXPR_VAR@9904..9905
7001 EXPR_VAR@9904..99056951 NAME@9904..9905
7002 NAME@9904..99056952 IDENT@9904..9905 "x"
7003 IDENT@9904..9905 "x"6953 R_PAREN@9905..9906 ")"
7004 R_PAREN@9905..9906 ")"6954 R_PAREN@9906..9907 ")"
7005 R_PAREN@9906..9907 ")"6955 R_BRACK@9907..9908 "]"
7006 R_BRACK@9907..9908 "]"6956 WHITESPACE@9908..9913 "\n "
7007 WHITESPACE@9908..9913 "\n "6957 ELSE_KW@9913..9917 "else"
7008 ELSE_KW@9913..9917 "else"6958 WHITESPACE@9917..9918 " "
7009 WHITESPACE@9917..9918 " "6959 FALSE_EXPR@9918..10058
7010 FALSE_EXPR@9918..100586960 EXPR_IF_THEN_ELSE@9918..10058
7011 EXPR_IF_THEN_ELSE@9918..100586961 IF_KW@9918..9920 "if"
7012 IF_KW@9918..9920 "if"6962 WHITESPACE@9920..9921 " "
7013 WHITESPACE@9920..9921 " "6963 EXPR_APPLY@9921..9936
7014 EXPR_APPLY@9921..99366964 EXPR_INDEX@9921..9933
7015 EXPR_INDEX@9921..99336965 EXPR_VAR@9921..9924
7016 EXPR_VAR@9921..99246966 NAME@9921..9924
7017 NAME@9921..99246967 IDENT@9921..9924 "std"
7018 IDENT@9921..9924 "std"6968 DOT@9924..9925 "."
7019 DOT@9924..9925 "."6969 NAME@9925..9933
7020 NAME@9925..99336970 IDENT@9925..9933 "isObject"
7021 IDENT@9925..9933 "isObject"6971 ARGS_DESC@9933..9936
7022 ARGS_DESC@9933..99366972 L_PAREN@9933..9934 "("
7023 L_PAREN@9933..9934 "("6973 ARG@9934..9935
7024 ARG@9934..99356974 EXPR_VAR@9934..9935
7025 EXPR_VAR@9934..99356975 NAME@9934..9935
7026 NAME@9934..99356976 IDENT@9934..9935 "a"
7027 IDENT@9934..9935 "a"6977 R_PAREN@9935..9936 ")"
7028 R_PAREN@9935..9936 ")"6978 WHITESPACE@9936..9937 " "
7029 WHITESPACE@9936..9937 " "6979 THEN_KW@9937..9941 "then"
7030 THEN_KW@9937..9941 "then"6980 WHITESPACE@9941..9942 " "
7031 WHITESPACE@9941..9942 " "6981 TRUE_EXPR@9942..10045
7032 TRUE_EXPR@9942..100456982 EXPR_OBJECT@9942..10045
7033 EXPR_OBJECT@9942..100456983 OBJ_BODY_COMP@9942..10045
7034 OBJ_BODY_MEMBER_LIST@9942..100456984 L_BRACE@9942..9943 "{"
7035 L_BRACE@9942..9943 "{"6985 WHITESPACE@9943..9950 "\n "
7036 WHITESPACE@9943..9950 "\n "6986 MEMBER_FIELD_NORMAL@9950..9968
7037 MEMBER_FIELD@9950..100396987 FIELD_NAME_DYNAMIC@9950..9953
7038 FIELD_NORMAL@9950..99686988 L_BRACK@9950..9951 "["
7039 FIELD_NAME_DYNAMIC@9950..99536989 EXPR_VAR@9951..9952
7040 L_BRACK@9950..9951 "["6990 NAME@9951..9952
7041 EXPR_VAR@9951..99526991 IDENT@9951..9952 "x"
7042 NAME@9951..99526992 R_BRACK@9952..9953 "]"
7043 IDENT@9951..9952 "x"6993 COLON@9953..9954 ":"
7044 R_BRACK@9952..9953 "]"6994 WHITESPACE@9954..9955 " "
7045 COLON@9953..9954 ":"6995 EXPR_APPLY@9955..9968
7046 WHITESPACE@9954..9955 " "6996 EXPR_INDEX@9955..9962
7047 EXPR_APPLY@9955..99686997 EXPR_LITERAL@9955..9956
7048 EXPR_INDEX@9955..99626998 DOLLAR@9955..9956 "$"
7049 EXPR_LITERAL@9955..99566999 DOT@9956..9957 "."
7050 DOLLAR@9955..9956 "$"7000 NAME@9957..9962
7051 DOT@9956..9957 "."7001 IDENT@9957..9962 "prune"
7052 NAME@9957..99627002 ARGS_DESC@9962..9968
7053 IDENT@9957..9962 "prune"7003 L_PAREN@9962..9963 "("
7054 ARGS_DESC@9962..99687004 ARG@9963..9967
7055 L_PAREN@9962..9963 "("7005 EXPR_INDEX_EXPR@9963..9967
7056 ARG@9963..99677006 LHS_EXPR@9963..9964
7057 EXPR_INDEX_EXPR@9963..99677007 EXPR_VAR@9963..9964
7058 LHS_EXPR@9963..99647008 NAME@9963..9964
7059 EXPR_VAR@9963..99647009 IDENT@9963..9964 "a"
7060 NAME@9963..99647010 L_BRACK@9964..9965 "["
7061 IDENT@9963..9964 "a"7011 EXPR_VAR@9965..9966
7062 L_BRACK@9964..9965 "["7012 NAME@9965..9966
7063 EXPR_VAR@9965..99667013 IDENT@9965..9966 "x"
7064 NAME@9965..99667014 R_BRACK@9966..9967 "]"
7065 IDENT@9965..9966 "x"7015 R_PAREN@9967..9968 ")"
7066 R_BRACK@9966..9967 "]"7016 WHITESPACE@9968..9975 "\n "
7067 R_PAREN@9967..9968 ")"7017 FOR_SPEC@9975..10003
7068 WHITESPACE@9968..9975 "\n "7018 FOR_KW@9975..9978 "for"
7069 FOR_SPEC@9975..100037019 WHITESPACE@9978..9979 " "
7070 FOR_KW@9975..9978 "for"7020 NAME@9979..9980
7071 WHITESPACE@9978..9979 " "7021 IDENT@9979..9980 "x"
7072 NAME@9979..99807022 WHITESPACE@9980..9981 " "
7073 IDENT@9979..9980 "x"7023 IN_KW@9981..9983 "in"
7074 WHITESPACE@9980..9981 " "7024 WHITESPACE@9983..9984 " "
7075 IN_KW@9981..9983 "in"7025 EXPR_APPLY@9984..10003
7076 WHITESPACE@9983..9984 " "7026 EXPR_INDEX@9984..10000
7077 EXPR_APPLY@9984..100037027 EXPR_VAR@9984..9987
7078 EXPR_INDEX@9984..100007028 NAME@9984..9987
7079 EXPR_VAR@9984..99877029 IDENT@9984..9987 "std"
7080 NAME@9984..99877030 DOT@9987..9988 "."
7081 IDENT@9984..9987 "std"7031 NAME@9988..10000
7082 DOT@9987..9988 "."7032 IDENT@9988..10000 "objectFields"
7083 NAME@9988..100007033 ARGS_DESC@10000..10003
7084 IDENT@9988..10000 "objectFields"7034 L_PAREN@10000..10001 "("
7085 ARGS_DESC@10000..100037035 ARG@10001..10002
7086 L_PAREN@10000..10001 "("7036 EXPR_VAR@10001..10002
7087 ARG@10001..100027037 NAME@10001..10002
7088 EXPR_VAR@10001..100027038 IDENT@10001..10002 "a"
7089 NAME@10001..100027039 R_PAREN@10002..10003 ")"
7090 IDENT@10001..10002 "a"7040 WHITESPACE@10003..10010 "\n "
7091 R_PAREN@10002..10003 ")"7041 IF_SPEC@10010..10039
7092 WHITESPACE@10003..10010 "\n "7042 IF_KW@10010..10012 "if"
7093 IF_SPEC@10010..100397043 WHITESPACE@10012..10013 " "
7094 IF_KW@10010..10012 "if"7044 EXPR_APPLY@10013..10039
7095 WHITESPACE@10012..10013 " "7045 EXPR_VAR@10013..10022
7096 EXPR_APPLY@10013..100397046 NAME@10013..10022
7097 EXPR_VAR@10013..100227047 IDENT@10013..10022 "isContent"
7098 NAME@10013..100227048 ARGS_DESC@10022..10039
7099 IDENT@10013..10022 "isContent"7049 L_PAREN@10022..10023 "("
7100 ARGS_DESC@10022..100397050 ARG@10023..10038
7101 L_PAREN@10022..10023 "("7051 EXPR_APPLY@10023..10038
7102 ARG@10023..100387052 EXPR_INDEX@10023..10032
7103 EXPR_APPLY@10023..100387053 EXPR_VAR@10023..10026
7104 EXPR_INDEX@10023..100327054 NAME@10023..10026
7105 EXPR_VAR@10023..100267055 IDENT@10023..10026 "std"
7106 NAME@10023..100267056 DOT@10026..10027 "."
7107 IDENT@10023..10026 "std"7057 NAME@10027..10032
7108 DOT@10026..10027 "."7058 IDENT@10027..10032 "prune"
7109 NAME@10027..100327059 ARGS_DESC@10032..10038
7110 IDENT@10027..10032 "prune"7060 L_PAREN@10032..10033 "("
7111 ARGS_DESC@10032..100387061 ARG@10033..10037
7112 L_PAREN@10032..10033 "("7062 EXPR_INDEX_EXPR@10033..10037
7113 ARG@10033..100377063 LHS_EXPR@10033..10034
7114 EXPR_INDEX_EXPR@10033..100377064 EXPR_VAR@10033..10034
7115 LHS_EXPR@10033..100347065 NAME@10033..10034
7116 EXPR_VAR@10033..100347066 IDENT@10033..10034 "a"
7117 NAME@10033..100347067 L_BRACK@10034..10035 "["
7118 IDENT@10033..10034 "a"7068 EXPR_VAR@10035..10036
7119 L_BRACK@10034..10035 "["7069 NAME@10035..10036
7120 EXPR_VAR@10035..100367070 IDENT@10035..10036 "x"
7121 NAME@10035..100367071 R_BRACK@10036..10037 "]"
7122 IDENT@10035..10036 "x"7072 R_PAREN@10037..10038 ")"
7123 R_BRACK@10036..10037 "]"7073 R_PAREN@10038..10039 ")"
7124 R_PAREN@10037..10038 ")"7074 WHITESPACE@10039..10044 "\n "
7125 R_PAREN@10038..10039 ")"7075 R_BRACE@10044..10045 "}"
7126 WHITESPACE@10039..10044 "\n "7076 WHITESPACE@10045..10046 " "
7127 R_BRACE@10044..10045 "}"7077 ELSE_KW@10046..10050 "else"
7128 WHITESPACE@10045..10046 " "7078 WHITESPACE@10050..10057 "\n "
7129 ELSE_KW@10046..10050 "else"7079 FALSE_EXPR@10057..10058
7130 WHITESPACE@10050..10057 "\n "7080 EXPR_VAR@10057..10058
7131 FALSE_EXPR@10057..100587081 NAME@10057..10058
7132 EXPR_VAR@10057..100587082 IDENT@10057..10058 "a"
7133 NAME@10057..10058
7134 IDENT@10057..10058 "a"
7135 COMMA@10058..10059 ","7083 COMMA@10058..10059 ","
7136 WHITESPACE@10059..10063 "\n\n "7084 WHITESPACE@10059..10063 "\n\n "
7137 MEMBER_FIELD@10063..102787085 MEMBER_FIELD_METHOD@10063..10278
7138 FIELD_METHOD@10063..102787086 FIELD_NAME_FIXED@10063..10067
7139 FIELD_NAME_FIXED@10063..100677087 NAME@10063..10067
7140 NAME@10063..100677088 IDENT@10063..10067 "find"
7141 IDENT@10063..10067 "find"7089 PARAMS_DESC@10067..10079
7142 PARAMS_DESC@10067..100797090 L_PAREN@10067..10068 "("
7143 L_PAREN@10067..10068 "("7091 PARAM@10068..10073
7144 PARAM@10068..100737092 DESTRUCT_FULL@10068..10073
7145 DESTRUCT_FULL@10068..100737093 NAME@10068..10073
7146 NAME@10068..100737094 IDENT@10068..10073 "value"
7147 IDENT@10068..10073 "value"7095 COMMA@10073..10074 ","
7148 COMMA@10073..10074 ","7096 WHITESPACE@10074..10075 " "
7149 WHITESPACE@10074..10075 " "7097 PARAM@10075..10078
7150 PARAM@10075..100787098 DESTRUCT_FULL@10075..10078
7151 DESTRUCT_FULL@10075..100787099 NAME@10075..10078
7152 NAME@10075..100787100 IDENT@10075..10078 "arr"
7153 IDENT@10075..10078 "arr"7101 R_PAREN@10078..10079 ")"
7154 R_PAREN@10078..10079 ")"7102 COLONCOLON@10079..10081 "::"
7155 COLONCOLON@10079..10081 "::"7103 WHITESPACE@10081..10086 "\n "
7156 WHITESPACE@10081..10086 "\n "7104 EXPR_IF_THEN_ELSE@10086..10278
7157 EXPR_IF_THEN_ELSE@10086..102787105 IF_KW@10086..10088 "if"
7158 IF_KW@10086..10088 "if"7106 WHITESPACE@10088..10089 " "
7159 WHITESPACE@10088..10089 " "7107 EXPR_UNARY@10089..10106
7160 EXPR_UNARY@10089..101067108 NOT@10089..10090 "!"
7161 NOT@10089..10090 "!"7109 EXPR_APPLY@10090..10106
7162 EXPR_APPLY@10090..101067110 EXPR_INDEX@10090..10101
7163 EXPR_INDEX@10090..101017111 EXPR_VAR@10090..10093
7164 EXPR_VAR@10090..100937112 NAME@10090..10093
7165 NAME@10090..100937113 IDENT@10090..10093 "std"
7166 IDENT@10090..10093 "std"7114 DOT@10093..10094 "."
7167 DOT@10093..10094 "."7115 NAME@10094..10101
7168 NAME@10094..101017116 IDENT@10094..10101 "isArray"
7169 IDENT@10094..10101 "isArray"7117 ARGS_DESC@10101..10106
7170 ARGS_DESC@10101..101067118 L_PAREN@10101..10102 "("
7171 L_PAREN@10101..10102 "("7119 ARG@10102..10105
7172 ARG@10102..101057120 EXPR_VAR@10102..10105
7173 EXPR_VAR@10102..101057121 NAME@10102..10105
7174 NAME@10102..101057122 IDENT@10102..10105 "arr"
7175 IDENT@10102..10105 "arr"7123 R_PAREN@10105..10106 ")"
7176 R_PAREN@10105..10106 ")"7124 WHITESPACE@10106..10107 " "
7177 WHITESPACE@10106..10107 " "7125 THEN_KW@10107..10111 "then"
7178 THEN_KW@10107..10111 "then"7126 WHITESPACE@10111..10118 "\n "
7179 WHITESPACE@10111..10118 "\n "7127 TRUE_EXPR@10118..10188
7180 TRUE_EXPR@10118..101887128 EXPR_ERROR@10118..10188
7181 EXPR_ERROR@10118..101887129 ERROR_KW@10118..10123 "error"
7182 ERROR_KW@10118..10123 "error"7130 WHITESPACE@10123..10124 " "
7183 WHITESPACE@10123..10124 " "7131 EXPR_BINARY@10124..10188
7184 EXPR_BINARY@10124..101887132 LHS_EXPR@10124..10172
7185 LHS_EXPR@10124..101727133 EXPR_STRING@10124..10172
7186 EXPR_STRING@10124..101727134 STRING_SINGLE@10124..10172 "'find second paramete ..."
7187 STRING_SINGLE@10124..10172 "'find second paramete ..."7135 WHITESPACE@10172..10173 " "
7188 WHITESPACE@10172..10173 " "7136 PLUS@10173..10174 "+"
7189 PLUS@10173..10174 "+"7137 WHITESPACE@10174..10175 " "
7190 WHITESPACE@10174..10175 " "7138 EXPR_APPLY@10175..10188
7191 EXPR_APPLY@10175..101887139 EXPR_INDEX@10175..10183
7192 EXPR_INDEX@10175..101837140 EXPR_VAR@10175..10178
7193 EXPR_VAR@10175..101787141 NAME@10175..10178
7194 NAME@10175..101787142 IDENT@10175..10178 "std"
7195 IDENT@10175..10178 "std"7143 DOT@10178..10179 "."
7196 DOT@10178..10179 "."7144 NAME@10179..10183
7197 NAME@10179..101837145 IDENT@10179..10183 "type"
7198 IDENT@10179..10183 "type"7146 ARGS_DESC@10183..10188
7199 ARGS_DESC@10183..101887147 L_PAREN@10183..10184 "("
7200 L_PAREN@10183..10184 "("7148 ARG@10184..10187
7201 ARG@10184..101877149 EXPR_VAR@10184..10187
7202 EXPR_VAR@10184..101877150 NAME@10184..10187
7203 NAME@10184..101877151 IDENT@10184..10187 "arr"
7204 IDENT@10184..10187 "arr"7152 R_PAREN@10187..10188 ")"
7205 R_PAREN@10187..10188 ")"7153 WHITESPACE@10188..10193 "\n "
7206 WHITESPACE@10188..10193 "\n "7154 ELSE_KW@10193..10197 "else"
7207 ELSE_KW@10193..10197 "else"7155 WHITESPACE@10197..10204 "\n "
7208 WHITESPACE@10197..10204 "\n "7156 FALSE_EXPR@10204..10278
7209 FALSE_EXPR@10204..102787157 EXPR_APPLY@10204..10278
7210 EXPR_APPLY@10204..102787158 EXPR_INDEX@10204..10214
7211 EXPR_INDEX@10204..102147159 EXPR_VAR@10204..10207
7212 EXPR_VAR@10204..102077160 NAME@10204..10207
7213 NAME@10204..102077161 IDENT@10204..10207 "std"
7214 IDENT@10204..10207 "std"7162 DOT@10207..10208 "."
7215 DOT@10207..10208 "."7163 NAME@10208..10214
7216 NAME@10208..102147164 IDENT@10208..10214 "filter"
7217 IDENT@10208..10214 "filter"7165 ARGS_DESC@10214..10278
7218 ARGS_DESC@10214..102787166 L_PAREN@10214..10215 "("
7219 L_PAREN@10214..10215 "("7167 ARG@10215..10242
7220 ARG@10215..102427168 EXPR_FUNCTION@10215..10242
7221 EXPR_FUNCTION@10215..102427169 FUNCTION_KW@10215..10223 "function"
7222 FUNCTION_KW@10215..10223 "function"7170 PARAMS_DESC@10223..10226
7223 PARAMS_DESC@10223..102267171 L_PAREN@10223..10224 "("
7224 L_PAREN@10223..10224 "("7172 PARAM@10224..10225
7225 PARAM@10224..102257173 DESTRUCT_FULL@10224..10225
7226 DESTRUCT_FULL@10224..102257174 NAME@10224..10225
7227 NAME@10224..102257175 IDENT@10224..10225 "i"
7228 IDENT@10224..10225 "i"7176 R_PAREN@10225..10226 ")"
7229 R_PAREN@10225..10226 ")"7177 WHITESPACE@10226..10227 " "
7230 WHITESPACE@10226..10227 " "7178 EXPR_BINARY@10227..10242
7231 EXPR_BINARY@10227..102427179 LHS_EXPR@10227..10233
7232 LHS_EXPR@10227..102337180 EXPR_INDEX_EXPR@10227..10233
7233 EXPR_INDEX_EXPR@10227..102337181 LHS_EXPR@10227..10230
7234 LHS_EXPR@10227..102307182 EXPR_VAR@10227..10230
7235 EXPR_VAR@10227..102307183 NAME@10227..10230
7236 NAME@10227..102307184 IDENT@10227..10230 "arr"
7237 IDENT@10227..10230 "arr"7185 L_BRACK@10230..10231 "["
7238 L_BRACK@10230..10231 "["7186 EXPR_VAR@10231..10232
7239 EXPR_VAR@10231..102327187 NAME@10231..10232
7240 NAME@10231..102327188 IDENT@10231..10232 "i"
7241 IDENT@10231..10232 "i"7189 R_BRACK@10232..10233 "]"
7242 R_BRACK@10232..10233 "]"7190 WHITESPACE@10233..10234 " "
7243 WHITESPACE@10233..10234 " "7191 EQ@10234..10236 "=="
7244 EQ@10234..10236 "=="7192 WHITESPACE@10236..10237 " "
7245 WHITESPACE@10236..10237 " "7193 EXPR_VAR@10237..10242
7246 EXPR_VAR@10237..102427194 NAME@10237..10242
7247 NAME@10237..102427195 IDENT@10237..10242 "value"
7248 IDENT@10237..10242 "value"7196 COMMA@10242..10243 ","
7249 COMMA@10242..10243 ","7197 WHITESPACE@10243..10244 " "
7250 WHITESPACE@10243..10244 " "7198 ARG@10244..10277
7251 ARG@10244..102777199 EXPR_APPLY@10244..10277
7252 EXPR_APPLY@10244..102777200 EXPR_INDEX@10244..10253
7253 EXPR_INDEX@10244..102537201 EXPR_VAR@10244..10247
7254 EXPR_VAR@10244..102477202 NAME@10244..10247
7255 NAME@10244..102477203 IDENT@10244..10247 "std"
7256 IDENT@10244..10247 "std"7204 DOT@10247..10248 "."
7257 DOT@10247..10248 "."7205 NAME@10248..10253
7258 NAME@10248..102537206 IDENT@10248..10253 "range"
7259 IDENT@10248..10253 "range"7207 ARGS_DESC@10253..10277
7260 ARGS_DESC@10253..102777208 L_PAREN@10253..10254 "("
7261 L_PAREN@10253..10254 "("7209 ARG@10254..10255
7262 ARG@10254..102557210 EXPR_NUMBER@10254..10255
7263 EXPR_NUMBER@10254..102557211 FLOAT@10254..10255 "0"
7264 FLOAT@10254..10255 "0"7212 COMMA@10255..10256 ","
7265 COMMA@10255..10256 ","7213 WHITESPACE@10256..10257 " "
7266 WHITESPACE@10256..10257 " "7214 ARG@10257..10276
7267 ARG@10257..102767215 EXPR_BINARY@10257..10276
7268 EXPR_BINARY@10257..102767216 LHS_EXPR@10257..10272
7269 LHS_EXPR@10257..102727217 EXPR_APPLY@10257..10272
7270 EXPR_APPLY@10257..102727218 EXPR_INDEX@10257..10267
7271 EXPR_INDEX@10257..102677219 EXPR_VAR@10257..10260
7272 EXPR_VAR@10257..102607220 NAME@10257..10260
7273 NAME@10257..102607221 IDENT@10257..10260 "std"
7274 IDENT@10257..10260 "std"7222 DOT@10260..10261 "."
7275 DOT@10260..10261 "."7223 NAME@10261..10267
7276 NAME@10261..102677224 IDENT@10261..10267 "length"
7277 IDENT@10261..10267 "length"7225 ARGS_DESC@10267..10272
7278 ARGS_DESC@10267..102727226 L_PAREN@10267..10268 "("
7279 L_PAREN@10267..10268 "("7227 ARG@10268..10271
7280 ARG@10268..102717228 EXPR_VAR@10268..10271
7281 EXPR_VAR@10268..102717229 NAME@10268..10271
7282 NAME@10268..102717230 IDENT@10268..10271 "arr"
7283 IDENT@10268..10271 "arr"7231 R_PAREN@10271..10272 ")"
7284 R_PAREN@10271..10272 ")"7232 WHITESPACE@10272..10273 " "
7285 WHITESPACE@10272..10273 " "7233 MINUS@10273..10274 "-"
7286 MINUS@10273..10274 "-"7234 WHITESPACE@10274..10275 " "
7287 WHITESPACE@10274..10275 " "7235 EXPR_NUMBER@10275..10276
7288 EXPR_NUMBER@10275..102767236 FLOAT@10275..10276 "1"
7289 FLOAT@10275..10276 "1"7237 R_PAREN@10276..10277 ")"
7290 R_PAREN@10276..10277 ")"7238 R_PAREN@10277..10278 ")"
7291 R_PAREN@10277..10278 ")"
7292 COMMA@10278..10279 ","7239 COMMA@10278..10279 ","
7293 WHITESPACE@10279..10280 "\n"7240 WHITESPACE@10279..10280 "\n"
7294 R_BRACE@10280..10281 "}"7241 R_BRACE@10280..10281 "}"
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__wrong_field_end.snapdiffbeforeafterboth
2source: crates/jrsonnet-rowan-parser/src/tests.rs2source: crates/jrsonnet-rowan-parser/src/tests.rs
3expression: "{\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..18
6 EXPR_OBJECT@0..86 EXPR_OBJECT@0..17
7 OBJ_BODY_MEMBER_LIST@0..87 OBJ_BODY_MEMBER_LIST@0..17
8 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..7
11 FIELD_NORMAL@3..711 FIELD_NAME_FIXED@3..4
12 FIELD_NAME_FIXED@3..4
13 NAME@3..412 NAME@3..4
14 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..7
18 FLOAT@6..7 "1"17 FLOAT@6..7 "1"
19 ERROR_UNEXPECTED_TOKEN@7..818 ERROR_UNEXPECTED_TOKEN@7..8
20 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..14
22 FIELD_NAME_FIXED@10..11
23 IDENT@10..11 "b"23 NAME@10..11
24 IDENT@10..11 "b"
25 COLON@11..12 ":"
26 WHITESPACE@12..13 " "
27 EXPR_NUMBER@13..14
28 FLOAT@13..14 "2"
29 ERROR_UNEXPECTED_TOKEN@14..15
30 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 error
29 ,-[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 SEMI
34 3 | b: 2;44 3 | b: 2;
35 : |45 : |
36 : `-- expected EOF, found IDENT46 : `-- expected comma, found SEMI
37 4 | }47 4 | }
38 `----48 `----
3949
modifiedcrates/jrsonnet-rowan-parser/src/tests.rsdiffbeforeafterboth
118 1118 1
119 "#119 "#
120120
121 array_comp => r#"
122 [a for a in [1, 2, 3]]
123 "#
124 array_comp_incompatible_with_multiple_elems => r#"
125 [a for a in [1, 2, 3], b]
126 "#
127121
128 no_rhs => r#"122 no_rhs => r#"
129 a +123 a +
186 local * = 1;180 local * = 1;
187 a181 a
188 "182 "
183 arr_compspec => r#"
184 [a for a in [1, 2, 3]]
185 "#
186 arr_compspec_comma => "
187 [a, for a in [1, 2, 3]]
188 "
189 arr_compspec_no_elems => "
190 [for a in [1, 2, 3]]
191 "
192 arr_compspec_incompatible_with_multiple_elems => r#"
193 [a for a in [1, 2, 3], b]
194 "#
195 arr_compspec_incompatible_with_multiple_elems_w => r#"
196 [a, b, for a in [1, 2, 3], c]
197 "#
198
199 obj_compspec => r#"
200 {a:1 for a in [1, 2, 3]}
201 "#
202 obj_compspec_comma => "
203 {a:1, for a in [1, 2, 3]}
204 "
205 obj_compspec_no_elems => "
206 {for a in [1, 2, 3]}
207 "
208 obj_compspec_incompatible_with_multiple_elems => r#"
209 {a:1 for a in [1, 2, 3], b:1}
210 "#
211 obj_compspec_incompatible_with_multiple_elems_w => r#"
212 {a:1, b:1, for a in [1, 2, 3], c:1}
213 "#
214
215 local_method => r#"
216 local
217 a(x) = x,
218 a = function(x) x,
219 ; c
220 "#
221 obj_method => r#"
222 {
223 a(x): x,
224 a: function(x) x,
225 }
226 "#
189);227);
190228
191#[test]229#[test]
modifiedcrates/jrsonnet-rowan-parser/src/token_set.rsdiffbeforeafterboth
1use std::fmt;
2
1use crate::SyntaxKind;3use crate::SyntaxKind;
24
21 pub const fn union(self, other: SyntaxKindSet) -> SyntaxKindSet {23 pub const fn union(self, other: SyntaxKindSet) -> SyntaxKindSet {
22 SyntaxKindSet(self.0 | other.0)24 SyntaxKindSet(self.0 | other.0)
23 }25 }
26 pub const fn with(self, kind: SyntaxKind) -> SyntaxKindSet {
27 SyntaxKindSet(self.0 | mask(kind))
28 }
2429
25 pub const fn contains(&self, kind: SyntaxKind) -> bool {30 pub const fn contains(&self, kind: SyntaxKind) -> bool {
26 self.0 & mask(kind) != 031 self.0 & mask(kind) != 0
27 }32 }
28}33}
34impl fmt::Display for SyntaxKindSet {
35 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
36 let mut v = self.0;
37 let mut variants = <Vec<SyntaxKind>>::new();
38 for i in 0..128 {
39 if v & 1 == 1 {
40 variants.push(SyntaxKind::from_raw(i))
41 }
42 v >>= 1;
43 if v == 0 {
44 break;
45 }
46 }
47 for (i, v) in variants.iter().enumerate() {
48 if i == 0 {
49 } else if i == variants.len() - 1 {
50 write!(f, " or ")?;
51 } else {
52 write!(f, ", ")?;
53 }
54 write!(f, "{v:?}")?;
55 }
56 Ok(())
57 }
58}
59impl fmt::Debug for SyntaxKindSet {
60 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
61 let mut v = self.0;
62 let mut variants = <Vec<SyntaxKind>>::new();
63 for i in 0..128 {
64 if v & 1 == 1 {
65 variants.push(SyntaxKind::from_raw(i))
66 }
67 v >>= 1;
68 if v == 0 {
69 break;
70 }
71 }
72 f.debug_tuple("SyntaxKindSet").field(&variants).finish()
73 }
74}
2975
30const fn mask(kind: SyntaxKind) -> u128 {76const fn mask(kind: SyntaxKind) -> u128 {
31 1u128 << (kind as u128)77 1u128 << (kind as u128)