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

difftreelog

feat try to parse locals as statements, not as expressions

Yaroslav Bolyukin2023-09-04parent: #e17e60d.patch.diff
in: master

13 files changed

modifiedcrates/jrsonnet-rowan-parser/jsonnet.ungramdiffbeforeafterboth
6565
66ExprVar =66ExprVar =
67 name:Name67 name:Name
68ExprLocal =
69 'local'
70 (Bind (',' Bind)* ','?)
71 ';'
72 Expr
7368
74ExprIfThenElse =69ExprIfThenElse =
75 'if'70 'if'
91ExprError =86ExprError =
92 'error'87 'error'
93 Expr88 Expr
89
90StmtLocal =
91 'local'
92 (Bind (',' Bind)* ','?)
93 ';'
9494
95Expr =95Expr =
96 StmtLocal*
97 ExprBase
98ExprBase =
96 ExprBinary99 ExprBinary
97| ExprUnary100| ExprUnary
98| ExprSlice101| ExprSlice
109| ExprArrayComp112| ExprArrayComp
110| ExprImport113| ExprImport
111| ExprVar114| ExprVar
112| ExprLocal
113| ExprIfThenElse115| ExprIfThenElse
114| ExprFunction116| ExprFunction
115| ExprAssert117| ExprAssert
modifiedcrates/jrsonnet-rowan-parser/src/generated/nodes.rsdiffbeforeafterboth
18 }18 }
19}19}
20
21#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22pub struct Expr {
23 pub(crate) syntax: SyntaxNode,
24}
25impl Expr {
26 pub fn stmt_locals(&self) -> AstChildren<StmtLocal> {
27 support::children(&self.syntax)
28 }
29 pub fn expr_base(&self) -> Option<ExprBase> {
30 support::child(&self.syntax)
31 }
32}
2033
21#[derive(Debug, Clone, PartialEq, Eq, Hash)]34#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22pub struct ExprBinary {35pub struct ExprBinary {
302 }315 }
303}316}
304
305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
306pub struct ExprLocal {
307 pub(crate) syntax: SyntaxNode,
308}
309impl ExprLocal {
310 pub fn local_kw_token(&self) -> Option<SyntaxToken> {
311 support::token(&self.syntax, T![local])
312 }
313 pub fn binds(&self) -> AstChildren<Bind> {
314 support::children(&self.syntax)
315 }
316 pub fn semi_token(&self) -> Option<SyntaxToken> {
317 support::token(&self.syntax, T![;])
318 }
319 pub fn expr(&self) -> Option<Expr> {
320 support::child(&self.syntax)
321 }
322}
323317
324#[derive(Debug, Clone, PartialEq, Eq, Hash)]318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
325pub struct ExprIfThenElse {319pub struct ExprIfThenElse {
452 }446 }
453}447}
448
449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
450pub struct StmtLocal {
451 pub(crate) syntax: SyntaxNode,
452}
453impl StmtLocal {
454 pub fn local_kw_token(&self) -> Option<SyntaxToken> {
455 support::token(&self.syntax, T![local])
456 }
457 pub fn binds(&self) -> AstChildren<Bind> {
458 support::children(&self.syntax)
459 }
460 pub fn semi_token(&self) -> Option<SyntaxToken> {
461 support::token(&self.syntax, T![;])
462 }
463}
454464
455#[derive(Debug, Clone, PartialEq, Eq, Hash)]465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
456pub struct SliceDescEnd {466pub struct SliceDescEnd {
809 }819 }
810}820}
811
812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
813pub enum Expr {
814 ExprBinary(ExprBinary),
815 ExprUnary(ExprUnary),
816 ExprSlice(ExprSlice),
817 ExprIndex(ExprIndex),
818 ExprIndexExpr(ExprIndexExpr),
819 ExprApply(ExprApply),
820 ExprObjExtend(ExprObjExtend),
821 ExprParened(ExprParened),
822 ExprString(ExprString),
823 ExprNumber(ExprNumber),
824 ExprLiteral(ExprLiteral),
825 ExprArray(ExprArray),
826 ExprObject(ExprObject),
827 ExprArrayComp(ExprArrayComp),
828 ExprImport(ExprImport),
829 ExprVar(ExprVar),
830 ExprLocal(ExprLocal),
831 ExprIfThenElse(ExprIfThenElse),
832 ExprFunction(ExprFunction),
833 ExprAssert(ExprAssert),
834 ExprError(ExprError),
835}
836821
837#[derive(Debug, Clone, PartialEq, Eq, Hash)]822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
838pub enum ObjBody {823pub enum ObjBody {
852 BindFunction(BindFunction),837 BindFunction(BindFunction),
853}838}
839
840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
841pub enum ExprBase {
842 ExprBinary(ExprBinary),
843 ExprUnary(ExprUnary),
844 ExprSlice(ExprSlice),
845 ExprIndex(ExprIndex),
846 ExprIndexExpr(ExprIndexExpr),
847 ExprApply(ExprApply),
848 ExprObjExtend(ExprObjExtend),
849 ExprParened(ExprParened),
850 ExprString(ExprString),
851 ExprNumber(ExprNumber),
852 ExprLiteral(ExprLiteral),
853 ExprArray(ExprArray),
854 ExprObject(ExprObject),
855 ExprArrayComp(ExprArrayComp),
856 ExprImport(ExprImport),
857 ExprVar(ExprVar),
858 ExprIfThenElse(ExprIfThenElse),
859 ExprFunction(ExprFunction),
860 ExprAssert(ExprAssert),
861 ExprError(ExprError),
862}
854863
855#[derive(Debug, Clone, PartialEq, Eq, Hash)]864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
856pub enum MemberComp {865pub enum MemberComp {
1054 &self.syntax1063 &self.syntax
1055 }1064 }
1056}1065}
1066impl AstNode for Expr {
1067 fn can_cast(kind: SyntaxKind) -> bool {
1068 kind == EXPR
1069 }
1070 fn cast(syntax: SyntaxNode) -> Option<Self> {
1071 if Self::can_cast(syntax.kind()) {
1072 Some(Self { syntax })
1073 } else {
1074 None
1075 }
1076 }
1077 fn syntax(&self) -> &SyntaxNode {
1078 &self.syntax
1079 }
1080}
1057impl AstNode for ExprBinary {1081impl AstNode for ExprBinary {
1058 fn can_cast(kind: SyntaxKind) -> bool {1082 fn can_cast(kind: SyntaxKind) -> bool {
1059 kind == EXPR_BINARY1083 kind == EXPR_BINARY
1354 &self.syntax1378 &self.syntax
1355 }1379 }
1356}1380}
1357impl AstNode for ExprLocal {
1358 fn can_cast(kind: SyntaxKind) -> bool {
1359 kind == EXPR_LOCAL
1360 }
1361 fn cast(syntax: SyntaxNode) -> Option<Self> {
1362 if Self::can_cast(syntax.kind()) {
1363 Some(Self { syntax })
1364 } else {
1365 None
1366 }
1367 }
1368 fn syntax(&self) -> &SyntaxNode {
1369 &self.syntax
1370 }
1371}
1372impl AstNode for ExprIfThenElse {1381impl AstNode for ExprIfThenElse {
1373 fn can_cast(kind: SyntaxKind) -> bool {1382 fn can_cast(kind: SyntaxKind) -> bool {
1374 kind == EXPR_IF_THEN_ELSE1383 kind == EXPR_IF_THEN_ELSE
1489 &self.syntax1498 &self.syntax
1490 }1499 }
1491}1500}
1501impl AstNode for StmtLocal {
1502 fn can_cast(kind: SyntaxKind) -> bool {
1503 kind == STMT_LOCAL
1504 }
1505 fn cast(syntax: SyntaxNode) -> Option<Self> {
1506 if Self::can_cast(syntax.kind()) {
1507 Some(Self { syntax })
1508 } else {
1509 None
1510 }
1511 }
1512 fn syntax(&self) -> &SyntaxNode {
1513 &self.syntax
1514 }
1515}
1492impl AstNode for SliceDescEnd {1516impl AstNode for SliceDescEnd {
1493 fn can_cast(kind: SyntaxKind) -> bool {1517 fn can_cast(kind: SyntaxKind) -> bool {
1494 kind == SLICE_DESC_END1518 kind == SLICE_DESC_END
1849 &self.syntax1873 &self.syntax
1850 }1874 }
1851}1875}
1852impl From<ExprBinary> for Expr {
1853 fn from(node: ExprBinary) -> Expr {
1854 Expr::ExprBinary(node)
1855 }
1856}
1857impl From<ExprUnary> for Expr {
1858 fn from(node: ExprUnary) -> Expr {
1859 Expr::ExprUnary(node)
1860 }
1861}
1862impl From<ExprSlice> for Expr {
1863 fn from(node: ExprSlice) -> Expr {
1864 Expr::ExprSlice(node)
1865 }
1866}
1867impl From<ExprIndex> for Expr {
1868 fn from(node: ExprIndex) -> Expr {
1869 Expr::ExprIndex(node)
1870 }
1871}
1872impl From<ExprIndexExpr> for Expr {
1873 fn from(node: ExprIndexExpr) -> Expr {
1874 Expr::ExprIndexExpr(node)
1875 }
1876}
1877impl From<ExprApply> for Expr {
1878 fn from(node: ExprApply) -> Expr {
1879 Expr::ExprApply(node)
1880 }
1881}
1882impl From<ExprObjExtend> for Expr {
1883 fn from(node: ExprObjExtend) -> Expr {
1884 Expr::ExprObjExtend(node)
1885 }
1886}
1887impl From<ExprParened> for Expr {
1888 fn from(node: ExprParened) -> Expr {
1889 Expr::ExprParened(node)
1890 }
1891}
1892impl From<ExprString> for Expr {
1893 fn from(node: ExprString) -> Expr {
1894 Expr::ExprString(node)
1895 }
1896}
1897impl From<ExprNumber> for Expr {
1898 fn from(node: ExprNumber) -> Expr {
1899 Expr::ExprNumber(node)
1900 }
1901}
1902impl From<ExprLiteral> for Expr {
1903 fn from(node: ExprLiteral) -> Expr {
1904 Expr::ExprLiteral(node)
1905 }
1906}
1907impl From<ExprArray> for Expr {
1908 fn from(node: ExprArray) -> Expr {
1909 Expr::ExprArray(node)
1910 }
1911}
1912impl From<ExprObject> for Expr {
1913 fn from(node: ExprObject) -> Expr {
1914 Expr::ExprObject(node)
1915 }
1916}
1917impl From<ExprArrayComp> for Expr {
1918 fn from(node: ExprArrayComp) -> Expr {
1919 Expr::ExprArrayComp(node)
1920 }
1921}
1922impl From<ExprImport> for Expr {
1923 fn from(node: ExprImport) -> Expr {
1924 Expr::ExprImport(node)
1925 }
1926}
1927impl From<ExprVar> for Expr {
1928 fn from(node: ExprVar) -> Expr {
1929 Expr::ExprVar(node)
1930 }
1931}
1932impl From<ExprLocal> for Expr {
1933 fn from(node: ExprLocal) -> Expr {
1934 Expr::ExprLocal(node)
1935 }
1936}
1937impl From<ExprIfThenElse> for Expr {
1938 fn from(node: ExprIfThenElse) -> Expr {
1939 Expr::ExprIfThenElse(node)
1940 }
1941}
1942impl From<ExprFunction> for Expr {
1943 fn from(node: ExprFunction) -> Expr {
1944 Expr::ExprFunction(node)
1945 }
1946}
1947impl From<ExprAssert> for Expr {
1948 fn from(node: ExprAssert) -> Expr {
1949 Expr::ExprAssert(node)
1950 }
1951}
1952impl From<ExprError> for Expr {
1953 fn from(node: ExprError) -> Expr {
1954 Expr::ExprError(node)
1955 }
1956}
1957impl AstNode for Expr {
1958 fn can_cast(kind: SyntaxKind) -> bool {
1959 match kind {
1960 EXPR_BINARY | EXPR_UNARY | EXPR_SLICE | EXPR_INDEX | EXPR_INDEX_EXPR | EXPR_APPLY
1961 | EXPR_OBJ_EXTEND | EXPR_PARENED | EXPR_STRING | EXPR_NUMBER | EXPR_LITERAL
1962 | EXPR_ARRAY | EXPR_OBJECT | EXPR_ARRAY_COMP | EXPR_IMPORT | EXPR_VAR | EXPR_LOCAL
1963 | EXPR_IF_THEN_ELSE | EXPR_FUNCTION | EXPR_ASSERT | EXPR_ERROR => true,
1964 _ => false,
1965 }
1966 }
1967 fn cast(syntax: SyntaxNode) -> Option<Self> {
1968 let res = match syntax.kind() {
1969 EXPR_BINARY => Expr::ExprBinary(ExprBinary { syntax }),
1970 EXPR_UNARY => Expr::ExprUnary(ExprUnary { syntax }),
1971 EXPR_SLICE => Expr::ExprSlice(ExprSlice { syntax }),
1972 EXPR_INDEX => Expr::ExprIndex(ExprIndex { syntax }),
1973 EXPR_INDEX_EXPR => Expr::ExprIndexExpr(ExprIndexExpr { syntax }),
1974 EXPR_APPLY => Expr::ExprApply(ExprApply { syntax }),
1975 EXPR_OBJ_EXTEND => Expr::ExprObjExtend(ExprObjExtend { syntax }),
1976 EXPR_PARENED => Expr::ExprParened(ExprParened { syntax }),
1977 EXPR_STRING => Expr::ExprString(ExprString { syntax }),
1978 EXPR_NUMBER => Expr::ExprNumber(ExprNumber { syntax }),
1979 EXPR_LITERAL => Expr::ExprLiteral(ExprLiteral { syntax }),
1980 EXPR_ARRAY => Expr::ExprArray(ExprArray { syntax }),
1981 EXPR_OBJECT => Expr::ExprObject(ExprObject { syntax }),
1982 EXPR_ARRAY_COMP => Expr::ExprArrayComp(ExprArrayComp { syntax }),
1983 EXPR_IMPORT => Expr::ExprImport(ExprImport { syntax }),
1984 EXPR_VAR => Expr::ExprVar(ExprVar { syntax }),
1985 EXPR_LOCAL => Expr::ExprLocal(ExprLocal { syntax }),
1986 EXPR_IF_THEN_ELSE => Expr::ExprIfThenElse(ExprIfThenElse { syntax }),
1987 EXPR_FUNCTION => Expr::ExprFunction(ExprFunction { syntax }),
1988 EXPR_ASSERT => Expr::ExprAssert(ExprAssert { syntax }),
1989 EXPR_ERROR => Expr::ExprError(ExprError { syntax }),
1990 _ => return None,
1991 };
1992 Some(res)
1993 }
1994 fn syntax(&self) -> &SyntaxNode {
1995 match self {
1996 Expr::ExprBinary(it) => &it.syntax,
1997 Expr::ExprUnary(it) => &it.syntax,
1998 Expr::ExprSlice(it) => &it.syntax,
1999 Expr::ExprIndex(it) => &it.syntax,
2000 Expr::ExprIndexExpr(it) => &it.syntax,
2001 Expr::ExprApply(it) => &it.syntax,
2002 Expr::ExprObjExtend(it) => &it.syntax,
2003 Expr::ExprParened(it) => &it.syntax,
2004 Expr::ExprString(it) => &it.syntax,
2005 Expr::ExprNumber(it) => &it.syntax,
2006 Expr::ExprLiteral(it) => &it.syntax,
2007 Expr::ExprArray(it) => &it.syntax,
2008 Expr::ExprObject(it) => &it.syntax,
2009 Expr::ExprArrayComp(it) => &it.syntax,
2010 Expr::ExprImport(it) => &it.syntax,
2011 Expr::ExprVar(it) => &it.syntax,
2012 Expr::ExprLocal(it) => &it.syntax,
2013 Expr::ExprIfThenElse(it) => &it.syntax,
2014 Expr::ExprFunction(it) => &it.syntax,
2015 Expr::ExprAssert(it) => &it.syntax,
2016 Expr::ExprError(it) => &it.syntax,
2017 }
2018 }
2019}
2020impl From<ObjBodyComp> for ObjBody {1876impl From<ObjBodyComp> for ObjBody {
2021 fn from(node: ObjBodyComp) -> ObjBody {1877 fn from(node: ObjBodyComp) -> ObjBody {
2022 ObjBody::ObjBodyComp(node)1878 ObjBody::ObjBodyComp(node)
2113 }1969 }
2114 }1970 }
2115}1971}
1972impl From<ExprBinary> for ExprBase {
1973 fn from(node: ExprBinary) -> ExprBase {
1974 ExprBase::ExprBinary(node)
1975 }
1976}
1977impl From<ExprUnary> for ExprBase {
1978 fn from(node: ExprUnary) -> ExprBase {
1979 ExprBase::ExprUnary(node)
1980 }
1981}
1982impl From<ExprSlice> for ExprBase {
1983 fn from(node: ExprSlice) -> ExprBase {
1984 ExprBase::ExprSlice(node)
1985 }
1986}
1987impl From<ExprIndex> for ExprBase {
1988 fn from(node: ExprIndex) -> ExprBase {
1989 ExprBase::ExprIndex(node)
1990 }
1991}
1992impl From<ExprIndexExpr> for ExprBase {
1993 fn from(node: ExprIndexExpr) -> ExprBase {
1994 ExprBase::ExprIndexExpr(node)
1995 }
1996}
1997impl From<ExprApply> for ExprBase {
1998 fn from(node: ExprApply) -> ExprBase {
1999 ExprBase::ExprApply(node)
2000 }
2001}
2002impl From<ExprObjExtend> for ExprBase {
2003 fn from(node: ExprObjExtend) -> ExprBase {
2004 ExprBase::ExprObjExtend(node)
2005 }
2006}
2007impl From<ExprParened> for ExprBase {
2008 fn from(node: ExprParened) -> ExprBase {
2009 ExprBase::ExprParened(node)
2010 }
2011}
2012impl From<ExprString> for ExprBase {
2013 fn from(node: ExprString) -> ExprBase {
2014 ExprBase::ExprString(node)
2015 }
2016}
2017impl From<ExprNumber> for ExprBase {
2018 fn from(node: ExprNumber) -> ExprBase {
2019 ExprBase::ExprNumber(node)
2020 }
2021}
2022impl From<ExprLiteral> for ExprBase {
2023 fn from(node: ExprLiteral) -> ExprBase {
2024 ExprBase::ExprLiteral(node)
2025 }
2026}
2027impl From<ExprArray> for ExprBase {
2028 fn from(node: ExprArray) -> ExprBase {
2029 ExprBase::ExprArray(node)
2030 }
2031}
2032impl From<ExprObject> for ExprBase {
2033 fn from(node: ExprObject) -> ExprBase {
2034 ExprBase::ExprObject(node)
2035 }
2036}
2037impl From<ExprArrayComp> for ExprBase {
2038 fn from(node: ExprArrayComp) -> ExprBase {
2039 ExprBase::ExprArrayComp(node)
2040 }
2041}
2042impl From<ExprImport> for ExprBase {
2043 fn from(node: ExprImport) -> ExprBase {
2044 ExprBase::ExprImport(node)
2045 }
2046}
2047impl From<ExprVar> for ExprBase {
2048 fn from(node: ExprVar) -> ExprBase {
2049 ExprBase::ExprVar(node)
2050 }
2051}
2052impl From<ExprIfThenElse> for ExprBase {
2053 fn from(node: ExprIfThenElse) -> ExprBase {
2054 ExprBase::ExprIfThenElse(node)
2055 }
2056}
2057impl From<ExprFunction> for ExprBase {
2058 fn from(node: ExprFunction) -> ExprBase {
2059 ExprBase::ExprFunction(node)
2060 }
2061}
2062impl From<ExprAssert> for ExprBase {
2063 fn from(node: ExprAssert) -> ExprBase {
2064 ExprBase::ExprAssert(node)
2065 }
2066}
2067impl From<ExprError> for ExprBase {
2068 fn from(node: ExprError) -> ExprBase {
2069 ExprBase::ExprError(node)
2070 }
2071}
2072impl AstNode for ExprBase {
2073 fn can_cast(kind: SyntaxKind) -> bool {
2074 match kind {
2075 EXPR_BINARY | EXPR_UNARY | EXPR_SLICE | EXPR_INDEX | EXPR_INDEX_EXPR | EXPR_APPLY
2076 | EXPR_OBJ_EXTEND | EXPR_PARENED | EXPR_STRING | EXPR_NUMBER | EXPR_LITERAL
2077 | EXPR_ARRAY | EXPR_OBJECT | EXPR_ARRAY_COMP | EXPR_IMPORT | EXPR_VAR
2078 | EXPR_IF_THEN_ELSE | EXPR_FUNCTION | EXPR_ASSERT | EXPR_ERROR => true,
2079 _ => false,
2080 }
2081 }
2082 fn cast(syntax: SyntaxNode) -> Option<Self> {
2083 let res = match syntax.kind() {
2084 EXPR_BINARY => ExprBase::ExprBinary(ExprBinary { syntax }),
2085 EXPR_UNARY => ExprBase::ExprUnary(ExprUnary { syntax }),
2086 EXPR_SLICE => ExprBase::ExprSlice(ExprSlice { syntax }),
2087 EXPR_INDEX => ExprBase::ExprIndex(ExprIndex { syntax }),
2088 EXPR_INDEX_EXPR => ExprBase::ExprIndexExpr(ExprIndexExpr { syntax }),
2089 EXPR_APPLY => ExprBase::ExprApply(ExprApply { syntax }),
2090 EXPR_OBJ_EXTEND => ExprBase::ExprObjExtend(ExprObjExtend { syntax }),
2091 EXPR_PARENED => ExprBase::ExprParened(ExprParened { syntax }),
2092 EXPR_STRING => ExprBase::ExprString(ExprString { syntax }),
2093 EXPR_NUMBER => ExprBase::ExprNumber(ExprNumber { syntax }),
2094 EXPR_LITERAL => ExprBase::ExprLiteral(ExprLiteral { syntax }),
2095 EXPR_ARRAY => ExprBase::ExprArray(ExprArray { syntax }),
2096 EXPR_OBJECT => ExprBase::ExprObject(ExprObject { syntax }),
2097 EXPR_ARRAY_COMP => ExprBase::ExprArrayComp(ExprArrayComp { syntax }),
2098 EXPR_IMPORT => ExprBase::ExprImport(ExprImport { syntax }),
2099 EXPR_VAR => ExprBase::ExprVar(ExprVar { syntax }),
2100 EXPR_IF_THEN_ELSE => ExprBase::ExprIfThenElse(ExprIfThenElse { syntax }),
2101 EXPR_FUNCTION => ExprBase::ExprFunction(ExprFunction { syntax }),
2102 EXPR_ASSERT => ExprBase::ExprAssert(ExprAssert { syntax }),
2103 EXPR_ERROR => ExprBase::ExprError(ExprError { syntax }),
2104 _ => return None,
2105 };
2106 Some(res)
2107 }
2108 fn syntax(&self) -> &SyntaxNode {
2109 match self {
2110 ExprBase::ExprBinary(it) => &it.syntax,
2111 ExprBase::ExprUnary(it) => &it.syntax,
2112 ExprBase::ExprSlice(it) => &it.syntax,
2113 ExprBase::ExprIndex(it) => &it.syntax,
2114 ExprBase::ExprIndexExpr(it) => &it.syntax,
2115 ExprBase::ExprApply(it) => &it.syntax,
2116 ExprBase::ExprObjExtend(it) => &it.syntax,
2117 ExprBase::ExprParened(it) => &it.syntax,
2118 ExprBase::ExprString(it) => &it.syntax,
2119 ExprBase::ExprNumber(it) => &it.syntax,
2120 ExprBase::ExprLiteral(it) => &it.syntax,
2121 ExprBase::ExprArray(it) => &it.syntax,
2122 ExprBase::ExprObject(it) => &it.syntax,
2123 ExprBase::ExprArrayComp(it) => &it.syntax,
2124 ExprBase::ExprImport(it) => &it.syntax,
2125 ExprBase::ExprVar(it) => &it.syntax,
2126 ExprBase::ExprIfThenElse(it) => &it.syntax,
2127 ExprBase::ExprFunction(it) => &it.syntax,
2128 ExprBase::ExprAssert(it) => &it.syntax,
2129 ExprBase::ExprError(it) => &it.syntax,
2130 }
2131 }
2132}
2116impl From<MemberBindStmt> for MemberComp {2133impl From<MemberBindStmt> for MemberComp {
2117 fn from(node: MemberBindStmt) -> MemberComp {2134 fn from(node: MemberBindStmt) -> MemberComp {
2118 MemberComp::MemberBindStmt(node)2135 MemberComp::MemberBindStmt(node)
2725 std::fmt::Display::fmt(self.syntax(), f)2742 std::fmt::Display::fmt(self.syntax(), f)
2726 }2743 }
2727}2744}
2728impl std::fmt::Display for Expr {
2729 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2730 std::fmt::Display::fmt(self.syntax(), f)
2731 }
2732}
2733impl std::fmt::Display for ObjBody {2745impl std::fmt::Display for ObjBody {
2734 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {2746 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2735 std::fmt::Display::fmt(self.syntax(), f)2747 std::fmt::Display::fmt(self.syntax(), f)
2745 std::fmt::Display::fmt(self.syntax(), f)2757 std::fmt::Display::fmt(self.syntax(), f)
2746 }2758 }
2747}2759}
2760impl std::fmt::Display for ExprBase {
2761 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2762 std::fmt::Display::fmt(self.syntax(), f)
2763 }
2764}
2748impl std::fmt::Display for MemberComp {2765impl std::fmt::Display for MemberComp {
2749 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {2766 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2750 std::fmt::Display::fmt(self.syntax(), f)2767 std::fmt::Display::fmt(self.syntax(), f)
2775 std::fmt::Display::fmt(self.syntax(), f)2792 std::fmt::Display::fmt(self.syntax(), f)
2776 }2793 }
2777}2794}
2795impl std::fmt::Display for Expr {
2796 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2797 std::fmt::Display::fmt(self.syntax(), f)
2798 }
2799}
2778impl std::fmt::Display for ExprBinary {2800impl std::fmt::Display for ExprBinary {
2779 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {2801 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2780 std::fmt::Display::fmt(self.syntax(), f)2802 std::fmt::Display::fmt(self.syntax(), f)
2875 std::fmt::Display::fmt(self.syntax(), f)2897 std::fmt::Display::fmt(self.syntax(), f)
2876 }2898 }
2877}2899}
2878impl std::fmt::Display for ExprLocal {
2879 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2880 std::fmt::Display::fmt(self.syntax(), f)
2881 }
2882}
2883impl std::fmt::Display for ExprIfThenElse {2900impl std::fmt::Display for ExprIfThenElse {
2884 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {2901 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2885 std::fmt::Display::fmt(self.syntax(), f)2902 std::fmt::Display::fmt(self.syntax(), f)
2920 std::fmt::Display::fmt(self.syntax(), f)2937 std::fmt::Display::fmt(self.syntax(), f)
2921 }2938 }
2922}2939}
2940impl std::fmt::Display for StmtLocal {
2941 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2942 std::fmt::Display::fmt(self.syntax(), f)
2943 }
2944}
2923impl std::fmt::Display for SliceDescEnd {2945impl std::fmt::Display for SliceDescEnd {
2924 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {2946 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2925 std::fmt::Display::fmt(self.syntax(), f)2947 std::fmt::Display::fmt(self.syntax(), f)
modifiedcrates/jrsonnet-rowan-parser/src/generated/syntax_kinds.rsdiffbeforeafterboth
143 IMPORTBIN_KW,143 IMPORTBIN_KW,
144 #[token("import")]144 #[token("import")]
145 IMPORT_KW,145 IMPORT_KW,
146 #[token("local")]
147 LOCAL_KW,
148 #[token("if")]146 #[token("if")]
149 IF_KW,147 IF_KW,
150 #[token("then")]148 #[token("then")]
155 FUNCTION_KW,153 FUNCTION_KW,
156 #[token("error")]154 #[token("error")]
157 ERROR_KW,155 ERROR_KW,
156 #[token("local")]
157 LOCAL_KW,
158 #[token("in")]158 #[token("in")]
159 IN_KW,159 IN_KW,
160 META_OBJECT_APPLY,160 META_OBJECT_APPLY,
180 #[error]180 #[error]
181 LEXING_ERROR,181 LEXING_ERROR,
182 SOURCE_FILE,182 SOURCE_FILE,
183 EXPR,
183 EXPR_BINARY,184 EXPR_BINARY,
184 LHS_EXPR,185 LHS_EXPR,
185 EXPR_UNARY,186 EXPR_UNARY,
200 EXPR_ARRAY_COMP,201 EXPR_ARRAY_COMP,
201 EXPR_IMPORT,202 EXPR_IMPORT,
202 EXPR_VAR,203 EXPR_VAR,
203 EXPR_LOCAL,
204 EXPR_IF_THEN_ELSE,204 EXPR_IF_THEN_ELSE,
205 TRUE_EXPR,205 TRUE_EXPR,
206 FALSE_EXPR,206 FALSE_EXPR,
209 EXPR_ASSERT,209 EXPR_ASSERT,
210 ASSERTION,210 ASSERTION,
211 EXPR_ERROR,211 EXPR_ERROR,
212 STMT_LOCAL,
212 SLICE_DESC_END,213 SLICE_DESC_END,
213 SLICE_DESC_STEP,214 SLICE_DESC_STEP,
214 ARG,215 ARG,
233 DESTRUCT_OBJECT_FIELD,234 DESTRUCT_OBJECT_FIELD,
234 DESTRUCT_REST,235 DESTRUCT_REST,
235 DESTRUCT_ARRAY_ELEMENT,236 DESTRUCT_ARRAY_ELEMENT,
236 EXPR,
237 OBJ_BODY,237 OBJ_BODY,
238 COMP_SPEC,238 COMP_SPEC,
239 BIND,239 BIND,
240 EXPR_BASE,
240 MEMBER_COMP,241 MEMBER_COMP,
241 MEMBER,242 MEMBER,
242 FIELD_NAME,243 FIELD_NAME,
262 | PLUS | MINUS | MUL | DIV | MODULO | NOT | BIT_NOT | L_BRACK | R_BRACK | L_PAREN263 | PLUS | MINUS | MUL | DIV | MODULO | NOT | BIT_NOT | L_BRACK | R_BRACK | L_PAREN
263 | R_PAREN | L_BRACE | R_BRACE | COLON | COLONCOLON | COLONCOLONCOLON | SEMI | DOT264 | R_PAREN | L_BRACE | R_BRACE | COLON | COLONCOLON | COLONCOLONCOLON | SEMI | DOT
264 | DOTDOTDOT | COMMA | DOLLAR | ASSIGN | QUESTION_MARK | TAILSTRICT_KW265 | DOTDOTDOT | COMMA | DOLLAR | ASSIGN | QUESTION_MARK | TAILSTRICT_KW
265 | IMPORTSTR_KW | IMPORTBIN_KW | IMPORT_KW | LOCAL_KW | IF_KW | THEN_KW | ELSE_KW266 | IMPORTSTR_KW | IMPORTBIN_KW | IMPORT_KW | IF_KW | THEN_KW | ELSE_KW | FUNCTION_KW
266 | FUNCTION_KW | ERROR_KW | IN_KW | NULL_KW | TRUE_KW | FALSE_KW | SELF_KW267 | ERROR_KW | LOCAL_KW | IN_KW | NULL_KW | TRUE_KW | FALSE_KW | SELF_KW | SUPER_KW
267 | SUPER_KW | FOR_KW | ASSERT_KW => true,268 | FOR_KW | ASSERT_KW => true,
268 _ => false,269 _ => false,
269 }270 }
270 }271 }
271 pub fn is_enum(self) -> bool {272 pub fn is_enum(self) -> bool {
272 match self {273 match self {
273 EXPR | OBJ_BODY | COMP_SPEC | BIND | MEMBER_COMP | MEMBER | FIELD_NAME | DESTRUCT274 OBJ_BODY | COMP_SPEC | BIND | EXPR_BASE | MEMBER_COMP | MEMBER | FIELD_NAME
274 | DESTRUCT_ARRAY_PART | BINARY_OPERATOR | UNARY_OPERATOR | LITERAL | TEXT | NUMBER275 | DESTRUCT | DESTRUCT_ARRAY_PART | BINARY_OPERATOR | UNARY_OPERATOR | LITERAL
275 | IMPORT_KIND | VISIBILITY | TRIVIA | CUSTOM_ERROR => true,276 | TEXT | NUMBER | IMPORT_KIND | VISIBILITY | TRIVIA | CUSTOM_ERROR => true,
276 _ => false,277 _ => false,
277 }278 }
278 }279 }
285 }286 }
286}287}
287#[macro_export]288#[macro_export]
288macro_rules ! T { [||] => { $ crate :: SyntaxKind :: OR } ; [&&] => { $ crate :: SyntaxKind :: AND } ; [|] => { $ crate :: SyntaxKind :: BIT_OR } ; [^] => { $ crate :: SyntaxKind :: BIT_XOR } ; [&] => { $ crate :: SyntaxKind :: BIT_AND } ; [==] => { $ crate :: SyntaxKind :: EQ } ; [!=] => { $ crate :: SyntaxKind :: NE } ; [<] => { $ crate :: SyntaxKind :: LT } ; [>] => { $ crate :: SyntaxKind :: GT } ; [<=] => { $ crate :: SyntaxKind :: LE } ; [>=] => { $ crate :: SyntaxKind :: GE } ; [<<] => { $ crate :: SyntaxKind :: LHS } ; [>>] => { $ crate :: SyntaxKind :: RHS } ; [+] => { $ crate :: SyntaxKind :: PLUS } ; [-] => { $ crate :: SyntaxKind :: MINUS } ; [*] => { $ crate :: SyntaxKind :: MUL } ; [/] => { $ crate :: SyntaxKind :: DIV } ; [%] => { $ crate :: SyntaxKind :: MODULO } ; [!] => { $ crate :: SyntaxKind :: NOT } ; [~] => { $ crate :: SyntaxKind :: BIT_NOT } ; ['['] => { $ crate :: SyntaxKind :: L_BRACK } ; [']'] => { $ crate :: SyntaxKind :: R_BRACK } ; ['('] => { $ crate :: SyntaxKind :: L_PAREN } ; [')'] => { $ crate :: SyntaxKind :: R_PAREN } ; ['{'] => { $ crate :: SyntaxKind :: L_BRACE } ; ['}'] => { $ crate :: SyntaxKind :: R_BRACE } ; [:] => { $ crate :: SyntaxKind :: COLON } ; [::] => { $ crate :: SyntaxKind :: COLONCOLON } ; [:::] => { $ crate :: SyntaxKind :: COLONCOLONCOLON } ; [;] => { $ crate :: SyntaxKind :: SEMI } ; [.] => { $ crate :: SyntaxKind :: DOT } ; [...] => { $ crate :: SyntaxKind :: DOTDOTDOT } ; [,] => { $ crate :: SyntaxKind :: COMMA } ; ['$'] => { $ crate :: SyntaxKind :: DOLLAR } ; [=] => { $ crate :: SyntaxKind :: ASSIGN } ; [?] => { $ crate :: SyntaxKind :: QUESTION_MARK } ; [tailstrict] => { $ crate :: SyntaxKind :: TAILSTRICT_KW } ; [importstr] => { $ crate :: SyntaxKind :: IMPORTSTR_KW } ; [importbin] => { $ crate :: SyntaxKind :: IMPORTBIN_KW } ; [import] => { $ crate :: SyntaxKind :: IMPORT_KW } ; [local] => { $ crate :: SyntaxKind :: LOCAL_KW } ; [if] => { $ crate :: SyntaxKind :: IF_KW } ; [then] => { $ crate :: SyntaxKind :: THEN_KW } ; [else] => { $ crate :: SyntaxKind :: ELSE_KW } ; [function] => { $ crate :: SyntaxKind :: FUNCTION_KW } ; [error] => { $ crate :: SyntaxKind :: ERROR_KW } ; [in] => { $ crate :: SyntaxKind :: IN_KW } ; [null] => { $ crate :: SyntaxKind :: NULL_KW } ; [true] => { $ crate :: SyntaxKind :: TRUE_KW } ; [false] => { $ crate :: SyntaxKind :: FALSE_KW } ; [self] => { $ crate :: SyntaxKind :: SELF_KW } ; [super] => { $ crate :: SyntaxKind :: SUPER_KW } ; [for] => { $ crate :: SyntaxKind :: FOR_KW } ; [assert] => { $ crate :: SyntaxKind :: ASSERT_KW } }289macro_rules ! T { [||] => { $ crate :: SyntaxKind :: OR } ; [&&] => { $ crate :: SyntaxKind :: AND } ; [|] => { $ crate :: SyntaxKind :: BIT_OR } ; [^] => { $ crate :: SyntaxKind :: BIT_XOR } ; [&] => { $ crate :: SyntaxKind :: BIT_AND } ; [==] => { $ crate :: SyntaxKind :: EQ } ; [!=] => { $ crate :: SyntaxKind :: NE } ; [<] => { $ crate :: SyntaxKind :: LT } ; [>] => { $ crate :: SyntaxKind :: GT } ; [<=] => { $ crate :: SyntaxKind :: LE } ; [>=] => { $ crate :: SyntaxKind :: GE } ; [<<] => { $ crate :: SyntaxKind :: LHS } ; [>>] => { $ crate :: SyntaxKind :: RHS } ; [+] => { $ crate :: SyntaxKind :: PLUS } ; [-] => { $ crate :: SyntaxKind :: MINUS } ; [*] => { $ crate :: SyntaxKind :: MUL } ; [/] => { $ crate :: SyntaxKind :: DIV } ; [%] => { $ crate :: SyntaxKind :: MODULO } ; [!] => { $ crate :: SyntaxKind :: NOT } ; [~] => { $ crate :: SyntaxKind :: BIT_NOT } ; ['['] => { $ crate :: SyntaxKind :: L_BRACK } ; [']'] => { $ crate :: SyntaxKind :: R_BRACK } ; ['('] => { $ crate :: SyntaxKind :: L_PAREN } ; [')'] => { $ crate :: SyntaxKind :: R_PAREN } ; ['{'] => { $ crate :: SyntaxKind :: L_BRACE } ; ['}'] => { $ crate :: SyntaxKind :: R_BRACE } ; [:] => { $ crate :: SyntaxKind :: COLON } ; [::] => { $ crate :: SyntaxKind :: COLONCOLON } ; [:::] => { $ crate :: SyntaxKind :: COLONCOLONCOLON } ; [;] => { $ crate :: SyntaxKind :: SEMI } ; [.] => { $ crate :: SyntaxKind :: DOT } ; [...] => { $ crate :: SyntaxKind :: DOTDOTDOT } ; [,] => { $ crate :: SyntaxKind :: COMMA } ; ['$'] => { $ crate :: SyntaxKind :: DOLLAR } ; [=] => { $ crate :: SyntaxKind :: ASSIGN } ; [?] => { $ crate :: SyntaxKind :: QUESTION_MARK } ; [tailstrict] => { $ crate :: SyntaxKind :: TAILSTRICT_KW } ; [importstr] => { $ crate :: SyntaxKind :: IMPORTSTR_KW } ; [importbin] => { $ crate :: SyntaxKind :: IMPORTBIN_KW } ; [import] => { $ crate :: SyntaxKind :: IMPORT_KW } ; [if] => { $ crate :: SyntaxKind :: IF_KW } ; [then] => { $ crate :: SyntaxKind :: THEN_KW } ; [else] => { $ crate :: SyntaxKind :: ELSE_KW } ; [function] => { $ crate :: SyntaxKind :: FUNCTION_KW } ; [error] => { $ crate :: SyntaxKind :: ERROR_KW } ; [local] => { $ crate :: SyntaxKind :: LOCAL_KW } ; [in] => { $ crate :: SyntaxKind :: IN_KW } ; [null] => { $ crate :: SyntaxKind :: NULL_KW } ; [true] => { $ crate :: SyntaxKind :: TRUE_KW } ; [false] => { $ crate :: SyntaxKind :: FALSE_KW } ; [self] => { $ crate :: SyntaxKind :: SELF_KW } ; [super] => { $ crate :: SyntaxKind :: SUPER_KW } ; [for] => { $ crate :: SyntaxKind :: FOR_KW } ; [assert] => { $ crate :: SyntaxKind :: ASSERT_KW } }
289pub use T;290pub use T;
290291
modifiedcrates/jrsonnet-rowan-parser/src/parser.rsdiffbeforeafterboth
293}293}
294294
295fn expr(p: &mut Parser) -> CompletedMarker {295fn expr(p: &mut Parser) -> CompletedMarker {
296 while p.at(T![local]) {
297 let m = p.start();
298
299 p.bump();
300 loop {
301 if p.at(T![;]) {
302 p.bump();
303 break;
304 }
305 bind(p);
306
307 if p.at(T![,]) {
308 p.bump();
309 continue;
310 }
311 p.expect(T![;]);
312 break;
313 }
314 m.complete(p, STMT_LOCAL);
315 }
296 match expr_binding_power(p, 0) {316 match expr_binding_power(p, 0) {
297 Ok(m) => m,317 Ok(m) => m,
298 Err(m) => m,318 Err(m) => m,
853 array(p)874 array(p)
854 } else if p.at(T!['{']) {875 } else if p.at(T!['{']) {
855 object(p)876 object(p)
856 } else if p.at(T![local]) {877 } else if p.at(T![function]) {
857 let m = p.start();
858 p.bump();
859 loop {
860 if p.at(T![;]) {
861 p.bump();
862 break;
863 }
864 bind(p);
865
866 if p.at(T![,]) {
867 p.bump();
868 continue;
869 }
870 p.expect(T![;]);
871 break;
872 }
873 expr(p);
874 m.complete(p, EXPR_LOCAL)
875 } else if p.at(T![function]) {
876 let m = p.start();878 let m = p.start();
877 p.bump();879 p.bump();
878 params_desc(p);880 params_desc(p);
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__continue_after_total_failure.snapdiffbeforeafterboth
3expression: "local intr = $intrinsic(test);\n\nlocal a = 1, b = 2, c = a + b;\n\n[c]\n"3expression: "local intr = $intrinsic(test);\n\nlocal a = 1, b = 2, c = a + b;\n\n[c]\n"
4---4---
5SOURCE_FILE@0..685SOURCE_FILE@0..68
6 EXPR_LOCAL@0..296 STMT_LOCAL@0..23
7 LOCAL_KW@0..5 "local"7 LOCAL_KW@0..5 "local"
8 WHITESPACE@5..6 " "8 WHITESPACE@5..6 " "
9 BIND_DESTRUCT@6..149 BIND_DESTRUCT@6..14
17 DOLLAR@13..14 "$"17 DOLLAR@13..14 "$"
18 ERROR_UNEXPECTED_TOKEN@14..2318 ERROR_UNEXPECTED_TOKEN@14..23
19 IDENT@14..23 "intrinsic"19 IDENT@14..23 "intrinsic"
20 EXPR_PARENED@23..2920 EXPR_PARENED@23..29
21 L_PAREN@23..24 "("21 L_PAREN@23..24 "("
22 EXPR_VAR@24..2822 EXPR_VAR@24..28
23 NAME@24..2823 NAME@24..28
24 IDENT@24..28 "test"24 IDENT@24..28 "test"
25 R_PAREN@28..29 ")"25 R_PAREN@28..29 ")"
26 ERROR_CUSTOM@29..6726 ERROR_CUSTOM@29..67
27 SEMI@29..30 ";"27 SEMI@29..30 ";"
28 WHITESPACE@30..32 "\n\n"28 WHITESPACE@30..32 "\n\n"
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__destruct.snapdiffbeforeafterboth
3expression: "local [a, b, c] = arr;\nlocal [a, ...] = arr_rest;\nlocal [..., a] = rest_arr;\nlocal [...] = rest_in_arr;\nlocal [a, ...n] = arr_rest_n;\nlocal [...n, a] = rest_arr_n;\nlocal [...n] = rest_in_arr_n;\n\nlocal {a, b, c} = obj;\nlocal {a, b, c, ...} = obj_rest;\nlocal {a, b, c, ...n} = obj_rest_n;\n\nnull\n"3expression: "local [a, b, c] = arr;\nlocal [a, ...] = arr_rest;\nlocal [..., a] = rest_arr;\nlocal [...] = rest_in_arr;\nlocal [a, ...n] = arr_rest_n;\nlocal [...n, a] = rest_arr_n;\nlocal [...n] = rest_in_arr_n;\n\nlocal {a, b, c} = obj;\nlocal {a, b, c, ...} = obj_rest;\nlocal {a, b, c, ...n} = obj_rest_n;\n\nnull\n"
4---4---
5SOURCE_FILE@0..2935SOURCE_FILE@0..293
6 EXPR_LOCAL@0..2926 STMT_LOCAL@0..22
7 LOCAL_KW@0..5 "local"7 LOCAL_KW@0..5 "local"
8 WHITESPACE@5..6 " "8 WHITESPACE@5..6 " "
9 BIND_DESTRUCT@6..219 BIND_DESTRUCT@6..21
30 NAME@18..2130 NAME@18..21
31 IDENT@18..21 "arr"31 IDENT@18..21 "arr"
32 SEMI@21..22 ";"32 SEMI@21..22 ";"
33 WHITESPACE@22..23 "\n"33 WHITESPACE@22..23 "\n"
34 EXPR_LOCAL@23..29234 STMT_LOCAL@23..49
35 LOCAL_KW@23..28 "local"35 LOCAL_KW@23..28 "local"
36 WHITESPACE@28..29 " "36 WHITESPACE@28..29 " "
37 BIND_DESTRUCT@29..4837 BIND_DESTRUCT@29..48
38 DESTRUCT_ARRAY@29..3738 DESTRUCT_ARRAY@29..37
39 L_BRACK@29..30 "["39 L_BRACK@29..30 "["
40 DESTRUCT_FULL@30..3140 DESTRUCT_FULL@30..31
41 NAME@30..3141 NAME@30..31
42 IDENT@30..31 "a"42 IDENT@30..31 "a"
43 COMMA@31..32 ","43 COMMA@31..32 ","
44 WHITESPACE@32..33 " "44 WHITESPACE@32..33 " "
45 DESTRUCT_REST@33..3645 DESTRUCT_REST@33..36
46 DOTDOTDOT@33..36 "..."46 DOTDOTDOT@33..36 "..."
47 R_BRACK@36..37 "]"47 R_BRACK@36..37 "]"
48 WHITESPACE@37..38 " "48 WHITESPACE@37..38 " "
49 ASSIGN@38..39 "="49 ASSIGN@38..39 "="
50 WHITESPACE@39..40 " "50 WHITESPACE@39..40 " "
51 EXPR_VAR@40..4851 EXPR_VAR@40..48
52 NAME@40..4852 NAME@40..48
53 IDENT@40..48 "arr_rest"53 IDENT@40..48 "arr_rest"
54 SEMI@48..49 ";"54 SEMI@48..49 ";"
55 WHITESPACE@49..50 "\n"55 WHITESPACE@49..50 "\n"
56 EXPR_LOCAL@50..29256 STMT_LOCAL@50..76
57 LOCAL_KW@50..55 "local"57 LOCAL_KW@50..55 "local"
58 WHITESPACE@55..56 " "58 WHITESPACE@55..56 " "
59 BIND_DESTRUCT@56..7559 BIND_DESTRUCT@56..75
60 DESTRUCT_ARRAY@56..6460 DESTRUCT_ARRAY@56..64
61 L_BRACK@56..57 "["61 L_BRACK@56..57 "["
62 DESTRUCT_REST@57..6062 DESTRUCT_REST@57..60
63 DOTDOTDOT@57..60 "..."63 DOTDOTDOT@57..60 "..."
64 COMMA@60..61 ","64 COMMA@60..61 ","
65 WHITESPACE@61..62 " "65 WHITESPACE@61..62 " "
66 DESTRUCT_FULL@62..6366 DESTRUCT_FULL@62..63
67 NAME@62..6367 NAME@62..63
68 IDENT@62..63 "a"68 IDENT@62..63 "a"
69 R_BRACK@63..64 "]"69 R_BRACK@63..64 "]"
70 WHITESPACE@64..65 " "70 WHITESPACE@64..65 " "
71 ASSIGN@65..66 "="71 ASSIGN@65..66 "="
72 WHITESPACE@66..67 " "72 WHITESPACE@66..67 " "
73 EXPR_VAR@67..7573 EXPR_VAR@67..75
74 NAME@67..7574 NAME@67..75
75 IDENT@67..75 "rest_arr"75 IDENT@67..75 "rest_arr"
76 SEMI@75..76 ";"76 SEMI@75..76 ";"
77 WHITESPACE@76..77 "\n"77 WHITESPACE@76..77 "\n"
78 EXPR_LOCAL@77..29278 STMT_LOCAL@77..103
79 LOCAL_KW@77..82 "local"79 LOCAL_KW@77..82 "local"
80 WHITESPACE@82..83 " "80 WHITESPACE@82..83 " "
81 BIND_DESTRUCT@83..10281 BIND_DESTRUCT@83..102
82 DESTRUCT_ARRAY@83..8882 DESTRUCT_ARRAY@83..88
83 L_BRACK@83..84 "["83 L_BRACK@83..84 "["
84 DESTRUCT_REST@84..8784 DESTRUCT_REST@84..87
85 DOTDOTDOT@84..87 "..."85 DOTDOTDOT@84..87 "..."
86 R_BRACK@87..88 "]"86 R_BRACK@87..88 "]"
87 WHITESPACE@88..89 " "87 WHITESPACE@88..89 " "
88 ASSIGN@89..90 "="88 ASSIGN@89..90 "="
89 WHITESPACE@90..91 " "89 WHITESPACE@90..91 " "
90 EXPR_VAR@91..10290 EXPR_VAR@91..102
91 NAME@91..10291 NAME@91..102
92 IDENT@91..102 "rest_in_arr"92 IDENT@91..102 "rest_in_arr"
93 SEMI@102..103 ";"93 SEMI@102..103 ";"
94 WHITESPACE@103..104 "\n"94 WHITESPACE@103..104 "\n"
95 EXPR_LOCAL@104..29295 STMT_LOCAL@104..133
96 LOCAL_KW@104..109 "local"96 LOCAL_KW@104..109 "local"
97 WHITESPACE@109..110 " "97 WHITESPACE@109..110 " "
98 BIND_DESTRUCT@110..13298 BIND_DESTRUCT@110..132
99 DESTRUCT_ARRAY@110..11999 DESTRUCT_ARRAY@110..119
100 L_BRACK@110..111 "["100 L_BRACK@110..111 "["
101 DESTRUCT_FULL@111..112101 DESTRUCT_FULL@111..112
102 NAME@111..112102 NAME@111..112
103 IDENT@111..112 "a"103 IDENT@111..112 "a"
104 COMMA@112..113 ","104 COMMA@112..113 ","
105 WHITESPACE@113..114 " "105 WHITESPACE@113..114 " "
106 DESTRUCT_REST@114..118106 DESTRUCT_REST@114..118
107 DOTDOTDOT@114..117 "..."107 DOTDOTDOT@114..117 "..."
108 IDENT@117..118 "n"108 IDENT@117..118 "n"
109 R_BRACK@118..119 "]"109 R_BRACK@118..119 "]"
110 WHITESPACE@119..120 " "110 WHITESPACE@119..120 " "
111 ASSIGN@120..121 "="111 ASSIGN@120..121 "="
112 WHITESPACE@121..122 " "112 WHITESPACE@121..122 " "
113 EXPR_VAR@122..132113 EXPR_VAR@122..132
114 NAME@122..132114 NAME@122..132
115 IDENT@122..132 "arr_rest_n"115 IDENT@122..132 "arr_rest_n"
116 SEMI@132..133 ";"116 SEMI@132..133 ";"
117 WHITESPACE@133..134 "\n"117 WHITESPACE@133..134 "\n"
118 EXPR_LOCAL@134..292118 STMT_LOCAL@134..163
119 LOCAL_KW@134..139 "local"119 LOCAL_KW@134..139 "local"
120 WHITESPACE@139..140 " "120 WHITESPACE@139..140 " "
121 BIND_DESTRUCT@140..162121 BIND_DESTRUCT@140..162
122 DESTRUCT_ARRAY@140..149122 DESTRUCT_ARRAY@140..149
123 L_BRACK@140..141 "["123 L_BRACK@140..141 "["
124 DESTRUCT_REST@141..145124 DESTRUCT_REST@141..145
125 DOTDOTDOT@141..144 "..."125 DOTDOTDOT@141..144 "..."
126 IDENT@144..145 "n"126 IDENT@144..145 "n"
127 COMMA@145..146 ","127 COMMA@145..146 ","
128 WHITESPACE@146..147 " "128 WHITESPACE@146..147 " "
129 DESTRUCT_FULL@147..148129 DESTRUCT_FULL@147..148
130 NAME@147..148130 NAME@147..148
131 IDENT@147..148 "a"131 IDENT@147..148 "a"
132 R_BRACK@148..149 "]"132 R_BRACK@148..149 "]"
133 WHITESPACE@149..150 " "133 WHITESPACE@149..150 " "
134 ASSIGN@150..151 "="134 ASSIGN@150..151 "="
135 WHITESPACE@151..152 " "135 WHITESPACE@151..152 " "
136 EXPR_VAR@152..162136 EXPR_VAR@152..162
137 NAME@152..162137 NAME@152..162
138 IDENT@152..162 "rest_arr_n"138 IDENT@152..162 "rest_arr_n"
139 SEMI@162..163 ";"139 SEMI@162..163 ";"
140 WHITESPACE@163..164 "\n"140 WHITESPACE@163..164 "\n"
141 EXPR_LOCAL@164..292141 STMT_LOCAL@164..193
142 LOCAL_KW@164..169 "local"142 LOCAL_KW@164..169 "local"
143 WHITESPACE@169..170 " "143 WHITESPACE@169..170 " "
144 BIND_DESTRUCT@170..192144 BIND_DESTRUCT@170..192
145 DESTRUCT_ARRAY@170..176145 DESTRUCT_ARRAY@170..176
146 L_BRACK@170..171 "["146 L_BRACK@170..171 "["
147 DESTRUCT_REST@171..175147 DESTRUCT_REST@171..175
148 DOTDOTDOT@171..174 "..."148 DOTDOTDOT@171..174 "..."
149 IDENT@174..175 "n"149 IDENT@174..175 "n"
150 R_BRACK@175..176 "]"150 R_BRACK@175..176 "]"
151 WHITESPACE@176..177 " "151 WHITESPACE@176..177 " "
152 ASSIGN@177..178 "="152 ASSIGN@177..178 "="
153 WHITESPACE@178..179 " "153 WHITESPACE@178..179 " "
154 EXPR_VAR@179..192154 EXPR_VAR@179..192
155 NAME@179..192155 NAME@179..192
156 IDENT@179..192 "rest_in_arr_n"156 IDENT@179..192 "rest_in_arr_n"
157 SEMI@192..193 ";"157 SEMI@192..193 ";"
158 WHITESPACE@193..195 "\n\n"158 WHITESPACE@193..195 "\n\n"
159 EXPR_LOCAL@195..292159 STMT_LOCAL@195..217
160 LOCAL_KW@195..200 "local"160 LOCAL_KW@195..200 "local"
161 WHITESPACE@200..201 " "161 WHITESPACE@200..201 " "
162 BIND_DESTRUCT@201..216162 BIND_DESTRUCT@201..216
163 DESTRUCT_OBJECT@201..210163 DESTRUCT_OBJECT@201..210
164 L_BRACE@201..202 "{"164 L_BRACE@201..202 "{"
165 DESTRUCT_OBJECT_FIELD@202..203165 DESTRUCT_OBJECT_FIELD@202..203
166 NAME@202..203166 NAME@202..203
167 IDENT@202..203 "a"167 IDENT@202..203 "a"
168 COMMA@203..204 ","168 COMMA@203..204 ","
169 WHITESPACE@204..205 " "169 WHITESPACE@204..205 " "
170 DESTRUCT_OBJECT_FIELD@205..206170 DESTRUCT_OBJECT_FIELD@205..206
171 NAME@205..206171 NAME@205..206
172 IDENT@205..206 "b"172 IDENT@205..206 "b"
173 COMMA@206..207 ","173 COMMA@206..207 ","
174 WHITESPACE@207..208 " "174 WHITESPACE@207..208 " "
175 DESTRUCT_OBJECT_FIELD@208..209175 DESTRUCT_OBJECT_FIELD@208..209
176 NAME@208..209176 NAME@208..209
177 IDENT@208..209 "c"177 IDENT@208..209 "c"
178 R_BRACE@209..210 "}"178 R_BRACE@209..210 "}"
179 WHITESPACE@210..211 " "179 WHITESPACE@210..211 " "
180 ASSIGN@211..212 "="180 ASSIGN@211..212 "="
181 WHITESPACE@212..213 " "181 WHITESPACE@212..213 " "
182 EXPR_VAR@213..216182 EXPR_VAR@213..216
183 NAME@213..216183 NAME@213..216
184 IDENT@213..216 "obj"184 IDENT@213..216 "obj"
185 SEMI@216..217 ";"185 SEMI@216..217 ";"
186 WHITESPACE@217..218 "\n"186 WHITESPACE@217..218 "\n"
187 EXPR_LOCAL@218..292187 STMT_LOCAL@218..250
188 LOCAL_KW@218..223 "local"188 LOCAL_KW@218..223 "local"
189 WHITESPACE@223..224 " "189 WHITESPACE@223..224 " "
190 BIND_DESTRUCT@224..249190 BIND_DESTRUCT@224..249
191 DESTRUCT_OBJECT@224..238191 DESTRUCT_OBJECT@224..238
192 L_BRACE@224..225 "{"192 L_BRACE@224..225 "{"
193 DESTRUCT_OBJECT_FIELD@225..226193 DESTRUCT_OBJECT_FIELD@225..226
194 NAME@225..226194 NAME@225..226
195 IDENT@225..226 "a"195 IDENT@225..226 "a"
196 COMMA@226..227 ","196 COMMA@226..227 ","
197 WHITESPACE@227..228 " "197 WHITESPACE@227..228 " "
198 DESTRUCT_OBJECT_FIELD@228..229198 DESTRUCT_OBJECT_FIELD@228..229
199 NAME@228..229199 NAME@228..229
200 IDENT@228..229 "b"200 IDENT@228..229 "b"
201 COMMA@229..230 ","201 COMMA@229..230 ","
202 WHITESPACE@230..231 " "202 WHITESPACE@230..231 " "
203 DESTRUCT_OBJECT_FIELD@231..232203 DESTRUCT_OBJECT_FIELD@231..232
204 NAME@231..232204 NAME@231..232
205 IDENT@231..232 "c"205 IDENT@231..232 "c"
206 COMMA@232..233 ","206 COMMA@232..233 ","
207 WHITESPACE@233..234 " "207 WHITESPACE@233..234 " "
208 DESTRUCT_REST@234..237208 DESTRUCT_REST@234..237
209 DOTDOTDOT@234..237 "..."209 DOTDOTDOT@234..237 "..."
210 R_BRACE@237..238 "}"210 R_BRACE@237..238 "}"
211 WHITESPACE@238..239 " "211 WHITESPACE@238..239 " "
212 ASSIGN@239..240 "="212 ASSIGN@239..240 "="
213 WHITESPACE@240..241 " "213 WHITESPACE@240..241 " "
214 EXPR_VAR@241..249214 EXPR_VAR@241..249
215 NAME@241..249215 NAME@241..249
216 IDENT@241..249 "obj_rest"216 IDENT@241..249 "obj_rest"
217 SEMI@249..250 ";"217 SEMI@249..250 ";"
218 WHITESPACE@250..251 "\n"218 WHITESPACE@250..251 "\n"
219 EXPR_LOCAL@251..292219 STMT_LOCAL@251..286
220 LOCAL_KW@251..256 "local"220 LOCAL_KW@251..256 "local"
221 WHITESPACE@256..257 " "221 WHITESPACE@256..257 " "
222 BIND_DESTRUCT@257..285222 BIND_DESTRUCT@257..285
223 DESTRUCT_OBJECT@257..272223 DESTRUCT_OBJECT@257..272
224 L_BRACE@257..258 "{"224 L_BRACE@257..258 "{"
225 DESTRUCT_OBJECT_FIELD@258..259225 DESTRUCT_OBJECT_FIELD@258..259
226 NAME@258..259226 NAME@258..259
227 IDENT@258..259 "a"227 IDENT@258..259 "a"
228 COMMA@259..260 ","228 COMMA@259..260 ","
229 WHITESPACE@260..261 " "229 WHITESPACE@260..261 " "
230 DESTRUCT_OBJECT_FIELD@261..262230 DESTRUCT_OBJECT_FIELD@261..262
231 NAME@261..262231 NAME@261..262
232 IDENT@261..262 "b"232 IDENT@261..262 "b"
233 COMMA@262..263 ","233 COMMA@262..263 ","
234 WHITESPACE@263..264 " "234 WHITESPACE@263..264 " "
235 DESTRUCT_OBJECT_FIELD@264..265235 DESTRUCT_OBJECT_FIELD@264..265
236 NAME@264..265236 NAME@264..265
237 IDENT@264..265 "c"237 IDENT@264..265 "c"
238 COMMA@265..266 ","238 COMMA@265..266 ","
239 WHITESPACE@266..267 " "239 WHITESPACE@266..267 " "
240 DESTRUCT_REST@267..271240 DESTRUCT_REST@267..271
241 DOTDOTDOT@267..270 "..."241 DOTDOTDOT@267..270 "..."
242 IDENT@270..271 "n"242 IDENT@270..271 "n"
243 R_BRACE@271..272 "}"243 R_BRACE@271..272 "}"
244 WHITESPACE@272..273 " "244 WHITESPACE@272..273 " "
245 ASSIGN@273..274 "="245 ASSIGN@273..274 "="
246 WHITESPACE@274..275 " "246 WHITESPACE@274..275 " "
247 EXPR_VAR@275..285247 EXPR_VAR@275..285
248 NAME@275..285248 NAME@275..285
249 IDENT@275..285 "obj_rest_n"249 IDENT@275..285 "obj_rest_n"
250 SEMI@285..286 ";"250 SEMI@285..286 ";"
251 WHITESPACE@286..288 "\n\n"251 WHITESPACE@286..288 "\n\n"
252 EXPR_LITERAL@288..292252 EXPR_LITERAL@288..292
253 NULL_KW@288..292 "null"253 NULL_KW@288..292 "null"
254 WHITESPACE@292..293 "\n"254 WHITESPACE@292..293 "\n"
255
256255
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_method.snapdiffbeforeafterboth
3expression: "local\n\ta(x) = x,\n\ta = function(x) x,\n; c\n"3expression: "local\n\ta(x) = x,\n\ta = function(x) x,\n; c\n"
4---4---
5SOURCE_FILE@0..415SOURCE_FILE@0..41
6 EXPR_LOCAL@0..406 STMT_LOCAL@0..38
7 LOCAL_KW@0..5 "local"7 LOCAL_KW@0..5 "local"
8 WHITESPACE@5..7 "\n\t"8 WHITESPACE@5..7 "\n\t"
9 BIND_FUNCTION@7..159 BIND_FUNCTION@7..15
45 COMMA@35..36 ","45 COMMA@35..36 ","
46 WHITESPACE@36..37 "\n"46 WHITESPACE@36..37 "\n"
47 SEMI@37..38 ";"47 SEMI@37..38 ";"
48 WHITESPACE@38..39 " "48 WHITESPACE@38..39 " "
49 EXPR_VAR@39..4049 EXPR_VAR@39..40
50 NAME@39..4050 NAME@39..40
51 IDENT@39..40 "c"51 IDENT@39..40 "c"
52 WHITESPACE@40..41 "\n"52 WHITESPACE@40..41 "\n"
5353
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_no_value_recovery.snapdiffbeforeafterboth
3expression: "local a =\nlocal b = 3;\n1\n"3expression: "local a =\nlocal b = 3;\n1\n"
4---4---
5SOURCE_FILE@0..255SOURCE_FILE@0..25
6 EXPR_LOCAL@0..256 STMT_LOCAL@0..25
7 LOCAL_KW@0..5 "local"7 LOCAL_KW@0..5 "local"
8 WHITESPACE@5..6 " "8 WHITESPACE@5..6 " "
9 BIND_DESTRUCT@6..249 BIND_DESTRUCT@6..24
13 WHITESPACE@7..8 " "13 WHITESPACE@7..8 " "
14 ASSIGN@8..9 "="14 ASSIGN@8..9 "="
15 WHITESPACE@9..10 "\n"15 WHITESPACE@9..10 "\n"
16 EXPR_LOCAL@10..2416 STMT_LOCAL@10..22
17 LOCAL_KW@10..15 "local"17 LOCAL_KW@10..15 "local"
18 WHITESPACE@15..16 " "18 WHITESPACE@15..16 " "
19 BIND_DESTRUCT@16..2119 BIND_DESTRUCT@16..21
26 EXPR_NUMBER@20..2126 EXPR_NUMBER@20..21
27 FLOAT@20..21 "3"27 FLOAT@20..21 "3"
28 SEMI@21..22 ";"28 SEMI@21..22 ";"
29 WHITESPACE@22..23 "\n"29 WHITESPACE@22..23 "\n"
30 EXPR_NUMBER@23..2430 EXPR_NUMBER@23..24
31 FLOAT@23..24 "1"31 FLOAT@23..24 "1"
32 WHITESPACE@24..25 "\n"32 WHITESPACE@24..25 "\n"
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(SyntaxKindSet([L_BRACK, L_PAREN, L_BRACE, SEMI, DOT, COMMA])) }, 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 }
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__local_novalue.snapdiffbeforeafterboth
3expression: "local a =\n"3expression: "local a =\n"
4---4---
5SOURCE_FILE@0..105SOURCE_FILE@0..10
6 EXPR_LOCAL@0..106 STMT_LOCAL@0..10
7 LOCAL_KW@0..5 "local"7 LOCAL_KW@0..5 "local"
8 WHITESPACE@5..6 " "8 WHITESPACE@5..6 " "
9 BIND_DESTRUCT@6..109 BIND_DESTRUCT@6..10
15 WHITESPACE@9..10 "\n"15 WHITESPACE@9..10 "\n"
16 ERROR_MISSING_TOKEN@10..1016 ERROR_MISSING_TOKEN@10..10
17 ERROR_MISSING_TOKEN@10..1017 ERROR_MISSING_TOKEN@10..10
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(SyntaxKindSet([SEMI, COMMA])) }, range: 10..10 }21LocatedSyntaxError { error: Missing { expected: Unnamed(SyntaxKindSet([SEMI, COMMA])) }, range: 10..10 }
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__stdlib.snapdiffbeforeafterboth
1---1---
2source: crates/jrsonnet-rowan-parser/src/tests.rs2source: crates/jrsonnet-rowan-parser/src/tests.rs
3expression: "{\n local std = self,\n local id = std.id,\n\n thisFile:: error 'std.thisFile is deprecated, to enable its support in jrsonnet - recompile it with \"legacy-this-file\" support.\\nThis will slow down stdlib caching a bit, though',\n\n toString(a):: '' + a,\n\n lstripChars(str, chars)::\n if std.length(str) > 0 && std.member(chars, str[0]) then\n std.lstripChars(str[1:], chars)\n else\n str,\n\n rstripChars(str, chars)::\n local len = std.length(str);\n if len > 0 && std.member(chars, str[len - 1]) then\n std.rstripChars(str[:len - 1], chars)\n else\n str,\n\n stripChars(str, chars)::\n std.lstripChars(std.rstripChars(str, chars), chars),\n\n stringChars(str)::\n std.makeArray(std.length(str), function(i) str[i]),\n\n splitLimitR(str, c, maxsplits)::\n if maxsplits == -1 then\n std.splitLimit(str, c, -1)\n else\n local revStr(str) = std.join('', std.reverse(std.stringChars(str)));\n std.map(function(e) revStr(e), std.reverse(std.splitLimit(revStr(str), revStr(c), maxsplits))),\n\n split(str, c):: std.splitLimit(str, c, -1),\n\n mapWithIndex(func, arr)::\n if !std.isFunction(func) then\n error ('std.mapWithIndex first param must be function, got ' + std.type(func))\n else if !std.isArray(arr) && !std.isString(arr) then\n error ('std.mapWithIndex second param must be array, got ' + std.type(arr))\n else\n std.makeArray(std.length(arr), function(i) func(i, arr[i])),\n\n mapWithKey(func, obj)::\n if !std.isFunction(func) then\n error ('std.mapWithKey first param must be function, got ' + std.type(func))\n else if !std.isObject(obj) then\n error ('std.mapWithKey second param must be object, got ' + std.type(obj))\n else\n { [k]: func(k, obj[k]) for k in std.objectFields(obj) },\n\n lines(arr)::\n std.join('\\n', arr + ['']),\n\n deepJoin(arr)::\n if std.isString(arr) then\n arr\n else if std.isArray(arr) then\n std.join('', [std.deepJoin(x) for x in arr])\n else\n error 'Expected string or array, got %s' % std.type(arr),\n\n filterMap(filter_func, map_func, arr)::\n if !std.isFunction(filter_func) then\n error ('std.filterMap first param must be function, got ' + std.type(filter_func))\n else if !std.isFunction(map_func) then\n error ('std.filterMap second param must be function, got ' + std.type(map_func))\n else if !std.isArray(arr) then\n error ('std.filterMap third param must be array, got ' + std.type(arr))\n else\n std.map(map_func, std.filter(filter_func, arr)),\n\n assertEqual(a, b)::\n if a == b then\n true\n else\n error 'Assertion failed. ' + a + ' != ' + b,\n\n clamp(x, minVal, maxVal)::\n if x < minVal then minVal\n else if x > maxVal then maxVal\n else x,\n\n flattenArrays(arrs)::\n std.foldl(function(a, b) a + b, arrs, []),\n\n manifestIni(ini)::\n local body_lines(body) =\n std.join([], [\n local value_or_values = body[k];\n if std.isArray(value_or_values) then\n ['%s = %s' % [k, value] for value in value_or_values]\n else\n ['%s = %s' % [k, value_or_values]]\n\n for k in std.objectFields(body)\n ]);\n\n local section_lines(sname, sbody) = ['[%s]' % [sname]] + body_lines(sbody),\n main_body = if std.objectHas(ini, 'main') then body_lines(ini.main) else [],\n all_sections = [\n section_lines(k, ini.sections[k])\n for k in std.objectFields(ini.sections)\n ];\n std.join('\\n', main_body + std.flattenArrays(all_sections) + ['']),\n\n manifestToml(value):: std.manifestTomlEx(value, ' '),\n\n escapeStringPython(str)::\n std.escapeStringJson(str),\n\n escapeStringBash(str_)::\n local str = std.toString(str_);\n local trans(ch) =\n if ch == \"'\" then\n \"'\\\"'\\\"'\"\n else\n ch;\n \"'%s'\" % std.join('', [trans(ch) for ch in std.stringChars(str)]),\n\n escapeStringDollars(str_)::\n local str = std.toString(str_);\n local trans(ch) =\n if ch == '$' then\n '$$'\n else\n ch;\n std.foldl(function(a, b) a + trans(b), std.stringChars(str), ''),\n\n local xml_escapes = {\n '<': '&lt;',\n '>': '&gt;',\n '&': '&amp;',\n '\"': '&quot;',\n \"'\": '&apos;',\n },\n\n escapeStringXML(str_)::\n local str = std.toString(str_);\n std.join('', [std.get(xml_escapes, ch, ch) for ch in std.stringChars(str)]),\n\n manifestJson(value):: std.manifestJsonEx(value, ' ') tailstrict,\n\n manifestJsonMinified(value):: std.manifestJsonEx(value, '', '', ':'),\n\n manifestYamlStream(value, indent_array_in_object=false, c_document_end=true, quote_keys=true)::\n if !std.isArray(value) then\n error 'manifestYamlStream only takes arrays, got ' + std.type(value)\n else\n '---\\n' + std.join(\n '\\n---\\n', [std.manifestYamlDoc(e, indent_array_in_object, quote_keys) for e in value]\n ) + if c_document_end then '\\n...\\n' else '\\n',\n\n manifestPython(v)::\n if std.isObject(v) then\n local fields = [\n '%s: %s' % [std.escapeStringPython(k), std.manifestPython(v[k])]\n for k in std.objectFields(v)\n ];\n '{%s}' % [std.join(', ', fields)]\n else if std.isArray(v) then\n '[%s]' % [std.join(', ', [std.manifestPython(v2) for v2 in v])]\n else if std.isString(v) then\n '%s' % [std.escapeStringPython(v)]\n else if std.isFunction(v) then\n error 'cannot manifest function'\n else if std.isNumber(v) then\n std.toString(v)\n else if v == true then\n 'True'\n else if v == false then\n 'False'\n else if v == null then\n 'None',\n\n manifestPythonVars(conf)::\n local vars = ['%s = %s' % [k, std.manifestPython(conf[k])] for k in std.objectFields(conf)];\n std.join('\\n', vars + ['']),\n\n manifestXmlJsonml(value)::\n if !std.isArray(value) then\n error 'Expected a JSONML value (an array), got %s' % std.type(value)\n else\n local aux(v) =\n if std.isString(v) then\n v\n else\n local tag = v[0];\n local has_attrs = std.length(v) > 1 && std.isObject(v[1]);\n local attrs = if has_attrs then v[1] else {};\n local children = if has_attrs then v[2:] else v[1:];\n local attrs_str =\n std.join('', [' %s=\"%s\"' % [k, attrs[k]] for k in std.objectFields(attrs)]);\n std.deepJoin(['<', tag, attrs_str, '>', [aux(x) for x in children], '</', tag, '>']);\n\n aux(value),\n\n uniq(arr, keyF=id)::\n local f(a, b) =\n if std.length(a) == 0 then\n [b]\n else if keyF(a[std.length(a) - 1]) == keyF(b) then\n a\n else\n a + [b];\n std.foldl(f, arr, []),\n\n set(arr, keyF=id)::\n std.uniq(std.sort(arr, keyF), keyF),\n\n setMember(x, arr, keyF=id)::\n // TODO(dcunnin): Binary chop for O(log n) complexity\n std.length(std.setInter([x], arr, keyF)) > 0,\n\n setUnion(a, b, keyF=id)::\n // NOTE: order matters, values in `a` win\n local aux(a, b, i, j, acc) =\n if i >= std.length(a) then\n acc + b[j:]\n else if j >= std.length(b) then\n acc + a[i:]\n else\n local ak = keyF(a[i]);\n local bk = keyF(b[j]);\n if ak == bk then\n aux(a, b, i + 1, j + 1, acc + [a[i]]) tailstrict\n else if ak < bk then\n aux(a, b, i + 1, j, acc + [a[i]]) tailstrict\n else\n aux(a, b, i, j + 1, acc + [b[j]]) tailstrict;\n aux(a, b, 0, 0, []),\n\n setInter(a, b, keyF=id)::\n local aux(a, b, i, j, acc) =\n if i >= std.length(a) || j >= std.length(b) then\n acc\n else\n if keyF(a[i]) == keyF(b[j]) then\n aux(a, b, i + 1, j + 1, acc + [a[i]]) tailstrict\n else if keyF(a[i]) < keyF(b[j]) then\n aux(a, b, i + 1, j, acc) tailstrict\n else\n aux(a, b, i, j + 1, acc) tailstrict;\n aux(a, b, 0, 0, []) tailstrict,\n\n setDiff(a, b, keyF=id)::\n local aux(a, b, i, j, acc) =\n if i >= std.length(a) then\n acc\n else if j >= std.length(b) then\n acc + a[i:]\n else\n if keyF(a[i]) == keyF(b[j]) then\n aux(a, b, i + 1, j + 1, acc) tailstrict\n else if keyF(a[i]) < keyF(b[j]) then\n aux(a, b, i + 1, j, acc + [a[i]]) tailstrict\n else\n aux(a, b, i, j + 1, acc) tailstrict;\n aux(a, b, 0, 0, []) tailstrict,\n\n mergePatch(target, patch)::\n if std.isObject(patch) then\n local target_object =\n if std.isObject(target) then target else {};\n\n local target_fields =\n if std.isObject(target_object) then std.objectFields(target_object) else [];\n\n local null_fields = [k for k in std.objectFields(patch) if patch[k] == null];\n local both_fields = std.setUnion(target_fields, std.objectFields(patch));\n\n {\n [k]:\n if !std.objectHas(patch, k) then\n target_object[k]\n else if !std.objectHas(target_object, k) then\n std.mergePatch(null, patch[k]) tailstrict\n else\n std.mergePatch(target_object[k], patch[k]) tailstrict\n for k in std.setDiff(both_fields, null_fields)\n }\n else\n patch,\n\n get(o, f, default=null, inc_hidden=true)::\n if std.objectHasEx(o, f, inc_hidden) then o[f] else default,\n\n objectFields(o)::\n std.objectFieldsEx(o, false),\n\n objectFieldsAll(o)::\n std.objectFieldsEx(o, true),\n\n objectHas(o, f)::\n std.objectHasEx(o, f, false),\n\n objectHasAll(o, f)::\n std.objectHasEx(o, f, true),\n\n objectValues(o)::\n [o[k] for k in std.objectFields(o)],\n\n objectValuesAll(o)::\n [o[k] for k in std.objectFieldsAll(o)],\n\n resolvePath(f, r)::\n local arr = std.split(f, '/');\n std.join('/', std.makeArray(std.length(arr) - 1, function(i) arr[i]) + [r]),\n\n prune(a)::\n local isContent(b) =\n if b == null then\n false\n else if std.isArray(b) then\n std.length(b) > 0\n else if std.isObject(b) then\n std.length(b) > 0\n else\n true;\n if std.isArray(a) then\n [std.prune(x) for x in a if isContent($.prune(x))]\n else if std.isObject(a) then {\n [x]: $.prune(a[x])\n for x in std.objectFields(a)\n if isContent(std.prune(a[x]))\n } else\n a,\n\n find(value, arr)::\n if !std.isArray(arr) then\n error 'find second parameter should be an array, got ' + std.type(arr)\n else\n std.filter(function(i) arr[i] == value, std.range(0, std.length(arr) - 1)),\n}\n"3expression: "{\n local std = self,\n local id = std.id,\n\n thisFile:: error 'std.thisFile is deprecated, to enable its support in jrsonnet - recompile it with \"legacy-this-file\" support.\\nThis will slow down stdlib caching a bit, though',\n\n toString(a):: '' + a,\n\n lstripChars(str, chars)::\n if std.length(str) > 0 && std.member(chars, str[0]) then\n std.lstripChars(str[1:], chars)\n else\n str,\n\n rstripChars(str, chars)::\n local len = std.length(str);\n if len > 0 && std.member(chars, str[len - 1]) then\n std.rstripChars(str[:len - 1], chars)\n else\n str,\n\n stripChars(str, chars)::\n std.lstripChars(std.rstripChars(str, chars), chars),\n\n stringChars(str)::\n std.makeArray(std.length(str), function(i) str[i]),\n\n splitLimitR(str, c, maxsplits)::\n if maxsplits == -1 then\n std.splitLimit(str, c, -1)\n else\n local revStr(str) = std.join('', std.reverse(std.stringChars(str)));\n std.map(function(e) revStr(e), std.reverse(std.splitLimit(revStr(str), revStr(c), maxsplits))),\n\n split(str, c):: std.splitLimit(str, c, -1),\n\n mapWithIndex(func, arr)::\n if !std.isFunction(func) then\n error ('std.mapWithIndex first param must be function, got ' + std.type(func))\n else if !std.isArray(arr) && !std.isString(arr) then\n error ('std.mapWithIndex second param must be array, got ' + std.type(arr))\n else\n std.makeArray(std.length(arr), function(i) func(i, arr[i])),\n\n mapWithKey(func, obj)::\n if !std.isFunction(func) then\n error ('std.mapWithKey first param must be function, got ' + std.type(func))\n else if !std.isObject(obj) then\n error ('std.mapWithKey second param must be object, got ' + std.type(obj))\n else\n { [k]: func(k, obj[k]) for k in std.objectFields(obj) },\n\n lines(arr)::\n std.join('\\n', arr + ['']),\n\n deepJoin(arr)::\n if std.isString(arr) then\n arr\n else if std.isArray(arr) then\n std.join('', [std.deepJoin(x) for x in arr])\n else\n error 'Expected string or array, got %s' % std.type(arr),\n\n filterMap(filter_func, map_func, arr)::\n if !std.isFunction(filter_func) then\n error ('std.filterMap first param must be function, got ' + std.type(filter_func))\n else if !std.isFunction(map_func) then\n error ('std.filterMap second param must be function, got ' + std.type(map_func))\n else if !std.isArray(arr) then\n error ('std.filterMap third param must be array, got ' + std.type(arr))\n else\n std.map(map_func, std.filter(filter_func, arr)),\n\n assertEqual(a, b)::\n if a == b then\n true\n else\n error 'Assertion failed. ' + a + ' != ' + b,\n\n clamp(x, minVal, maxVal)::\n if x < minVal then minVal\n else if x > maxVal then maxVal\n else x,\n\n flattenArrays(arrs)::\n std.foldl(function(a, b) a + b, arrs, []),\n\n manifestIni(ini)::\n local body_lines(body) =\n std.join([], [\n local value_or_values = body[k];\n if std.isArray(value_or_values) then\n ['%s = %s' % [k, value] for value in value_or_values]\n else\n ['%s = %s' % [k, value_or_values]]\n\n for k in std.objectFields(body)\n ]);\n\n local section_lines(sname, sbody) = ['[%s]' % [sname]] + body_lines(sbody),\n main_body = if std.objectHas(ini, 'main') then body_lines(ini.main) else [],\n all_sections = [\n section_lines(k, ini.sections[k])\n for k in std.objectFields(ini.sections)\n ];\n std.join('\\n', main_body + std.flattenArrays(all_sections) + ['']),\n\n manifestToml(value):: std.manifestTomlEx(value, ' '),\n\n escapeStringPython(str)::\n std.escapeStringJson(str),\n\n escapeStringBash(str_)::\n local str = std.toString(str_);\n local trans(ch) =\n if ch == \"'\" then\n \"'\\\"'\\\"'\"\n else\n ch;\n \"'%s'\" % std.join('', [trans(ch) for ch in std.stringChars(str)]),\n\n escapeStringDollars(str_)::\n local str = std.toString(str_);\n local trans(ch) =\n if ch == '$' then\n '$$'\n else\n ch;\n std.foldl(function(a, b) a + trans(b), std.stringChars(str), ''),\n\n local xml_escapes = {\n '<': '&lt;',\n '>': '&gt;',\n '&': '&amp;',\n '\"': '&quot;',\n \"'\": '&apos;',\n },\n\n escapeStringXML(str_)::\n local str = std.toString(str_);\n std.join('', [std.get(xml_escapes, ch, ch) for ch in std.stringChars(str)]),\n\n manifestJson(value):: std.manifestJsonEx(value, ' ') tailstrict,\n\n manifestJsonMinified(value):: std.manifestJsonEx(value, '', '', ':'),\n\n manifestYamlStream(value, indent_array_in_object=false, c_document_end=true, quote_keys=true)::\n if !std.isArray(value) then\n error 'manifestYamlStream only takes arrays, got ' + std.type(value)\n else\n '---\\n' + std.join(\n '\\n---\\n', [std.manifestYamlDoc(e, indent_array_in_object, quote_keys) for e in value]\n ) + if c_document_end then '\\n...\\n' else '\\n',\n\n manifestPython(v)::\n if std.isObject(v) then\n local fields = [\n '%s: %s' % [std.escapeStringPython(k), std.manifestPython(v[k])]\n for k in std.objectFields(v)\n ];\n '{%s}' % [std.join(', ', fields)]\n else if std.isArray(v) then\n '[%s]' % [std.join(', ', [std.manifestPython(v2) for v2 in v])]\n else if std.isString(v) then\n '%s' % [std.escapeStringPython(v)]\n else if std.isFunction(v) then\n error 'cannot manifest function'\n else if std.isNumber(v) then\n std.toString(v)\n else if v == true then\n 'True'\n else if v == false then\n 'False'\n else if v == null then\n 'None',\n\n manifestPythonVars(conf)::\n local vars = ['%s = %s' % [k, std.manifestPython(conf[k])] for k in std.objectFields(conf)];\n std.join('\\n', vars + ['']),\n\n manifestXmlJsonml(value)::\n if !std.isArray(value) then\n error 'Expected a JSONML value (an array), got %s' % std.type(value)\n else\n local aux(v) =\n if std.isString(v) then\n v\n else\n local tag = v[0];\n local has_attrs = std.length(v) > 1 && std.isObject(v[1]);\n local attrs = if has_attrs then v[1] else {};\n local children = if has_attrs then v[2:] else v[1:];\n local attrs_str =\n std.join('', [' %s=\"%s\"' % [k, attrs[k]] for k in std.objectFields(attrs)]);\n std.deepJoin(['<', tag, attrs_str, '>', [aux(x) for x in children], '</', tag, '>']);\n\n aux(value),\n\n setUnion(a, b, keyF=id)::\n // NOTE: order matters, values in `a` win\n local aux(a, b, i, j, acc) =\n if i >= std.length(a) then\n acc + b[j:]\n else if j >= std.length(b) then\n acc + a[i:]\n else\n local ak = keyF(a[i]);\n local bk = keyF(b[j]);\n if ak == bk then\n aux(a, b, i + 1, j + 1, acc + [a[i]]) tailstrict\n else if ak < bk then\n aux(a, b, i + 1, j, acc + [a[i]]) tailstrict\n else\n aux(a, b, i, j + 1, acc + [b[j]]) tailstrict;\n aux(a, b, 0, 0, []),\n\n setDiff(a, b, keyF=id)::\n local aux(a, b, i, j, acc) =\n if i >= std.length(a) then\n acc\n else if j >= std.length(b) then\n acc + a[i:]\n else\n if keyF(a[i]) == keyF(b[j]) then\n aux(a, b, i + 1, j + 1, acc) tailstrict\n else if keyF(a[i]) < keyF(b[j]) then\n aux(a, b, i + 1, j, acc + [a[i]]) tailstrict\n else\n aux(a, b, i, j + 1, acc) tailstrict;\n aux(a, b, 0, 0, []) tailstrict,\n\n mergePatch(target, patch)::\n if std.isObject(patch) then\n local target_object =\n if std.isObject(target) then target else {};\n\n local target_fields =\n if std.isObject(target_object) then std.objectFields(target_object) else [];\n\n local null_fields = [k for k in std.objectFields(patch) if patch[k] == null];\n local both_fields = std.setUnion(target_fields, std.objectFields(patch));\n\n {\n [k]:\n if !std.objectHas(patch, k) then\n target_object[k]\n else if !std.objectHas(target_object, k) then\n std.mergePatch(null, patch[k]) tailstrict\n else\n std.mergePatch(target_object[k], patch[k]) tailstrict\n for k in std.setDiff(both_fields, null_fields)\n }\n else\n patch,\n\n get(o, f, default=null, inc_hidden=true)::\n if std.objectHasEx(o, f, inc_hidden) then o[f] else default,\n\n objectFields(o)::\n std.objectFieldsEx(o, false),\n\n objectFieldsAll(o)::\n std.objectFieldsEx(o, true),\n\n objectHas(o, f)::\n std.objectHasEx(o, f, false),\n\n objectHasAll(o, f)::\n std.objectHasEx(o, f, true),\n\n objectValues(o)::\n [o[k] for k in std.objectFields(o)],\n\n objectValuesAll(o)::\n [o[k] for k in std.objectFieldsAll(o)],\n\n resolvePath(f, r)::\n local arr = std.split(f, '/');\n std.join('/', std.makeArray(std.length(arr) - 1, function(i) arr[i]) + [r]),\n\n prune(a)::\n local isContent(b) =\n if b == null then\n false\n else if std.isArray(b) then\n std.length(b) > 0\n else if std.isObject(b) then\n std.length(b) > 0\n else\n true;\n if std.isArray(a) then\n [std.prune(x) for x in a if isContent($.prune(x))]\n else if std.isObject(a) then {\n [x]: $.prune(a[x])\n for x in std.objectFields(a)\n if isContent(std.prune(a[x]))\n } else\n a,\n\n find(value, arr)::\n if !std.isArray(arr) then\n error 'find second parameter should be an array, got ' + std.type(arr)\n else\n std.filter(function(i) arr[i] == value, std.range(0, std.length(arr) - 1)),\n\n // Compat\n __compare_array(arr1, arr2)::\n assert std.isArray(arr1) && std.isArray(arr2);\n std.__compare(arr1, arr2),\n __array_less(arr1, arr2):: std.__compare_array(arr1, arr2) == -1,\n __array_greater(arr1, arr2):: std.__compare_array(arr1, arr2) == 1,\n __array_less_or_equal(arr1, arr2):: std.__compare_array(arr1, arr2) <= 0,\n __array_greater_or_equal(arr1, arr2):: std.__compare_array(arr1, arr2) >= 0,\n}\n"
4---4---
5SOURCE_FILE@0..102825SOURCE_FILE@0..9860
6 EXPR_OBJECT@0..102816 EXPR_OBJECT@0..9859
7 OBJ_BODY_MEMBER_LIST@0..102817 OBJ_BODY_MEMBER_LIST@0..9859
8 L_BRACE@0..1 "{"8 L_BRACE@0..1 "{"
9 WHITESPACE@1..4 "\n "9 WHITESPACE@1..4 "\n "
10 MEMBER_BIND_STMT@4..2010 MEMBER_BIND_STMT@4..20
216 R_PAREN@424..425 ")"216 R_PAREN@424..425 ")"
217 COLONCOLON@425..427 "::"217 COLONCOLON@425..427 "::"
218 WHITESPACE@427..432 "\n "218 WHITESPACE@427..432 "\n "
219 EXPR_LOCAL@432..578219 STMT_LOCAL@432..460
220 LOCAL_KW@432..437 "local"220 LOCAL_KW@432..437 "local"
221 WHITESPACE@437..438 " "221 WHITESPACE@437..438 " "
222 BIND_DESTRUCT@438..459222 BIND_DESTRUCT@438..459
242 IDENT@455..458 "str"242 IDENT@455..458 "str"
243 R_PAREN@458..459 ")"243 R_PAREN@458..459 ")"
244 SEMI@459..460 ";"244 SEMI@459..460 ";"
245 WHITESPACE@460..465 "\n "245 WHITESPACE@460..465 "\n "
246 EXPR_IF_THEN_ELSE@465..578246 EXPR_IF_THEN_ELSE@465..578
247 IF_KW@465..467 "if"247 IF_KW@465..467 "if"
248 WHITESPACE@467..468 " "248 WHITESPACE@467..468 " "
249 EXPR_BINARY@468..510249 EXPR_BINARY@468..510
250 LHS_EXPR@468..475250 LHS_EXPR@468..475
251 EXPR_BINARY@468..475251 EXPR_BINARY@468..475
252 LHS_EXPR@468..471252 LHS_EXPR@468..471
253 EXPR_VAR@468..471253 EXPR_VAR@468..471
254 NAME@468..471254 NAME@468..471
255 IDENT@468..471 "len"255 IDENT@468..471 "len"
256 WHITESPACE@471..472 " "256 WHITESPACE@471..472 " "
257 GT@472..473 ">"257 GT@472..473 ">"
258 WHITESPACE@473..474 " "258 WHITESPACE@473..474 " "
259 EXPR_NUMBER@474..475259 EXPR_NUMBER@474..475
260 FLOAT@474..475 "0"260 FLOAT@474..475 "0"
261 WHITESPACE@475..476 " "261 WHITESPACE@475..476 " "
262 AND@476..478 "&&"262 AND@476..478 "&&"
263 WHITESPACE@478..479 " "263 WHITESPACE@478..479 " "
264 EXPR_APPLY@479..510264 EXPR_APPLY@479..510
265 EXPR_INDEX@479..489265 EXPR_INDEX@479..489
266 EXPR_VAR@479..482266 EXPR_VAR@479..482
267 NAME@479..482267 NAME@479..482
268 IDENT@479..482 "std"268 IDENT@479..482 "std"
269 DOT@482..483 "."269 DOT@482..483 "."
270 NAME@483..489270 NAME@483..489
271 IDENT@483..489 "member"271 IDENT@483..489 "member"
272 ARGS_DESC@489..510272 ARGS_DESC@489..510
273 L_PAREN@489..490 "("273 L_PAREN@489..490 "("
274 ARG@490..495274 ARG@490..495
275 EXPR_VAR@490..495275 EXPR_VAR@490..495
276 NAME@490..495276 NAME@490..495
277 IDENT@490..495 "chars"277 IDENT@490..495 "chars"
278 COMMA@495..496 ","278 COMMA@495..496 ","
279 WHITESPACE@496..497 " "279 WHITESPACE@496..497 " "
280 ARG@497..509280 ARG@497..509
281 EXPR_INDEX_EXPR@497..509281 EXPR_INDEX_EXPR@497..509
282 LHS_EXPR@497..500282 LHS_EXPR@497..500
283 EXPR_VAR@497..500283 EXPR_VAR@497..500
284 NAME@497..500284 NAME@497..500
285 IDENT@497..500 "str"285 IDENT@497..500 "str"
286 L_BRACK@500..501 "["286 L_BRACK@500..501 "["
287 EXPR_BINARY@501..508287 EXPR_BINARY@501..508
288 LHS_EXPR@501..504288 LHS_EXPR@501..504
289 EXPR_VAR@501..504289 EXPR_VAR@501..504
290 NAME@501..504290 NAME@501..504
291 IDENT@501..504 "len"291 IDENT@501..504 "len"
292 WHITESPACE@504..505 " "292 WHITESPACE@504..505 " "
293 MINUS@505..506 "-"293 MINUS@505..506 "-"
294 WHITESPACE@506..507 " "294 WHITESPACE@506..507 " "
295 EXPR_NUMBER@507..508295 EXPR_NUMBER@507..508
296 FLOAT@507..508 "1"296 FLOAT@507..508 "1"
297 R_BRACK@508..509 "]"297 R_BRACK@508..509 "]"
298 R_PAREN@509..510 ")"298 R_PAREN@509..510 ")"
299 WHITESPACE@510..511 " "299 WHITESPACE@510..511 " "
300 THEN_KW@511..515 "then"300 THEN_KW@511..515 "then"
301 WHITESPACE@515..522 "\n "301 WHITESPACE@515..522 "\n "
302 TRUE_EXPR@522..559302 TRUE_EXPR@522..559
303 EXPR_APPLY@522..559303 EXPR_APPLY@522..559
304 EXPR_INDEX@522..537304 EXPR_INDEX@522..537
305 EXPR_VAR@522..525305 EXPR_VAR@522..525
306 NAME@522..525306 NAME@522..525
307 IDENT@522..525 "std"307 IDENT@522..525 "std"
308 DOT@525..526 "."308 DOT@525..526 "."
309 NAME@526..537309 NAME@526..537
310 IDENT@526..537 "rstripChars"310 IDENT@526..537 "rstripChars"
311 ARGS_DESC@537..559311 ARGS_DESC@537..559
312 L_PAREN@537..538 "("312 L_PAREN@537..538 "("
313 ARG@538..551313 ARG@538..551
314 EXPR_SLICE@538..551314 EXPR_SLICE@538..551
315 EXPR_VAR@538..541315 EXPR_VAR@538..541
316 NAME@538..541316 NAME@538..541
317 IDENT@538..541 "str"317 IDENT@538..541 "str"
318 SLICE_DESC@541..551318 SLICE_DESC@541..551
319 L_BRACK@541..542 "["319 L_BRACK@541..542 "["
320 COLON@542..543 ":"320 COLON@542..543 ":"
321 SLICE_DESC_END@543..550321 SLICE_DESC_END@543..550
322 EXPR_BINARY@543..550322 EXPR_BINARY@543..550
323 LHS_EXPR@543..546323 LHS_EXPR@543..546
324 EXPR_VAR@543..546324 EXPR_VAR@543..546
325 NAME@543..546325 NAME@543..546
326 IDENT@543..546 "len"326 IDENT@543..546 "len"
327 WHITESPACE@546..547 " "327 WHITESPACE@546..547 " "
328 MINUS@547..548 "-"328 MINUS@547..548 "-"
329 WHITESPACE@548..549 " "329 WHITESPACE@548..549 " "
330 EXPR_NUMBER@549..550330 EXPR_NUMBER@549..550
331 FLOAT@549..550 "1"331 FLOAT@549..550 "1"
332 R_BRACK@550..551 "]"332 R_BRACK@550..551 "]"
333 COMMA@551..552 ","333 COMMA@551..552 ","
334 WHITESPACE@552..553 " "334 WHITESPACE@552..553 " "
335 ARG@553..558335 ARG@553..558
336 EXPR_VAR@553..558336 EXPR_VAR@553..558
337 NAME@553..558337 NAME@553..558
338 IDENT@553..558 "chars"338 IDENT@553..558 "chars"
339 R_PAREN@558..559 ")"339 R_PAREN@558..559 ")"
340 WHITESPACE@559..564 "\n "340 WHITESPACE@559..564 "\n "
341 ELSE_KW@564..568 "else"341 ELSE_KW@564..568 "else"
342 WHITESPACE@568..575 "\n "342 WHITESPACE@568..575 "\n "
343 FALSE_EXPR@575..578343 FALSE_EXPR@575..578
344 EXPR_VAR@575..578344 EXPR_VAR@575..578
345 NAME@575..578345 NAME@575..578
346 IDENT@575..578 "str"346 IDENT@575..578 "str"
347 COMMA@578..579 ","347 COMMA@578..579 ","
348 WHITESPACE@579..583 "\n\n "348 WHITESPACE@579..583 "\n\n "
349 MEMBER_FIELD_METHOD@583..663349 MEMBER_FIELD_METHOD@583..663
546 WHITESPACE@839..844 "\n "546 WHITESPACE@839..844 "\n "
547 ELSE_KW@844..848 "else"547 ELSE_KW@844..848 "else"
548 WHITESPACE@848..855 "\n "548 WHITESPACE@848..855 "\n "
549 FALSE_EXPR@855..1024549 STMT_LOCAL@855..923
550 EXPR_LOCAL@855..1024550 LOCAL_KW@855..860 "local"
551 LOCAL_KW@855..860 "local"551 WHITESPACE@860..861 " "
552 WHITESPACE@860..861 " "552 BIND_FUNCTION@861..922
553 BIND_FUNCTION@861..922553 NAME@861..867
554 NAME@861..867554 IDENT@861..867 "revStr"
555 IDENT@861..867 "revStr"555 PARAMS_DESC@867..872
556 PARAMS_DESC@867..872556 L_PAREN@867..868 "("
557 L_PAREN@867..868 "("557 PARAM@868..871
558 PARAM@868..871558 DESTRUCT_FULL@868..871
559 DESTRUCT_FULL@868..871559 NAME@868..871
560 NAME@868..871560 IDENT@868..871 "str"
561 IDENT@868..871 "str"561 R_PAREN@871..872 ")"
562 R_PAREN@871..872 ")"562 WHITESPACE@872..873 " "
563 WHITESPACE@872..873 " "563 ASSIGN@873..874 "="
564 ASSIGN@873..874 "="564 WHITESPACE@874..875 " "
565 WHITESPACE@874..875 " "565 EXPR_APPLY@875..922
566 EXPR_APPLY@875..922566 EXPR_INDEX@875..883
567 EXPR_INDEX@875..883567 EXPR_VAR@875..878
568 EXPR_VAR@875..878568 NAME@875..878
569 NAME@875..878569 IDENT@875..878 "std"
570 IDENT@875..878 "std"570 DOT@878..879 "."
571 DOT@878..879 "."571 NAME@879..883
572 NAME@879..883572 IDENT@879..883 "join"
573 IDENT@879..883 "join"573 ARGS_DESC@883..922
574 ARGS_DESC@883..922574 L_PAREN@883..884 "("
575 L_PAREN@883..884 "("575 ARG@884..886
576 ARG@884..886576 EXPR_STRING@884..886
577 EXPR_STRING@884..886577 STRING_SINGLE@884..886 "''"
578 STRING_SINGLE@884..886 "''"578 COMMA@886..887 ","
579 COMMA@886..887 ","579 WHITESPACE@887..888 " "
580 WHITESPACE@887..888 " "580 ARG@888..921
581 ARG@888..921581 EXPR_APPLY@888..921
582 EXPR_APPLY@888..921582 EXPR_INDEX@888..899
583 EXPR_INDEX@888..899583 EXPR_VAR@888..891
584 EXPR_VAR@888..891584 NAME@888..891
585 NAME@888..891585 IDENT@888..891 "std"
586 IDENT@888..891 "std"586 DOT@891..892 "."
587 DOT@891..892 "."587 NAME@892..899
588 NAME@892..899588 IDENT@892..899 "reverse"
589 IDENT@892..899 "reverse"589 ARGS_DESC@899..921
590 ARGS_DESC@899..921590 L_PAREN@899..900 "("
591 L_PAREN@899..900 "("591 ARG@900..920
592 ARG@900..920592 EXPR_APPLY@900..920
593 EXPR_APPLY@900..920593 EXPR_INDEX@900..915
594 EXPR_INDEX@900..915594 EXPR_VAR@900..903
595 EXPR_VAR@900..903595 NAME@900..903
596 NAME@900..903596 IDENT@900..903 "std"
597 IDENT@900..903 "std"597 DOT@903..904 "."
598 DOT@903..904 "."598 NAME@904..915
599 NAME@904..915599 IDENT@904..915 "stringChars"
600 IDENT@904..915 "stringChars"600 ARGS_DESC@915..920
601 ARGS_DESC@915..920601 L_PAREN@915..916 "("
602 L_PAREN@915..916 "("602 ARG@916..919
603 ARG@916..919603 EXPR_VAR@916..919
604 EXPR_VAR@916..919604 NAME@916..919
605 NAME@916..919605 IDENT@916..919 "str"
606 IDENT@916..919 "str"606 R_PAREN@919..920 ")"
607 R_PAREN@919..920 ")"607 R_PAREN@920..921 ")"
608 R_PAREN@920..921 ")"608 R_PAREN@921..922 ")"
609 R_PAREN@921..922 ")"609 SEMI@922..923 ";"
610 SEMI@922..923 ";"610 WHITESPACE@923..930 "\n "
611 WHITESPACE@923..930 "\n "611 FALSE_EXPR@930..1024
612 EXPR_APPLY@930..1024612 EXPR_APPLY@930..1024
613 EXPR_INDEX@930..937613 EXPR_INDEX@930..937
614 EXPR_VAR@930..933614 EXPR_VAR@930..933
615 NAME@930..933615 NAME@930..933
616 IDENT@930..933 "std"616 IDENT@930..933 "std"
617 DOT@933..934 "."617 DOT@933..934 "."
618 NAME@934..937618 NAME@934..937
619 IDENT@934..937 "map"619 IDENT@934..937 "map"
620 ARGS_DESC@937..1024620 ARGS_DESC@937..1024
621 L_PAREN@937..938 "("621 L_PAREN@937..938 "("
622 ARG@938..959622 ARG@938..959
623 EXPR_FUNCTION@938..959623 EXPR_FUNCTION@938..959
624 FUNCTION_KW@938..946 "function"624 FUNCTION_KW@938..946 "function"
625 PARAMS_DESC@946..949625 PARAMS_DESC@946..949
626 L_PAREN@946..947 "("626 L_PAREN@946..947 "("
627 PARAM@947..948627 PARAM@947..948
628 DESTRUCT_FULL@947..948628 DESTRUCT_FULL@947..948
629 NAME@947..948629 NAME@947..948
630 IDENT@947..948 "e"630 IDENT@947..948 "e"
631 R_PAREN@948..949 ")"631 R_PAREN@948..949 ")"
632 WHITESPACE@949..950 " "632 WHITESPACE@949..950 " "
633 EXPR_APPLY@950..959633 EXPR_APPLY@950..959
634 EXPR_VAR@950..956634 EXPR_VAR@950..956
635 NAME@950..956635 NAME@950..956
636 IDENT@950..956 "revStr"636 IDENT@950..956 "revStr"
637 ARGS_DESC@956..959637 ARGS_DESC@956..959
638 L_PAREN@956..957 "("638 L_PAREN@956..957 "("
639 ARG@957..958639 ARG@957..958
640 EXPR_VAR@957..958640 EXPR_VAR@957..958
641 NAME@957..958641 NAME@957..958
642 IDENT@957..958 "e"642 IDENT@957..958 "e"
643 R_PAREN@958..959 ")"643 R_PAREN@958..959 ")"
644 COMMA@959..960 ","644 COMMA@959..960 ","
645 WHITESPACE@960..961 " "645 WHITESPACE@960..961 " "
646 ARG@961..1023646 ARG@961..1023
647 EXPR_APPLY@961..1023647 EXPR_APPLY@961..1023
648 EXPR_INDEX@961..972648 EXPR_INDEX@961..972
649 EXPR_VAR@961..964649 EXPR_VAR@961..964
650 NAME@961..964650 NAME@961..964
651 IDENT@961..964 "std"651 IDENT@961..964 "std"
652 DOT@964..965 "."652 DOT@964..965 "."
653 NAME@965..972653 NAME@965..972
654 IDENT@965..972 "reverse"654 IDENT@965..972 "reverse"
655 ARGS_DESC@972..1023655 ARGS_DESC@972..1023
656 L_PAREN@972..973 "("656 L_PAREN@972..973 "("
657 ARG@973..1022657 ARG@973..1022
658 EXPR_APPLY@973..1022658 EXPR_APPLY@973..1022
659 EXPR_INDEX@973..987659 EXPR_INDEX@973..987
660 EXPR_VAR@973..976660 EXPR_VAR@973..976
661 NAME@973..976661 NAME@973..976
662 IDENT@973..976 "std"662 IDENT@973..976 "std"
663 DOT@976..977 "."663 DOT@976..977 "."
664 NAME@977..987664 NAME@977..987
665 IDENT@977..987 "splitLimit"665 IDENT@977..987 "splitLimit"
666 ARGS_DESC@987..1022666 ARGS_DESC@987..1022
667 L_PAREN@987..988 "("667 L_PAREN@987..988 "("
668 ARG@988..999668 ARG@988..999
669 EXPR_APPLY@988..999669 EXPR_APPLY@988..999
670 EXPR_VAR@988..994670 EXPR_VAR@988..994
671 NAME@988..994671 NAME@988..994
672 IDENT@988..994 "revStr"672 IDENT@988..994 "revStr"
673 ARGS_DESC@994..999673 ARGS_DESC@994..999
674 L_PAREN@994..995 "("674 L_PAREN@994..995 "("
675 ARG@995..998675 ARG@995..998
676 EXPR_VAR@995..998676 EXPR_VAR@995..998
677 NAME@995..998677 NAME@995..998
678 IDENT@995..998 "str"678 IDENT@995..998 "str"
679 R_PAREN@998..999 ")"679 R_PAREN@998..999 ")"
680 COMMA@999..1000 ","680 COMMA@999..1000 ","
681 WHITESPACE@1000..1001 " "681 WHITESPACE@1000..1001 " "
682 ARG@1001..1010682 ARG@1001..1010
683 EXPR_APPLY@1001..1010683 EXPR_APPLY@1001..1010
684 EXPR_VAR@1001..1007684 EXPR_VAR@1001..1007
685 NAME@1001..1007685 NAME@1001..1007
686 IDENT@1001..1007 "revStr"686 IDENT@1001..1007 "revStr"
687 ARGS_DESC@1007..1010687 ARGS_DESC@1007..1010
688 L_PAREN@1007..1008 "("688 L_PAREN@1007..1008 "("
689 ARG@1008..1009689 ARG@1008..1009
690 EXPR_VAR@1008..1009690 EXPR_VAR@1008..1009
691 NAME@1008..1009691 NAME@1008..1009
692 IDENT@1008..1009 "c"692 IDENT@1008..1009 "c"
693 R_PAREN@1009..1010 ")"693 R_PAREN@1009..1010 ")"
694 COMMA@1010..1011 ","694 COMMA@1010..1011 ","
695 WHITESPACE@1011..1012 " "695 WHITESPACE@1011..1012 " "
696 ARG@1012..1021696 ARG@1012..1021
697 EXPR_VAR@1012..1021697 EXPR_VAR@1012..1021
698 NAME@1012..1021698 NAME@1012..1021
699 IDENT@1012..1021 "maxsplits"699 IDENT@1012..1021 "maxsplits"
700 R_PAREN@1021..1022 ")"700 R_PAREN@1021..1022 ")"
701 R_PAREN@1022..1023 ")"701 R_PAREN@1022..1023 ")"
702 R_PAREN@1023..1024 ")"702 R_PAREN@1023..1024 ")"
703 COMMA@1024..1025 ","703 COMMA@1024..1025 ","
704 WHITESPACE@1025..1029 "\n\n "704 WHITESPACE@1025..1029 "\n\n "
705 MEMBER_FIELD_METHOD@1029..1071705 MEMBER_FIELD_METHOD@1029..1071
1819 R_PAREN@2824..2825 ")"1819 R_PAREN@2824..2825 ")"
1820 COLONCOLON@2825..2827 "::"1820 COLONCOLON@2825..2827 "::"
1821 WHITESPACE@2827..2832 "\n "1821 WHITESPACE@2827..2832 "\n "
1822 EXPR_LOCAL@2832..34951822 STMT_LOCAL@2832..3136
1823 LOCAL_KW@2832..2837 "local"1823 LOCAL_KW@2832..2837 "local"
1824 WHITESPACE@2837..2838 " "1824 WHITESPACE@2837..2838 " "
1825 BIND_FUNCTION@2838..31351825 BIND_FUNCTION@2838..3135
1855 EXPR_ARRAY_COMP@2876..31341855 EXPR_ARRAY_COMP@2876..3134
1856 L_BRACK@2876..2877 "["1856 L_BRACK@2876..2877 "["
1857 WHITESPACE@2877..2886 "\n "1857 WHITESPACE@2877..2886 "\n "
1858 EXPR_LOCAL@2886..30851858 STMT_LOCAL@2886..2918
1859 LOCAL_KW@2886..2891 "local"1859 LOCAL_KW@2886..2891 "local"
1860 WHITESPACE@2891..2892 " "1860 WHITESPACE@2891..2892 " "
1861 BIND_DESTRUCT@2892..29171861 BIND_DESTRUCT@2892..2917
1876 IDENT@2915..2916 "k"1876 IDENT@2915..2916 "k"
1877 R_BRACK@2916..2917 "]"1877 R_BRACK@2916..2917 "]"
1878 SEMI@2917..2918 ";"1878 SEMI@2917..2918 ";"
1879 WHITESPACE@2918..2927 "\n "1879 WHITESPACE@2918..2927 "\n "
1880 EXPR_IF_THEN_ELSE@2927..30851880 EXPR_IF_THEN_ELSE@2927..3085
1881 IF_KW@2927..2929 "if"1881 IF_KW@2927..2929 "if"
1882 WHITESPACE@2929..2930 " "1882 WHITESPACE@2929..2930 " "
1883 EXPR_APPLY@2930..29581883 EXPR_APPLY@2930..2958
1884 EXPR_INDEX@2930..29411884 EXPR_INDEX@2930..2941
1885 EXPR_VAR@2930..29331885 EXPR_VAR@2930..2933
1886 NAME@2930..29331886 NAME@2930..2933
1887 IDENT@2930..2933 "std"1887 IDENT@2930..2933 "std"
1888 DOT@2933..2934 "."1888 DOT@2933..2934 "."
1889 NAME@2934..29411889 NAME@2934..2941
1890 IDENT@2934..2941 "isArray"1890 IDENT@2934..2941 "isArray"
1891 ARGS_DESC@2941..29581891 ARGS_DESC@2941..2958
1892 L_PAREN@2941..2942 "("1892 L_PAREN@2941..2942 "("
1893 ARG@2942..29571893 ARG@2942..2957
1894 EXPR_VAR@2942..29571894 EXPR_VAR@2942..2957
1895 NAME@2942..29571895 NAME@2942..2957
1896 IDENT@2942..2957 "value_or_values"1896 IDENT@2942..2957 "value_or_values"
1897 R_PAREN@2957..2958 ")"1897 R_PAREN@2957..2958 ")"
1898 WHITESPACE@2958..2959 " "1898 WHITESPACE@2958..2959 " "
1899 THEN_KW@2959..2963 "then"1899 THEN_KW@2959..2963 "then"
1900 WHITESPACE@2963..2974 "\n "1900 WHITESPACE@2963..2974 "\n "
1901 TRUE_EXPR@2974..30271901 TRUE_EXPR@2974..3027
1902 EXPR_ARRAY_COMP@2974..30271902 EXPR_ARRAY_COMP@2974..3027
1903 L_BRACK@2974..2975 "["1903 L_BRACK@2974..2975 "["
1904 EXPR_BINARY@2975..29971904 EXPR_BINARY@2975..2997
1905 LHS_EXPR@2975..29841905 LHS_EXPR@2975..2984
1906 EXPR_STRING@2975..29841906 EXPR_STRING@2975..2984
1907 STRING_SINGLE@2975..2984 "'%s = %s'"1907 STRING_SINGLE@2975..2984 "'%s = %s'"
1908 WHITESPACE@2984..2985 " "1908 WHITESPACE@2984..2985 " "
1909 MODULO@2985..2986 "%"1909 MODULO@2985..2986 "%"
1910 WHITESPACE@2986..2987 " "1910 WHITESPACE@2986..2987 " "
1911 EXPR_ARRAY@2987..29971911 EXPR_ARRAY@2987..2997
1912 L_BRACK@2987..2988 "["1912 L_BRACK@2987..2988 "["
1913 EXPR_VAR@2988..29891913 EXPR_VAR@2988..2989
1914 NAME@2988..29891914 NAME@2988..2989
1915 IDENT@2988..2989 "k"1915 IDENT@2988..2989 "k"
1916 COMMA@2989..2990 ","1916 COMMA@2989..2990 ","
1917 WHITESPACE@2990..2991 " "1917 WHITESPACE@2990..2991 " "
1918 EXPR_VAR@2991..29961918 EXPR_VAR@2991..2996
1919 NAME@2991..29961919 NAME@2991..2996
1920 IDENT@2991..2996 "value"1920 IDENT@2991..2996 "value"
1921 R_BRACK@2996..2997 "]"1921 R_BRACK@2996..2997 "]"
1922 WHITESPACE@2997..2998 " "1922 WHITESPACE@2997..2998 " "
1923 FOR_SPEC@2998..30261923 FOR_SPEC@2998..3026
1924 FOR_KW@2998..3001 "for"1924 FOR_KW@2998..3001 "for"
1925 WHITESPACE@3001..3002 " "1925 WHITESPACE@3001..3002 " "
1926 NAME@3002..30071926 NAME@3002..3007
1927 IDENT@3002..3007 "value"1927 IDENT@3002..3007 "value"
1928 WHITESPACE@3007..3008 " "1928 WHITESPACE@3007..3008 " "
1929 IN_KW@3008..3010 "in"1929 IN_KW@3008..3010 "in"
1930 WHITESPACE@3010..3011 " "1930 WHITESPACE@3010..3011 " "
1931 EXPR_VAR@3011..30261931 EXPR_VAR@3011..3026
1932 NAME@3011..30261932 NAME@3011..3026
1933 IDENT@3011..3026 "value_or_values"1933 IDENT@3011..3026 "value_or_values"
1934 R_BRACK@3026..3027 "]"1934 R_BRACK@3026..3027 "]"
1935 WHITESPACE@3027..3036 "\n "1935 WHITESPACE@3027..3036 "\n "
1936 ELSE_KW@3036..3040 "else"1936 ELSE_KW@3036..3040 "else"
1937 WHITESPACE@3040..3051 "\n "1937 WHITESPACE@3040..3051 "\n "
1938 FALSE_EXPR@3051..30851938 FALSE_EXPR@3051..3085
1939 EXPR_ARRAY@3051..30851939 EXPR_ARRAY@3051..3085
1940 L_BRACK@3051..3052 "["1940 L_BRACK@3051..3052 "["
1941 EXPR_BINARY@3052..30841941 EXPR_BINARY@3052..3084
1942 LHS_EXPR@3052..30611942 LHS_EXPR@3052..3061
1943 EXPR_STRING@3052..30611943 EXPR_STRING@3052..3061
1944 STRING_SINGLE@3052..3061 "'%s = %s'"1944 STRING_SINGLE@3052..3061 "'%s = %s'"
1945 WHITESPACE@3061..3062 " "1945 WHITESPACE@3061..3062 " "
1946 MODULO@3062..3063 "%"1946 MODULO@3062..3063 "%"
1947 WHITESPACE@3063..3064 " "1947 WHITESPACE@3063..3064 " "
1948 EXPR_ARRAY@3064..30841948 EXPR_ARRAY@3064..3084
1949 L_BRACK@3064..3065 "["1949 L_BRACK@3064..3065 "["
1950 EXPR_VAR@3065..30661950 EXPR_VAR@3065..3066
1951 NAME@3065..30661951 NAME@3065..3066
1952 IDENT@3065..3066 "k"1952 IDENT@3065..3066 "k"
1953 COMMA@3066..3067 ","1953 COMMA@3066..3067 ","
1954 WHITESPACE@3067..3068 " "1954 WHITESPACE@3067..3068 " "
1955 EXPR_VAR@3068..30831955 EXPR_VAR@3068..3083
1956 NAME@3068..30831956 NAME@3068..3083
1957 IDENT@3068..3083 "value_or_values"1957 IDENT@3068..3083 "value_or_values"
1958 R_BRACK@3083..3084 "]"1958 R_BRACK@3083..3084 "]"
1959 R_BRACK@3084..3085 "]"1959 R_BRACK@3084..3085 "]"
1960 WHITESPACE@3085..3095 "\n\n "1960 WHITESPACE@3085..3095 "\n\n "
1961 FOR_SPEC@3095..31261961 FOR_SPEC@3095..3126
1962 FOR_KW@3095..3098 "for"1962 FOR_KW@3095..3098 "for"
1985 R_BRACK@3133..3134 "]"1985 R_BRACK@3133..3134 "]"
1986 R_PAREN@3134..3135 ")"1986 R_PAREN@3134..3135 ")"
1987 SEMI@3135..3136 ";"1987 SEMI@3135..3136 ";"
1988 WHITESPACE@3136..3142 "\n\n "1988 WHITESPACE@3136..3142 "\n\n "
1989 EXPR_LOCAL@3142..34951989 STMT_LOCAL@3142..3424
1990 LOCAL_KW@3142..3147 "local"1990 LOCAL_KW@3142..3147 "local"
1991 WHITESPACE@3147..3148 " "1991 WHITESPACE@3147..3148 " "
1992 BIND_FUNCTION@3148..32161992 BIND_FUNCTION@3148..3216
1993 NAME@3148..31611993 NAME@3148..3161
1994 IDENT@3148..3161 "section_lines"1994 IDENT@3148..3161 "section_lines"
1995 PARAMS_DESC@3161..31751995 PARAMS_DESC@3161..3175
1996 L_PAREN@3161..3162 "("1996 L_PAREN@3161..3162 "("
1997 PARAM@3162..31671997 PARAM@3162..3167
1998 DESTRUCT_FULL@3162..31671998 DESTRUCT_FULL@3162..3167
1999 NAME@3162..31671999 NAME@3162..3167
2000 IDENT@3162..3167 "sname"2000 IDENT@3162..3167 "sname"
2001 COMMA@3167..3168 ","2001 COMMA@3167..3168 ","
2002 WHITESPACE@3168..3169 " "2002 WHITESPACE@3168..3169 " "
2003 PARAM@3169..31742003 PARAM@3169..3174
2004 DESTRUCT_FULL@3169..31742004 DESTRUCT_FULL@3169..3174
2005 NAME@3169..31742005 NAME@3169..3174
2006 IDENT@3169..3174 "sbody"2006 IDENT@3169..3174 "sbody"
2007 R_PAREN@3174..3175 ")"2007 R_PAREN@3174..3175 ")"
2008 WHITESPACE@3175..3176 " "2008 WHITESPACE@3175..3176 " "
2009 ASSIGN@3176..3177 "="2009 ASSIGN@3176..3177 "="
2010 WHITESPACE@3177..3178 " "2010 WHITESPACE@3177..3178 " "
2011 EXPR_BINARY@3178..32162011 EXPR_BINARY@3178..3216
2012 LHS_EXPR@3178..31962012 LHS_EXPR@3178..3196
2013 EXPR_ARRAY@3178..31962013 EXPR_ARRAY@3178..3196
2014 L_BRACK@3178..3179 "["2014 L_BRACK@3178..3179 "["
2015 EXPR_BINARY@3179..31952015 EXPR_BINARY@3179..3195
2016 LHS_EXPR@3179..31852016 LHS_EXPR@3179..3185
2017 EXPR_STRING@3179..31852017 EXPR_STRING@3179..3185
2018 STRING_SINGLE@3179..3185 "'[%s]'"2018 STRING_SINGLE@3179..3185 "'[%s]'"
2019 WHITESPACE@3185..3186 " "2019 WHITESPACE@3185..3186 " "
2020 MODULO@3186..3187 "%"2020 MODULO@3186..3187 "%"
2021 WHITESPACE@3187..3188 " "2021 WHITESPACE@3187..3188 " "
2022 EXPR_ARRAY@3188..31952022 EXPR_ARRAY@3188..3195
2023 L_BRACK@3188..3189 "["2023 L_BRACK@3188..3189 "["
2024 EXPR_VAR@3189..31942024 EXPR_VAR@3189..3194
2025 NAME@3189..31942025 NAME@3189..3194
2026 IDENT@3189..3194 "sname"2026 IDENT@3189..3194 "sname"
2027 R_BRACK@3194..3195 "]"2027 R_BRACK@3194..3195 "]"
2028 R_BRACK@3195..3196 "]"2028 R_BRACK@3195..3196 "]"
2029 WHITESPACE@3196..3197 " "2029 WHITESPACE@3196..3197 " "
2030 PLUS@3197..3198 "+"2030 PLUS@3197..3198 "+"
2031 WHITESPACE@3198..3199 " "2031 WHITESPACE@3198..3199 " "
2032 EXPR_APPLY@3199..32162032 EXPR_APPLY@3199..3216
2033 EXPR_VAR@3199..32092033 EXPR_VAR@3199..3209
2034 NAME@3199..32092034 NAME@3199..3209
2035 IDENT@3199..3209 "body_lines"2035 IDENT@3199..3209 "body_lines"
2036 ARGS_DESC@3209..32162036 ARGS_DESC@3209..3216
2037 L_PAREN@3209..3210 "("2037 L_PAREN@3209..3210 "("
2038 ARG@3210..32152038 ARG@3210..3215
2039 EXPR_VAR@3210..32152039 EXPR_VAR@3210..3215
2040 NAME@3210..32152040 NAME@3210..3215
2041 IDENT@3210..3215 "sbody"2041 IDENT@3210..3215 "sbody"
2042 R_PAREN@3215..3216 ")"2042 R_PAREN@3215..3216 ")"
2043 COMMA@3216..3217 ","2043 COMMA@3216..3217 ","
2044 WHITESPACE@3217..3228 "\n "2044 WHITESPACE@3217..3228 "\n "
2045 BIND_DESTRUCT@3228..33032045 BIND_DESTRUCT@3228..3303
2046 DESTRUCT_FULL@3228..32372046 DESTRUCT_FULL@3228..3237
2047 NAME@3228..32372047 NAME@3228..3237
2048 IDENT@3228..3237 "main_body"2048 IDENT@3228..3237 "main_body"
2049 WHITESPACE@3237..3238 " "2049 WHITESPACE@3237..3238 " "
2050 ASSIGN@3238..3239 "="2050 ASSIGN@3238..3239 "="
2051 WHITESPACE@3239..3240 " "2051 WHITESPACE@3239..3240 " "
2052 EXPR_IF_THEN_ELSE@3240..33032052 EXPR_IF_THEN_ELSE@3240..3303
2053 IF_KW@3240..3242 "if"2053 IF_KW@3240..3242 "if"
2054 WHITESPACE@3242..3243 " "2054 WHITESPACE@3242..3243 " "
2055 EXPR_APPLY@3243..32692055 EXPR_APPLY@3243..3269
2056 EXPR_INDEX@3243..32562056 EXPR_INDEX@3243..3256
2057 EXPR_VAR@3243..32462057 EXPR_VAR@3243..3246
2058 NAME@3243..32462058 NAME@3243..3246
2059 IDENT@3243..3246 "std"2059 IDENT@3243..3246 "std"
2060 DOT@3246..3247 "."2060 DOT@3246..3247 "."
2061 NAME@3247..32562061 NAME@3247..3256
2062 IDENT@3247..3256 "objectHas"2062 IDENT@3247..3256 "objectHas"
2063 ARGS_DESC@3256..32692063 ARGS_DESC@3256..3269
2064 L_PAREN@3256..3257 "("2064 L_PAREN@3256..3257 "("
2065 ARG@3257..32602065 ARG@3257..3260
2066 EXPR_VAR@3257..32602066 EXPR_VAR@3257..3260
2067 NAME@3257..32602067 NAME@3257..3260
2068 IDENT@3257..3260 "ini"2068 IDENT@3257..3260 "ini"
2069 COMMA@3260..3261 ","2069 COMMA@3260..3261 ","
2070 WHITESPACE@3261..3262 " "2070 WHITESPACE@3261..3262 " "
2071 ARG@3262..32682071 ARG@3262..3268
2072 EXPR_STRING@3262..32682072 EXPR_STRING@3262..3268
2073 STRING_SINGLE@3262..3268 "'main'"2073 STRING_SINGLE@3262..3268 "'main'"
2074 R_PAREN@3268..3269 ")"2074 R_PAREN@3268..3269 ")"
2075 WHITESPACE@3269..3270 " "2075 WHITESPACE@3269..3270 " "
2076 THEN_KW@3270..3274 "then"2076 THEN_KW@3270..3274 "then"
2077 WHITESPACE@3274..3275 " "2077 WHITESPACE@3274..3275 " "
2078 TRUE_EXPR@3275..32952078 TRUE_EXPR@3275..3295
2079 EXPR_APPLY@3275..32952079 EXPR_APPLY@3275..3295
2080 EXPR_VAR@3275..32852080 EXPR_VAR@3275..3285
2081 NAME@3275..32852081 NAME@3275..3285
2082 IDENT@3275..3285 "body_lines"2082 IDENT@3275..3285 "body_lines"
2083 ARGS_DESC@3285..32952083 ARGS_DESC@3285..3295
2084 L_PAREN@3285..3286 "("2084 L_PAREN@3285..3286 "("
2085 ARG@3286..32942085 ARG@3286..3294
2086 EXPR_INDEX@3286..32942086 EXPR_INDEX@3286..3294
2087 EXPR_VAR@3286..32892087 EXPR_VAR@3286..3289
2088 NAME@3286..32892088 NAME@3286..3289
2089 IDENT@3286..3289 "ini"2089 IDENT@3286..3289 "ini"
2090 DOT@3289..3290 "."2090 DOT@3289..3290 "."
2091 NAME@3290..32942091 NAME@3290..3294
2092 IDENT@3290..3294 "main"2092 IDENT@3290..3294 "main"
2093 R_PAREN@3294..3295 ")"2093 R_PAREN@3294..3295 ")"
2094 WHITESPACE@3295..3296 " "2094 WHITESPACE@3295..3296 " "
2095 ELSE_KW@3296..3300 "else"2095 ELSE_KW@3296..3300 "else"
2096 WHITESPACE@3300..3301 " "2096 WHITESPACE@3300..3301 " "
2097 FALSE_EXPR@3301..33032097 FALSE_EXPR@3301..3303
2098 EXPR_ARRAY@3301..33032098 EXPR_ARRAY@3301..3303
2099 L_BRACK@3301..3302 "["2099 L_BRACK@3301..3302 "["
2100 R_BRACK@3302..3303 "]"2100 R_BRACK@3302..3303 "]"
2101 COMMA@3303..3304 ","2101 COMMA@3303..3304 ","
2102 WHITESPACE@3304..3315 "\n "2102 WHITESPACE@3304..3315 "\n "
2103 BIND_DESTRUCT@3315..34232103 BIND_DESTRUCT@3315..3423
2104 DESTRUCT_FULL@3315..33272104 DESTRUCT_FULL@3315..3327
2105 NAME@3315..33272105 NAME@3315..3327
2106 IDENT@3315..3327 "all_sections"2106 IDENT@3315..3327 "all_sections"
2107 WHITESPACE@3327..3328 " "2107 WHITESPACE@3327..3328 " "
2108 ASSIGN@3328..3329 "="2108 ASSIGN@3328..3329 "="
2109 WHITESPACE@3329..3330 " "2109 WHITESPACE@3329..3330 " "
2110 EXPR_ARRAY_COMP@3330..34232110 EXPR_ARRAY_COMP@3330..3423
2111 L_BRACK@3330..3331 "["2111 L_BRACK@3330..3331 "["
2112 WHITESPACE@3331..3338 "\n "2112 WHITESPACE@3331..3338 "\n "
2113 EXPR_APPLY@3338..33712113 EXPR_APPLY@3338..3371
2114 EXPR_VAR@3338..33512114 EXPR_VAR@3338..3351
2115 NAME@3338..33512115 NAME@3338..3351
2116 IDENT@3338..3351 "section_lines"2116 IDENT@3338..3351 "section_lines"
2117 ARGS_DESC@3351..33712117 ARGS_DESC@3351..3371
2118 L_PAREN@3351..3352 "("2118 L_PAREN@3351..3352 "("
2119 ARG@3352..33532119 ARG@3352..3353
2120 EXPR_VAR@3352..33532120 EXPR_VAR@3352..3353
2121 NAME@3352..33532121 NAME@3352..3353
2122 IDENT@3352..3353 "k"2122 IDENT@3352..3353 "k"
2123 COMMA@3353..3354 ","2123 COMMA@3353..3354 ","
2124 WHITESPACE@3354..3355 " "2124 WHITESPACE@3354..3355 " "
2125 ARG@3355..33702125 ARG@3355..3370
2126 EXPR_INDEX_EXPR@3355..33702126 EXPR_INDEX_EXPR@3355..3370
2127 LHS_EXPR@3355..33672127 LHS_EXPR@3355..3367
2128 EXPR_INDEX@3355..33672128 EXPR_INDEX@3355..3367
2129 EXPR_VAR@3355..33582129 EXPR_VAR@3355..3358
2130 NAME@3355..33582130 NAME@3355..3358
2131 IDENT@3355..3358 "ini"2131 IDENT@3355..3358 "ini"
2132 DOT@3358..3359 "."2132 DOT@3358..3359 "."
2133 NAME@3359..33672133 NAME@3359..3367
2134 IDENT@3359..3367 "sections"2134 IDENT@3359..3367 "sections"
2135 L_BRACK@3367..3368 "["2135 L_BRACK@3367..3368 "["
2136 EXPR_VAR@3368..33692136 EXPR_VAR@3368..3369
2137 NAME@3368..33692137 NAME@3368..3369
2138 IDENT@3368..3369 "k"2138 IDENT@3368..3369 "k"
2139 R_BRACK@3369..3370 "]"2139 R_BRACK@3369..3370 "]"
2140 R_PAREN@3370..3371 ")"2140 R_PAREN@3370..3371 ")"
2141 WHITESPACE@3371..3378 "\n "2141 WHITESPACE@3371..3378 "\n "
2142 FOR_SPEC@3378..34172142 FOR_SPEC@3378..3417
2143 FOR_KW@3378..3381 "for"2143 FOR_KW@3378..3381 "for"
2144 WHITESPACE@3381..3382 " "2144 WHITESPACE@3381..3382 " "
2145 NAME@3382..33832145 NAME@3382..3383
2146 IDENT@3382..3383 "k"2146 IDENT@3382..3383 "k"
2147 WHITESPACE@3383..3384 " "2147 WHITESPACE@3383..3384 " "
2148 IN_KW@3384..3386 "in"2148 IN_KW@3384..3386 "in"
2149 WHITESPACE@3386..3387 " "2149 WHITESPACE@3386..3387 " "
2150 EXPR_APPLY@3387..34172150 EXPR_APPLY@3387..3417
2151 EXPR_INDEX@3387..34032151 EXPR_INDEX@3387..3403
2152 EXPR_VAR@3387..33902152 EXPR_VAR@3387..3390
2153 NAME@3387..33902153 NAME@3387..3390
2154 IDENT@3387..3390 "std"2154 IDENT@3387..3390 "std"
2155 DOT@3390..3391 "."2155 DOT@3390..3391 "."
2156 NAME@3391..34032156 NAME@3391..3403
2157 IDENT@3391..3403 "objectFields"2157 IDENT@3391..3403 "objectFields"
2158 ARGS_DESC@3403..34172158 ARGS_DESC@3403..3417
2159 L_PAREN@3403..3404 "("2159 L_PAREN@3403..3404 "("
2160 ARG@3404..34162160 ARG@3404..3416
2161 EXPR_INDEX@3404..34162161 EXPR_INDEX@3404..3416
2162 EXPR_VAR@3404..34072162 EXPR_VAR@3404..3407
2163 NAME@3404..34072163 NAME@3404..3407
2164 IDENT@3404..3407 "ini"2164 IDENT@3404..3407 "ini"
2165 DOT@3407..3408 "."2165 DOT@3407..3408 "."
2166 NAME@3408..34162166 NAME@3408..3416
2167 IDENT@3408..3416 "sections"2167 IDENT@3408..3416 "sections"
2168 R_PAREN@3416..3417 ")"2168 R_PAREN@3416..3417 ")"
2169 WHITESPACE@3417..3422 "\n "2169 WHITESPACE@3417..3422 "\n "
2170 R_BRACK@3422..3423 "]"2170 R_BRACK@3422..3423 "]"
2171 SEMI@3423..3424 ";"2171 SEMI@3423..3424 ";"
2172 WHITESPACE@3424..3429 "\n "2172 WHITESPACE@3424..3429 "\n "
2173 EXPR_APPLY@3429..34952173 EXPR_APPLY@3429..3495
2174 EXPR_INDEX@3429..34372174 EXPR_INDEX@3429..3437
2175 EXPR_VAR@3429..34322175 EXPR_VAR@3429..3432
2176 NAME@3429..34322176 NAME@3429..3432
2177 IDENT@3429..3432 "std"2177 IDENT@3429..3432 "std"
2178 DOT@3432..3433 "."2178 DOT@3432..3433 "."
2179 NAME@3433..34372179 NAME@3433..3437
2180 IDENT@3433..3437 "join"2180 IDENT@3433..3437 "join"
2181 ARGS_DESC@3437..34952181 ARGS_DESC@3437..3495
2182 L_PAREN@3437..3438 "("2182 L_PAREN@3437..3438 "("
2183 ARG@3438..34422183 ARG@3438..3442
2184 EXPR_STRING@3438..34422184 EXPR_STRING@3438..3442
2185 STRING_SINGLE@3438..3442 "'\\n'"2185 STRING_SINGLE@3438..3442 "'\\n'"
2186 COMMA@3442..3443 ","2186 COMMA@3442..3443 ","
2187 WHITESPACE@3443..3444 " "2187 WHITESPACE@3443..3444 " "
2188 ARG@3444..34942188 ARG@3444..3494
2189 EXPR_BINARY@3444..34942189 EXPR_BINARY@3444..3494
2190 LHS_EXPR@3444..34872190 LHS_EXPR@3444..3487
2191 EXPR_BINARY@3444..34872191 EXPR_BINARY@3444..3487
2192 LHS_EXPR@3444..34532192 LHS_EXPR@3444..3453
2193 EXPR_VAR@3444..34532193 EXPR_VAR@3444..3453
2194 NAME@3444..34532194 NAME@3444..3453
2195 IDENT@3444..3453 "main_body"2195 IDENT@3444..3453 "main_body"
2196 WHITESPACE@3453..3454 " "2196 WHITESPACE@3453..3454 " "
2197 PLUS@3454..3455 "+"2197 PLUS@3454..3455 "+"
2198 WHITESPACE@3455..3456 " "2198 WHITESPACE@3455..3456 " "
2199 EXPR_APPLY@3456..34872199 EXPR_APPLY@3456..3487
2200 EXPR_INDEX@3456..34732200 EXPR_INDEX@3456..3473
2201 EXPR_VAR@3456..34592201 EXPR_VAR@3456..3459
2202 NAME@3456..34592202 NAME@3456..3459
2203 IDENT@3456..3459 "std"2203 IDENT@3456..3459 "std"
2204 DOT@3459..3460 "."2204 DOT@3459..3460 "."
2205 NAME@3460..34732205 NAME@3460..3473
2206 IDENT@3460..3473 "flattenArrays"2206 IDENT@3460..3473 "flattenArrays"
2207 ARGS_DESC@3473..34872207 ARGS_DESC@3473..3487
2208 L_PAREN@3473..3474 "("2208 L_PAREN@3473..3474 "("
2209 ARG@3474..34862209 ARG@3474..3486
2210 EXPR_VAR@3474..34862210 EXPR_VAR@3474..3486
2211 NAME@3474..34862211 NAME@3474..3486
2212 IDENT@3474..3486 "all_sections"2212 IDENT@3474..3486 "all_sections"
2213 R_PAREN@3486..3487 ")"2213 R_PAREN@3486..3487 ")"
2214 WHITESPACE@3487..3488 " "2214 WHITESPACE@3487..3488 " "
2215 PLUS@3488..3489 "+"2215 PLUS@3488..3489 "+"
2216 WHITESPACE@3489..3490 " "2216 WHITESPACE@3489..3490 " "
2217 EXPR_ARRAY@3490..34942217 EXPR_ARRAY@3490..3494
2218 L_BRACK@3490..3491 "["2218 L_BRACK@3490..3491 "["
2219 EXPR_STRING@3491..34932219 EXPR_STRING@3491..3493
2220 STRING_SINGLE@3491..3493 "''"2220 STRING_SINGLE@3491..3493 "''"
2221 R_BRACK@3493..3494 "]"2221 R_BRACK@3493..3494 "]"
2222 R_PAREN@3494..3495 ")"2222 R_PAREN@3494..3495 ")"
2223 COMMA@3495..3496 ","2223 COMMA@3495..3496 ","
2224 WHITESPACE@3496..3500 "\n\n "2224 WHITESPACE@3496..3500 "\n\n "
2225 MEMBER_FIELD_METHOD@3500..35532225 MEMBER_FIELD_METHOD@3500..3553
2300 R_PAREN@3639..3640 ")"2300 R_PAREN@3639..3640 ")"
2301 COLONCOLON@3640..3642 "::"2301 COLONCOLON@3640..3642 "::"
2302 WHITESPACE@3642..3647 "\n "2302 WHITESPACE@3642..3647 "\n "
2303 EXPR_LOCAL@3647..38352303 STMT_LOCAL@3647..3678
2304 LOCAL_KW@3647..3652 "local"2304 LOCAL_KW@3647..3652 "local"
2305 WHITESPACE@3652..3653 " "2305 WHITESPACE@3652..3653 " "
2306 BIND_DESTRUCT@3653..36772306 BIND_DESTRUCT@3653..3677
2326 IDENT@3672..3676 "str_"2326 IDENT@3672..3676 "str_"
2327 R_PAREN@3676..3677 ")"2327 R_PAREN@3676..3677 ")"
2328 SEMI@3677..3678 ";"2328 SEMI@3677..3678 ";"
2329 WHITESPACE@3678..3683 "\n "2329 WHITESPACE@3678..3683 "\n "
2330 EXPR_LOCAL@3683..38352330 STMT_LOCAL@3683..3765
2331 LOCAL_KW@3683..3688 "local"2331 LOCAL_KW@3683..3688 "local"
2332 WHITESPACE@3688..3689 " "2332 WHITESPACE@3688..3689 " "
2333 BIND_FUNCTION@3689..37642333 BIND_FUNCTION@3689..3764
2334 NAME@3689..36942334 NAME@3689..3694
2335 IDENT@3689..3694 "trans"2335 IDENT@3689..3694 "trans"
2336 PARAMS_DESC@3694..36982336 PARAMS_DESC@3694..3698
2337 L_PAREN@3694..3695 "("2337 L_PAREN@3694..3695 "("
2338 PARAM@3695..36972338 PARAM@3695..3697
2339 DESTRUCT_FULL@3695..36972339 DESTRUCT_FULL@3695..3697
2340 NAME@3695..36972340 NAME@3695..3697
2341 IDENT@3695..3697 "ch"2341 IDENT@3695..3697 "ch"
2342 R_PAREN@3697..3698 ")"2342 R_PAREN@3697..3698 ")"
2343 WHITESPACE@3698..3699 " "2343 WHITESPACE@3698..3699 " "
2344 ASSIGN@3699..3700 "="2344 ASSIGN@3699..3700 "="
2345 WHITESPACE@3700..3707 "\n "2345 WHITESPACE@3700..3707 "\n "
2346 EXPR_IF_THEN_ELSE@3707..37642346 EXPR_IF_THEN_ELSE@3707..3764
2347 IF_KW@3707..3709 "if"2347 IF_KW@3707..3709 "if"
2348 WHITESPACE@3709..3710 " "2348 WHITESPACE@3709..3710 " "
2349 EXPR_BINARY@3710..37192349 EXPR_BINARY@3710..3719
2350 LHS_EXPR@3710..37122350 LHS_EXPR@3710..3712
2351 EXPR_VAR@3710..37122351 EXPR_VAR@3710..3712
2352 NAME@3710..37122352 NAME@3710..3712
2353 IDENT@3710..3712 "ch"2353 IDENT@3710..3712 "ch"
2354 WHITESPACE@3712..3713 " "2354 WHITESPACE@3712..3713 " "
2355 EQ@3713..3715 "=="2355 EQ@3713..3715 "=="
2356 WHITESPACE@3715..3716 " "2356 WHITESPACE@3715..3716 " "
2357 EXPR_STRING@3716..37192357 EXPR_STRING@3716..3719
2358 STRING_DOUBLE@3716..3719 "\"'\""2358 STRING_DOUBLE@3716..3719 "\"'\""
2359 WHITESPACE@3719..3720 " "2359 WHITESPACE@3719..3720 " "
2360 THEN_KW@3720..3724 "then"2360 THEN_KW@3720..3724 "then"
2361 WHITESPACE@3724..3733 "\n "2361 WHITESPACE@3724..3733 "\n "
2362 TRUE_EXPR@3733..37422362 TRUE_EXPR@3733..3742
2363 EXPR_STRING@3733..37422363 EXPR_STRING@3733..3742
2364 STRING_DOUBLE@3733..3742 "\"'\\\"'\\\"'\""2364 STRING_DOUBLE@3733..3742 "\"'\\\"'\\\"'\""
2365 WHITESPACE@3742..3749 "\n "2365 WHITESPACE@3742..3749 "\n "
2366 ELSE_KW@3749..3753 "else"2366 ELSE_KW@3749..3753 "else"
2367 WHITESPACE@3753..3762 "\n "2367 WHITESPACE@3753..3762 "\n "
2368 FALSE_EXPR@3762..37642368 FALSE_EXPR@3762..3764
2369 EXPR_VAR@3762..37642369 EXPR_VAR@3762..3764
2370 NAME@3762..37642370 NAME@3762..3764
2371 IDENT@3762..3764 "ch"2371 IDENT@3762..3764 "ch"
2372 SEMI@3764..3765 ";"2372 SEMI@3764..3765 ";"
2373 WHITESPACE@3765..3770 "\n "2373 WHITESPACE@3765..3770 "\n "
2374 EXPR_BINARY@3770..38352374 EXPR_BINARY@3770..3835
2375 LHS_EXPR@3770..37762375 LHS_EXPR@3770..3776
2376 EXPR_STRING@3770..37762376 EXPR_STRING@3770..3776
2377 STRING_DOUBLE@3770..3776 "\"'%s'\""2377 STRING_DOUBLE@3770..3776 "\"'%s'\""
2378 WHITESPACE@3776..3777 " "2378 WHITESPACE@3776..3777 " "
2379 MODULO@3777..3778 "%"2379 MODULO@3777..3778 "%"
2380 WHITESPACE@3778..3779 " "2380 WHITESPACE@3778..3779 " "
2381 EXPR_APPLY@3779..38352381 EXPR_APPLY@3779..3835
2382 EXPR_INDEX@3779..37872382 EXPR_INDEX@3779..3787
2383 EXPR_VAR@3779..37822383 EXPR_VAR@3779..3782
2384 NAME@3779..37822384 NAME@3779..3782
2385 IDENT@3779..3782 "std"2385 IDENT@3779..3782 "std"
2386 DOT@3782..3783 "."2386 DOT@3782..3783 "."
2387 NAME@3783..37872387 NAME@3783..3787
2388 IDENT@3783..3787 "join"2388 IDENT@3783..3787 "join"
2389 ARGS_DESC@3787..38352389 ARGS_DESC@3787..3835
2390 L_PAREN@3787..3788 "("2390 L_PAREN@3787..3788 "("
2391 ARG@3788..37902391 ARG@3788..3790
2392 EXPR_STRING@3788..37902392 EXPR_STRING@3788..3790
2393 STRING_SINGLE@3788..3790 "''"2393 STRING_SINGLE@3788..3790 "''"
2394 COMMA@3790..3791 ","2394 COMMA@3790..3791 ","
2395 WHITESPACE@3791..3792 " "2395 WHITESPACE@3791..3792 " "
2396 ARG@3792..38342396 ARG@3792..3834
2397 EXPR_ARRAY_COMP@3792..38342397 EXPR_ARRAY_COMP@3792..3834
2398 L_BRACK@3792..3793 "["2398 L_BRACK@3792..3793 "["
2399 EXPR_APPLY@3793..38022399 EXPR_APPLY@3793..3802
2400 EXPR_VAR@3793..37982400 EXPR_VAR@3793..3798
2401 NAME@3793..37982401 NAME@3793..3798
2402 IDENT@3793..3798 "trans"2402 IDENT@3793..3798 "trans"
2403 ARGS_DESC@3798..38022403 ARGS_DESC@3798..3802
2404 L_PAREN@3798..3799 "("2404 L_PAREN@3798..3799 "("
2405 ARG@3799..38012405 ARG@3799..3801
2406 EXPR_VAR@3799..38012406 EXPR_VAR@3799..3801
2407 NAME@3799..38012407 NAME@3799..3801
2408 IDENT@3799..3801 "ch"2408 IDENT@3799..3801 "ch"
2409 R_PAREN@3801..3802 ")"2409 R_PAREN@3801..3802 ")"
2410 WHITESPACE@3802..3803 " "2410 WHITESPACE@3802..3803 " "
2411 FOR_SPEC@3803..38332411 FOR_SPEC@3803..3833
2412 FOR_KW@3803..3806 "for"2412 FOR_KW@3803..3806 "for"
2413 WHITESPACE@3806..3807 " "2413 WHITESPACE@3806..3807 " "
2414 NAME@3807..38092414 NAME@3807..3809
2415 IDENT@3807..3809 "ch"2415 IDENT@3807..3809 "ch"
2416 WHITESPACE@3809..3810 " "2416 WHITESPACE@3809..3810 " "
2417 IN_KW@3810..3812 "in"2417 IN_KW@3810..3812 "in"
2418 WHITESPACE@3812..3813 " "2418 WHITESPACE@3812..3813 " "
2419 EXPR_APPLY@3813..38332419 EXPR_APPLY@3813..3833
2420 EXPR_INDEX@3813..38282420 EXPR_INDEX@3813..3828
2421 EXPR_VAR@3813..38162421 EXPR_VAR@3813..3816
2422 NAME@3813..38162422 NAME@3813..3816
2423 IDENT@3813..3816 "std"2423 IDENT@3813..3816 "std"
2424 DOT@3816..3817 "."2424 DOT@3816..3817 "."
2425 NAME@3817..38282425 NAME@3817..3828
2426 IDENT@3817..3828 "stringChars"2426 IDENT@3817..3828 "stringChars"
2427 ARGS_DESC@3828..38332427 ARGS_DESC@3828..3833
2428 L_PAREN@3828..3829 "("2428 L_PAREN@3828..3829 "("
2429 ARG@3829..38322429 ARG@3829..3832
2430 EXPR_VAR@3829..38322430 EXPR_VAR@3829..3832
2431 NAME@3829..38322431 NAME@3829..3832
2432 IDENT@3829..3832 "str"2432 IDENT@3829..3832 "str"
2433 R_PAREN@3832..3833 ")"2433 R_PAREN@3832..3833 ")"
2434 R_BRACK@3833..3834 "]"2434 R_BRACK@3833..3834 "]"
2435 R_PAREN@3834..3835 ")"2435 R_PAREN@3834..3835 ")"
2436 COMMA@3835..3836 ","2436 COMMA@3835..3836 ","
2437 WHITESPACE@3836..3840 "\n\n "2437 WHITESPACE@3836..3840 "\n\n "
2438 MEMBER_FIELD_METHOD@3840..40542438 MEMBER_FIELD_METHOD@3840..4054
2448 R_PAREN@3864..3865 ")"2448 R_PAREN@3864..3865 ")"
2449 COLONCOLON@3865..3867 "::"2449 COLONCOLON@3865..3867 "::"
2450 WHITESPACE@3867..3872 "\n "2450 WHITESPACE@3867..3872 "\n "
2451 EXPR_LOCAL@3872..40542451 STMT_LOCAL@3872..3903
2452 LOCAL_KW@3872..3877 "local"2452 LOCAL_KW@3872..3877 "local"
2453 WHITESPACE@3877..3878 " "2453 WHITESPACE@3877..3878 " "
2454 BIND_DESTRUCT@3878..39022454 BIND_DESTRUCT@3878..3902
2474 IDENT@3897..3901 "str_"2474 IDENT@3897..3901 "str_"
2475 R_PAREN@3901..3902 ")"2475 R_PAREN@3901..3902 ")"
2476 SEMI@3902..3903 ";"2476 SEMI@3902..3903 ";"
2477 WHITESPACE@3903..3908 "\n "2477 WHITESPACE@3903..3908 "\n "
2478 EXPR_LOCAL@3908..40542478 STMT_LOCAL@3908..3985
2479 LOCAL_KW@3908..3913 "local"2479 LOCAL_KW@3908..3913 "local"
2480 WHITESPACE@3913..3914 " "2480 WHITESPACE@3913..3914 " "
2481 BIND_FUNCTION@3914..39842481 BIND_FUNCTION@3914..3984
2482 NAME@3914..39192482 NAME@3914..3919
2483 IDENT@3914..3919 "trans"2483 IDENT@3914..3919 "trans"
2484 PARAMS_DESC@3919..39232484 PARAMS_DESC@3919..3923
2485 L_PAREN@3919..3920 "("2485 L_PAREN@3919..3920 "("
2486 PARAM@3920..39222486 PARAM@3920..3922
2487 DESTRUCT_FULL@3920..39222487 DESTRUCT_FULL@3920..3922
2488 NAME@3920..39222488 NAME@3920..3922
2489 IDENT@3920..3922 "ch"2489 IDENT@3920..3922 "ch"
2490 R_PAREN@3922..3923 ")"2490 R_PAREN@3922..3923 ")"
2491 WHITESPACE@3923..3924 " "2491 WHITESPACE@3923..3924 " "
2492 ASSIGN@3924..3925 "="2492 ASSIGN@3924..3925 "="
2493 WHITESPACE@3925..3932 "\n "2493 WHITESPACE@3925..3932 "\n "
2494 EXPR_IF_THEN_ELSE@3932..39842494 EXPR_IF_THEN_ELSE@3932..3984
2495 IF_KW@3932..3934 "if"2495 IF_KW@3932..3934 "if"
2496 WHITESPACE@3934..3935 " "2496 WHITESPACE@3934..3935 " "
2497 EXPR_BINARY@3935..39442497 EXPR_BINARY@3935..3944
2498 LHS_EXPR@3935..39372498 LHS_EXPR@3935..3937
2499 EXPR_VAR@3935..39372499 EXPR_VAR@3935..3937
2500 NAME@3935..39372500 NAME@3935..3937
2501 IDENT@3935..3937 "ch"2501 IDENT@3935..3937 "ch"
2502 WHITESPACE@3937..3938 " "2502 WHITESPACE@3937..3938 " "
2503 EQ@3938..3940 "=="2503 EQ@3938..3940 "=="
2504 WHITESPACE@3940..3941 " "2504 WHITESPACE@3940..3941 " "
2505 EXPR_STRING@3941..39442505 EXPR_STRING@3941..3944
2506 STRING_SINGLE@3941..3944 "'$'"2506 STRING_SINGLE@3941..3944 "'$'"
2507 WHITESPACE@3944..3945 " "2507 WHITESPACE@3944..3945 " "
2508 THEN_KW@3945..3949 "then"2508 THEN_KW@3945..3949 "then"
2509 WHITESPACE@3949..3958 "\n "2509 WHITESPACE@3949..3958 "\n "
2510 TRUE_EXPR@3958..39622510 TRUE_EXPR@3958..3962
2511 EXPR_STRING@3958..39622511 EXPR_STRING@3958..3962
2512 STRING_SINGLE@3958..3962 "'$$'"2512 STRING_SINGLE@3958..3962 "'$$'"
2513 WHITESPACE@3962..3969 "\n "2513 WHITESPACE@3962..3969 "\n "
2514 ELSE_KW@3969..3973 "else"2514 ELSE_KW@3969..3973 "else"
2515 WHITESPACE@3973..3982 "\n "2515 WHITESPACE@3973..3982 "\n "
2516 FALSE_EXPR@3982..39842516 FALSE_EXPR@3982..3984
2517 EXPR_VAR@3982..39842517 EXPR_VAR@3982..3984
2518 NAME@3982..39842518 NAME@3982..3984
2519 IDENT@3982..3984 "ch"2519 IDENT@3982..3984 "ch"
2520 SEMI@3984..3985 ";"2520 SEMI@3984..3985 ";"
2521 WHITESPACE@3985..3990 "\n "2521 WHITESPACE@3985..3990 "\n "
2522 EXPR_APPLY@3990..40542522 EXPR_APPLY@3990..4054
2523 EXPR_INDEX@3990..39992523 EXPR_INDEX@3990..3999
2524 EXPR_VAR@3990..39932524 EXPR_VAR@3990..3993
2525 NAME@3990..39932525 NAME@3990..3993
2526 IDENT@3990..3993 "std"2526 IDENT@3990..3993 "std"
2527 DOT@3993..3994 "."2527 DOT@3993..3994 "."
2528 NAME@3994..39992528 NAME@3994..3999
2529 IDENT@3994..3999 "foldl"2529 IDENT@3994..3999 "foldl"
2530 ARGS_DESC@3999..40542530 ARGS_DESC@3999..4054
2531 L_PAREN@3999..4000 "("2531 L_PAREN@3999..4000 "("
2532 ARG@4000..40272532 ARG@4000..4027
2533 EXPR_FUNCTION@4000..40272533 EXPR_FUNCTION@4000..4027
2534 FUNCTION_KW@4000..4008 "function"2534 FUNCTION_KW@4000..4008 "function"
2535 PARAMS_DESC@4008..40142535 PARAMS_DESC@4008..4014
2536 L_PAREN@4008..4009 "("2536 L_PAREN@4008..4009 "("
2537 PARAM@4009..40102537 PARAM@4009..4010
2538 DESTRUCT_FULL@4009..40102538 DESTRUCT_FULL@4009..4010
2539 NAME@4009..40102539 NAME@4009..4010
2540 IDENT@4009..4010 "a"2540 IDENT@4009..4010 "a"
2541 COMMA@4010..4011 ","2541 COMMA@4010..4011 ","
2542 WHITESPACE@4011..4012 " "2542 WHITESPACE@4011..4012 " "
2543 PARAM@4012..40132543 PARAM@4012..4013
2544 DESTRUCT_FULL@4012..40132544 DESTRUCT_FULL@4012..4013
2545 NAME@4012..40132545 NAME@4012..4013
2546 IDENT@4012..4013 "b"2546 IDENT@4012..4013 "b"
2547 R_PAREN@4013..4014 ")"2547 R_PAREN@4013..4014 ")"
2548 WHITESPACE@4014..4015 " "2548 WHITESPACE@4014..4015 " "
2549 EXPR_BINARY@4015..40272549 EXPR_BINARY@4015..4027
2550 LHS_EXPR@4015..40162550 LHS_EXPR@4015..4016
2551 EXPR_VAR@4015..40162551 EXPR_VAR@4015..4016
2552 NAME@4015..40162552 NAME@4015..4016
2553 IDENT@4015..4016 "a"2553 IDENT@4015..4016 "a"
2554 WHITESPACE@4016..4017 " "2554 WHITESPACE@4016..4017 " "
2555 PLUS@4017..4018 "+"2555 PLUS@4017..4018 "+"
2556 WHITESPACE@4018..4019 " "2556 WHITESPACE@4018..4019 " "
2557 EXPR_APPLY@4019..40272557 EXPR_APPLY@4019..4027
2558 EXPR_VAR@4019..40242558 EXPR_VAR@4019..4024
2559 NAME@4019..40242559 NAME@4019..4024
2560 IDENT@4019..4024 "trans"2560 IDENT@4019..4024 "trans"
2561 ARGS_DESC@4024..40272561 ARGS_DESC@4024..4027
2562 L_PAREN@4024..4025 "("2562 L_PAREN@4024..4025 "("
2563 ARG@4025..40262563 ARG@4025..4026
2564 EXPR_VAR@4025..40262564 EXPR_VAR@4025..4026
2565 NAME@4025..40262565 NAME@4025..4026
2566 IDENT@4025..4026 "b"2566 IDENT@4025..4026 "b"
2567 R_PAREN@4026..4027 ")"2567 R_PAREN@4026..4027 ")"
2568 COMMA@4027..4028 ","2568 COMMA@4027..4028 ","
2569 WHITESPACE@4028..4029 " "2569 WHITESPACE@4028..4029 " "
2570 ARG@4029..40492570 ARG@4029..4049
2571 EXPR_APPLY@4029..40492571 EXPR_APPLY@4029..4049
2572 EXPR_INDEX@4029..40442572 EXPR_INDEX@4029..4044
2573 EXPR_VAR@4029..40322573 EXPR_VAR@4029..4032
2574 NAME@4029..40322574 NAME@4029..4032
2575 IDENT@4029..4032 "std"2575 IDENT@4029..4032 "std"
2576 DOT@4032..4033 "."2576 DOT@4032..4033 "."
2577 NAME@4033..40442577 NAME@4033..4044
2578 IDENT@4033..4044 "stringChars"2578 IDENT@4033..4044 "stringChars"
2579 ARGS_DESC@4044..40492579 ARGS_DESC@4044..4049
2580 L_PAREN@4044..4045 "("2580 L_PAREN@4044..4045 "("
2581 ARG@4045..40482581 ARG@4045..4048
2582 EXPR_VAR@4045..40482582 EXPR_VAR@4045..4048
2583 NAME@4045..40482583 NAME@4045..4048
2584 IDENT@4045..4048 "str"2584 IDENT@4045..4048 "str"
2585 R_PAREN@4048..4049 ")"2585 R_PAREN@4048..4049 ")"
2586 COMMA@4049..4050 ","2586 COMMA@4049..4050 ","
2587 WHITESPACE@4050..4051 " "2587 WHITESPACE@4050..4051 " "
2588 ARG@4051..40532588 ARG@4051..4053
2589 EXPR_STRING@4051..40532589 EXPR_STRING@4051..4053
2590 STRING_SINGLE@4051..4053 "''"2590 STRING_SINGLE@4051..4053 "''"
2591 R_PAREN@4053..4054 ")"2591 R_PAREN@4053..4054 ")"
2592 COMMA@4054..4055 ","2592 COMMA@4054..4055 ","
2593 WHITESPACE@4055..4059 "\n\n "2593 WHITESPACE@4055..4059 "\n\n "
2594 MEMBER_BIND_STMT@4059..41742594 MEMBER_BIND_STMT@4059..4174
2667 R_PAREN@4199..4200 ")"2667 R_PAREN@4199..4200 ")"
2668 COLONCOLON@4200..4202 "::"2668 COLONCOLON@4200..4202 "::"
2669 WHITESPACE@4202..4207 "\n "2669 WHITESPACE@4202..4207 "\n "
2670 EXPR_LOCAL@4207..43182670 STMT_LOCAL@4207..4238
2671 LOCAL_KW@4207..4212 "local"2671 LOCAL_KW@4207..4212 "local"
2672 WHITESPACE@4212..4213 " "2672 WHITESPACE@4212..4213 " "
2673 BIND_DESTRUCT@4213..42372673 BIND_DESTRUCT@4213..4237
2693 IDENT@4232..4236 "str_"2693 IDENT@4232..4236 "str_"
2694 R_PAREN@4236..4237 ")"2694 R_PAREN@4236..4237 ")"
2695 SEMI@4237..4238 ";"2695 SEMI@4237..4238 ";"
2696 WHITESPACE@4238..4243 "\n "2696 WHITESPACE@4238..4243 "\n "
2697 EXPR_APPLY@4243..43182697 EXPR_APPLY@4243..4318
2698 EXPR_INDEX@4243..42512698 EXPR_INDEX@4243..4251
2699 EXPR_VAR@4243..42462699 EXPR_VAR@4243..4246
2700 NAME@4243..42462700 NAME@4243..4246
2701 IDENT@4243..4246 "std"2701 IDENT@4243..4246 "std"
2702 DOT@4246..4247 "."2702 DOT@4246..4247 "."
2703 NAME@4247..42512703 NAME@4247..4251
2704 IDENT@4247..4251 "join"2704 IDENT@4247..4251 "join"
2705 ARGS_DESC@4251..43182705 ARGS_DESC@4251..4318
2706 L_PAREN@4251..4252 "("2706 L_PAREN@4251..4252 "("
2707 ARG@4252..42542707 ARG@4252..4254
2708 EXPR_STRING@4252..42542708 EXPR_STRING@4252..4254
2709 STRING_SINGLE@4252..4254 "''"2709 STRING_SINGLE@4252..4254 "''"
2710 COMMA@4254..4255 ","2710 COMMA@4254..4255 ","
2711 WHITESPACE@4255..4256 " "2711 WHITESPACE@4255..4256 " "
2712 ARG@4256..43172712 ARG@4256..4317
2713 EXPR_ARRAY_COMP@4256..43172713 EXPR_ARRAY_COMP@4256..4317
2714 L_BRACK@4256..4257 "["2714 L_BRACK@4256..4257 "["
2715 EXPR_APPLY@4257..42852715 EXPR_APPLY@4257..4285
2716 EXPR_INDEX@4257..42642716 EXPR_INDEX@4257..4264
2717 EXPR_VAR@4257..42602717 EXPR_VAR@4257..4260
2718 NAME@4257..42602718 NAME@4257..4260
2719 IDENT@4257..4260 "std"2719 IDENT@4257..4260 "std"
2720 DOT@4260..4261 "."2720 DOT@4260..4261 "."
2721 NAME@4261..42642721 NAME@4261..4264
2722 IDENT@4261..4264 "get"2722 IDENT@4261..4264 "get"
2723 ARGS_DESC@4264..42852723 ARGS_DESC@4264..4285
2724 L_PAREN@4264..4265 "("2724 L_PAREN@4264..4265 "("
2725 ARG@4265..42762725 ARG@4265..4276
2726 EXPR_VAR@4265..42762726 EXPR_VAR@4265..4276
2727 NAME@4265..42762727 NAME@4265..4276
2728 IDENT@4265..4276 "xml_escapes"2728 IDENT@4265..4276 "xml_escapes"
2729 COMMA@4276..4277 ","2729 COMMA@4276..4277 ","
2730 WHITESPACE@4277..4278 " "2730 WHITESPACE@4277..4278 " "
2731 ARG@4278..42802731 ARG@4278..4280
2732 EXPR_VAR@4278..42802732 EXPR_VAR@4278..4280
2733 NAME@4278..42802733 NAME@4278..4280
2734 IDENT@4278..4280 "ch"2734 IDENT@4278..4280 "ch"
2735 COMMA@4280..4281 ","2735 COMMA@4280..4281 ","
2736 WHITESPACE@4281..4282 " "2736 WHITESPACE@4281..4282 " "
2737 ARG@4282..42842737 ARG@4282..4284
2738 EXPR_VAR@4282..42842738 EXPR_VAR@4282..4284
2739 NAME@4282..42842739 NAME@4282..4284
2740 IDENT@4282..4284 "ch"2740 IDENT@4282..4284 "ch"
2741 R_PAREN@4284..4285 ")"2741 R_PAREN@4284..4285 ")"
2742 WHITESPACE@4285..4286 " "2742 WHITESPACE@4285..4286 " "
2743 FOR_SPEC@4286..43162743 FOR_SPEC@4286..4316
2744 FOR_KW@4286..4289 "for"2744 FOR_KW@4286..4289 "for"
2745 WHITESPACE@4289..4290 " "2745 WHITESPACE@4289..4290 " "
2746 NAME@4290..42922746 NAME@4290..4292
2747 IDENT@4290..4292 "ch"2747 IDENT@4290..4292 "ch"
2748 WHITESPACE@4292..4293 " "2748 WHITESPACE@4292..4293 " "
2749 IN_KW@4293..4295 "in"2749 IN_KW@4293..4295 "in"
2750 WHITESPACE@4295..4296 " "2750 WHITESPACE@4295..4296 " "
2751 EXPR_APPLY@4296..43162751 EXPR_APPLY@4296..4316
2752 EXPR_INDEX@4296..43112752 EXPR_INDEX@4296..4311
2753 EXPR_VAR@4296..42992753 EXPR_VAR@4296..4299
2754 NAME@4296..42992754 NAME@4296..4299
2755 IDENT@4296..4299 "std"2755 IDENT@4296..4299 "std"
2756 DOT@4299..4300 "."2756 DOT@4299..4300 "."
2757 NAME@4300..43112757 NAME@4300..4311
2758 IDENT@4300..4311 "stringChars"2758 IDENT@4300..4311 "stringChars"
2759 ARGS_DESC@4311..43162759 ARGS_DESC@4311..4316
2760 L_PAREN@4311..4312 "("2760 L_PAREN@4311..4312 "("
2761 ARG@4312..43152761 ARG@4312..4315
2762 EXPR_VAR@4312..43152762 EXPR_VAR@4312..4315
2763 NAME@4312..43152763 NAME@4312..4315
2764 IDENT@4312..4315 "str"2764 IDENT@4312..4315 "str"
2765 R_PAREN@4315..4316 ")"2765 R_PAREN@4315..4316 ")"
2766 R_BRACK@4316..4317 "]"2766 R_BRACK@4316..4317 "]"
2767 R_PAREN@4317..4318 ")"2767 R_PAREN@4317..4318 ")"
2768 COMMA@4318..4319 ","2768 COMMA@4318..4319 ","
2769 WHITESPACE@4319..4323 "\n\n "2769 WHITESPACE@4319..4323 "\n\n "
2770 MEMBER_FIELD_METHOD@4323..43892770 MEMBER_FIELD_METHOD@4323..4389
3069 WHITESPACE@4899..4900 " "3069 WHITESPACE@4899..4900 " "
3070 THEN_KW@4900..4904 "then"3070 THEN_KW@4900..4904 "then"
3071 WHITESPACE@4904..4911 "\n "3071 WHITESPACE@4904..4911 "\n "
3072 TRUE_EXPR@4911..50863072 STMT_LOCAL@4911..5046
3073 EXPR_LOCAL@4911..50863073 LOCAL_KW@4911..4916 "local"
3074 LOCAL_KW@4911..4916 "local"3074 WHITESPACE@4916..4917 " "
3075 WHITESPACE@4916..4917 " "3075 BIND_DESTRUCT@4917..5045
3076 BIND_DESTRUCT@4917..50453076 DESTRUCT_FULL@4917..4923
3077 DESTRUCT_FULL@4917..49233077 NAME@4917..4923
3078 NAME@4917..49233078 IDENT@4917..4923 "fields"
3079 IDENT@4917..4923 "fields"3079 WHITESPACE@4923..4924 " "
3080 WHITESPACE@4923..4924 " "3080 ASSIGN@4924..4925 "="
3081 ASSIGN@4924..4925 "="3081 WHITESPACE@4925..4926 " "
3082 WHITESPACE@4925..4926 " "3082 EXPR_ARRAY_COMP@4926..5045
3083 EXPR_ARRAY_COMP@4926..50453083 L_BRACK@4926..4927 "["
3084 L_BRACK@4926..4927 "["3084 WHITESPACE@4927..4936 "\n "
3085 WHITESPACE@4927..4936 "\n "3085 EXPR_BINARY@4936..5000
3086 EXPR_BINARY@4936..50003086 LHS_EXPR@4936..4944
3087 LHS_EXPR@4936..49443087 EXPR_STRING@4936..4944
3088 EXPR_STRING@4936..49443088 STRING_SINGLE@4936..4944 "'%s: %s'"
3089 STRING_SINGLE@4936..4944 "'%s: %s'"3089 WHITESPACE@4944..4945 " "
3090 WHITESPACE@4944..4945 " "3090 MODULO@4945..4946 "%"
3091 MODULO@4945..4946 "%"3091 WHITESPACE@4946..4947 " "
3092 WHITESPACE@4946..4947 " "3092 EXPR_ARRAY@4947..5000
3093 EXPR_ARRAY@4947..50003093 L_BRACK@4947..4948 "["
3094 L_BRACK@4947..4948 "["3094 EXPR_APPLY@4948..4973
3095 EXPR_APPLY@4948..49733095 EXPR_INDEX@4948..4970
3096 EXPR_INDEX@4948..49703096 EXPR_VAR@4948..4951
3097 EXPR_VAR@4948..49513097 NAME@4948..4951
3098 NAME@4948..49513098 IDENT@4948..4951 "std"
3099 IDENT@4948..4951 "std"3099 DOT@4951..4952 "."
3100 DOT@4951..4952 "."3100 NAME@4952..4970
3101 NAME@4952..49703101 IDENT@4952..4970 "escapeStringPython"
3102 IDENT@4952..4970 "escapeStringPython"3102 ARGS_DESC@4970..4973
3103 ARGS_DESC@4970..49733103 L_PAREN@4970..4971 "("
3104 L_PAREN@4970..4971 "("3104 ARG@4971..4972
3105 ARG@4971..49723105 EXPR_VAR@4971..4972
3106 EXPR_VAR@4971..49723106 NAME@4971..4972
3107 NAME@4971..49723107 IDENT@4971..4972 "k"
3108 IDENT@4971..4972 "k"3108 R_PAREN@4972..4973 ")"
3109 R_PAREN@4972..4973 ")"3109 COMMA@4973..4974 ","
3110 COMMA@4973..4974 ","3110 WHITESPACE@4974..4975 " "
3111 WHITESPACE@4974..4975 " "3111 EXPR_APPLY@4975..4999
3112 EXPR_APPLY@4975..49993112 EXPR_INDEX@4975..4993
3113 EXPR_INDEX@4975..49933113 EXPR_VAR@4975..4978
3114 EXPR_VAR@4975..49783114 NAME@4975..4978
3115 NAME@4975..49783115 IDENT@4975..4978 "std"
3116 IDENT@4975..4978 "std"3116 DOT@4978..4979 "."
3117 DOT@4978..4979 "."3117 NAME@4979..4993
3118 NAME@4979..49933118 IDENT@4979..4993 "manifestPython"
3119 IDENT@4979..4993 "manifestPython"3119 ARGS_DESC@4993..4999
3120 ARGS_DESC@4993..49993120 L_PAREN@4993..4994 "("
3121 L_PAREN@4993..4994 "("3121 ARG@4994..4998
3122 ARG@4994..49983122 EXPR_INDEX_EXPR@4994..4998
3123 EXPR_INDEX_EXPR@4994..49983123 LHS_EXPR@4994..4995
3124 LHS_EXPR@4994..49953124 EXPR_VAR@4994..4995
3125 EXPR_VAR@4994..49953125 NAME@4994..4995
3126 NAME@4994..49953126 IDENT@4994..4995 "v"
3127 IDENT@4994..4995 "v"3127 L_BRACK@4995..4996 "["
3128 L_BRACK@4995..4996 "["3128 EXPR_VAR@4996..4997
3129 EXPR_VAR@4996..49973129 NAME@4996..4997
3130 NAME@4996..49973130 IDENT@4996..4997 "k"
3131 IDENT@4996..4997 "k"3131 R_BRACK@4997..4998 "]"
3132 R_BRACK@4997..4998 "]"3132 R_PAREN@4998..4999 ")"
3133 R_PAREN@4998..4999 ")"3133 R_BRACK@4999..5000 "]"
3134 R_BRACK@4999..5000 "]"3134 WHITESPACE@5000..5009 "\n "
3135 WHITESPACE@5000..5009 "\n "3135 FOR_SPEC@5009..5037
3136 FOR_SPEC@5009..50373136 FOR_KW@5009..5012 "for"
3137 FOR_KW@5009..5012 "for"3137 WHITESPACE@5012..5013 " "
3138 WHITESPACE@5012..5013 " "3138 NAME@5013..5014
3139 NAME@5013..50143139 IDENT@5013..5014 "k"
3140 IDENT@5013..5014 "k"3140 WHITESPACE@5014..5015 " "
3141 WHITESPACE@5014..5015 " "3141 IN_KW@5015..5017 "in"
3142 IN_KW@5015..5017 "in"3142 WHITESPACE@5017..5018 " "
3143 WHITESPACE@5017..5018 " "3143 EXPR_APPLY@5018..5037
3144 EXPR_APPLY@5018..50373144 EXPR_INDEX@5018..5034
3145 EXPR_INDEX@5018..50343145 EXPR_VAR@5018..5021
3146 EXPR_VAR@5018..50213146 NAME@5018..5021
3147 NAME@5018..50213147 IDENT@5018..5021 "std"
3148 IDENT@5018..5021 "std"3148 DOT@5021..5022 "."
3149 DOT@5021..5022 "."3149 NAME@5022..5034
3150 NAME@5022..50343150 IDENT@5022..5034 "objectFields"
3151 IDENT@5022..5034 "objectFields"3151 ARGS_DESC@5034..5037
3152 ARGS_DESC@5034..50373152 L_PAREN@5034..5035 "("
3153 L_PAREN@5034..5035 "("3153 ARG@5035..5036
3154 ARG@5035..50363154 EXPR_VAR@5035..5036
3155 EXPR_VAR@5035..50363155 NAME@5035..5036
3156 NAME@5035..50363156 IDENT@5035..5036 "v"
3157 IDENT@5035..5036 "v"3157 R_PAREN@5036..5037 ")"
3158 R_PAREN@5036..5037 ")"3158 WHITESPACE@5037..5044 "\n "
3159 WHITESPACE@5037..5044 "\n "3159 R_BRACK@5044..5045 "]"
3160 R_BRACK@5044..5045 "]"3160 SEMI@5045..5046 ";"
3161 SEMI@5045..5046 ";"3161 WHITESPACE@5046..5053 "\n "
3162 WHITESPACE@5046..5053 "\n "3162 TRUE_EXPR@5053..5086
3163 EXPR_BINARY@5053..50863163 EXPR_BINARY@5053..5086
3164 LHS_EXPR@5053..50593164 LHS_EXPR@5053..5059
3165 EXPR_STRING@5053..50593165 EXPR_STRING@5053..5059
3166 STRING_SINGLE@5053..5059 "'{%s}'"3166 STRING_SINGLE@5053..5059 "'{%s}'"
3167 WHITESPACE@5059..5060 " "3167 WHITESPACE@5059..5060 " "
3168 MODULO@5060..5061 "%"3168 MODULO@5060..5061 "%"
3169 WHITESPACE@5061..5062 " "3169 WHITESPACE@5061..5062 " "
3170 EXPR_ARRAY@5062..50863170 EXPR_ARRAY@5062..5086
3171 L_BRACK@5062..5063 "["3171 L_BRACK@5062..5063 "["
3172 EXPR_APPLY@5063..50853172 EXPR_APPLY@5063..5085
3173 EXPR_INDEX@5063..50713173 EXPR_INDEX@5063..5071
3174 EXPR_VAR@5063..50663174 EXPR_VAR@5063..5066
3175 NAME@5063..50663175 NAME@5063..5066
3176 IDENT@5063..5066 "std"3176 IDENT@5063..5066 "std"
3177 DOT@5066..5067 "."3177 DOT@5066..5067 "."
3178 NAME@5067..50713178 NAME@5067..5071
3179 IDENT@5067..5071 "join"3179 IDENT@5067..5071 "join"
3180 ARGS_DESC@5071..50853180 ARGS_DESC@5071..5085
3181 L_PAREN@5071..5072 "("3181 L_PAREN@5071..5072 "("
3182 ARG@5072..50763182 ARG@5072..5076
3183 EXPR_STRING@5072..50763183 EXPR_STRING@5072..5076
3184 STRING_SINGLE@5072..5076 "', '"3184 STRING_SINGLE@5072..5076 "', '"
3185 COMMA@5076..5077 ","3185 COMMA@5076..5077 ","
3186 WHITESPACE@5077..5078 " "3186 WHITESPACE@5077..5078 " "
3187 ARG@5078..50843187 ARG@5078..5084
3188 EXPR_VAR@5078..50843188 EXPR_VAR@5078..5084
3189 NAME@5078..50843189 NAME@5078..5084
3190 IDENT@5078..5084 "fields"3190 IDENT@5078..5084 "fields"
3191 R_PAREN@5084..5085 ")"3191 R_PAREN@5084..5085 ")"
3192 R_BRACK@5085..5086 "]"3192 R_BRACK@5085..5086 "]"
3193 WHITESPACE@5086..5091 "\n "3193 WHITESPACE@5086..5091 "\n "
3194 ELSE_KW@5091..5095 "else"3194 ELSE_KW@5091..5095 "else"
3195 WHITESPACE@5095..5096 " "3195 WHITESPACE@5095..5096 " "
3480 R_PAREN@5541..5542 ")"3480 R_PAREN@5541..5542 ")"
3481 COLONCOLON@5542..5544 "::"3481 COLONCOLON@5542..5544 "::"
3482 WHITESPACE@5544..5549 "\n "3482 WHITESPACE@5544..5549 "\n "
3483 EXPR_LOCAL@5549..56733483 STMT_LOCAL@5549..5641
3484 LOCAL_KW@5549..5554 "local"3484 LOCAL_KW@5549..5554 "local"
3485 WHITESPACE@5554..5555 " "3485 WHITESPACE@5554..5555 " "
3486 BIND_DESTRUCT@5555..56403486 BIND_DESTRUCT@5555..5640
3555 R_PAREN@5638..5639 ")"3555 R_PAREN@5638..5639 ")"
3556 R_BRACK@5639..5640 "]"3556 R_BRACK@5639..5640 "]"
3557 SEMI@5640..5641 ";"3557 SEMI@5640..5641 ";"
3558 WHITESPACE@5641..5646 "\n "3558 WHITESPACE@5641..5646 "\n "
3559 EXPR_APPLY@5646..56733559 EXPR_APPLY@5646..5673
3560 EXPR_INDEX@5646..56543560 EXPR_INDEX@5646..5654
3561 EXPR_VAR@5646..56493561 EXPR_VAR@5646..5649
3562 NAME@5646..56493562 NAME@5646..5649
3563 IDENT@5646..5649 "std"3563 IDENT@5646..5649 "std"
3564 DOT@5649..5650 "."3564 DOT@5649..5650 "."
3565 NAME@5650..56543565 NAME@5650..5654
3566 IDENT@5650..5654 "join"3566 IDENT@5650..5654 "join"
3567 ARGS_DESC@5654..56733567 ARGS_DESC@5654..5673
3568 L_PAREN@5654..5655 "("3568 L_PAREN@5654..5655 "("
3569 ARG@5655..56593569 ARG@5655..5659
3570 EXPR_STRING@5655..56593570 EXPR_STRING@5655..5659
3571 STRING_SINGLE@5655..5659 "'\\n'"3571 STRING_SINGLE@5655..5659 "'\\n'"
3572 COMMA@5659..5660 ","3572 COMMA@5659..5660 ","
3573 WHITESPACE@5660..5661 " "3573 WHITESPACE@5660..5661 " "
3574 ARG@5661..56723574 ARG@5661..5672
3575 EXPR_BINARY@5661..56723575 EXPR_BINARY@5661..5672
3576 LHS_EXPR@5661..56653576 LHS_EXPR@5661..5665
3577 EXPR_VAR@5661..56653577 EXPR_VAR@5661..5665
3578 NAME@5661..56653578 NAME@5661..5665
3579 IDENT@5661..5665 "vars"3579 IDENT@5661..5665 "vars"
3580 WHITESPACE@5665..5666 " "3580 WHITESPACE@5665..5666 " "
3581 PLUS@5666..5667 "+"3581 PLUS@5666..5667 "+"
3582 WHITESPACE@5667..5668 " "3582 WHITESPACE@5667..5668 " "
3583 EXPR_ARRAY@5668..56723583 EXPR_ARRAY@5668..5672
3584 L_BRACK@5668..5669 "["3584 L_BRACK@5668..5669 "["
3585 EXPR_STRING@5669..56713585 EXPR_STRING@5669..5671
3586 STRING_SINGLE@5669..5671 "''"3586 STRING_SINGLE@5669..5671 "''"
3587 R_BRACK@5671..5672 "]"3587 R_BRACK@5671..5672 "]"
3588 R_PAREN@5672..5673 ")"3588 R_PAREN@5672..5673 ")"
3589 COMMA@5673..5674 ","3589 COMMA@5673..5674 ","
3590 WHITESPACE@5674..5678 "\n\n "3590 WHITESPACE@5674..5678 "\n\n "
3591 MEMBER_FIELD_METHOD@5678..63453591 MEMBER_FIELD_METHOD@5678..6345
3653 WHITESPACE@5811..5816 "\n "3653 WHITESPACE@5811..5816 "\n "
3654 ELSE_KW@5816..5820 "else"3654 ELSE_KW@5816..5820 "else"
3655 WHITESPACE@5820..5827 "\n "3655 WHITESPACE@5820..5827 "\n "
3656 FALSE_EXPR@5827..63453656 STMT_LOCAL@5827..6327
3657 EXPR_LOCAL@5827..63453657 LOCAL_KW@5827..5832 "local"
3658 LOCAL_KW@5827..5832 "local"3658 WHITESPACE@5832..5833 " "
3659 WHITESPACE@5832..5833 " "3659 BIND_FUNCTION@5833..6326
3660 BIND_FUNCTION@5833..63263660 NAME@5833..5836
3661 NAME@5833..58363661 IDENT@5833..5836 "aux"
3662 IDENT@5833..5836 "aux"3662 PARAMS_DESC@5836..5839
3663 PARAMS_DESC@5836..58393663 L_PAREN@5836..5837 "("
3664 L_PAREN@5836..5837 "("3664 PARAM@5837..5838
3665 PARAM@5837..58383665 DESTRUCT_FULL@5837..5838
3666 DESTRUCT_FULL@5837..58383666 NAME@5837..5838
3667 NAME@5837..58383667 IDENT@5837..5838 "v"
3668 IDENT@5837..5838 "v"3668 R_PAREN@5838..5839 ")"
3669 R_PAREN@5838..5839 ")"3669 WHITESPACE@5839..5840 " "
3670 WHITESPACE@5839..5840 " "3670 ASSIGN@5840..5841 "="
3671 ASSIGN@5840..5841 "="3671 WHITESPACE@5841..5850 "\n "
3672 WHITESPACE@5841..5850 "\n "3672 EXPR_IF_THEN_ELSE@5850..6326
3673 EXPR_IF_THEN_ELSE@5850..63263673 IF_KW@5850..5852 "if"
3674 IF_KW@5850..5852 "if"3674 WHITESPACE@5852..5853 " "
3675 WHITESPACE@5852..5853 " "3675 EXPR_APPLY@5853..5868
3676 EXPR_APPLY@5853..58683676 EXPR_INDEX@5853..5865
3677 EXPR_INDEX@5853..58653677 EXPR_VAR@5853..5856
3678 EXPR_VAR@5853..58563678 NAME@5853..5856
3679 NAME@5853..58563679 IDENT@5853..5856 "std"
3680 IDENT@5853..5856 "std"3680 DOT@5856..5857 "."
3681 DOT@5856..5857 "."3681 NAME@5857..5865
3682 NAME@5857..58653682 IDENT@5857..5865 "isString"
3683 IDENT@5857..5865 "isString"3683 ARGS_DESC@5865..5868
3684 ARGS_DESC@5865..58683684 L_PAREN@5865..5866 "("
3685 L_PAREN@5865..5866 "("3685 ARG@5866..5867
3686 ARG@5866..58673686 EXPR_VAR@5866..5867
3687 EXPR_VAR@5866..58673687 NAME@5866..5867
3688 NAME@5866..58673688 IDENT@5866..5867 "v"
3689 IDENT@5866..5867 "v"3689 R_PAREN@5867..5868 ")"
3690 R_PAREN@5867..5868 ")"3690 WHITESPACE@5868..5869 " "
3691 WHITESPACE@5868..5869 " "3691 THEN_KW@5869..5873 "then"
3692 THEN_KW@5869..5873 "then"3692 WHITESPACE@5873..5884 "\n "
3693 WHITESPACE@5873..5884 "\n "3693 TRUE_EXPR@5884..5885
3694 TRUE_EXPR@5884..58853694 EXPR_VAR@5884..5885
3695 EXPR_VAR@5884..58853695 NAME@5884..5885
3696 NAME@5884..58853696 IDENT@5884..5885 "v"
3697 IDENT@5884..5885 "v"3697 WHITESPACE@5885..5894 "\n "
3698 WHITESPACE@5885..5894 "\n "3698 ELSE_KW@5894..5898 "else"
3699 ELSE_KW@5894..5898 "else"3699 WHITESPACE@5898..5909 "\n "
3700 WHITESPACE@5898..5909 "\n "3700 STMT_LOCAL@5909..5926
3701 FALSE_EXPR@5909..63263701 LOCAL_KW@5909..5914 "local"
3702 EXPR_LOCAL@5909..63263702 WHITESPACE@5914..5915 " "
3703 LOCAL_KW@5909..5914 "local"3703 BIND_DESTRUCT@5915..5925
3704 WHITESPACE@5914..5915 " "3704 DESTRUCT_FULL@5915..5918
3705 BIND_DESTRUCT@5915..59253705 NAME@5915..5918
3706 DESTRUCT_FULL@5915..59183706 IDENT@5915..5918 "tag"
3707 NAME@5915..59183707 WHITESPACE@5918..5919 " "
3708 IDENT@5915..5918 "tag"3708 ASSIGN@5919..5920 "="
3709 WHITESPACE@5918..5919 " "3709 WHITESPACE@5920..5921 " "
3710 ASSIGN@5919..5920 "="3710 EXPR_INDEX_EXPR@5921..5925
3711 WHITESPACE@5920..5921 " "3711 LHS_EXPR@5921..5922
3712 EXPR_INDEX_EXPR@5921..59253712 EXPR_VAR@5921..5922
3713 LHS_EXPR@5921..59223713 NAME@5921..5922
3714 EXPR_VAR@5921..59223714 IDENT@5921..5922 "v"
3715 NAME@5921..59223715 L_BRACK@5922..5923 "["
3716 IDENT@5921..5922 "v"3716 EXPR_NUMBER@5923..5924
3717 L_BRACK@5922..5923 "["3717 FLOAT@5923..5924 "0"
3718 EXPR_NUMBER@5923..59243718 R_BRACK@5924..5925 "]"
3719 FLOAT@5923..5924 "0"3719 SEMI@5925..5926 ";"
3720 R_BRACK@5924..5925 "]"3720 WHITESPACE@5926..5937 "\n "
3721 SEMI@5925..5926 ";"3721 STMT_LOCAL@5937..5995
3722 WHITESPACE@5926..5937 "\n "3722 LOCAL_KW@5937..5942 "local"
3723 EXPR_LOCAL@5937..63263723 WHITESPACE@5942..5943 " "
3724 LOCAL_KW@5937..5942 "local"3724 BIND_DESTRUCT@5943..5994
3725 WHITESPACE@5942..5943 " "3725 DESTRUCT_FULL@5943..5952
3726 BIND_DESTRUCT@5943..59943726 NAME@5943..5952
3727 DESTRUCT_FULL@5943..59523727 IDENT@5943..5952 "has_attrs"
3728 NAME@5943..59523728 WHITESPACE@5952..5953 " "
3729 IDENT@5943..5952 "has_attrs"3729 ASSIGN@5953..5954 "="
3730 WHITESPACE@5952..5953 " "3730 WHITESPACE@5954..5955 " "
3731 ASSIGN@5953..5954 "="3731 EXPR_BINARY@5955..5994
3732 WHITESPACE@5954..5955 " "3732 LHS_EXPR@5955..5972
3733 EXPR_BINARY@5955..59943733 EXPR_BINARY@5955..5972
3734 LHS_EXPR@5955..59723734 LHS_EXPR@5955..5968
3735 EXPR_BINARY@5955..59723735 EXPR_APPLY@5955..5968
3736 LHS_EXPR@5955..59683736 EXPR_INDEX@5955..5965
3737 EXPR_APPLY@5955..59683737 EXPR_VAR@5955..5958
3738 EXPR_INDEX@5955..59653738 NAME@5955..5958
3739 EXPR_VAR@5955..59583739 IDENT@5955..5958 "std"
3740 NAME@5955..59583740 DOT@5958..5959 "."
3741 IDENT@5955..5958 "std"3741 NAME@5959..5965
3742 DOT@5958..5959 "."3742 IDENT@5959..5965 "length"
3743 NAME@5959..59653743 ARGS_DESC@5965..5968
3744 IDENT@5959..5965 "length"3744 L_PAREN@5965..5966 "("
3745 ARGS_DESC@5965..59683745 ARG@5966..5967
3746 L_PAREN@5965..5966 "("3746 EXPR_VAR@5966..5967
3747 ARG@5966..59673747 NAME@5966..5967
3748 EXPR_VAR@5966..59673748 IDENT@5966..5967 "v"
3749 NAME@5966..59673749 R_PAREN@5967..5968 ")"
3750 IDENT@5966..5967 "v"3750 WHITESPACE@5968..5969 " "
3751 R_PAREN@5967..5968 ")"3751 GT@5969..5970 ">"
3752 WHITESPACE@5968..5969 " "3752 WHITESPACE@5970..5971 " "
3753 GT@5969..5970 ">"3753 EXPR_NUMBER@5971..5972
3754 WHITESPACE@5970..5971 " "3754 FLOAT@5971..5972 "1"
3755 EXPR_NUMBER@5971..59723755 WHITESPACE@5972..5973 " "
3756 FLOAT@5971..5972 "1"3756 AND@5973..5975 "&&"
3757 WHITESPACE@5972..5973 " "3757 WHITESPACE@5975..5976 " "
3758 AND@5973..5975 "&&"3758 EXPR_APPLY@5976..5994
3759 WHITESPACE@5975..5976 " "3759 EXPR_INDEX@5976..5988
3760 EXPR_APPLY@5976..59943760 EXPR_VAR@5976..5979
3761 EXPR_INDEX@5976..59883761 NAME@5976..5979
3762 EXPR_VAR@5976..59793762 IDENT@5976..5979 "std"
3763 NAME@5976..59793763 DOT@5979..5980 "."
3764 IDENT@5976..5979 "std"3764 NAME@5980..5988
3765 DOT@5979..5980 "."3765 IDENT@5980..5988 "isObject"
3766 NAME@5980..59883766 ARGS_DESC@5988..5994
3767 IDENT@5980..5988 "isObject"3767 L_PAREN@5988..5989 "("
3768 ARGS_DESC@5988..59943768 ARG@5989..5993
3769 L_PAREN@5988..5989 "("3769 EXPR_INDEX_EXPR@5989..5993
3770 ARG@5989..59933770 LHS_EXPR@5989..5990
3771 EXPR_INDEX_EXPR@5989..59933771 EXPR_VAR@5989..5990
3772 LHS_EXPR@5989..59903772 NAME@5989..5990
3773 EXPR_VAR@5989..59903773 IDENT@5989..5990 "v"
3774 NAME@5989..59903774 L_BRACK@5990..5991 "["
3775 IDENT@5989..5990 "v"3775 EXPR_NUMBER@5991..5992
3776 L_BRACK@5990..5991 "["3776 FLOAT@5991..5992 "1"
3777 EXPR_NUMBER@5991..59923777 R_BRACK@5992..5993 "]"
3778 FLOAT@5991..5992 "1"3778 R_PAREN@5993..5994 ")"
3779 R_BRACK@5992..5993 "]"3779 SEMI@5994..5995 ";"
3780 R_PAREN@5993..5994 ")"3780 WHITESPACE@5995..6006 "\n "
3781 SEMI@5994..5995 ";"3781 STMT_LOCAL@6006..6051
3782 WHITESPACE@5995..6006 "\n "3782 LOCAL_KW@6006..6011 "local"
3783 EXPR_LOCAL@6006..63263783 WHITESPACE@6011..6012 " "
3784 LOCAL_KW@6006..6011 "local"3784 BIND_DESTRUCT@6012..6050
3785 WHITESPACE@6011..6012 " "3785 DESTRUCT_FULL@6012..6017
3786 BIND_DESTRUCT@6012..60503786 NAME@6012..6017
3787 DESTRUCT_FULL@6012..60173787 IDENT@6012..6017 "attrs"
3788 NAME@6012..60173788 WHITESPACE@6017..6018 " "
3789 IDENT@6012..6017 "attrs"3789 ASSIGN@6018..6019 "="
3790 WHITESPACE@6017..6018 " "3790 WHITESPACE@6019..6020 " "
3791 ASSIGN@6018..6019 "="3791 EXPR_IF_THEN_ELSE@6020..6050
3792 WHITESPACE@6019..6020 " "3792 IF_KW@6020..6022 "if"
3793 EXPR_IF_THEN_ELSE@6020..60503793 WHITESPACE@6022..6023 " "
3794 IF_KW@6020..6022 "if"3794 EXPR_VAR@6023..6032
3795 WHITESPACE@6022..6023 " "3795 NAME@6023..6032
3796 EXPR_VAR@6023..60323796 IDENT@6023..6032 "has_attrs"
3797 NAME@6023..60323797 WHITESPACE@6032..6033 " "
3798 IDENT@6023..6032 "has_attrs"3798 THEN_KW@6033..6037 "then"
3799 WHITESPACE@6032..6033 " "3799 WHITESPACE@6037..6038 " "
3800 THEN_KW@6033..6037 "then"3800 TRUE_EXPR@6038..6042
3801 WHITESPACE@6037..6038 " "3801 EXPR_INDEX_EXPR@6038..6042
3802 TRUE_EXPR@6038..60423802 LHS_EXPR@6038..6039
3803 EXPR_INDEX_EXPR@6038..60423803 EXPR_VAR@6038..6039
3804 LHS_EXPR@6038..60393804 NAME@6038..6039
3805 EXPR_VAR@6038..60393805 IDENT@6038..6039 "v"
3806 NAME@6038..60393806 L_BRACK@6039..6040 "["
3807 IDENT@6038..6039 "v"3807 EXPR_NUMBER@6040..6041
3808 L_BRACK@6039..6040 "["3808 FLOAT@6040..6041 "1"
3809 EXPR_NUMBER@6040..60413809 R_BRACK@6041..6042 "]"
3810 FLOAT@6040..6041 "1"3810 WHITESPACE@6042..6043 " "
3811 R_BRACK@6041..6042 "]"3811 ELSE_KW@6043..6047 "else"
3812 WHITESPACE@6042..6043 " "3812 WHITESPACE@6047..6048 " "
3813 ELSE_KW@6043..6047 "else"3813 FALSE_EXPR@6048..6050
3814 WHITESPACE@6047..6048 " "3814 EXPR_OBJECT@6048..6050
3815 FALSE_EXPR@6048..60503815 OBJ_BODY_MEMBER_LIST@6048..6050
3816 EXPR_OBJECT@6048..60503816 L_BRACE@6048..6049 "{"
3817 OBJ_BODY_MEMBER_LIST@6048..60503817 R_BRACE@6049..6050 "}"
3818 L_BRACE@6048..6049 "{"3818 SEMI@6050..6051 ";"
3819 R_BRACE@6049..6050 "}"3819 WHITESPACE@6051..6062 "\n "
3820 SEMI@6050..6051 ";"3820 STMT_LOCAL@6062..6114
3821 WHITESPACE@6051..6062 "\n "3821 LOCAL_KW@6062..6067 "local"
3822 EXPR_LOCAL@6062..63263822 WHITESPACE@6067..6068 " "
3823 LOCAL_KW@6062..6067 "local"3823 BIND_DESTRUCT@6068..6113
3824 WHITESPACE@6067..6068 " "3824 DESTRUCT_FULL@6068..6076
3825 BIND_DESTRUCT@6068..61133825 NAME@6068..6076
3826 DESTRUCT_FULL@6068..60763826 IDENT@6068..6076 "children"
3827 NAME@6068..60763827 WHITESPACE@6076..6077 " "
3828 IDENT@6068..6076 "children"3828 ASSIGN@6077..6078 "="
3829 WHITESPACE@6076..6077 " "3829 WHITESPACE@6078..6079 " "
3830 ASSIGN@6077..6078 "="3830 EXPR_IF_THEN_ELSE@6079..6113
3831 WHITESPACE@6078..6079 " "3831 IF_KW@6079..6081 "if"
3832 EXPR_IF_THEN_ELSE@6079..61133832 WHITESPACE@6081..6082 " "
3833 IF_KW@6079..6081 "if"3833 EXPR_VAR@6082..6091
3834 WHITESPACE@6081..6082 " "3834 NAME@6082..6091
3835 EXPR_VAR@6082..60913835 IDENT@6082..6091 "has_attrs"
3836 NAME@6082..60913836 WHITESPACE@6091..6092 " "
3837 IDENT@6082..6091 "has_attrs"3837 THEN_KW@6092..6096 "then"
3838 WHITESPACE@6091..6092 " "3838 WHITESPACE@6096..6097 " "
3839 THEN_KW@6092..6096 "then"3839 TRUE_EXPR@6097..6102
3840 WHITESPACE@6096..6097 " "3840 EXPR_SLICE@6097..6102
3841 TRUE_EXPR@6097..61023841 EXPR_VAR@6097..6098
3842 EXPR_SLICE@6097..61023842 NAME@6097..6098
3843 EXPR_VAR@6097..60983843 IDENT@6097..6098 "v"
3844 NAME@6097..60983844 SLICE_DESC@6098..6102
3845 IDENT@6097..6098 "v"3845 L_BRACK@6098..6099 "["
3846 SLICE_DESC@6098..61023846 EXPR_NUMBER@6099..6100
3847 L_BRACK@6098..6099 "["3847 FLOAT@6099..6100 "2"
3848 EXPR_NUMBER@6099..61003848 COLON@6100..6101 ":"
3849 FLOAT@6099..6100 "2"3849 R_BRACK@6101..6102 "]"
3850 COLON@6100..6101 ":"3850 WHITESPACE@6102..6103 " "
3851 R_BRACK@6101..6102 "]"3851 ELSE_KW@6103..6107 "else"
3852 WHITESPACE@6102..6103 " "3852 WHITESPACE@6107..6108 " "
3853 ELSE_KW@6103..6107 "else"3853 FALSE_EXPR@6108..6113
3854 WHITESPACE@6107..6108 " "3854 EXPR_SLICE@6108..6113
3855 FALSE_EXPR@6108..61133855 EXPR_VAR@6108..6109
3856 EXPR_SLICE@6108..61133856 NAME@6108..6109
3857 EXPR_VAR@6108..61093857 IDENT@6108..6109 "v"
3858 NAME@6108..61093858 SLICE_DESC@6109..6113
3859 IDENT@6108..6109 "v"3859 L_BRACK@6109..6110 "["
3860 SLICE_DESC@6109..61133860 EXPR_NUMBER@6110..6111
3861 L_BRACK@6109..6110 "["3861 FLOAT@6110..6111 "1"
3862 EXPR_NUMBER@6110..61113862 COLON@6111..6112 ":"
3863 FLOAT@6110..6111 "1"3863 R_BRACK@6112..6113 "]"
3864 COLON@6111..6112 ":"3864 SEMI@6113..6114 ";"
3865 R_BRACK@6112..6113 "]"3865 WHITESPACE@6114..6125 "\n "
3866 SEMI@6113..6114 ";"3866 STMT_LOCAL@6125..6231
3867 WHITESPACE@6114..6125 "\n "3867 LOCAL_KW@6125..6130 "local"
3868 EXPR_LOCAL@6125..63263868 WHITESPACE@6130..6131 " "
3869 LOCAL_KW@6125..6130 "local"3869 BIND_DESTRUCT@6131..6230
3870 WHITESPACE@6130..6131 " "3870 DESTRUCT_FULL@6131..6140
3871 BIND_DESTRUCT@6131..62303871 NAME@6131..6140
3872 DESTRUCT_FULL@6131..61403872 IDENT@6131..6140 "attrs_str"
3873 NAME@6131..61403873 WHITESPACE@6140..6141 " "
3874 IDENT@6131..6140 "attrs_str"3874 ASSIGN@6141..6142 "="
3875 WHITESPACE@6140..6141 " "3875 WHITESPACE@6142..6155 "\n "
3876 ASSIGN@6141..6142 "="3876 EXPR_APPLY@6155..6230
3877 WHITESPACE@6142..6155 "\n "3877 EXPR_INDEX@6155..6163
3878 EXPR_APPLY@6155..62303878 EXPR_VAR@6155..6158
3879 EXPR_INDEX@6155..61633879 NAME@6155..6158
3880 EXPR_VAR@6155..61583880 IDENT@6155..6158 "std"
3881 NAME@6155..61583881 DOT@6158..6159 "."
3882 IDENT@6155..6158 "std"3882 NAME@6159..6163
3883 DOT@6158..6159 "."3883 IDENT@6159..6163 "join"
3884 NAME@6159..61633884 ARGS_DESC@6163..6230
3885 IDENT@6159..6163 "join"3885 L_PAREN@6163..6164 "("
3886 ARGS_DESC@6163..62303886 ARG@6164..6166
3887 L_PAREN@6163..6164 "("3887 EXPR_STRING@6164..6166
3888 ARG@6164..61663888 STRING_SINGLE@6164..6166 "''"
3889 EXPR_STRING@6164..61663889 COMMA@6166..6167 ","
3890 STRING_SINGLE@6164..6166 "''"3890 WHITESPACE@6167..6168 " "
3891 COMMA@6166..6167 ","3891 ARG@6168..6229
3892 WHITESPACE@6167..6168 " "3892 EXPR_ARRAY_COMP@6168..6229
3893 ARG@6168..62293893 L_BRACK@6168..6169 "["
3894 EXPR_ARRAY_COMP@6168..62293894 EXPR_BINARY@6169..6195
3895 L_BRACK@6168..6169 "["3895 LHS_EXPR@6169..6179
3896 EXPR_BINARY@6169..61953896 EXPR_STRING@6169..6179
3897 LHS_EXPR@6169..61793897 STRING_SINGLE@6169..6179 "' %s=\"%s\"'"
3898 EXPR_STRING@6169..61793898 WHITESPACE@6179..6180 " "
3899 STRING_SINGLE@6169..6179 "' %s=\"%s\"'"3899 MODULO@6180..6181 "%"
3900 WHITESPACE@6179..6180 " "3900 WHITESPACE@6181..6182 " "
3901 MODULO@6180..6181 "%"3901 EXPR_ARRAY@6182..6195
3902 WHITESPACE@6181..6182 " "3902 L_BRACK@6182..6183 "["
3903 EXPR_ARRAY@6182..61953903 EXPR_VAR@6183..6184
3904 L_BRACK@6182..6183 "["3904 NAME@6183..6184
3905 EXPR_VAR@6183..61843905 IDENT@6183..6184 "k"
3906 NAME@6183..61843906 COMMA@6184..6185 ","
3907 IDENT@6183..6184 "k"3907 WHITESPACE@6185..6186 " "
3908 COMMA@6184..6185 ","3908 EXPR_INDEX_EXPR@6186..6194
3909 WHITESPACE@6185..6186 " "3909 LHS_EXPR@6186..6191
3910 EXPR_INDEX_EXPR@6186..61943910 EXPR_VAR@6186..6191
3911 LHS_EXPR@6186..61913911 NAME@6186..6191
3912 EXPR_VAR@6186..61913912 IDENT@6186..6191 "attrs"
3913 NAME@6186..61913913 L_BRACK@6191..6192 "["
3914 IDENT@6186..6191 "attrs"3914 EXPR_VAR@6192..6193
3915 L_BRACK@6191..6192 "["3915 NAME@6192..6193
3916 EXPR_VAR@6192..61933916 IDENT@6192..6193 "k"
3917 NAME@6192..61933917 R_BRACK@6193..6194 "]"
3918 IDENT@6192..6193 "k"3918 R_BRACK@6194..6195 "]"
3919 R_BRACK@6193..6194 "]"3919 WHITESPACE@6195..6196 " "
3920 R_BRACK@6194..6195 "]"3920 FOR_SPEC@6196..6228
3921 WHITESPACE@6195..6196 " "3921 FOR_KW@6196..6199 "for"
3922 FOR_SPEC@6196..62283922 WHITESPACE@6199..6200 " "
3923 FOR_KW@6196..6199 "for"3923 NAME@6200..6201
3924 WHITESPACE@6199..6200 " "3924 IDENT@6200..6201 "k"
3925 NAME@6200..62013925 WHITESPACE@6201..6202 " "
3926 IDENT@6200..6201 "k"3926 IN_KW@6202..6204 "in"
3927 WHITESPACE@6201..6202 " "3927 WHITESPACE@6204..6205 " "
3928 IN_KW@6202..6204 "in"3928 EXPR_APPLY@6205..6228
3929 WHITESPACE@6204..6205 " "3929 EXPR_INDEX@6205..6221
3930 EXPR_APPLY@6205..62283930 EXPR_VAR@6205..6208
3931 EXPR_INDEX@6205..62213931 NAME@6205..6208
3932 EXPR_VAR@6205..62083932 IDENT@6205..6208 "std"
3933 NAME@6205..62083933 DOT@6208..6209 "."
3934 IDENT@6205..6208 "std"3934 NAME@6209..6221
3935 DOT@6208..6209 "."3935 IDENT@6209..6221 "objectFields"
3936 NAME@6209..62213936 ARGS_DESC@6221..6228
3937 IDENT@6209..6221 "objectFields"3937 L_PAREN@6221..6222 "("
3938 ARGS_DESC@6221..62283938 ARG@6222..6227
3939 L_PAREN@6221..6222 "("3939 EXPR_VAR@6222..6227
3940 ARG@6222..62273940 NAME@6222..6227
3941 EXPR_VAR@6222..62273941 IDENT@6222..6227 "attrs"
3942 NAME@6222..62273942 R_PAREN@6227..6228 ")"
3943 IDENT@6222..6227 "attrs"3943 R_BRACK@6228..6229 "]"
3944 R_PAREN@6227..6228 ")"3944 R_PAREN@6229..6230 ")"
3945 R_BRACK@6228..6229 "]"3945 SEMI@6230..6231 ";"
3946 R_PAREN@6229..6230 ")"3946 WHITESPACE@6231..6242 "\n "
3947 SEMI@6230..6231 ";"3947 FALSE_EXPR@6242..6326
3948 WHITESPACE@6231..6242 "\n "3948 EXPR_APPLY@6242..6326
3949 EXPR_APPLY@6242..63263949 EXPR_INDEX@6242..6254
3950 EXPR_INDEX@6242..62543950 EXPR_VAR@6242..6245
3951 EXPR_VAR@6242..62453951 NAME@6242..6245
3952 NAME@6242..62453952 IDENT@6242..6245 "std"
3953 IDENT@6242..6245 "std"3953 DOT@6245..6246 "."
3954 DOT@6245..6246 "."3954 NAME@6246..6254
3955 NAME@6246..62543955 IDENT@6246..6254 "deepJoin"
3956 IDENT@6246..6254 "deepJoin"3956 ARGS_DESC@6254..6326
3957 ARGS_DESC@6254..63263957 L_PAREN@6254..6255 "("
3958 L_PAREN@6254..6255 "("3958 ARG@6255..6325
3959 ARG@6255..63253959 EXPR_ARRAY@6255..6325
3960 EXPR_ARRAY@6255..63253960 L_BRACK@6255..6256 "["
3961 L_BRACK@6255..6256 "["3961 EXPR_STRING@6256..6259
3962 EXPR_STRING@6256..62593962 STRING_SINGLE@6256..6259 "'<'"
3963 STRING_SINGLE@6256..6259 "'<'"3963 COMMA@6259..6260 ","
3964 COMMA@6259..6260 ","3964 WHITESPACE@6260..6261 " "
3965 WHITESPACE@6260..6261 " "3965 EXPR_VAR@6261..6264
3966 EXPR_VAR@6261..62643966 NAME@6261..6264
3967 NAME@6261..62643967 IDENT@6261..6264 "tag"
3968 IDENT@6261..6264 "tag"3968 COMMA@6264..6265 ","
3969 COMMA@6264..6265 ","3969 WHITESPACE@6265..6266 " "
3970 WHITESPACE@6265..6266 " "3970 EXPR_VAR@6266..6275
3971 EXPR_VAR@6266..62753971 NAME@6266..6275
3972 NAME@6266..62753972 IDENT@6266..6275 "attrs_str"
3973 IDENT@6266..6275 "attrs_str"3973 COMMA@6275..6276 ","
3974 COMMA@6275..6276 ","3974 WHITESPACE@6276..6277 " "
3975 WHITESPACE@6276..6277 " "3975 EXPR_STRING@6277..6280
3976 EXPR_STRING@6277..62803976 STRING_SINGLE@6277..6280 "'>'"
3977 STRING_SINGLE@6277..6280 "'>'"3977 COMMA@6280..6281 ","
3978 COMMA@6280..6281 ","3978 WHITESPACE@6281..6282 " "
3979 WHITESPACE@6281..6282 " "3979 EXPR_ARRAY_COMP@6282..6308
3980 EXPR_ARRAY_COMP@6282..63083980 L_BRACK@6282..6283 "["
3981 L_BRACK@6282..6283 "["3981 EXPR_APPLY@6283..6289
3982 EXPR_APPLY@6283..62893982 EXPR_VAR@6283..6286
3983 EXPR_VAR@6283..62863983 NAME@6283..6286
3984 NAME@6283..62863984 IDENT@6283..6286 "aux"
3985 IDENT@6283..6286 "aux"3985 ARGS_DESC@6286..6289
3986 ARGS_DESC@6286..62893986 L_PAREN@6286..6287 "("
3987 L_PAREN@6286..6287 "("3987 ARG@6287..6288
3988 ARG@6287..62883988 EXPR_VAR@6287..6288
3989 EXPR_VAR@6287..62883989 NAME@6287..6288
3990 NAME@6287..62883990 IDENT@6287..6288 "x"
3991 IDENT@6287..6288 "x"3991 R_PAREN@6288..6289 ")"
3992 R_PAREN@6288..6289 ")"3992 WHITESPACE@6289..6290 " "
3993 WHITESPACE@6289..6290 " "3993 FOR_SPEC@6290..6307
3994 FOR_SPEC@6290..63073994 FOR_KW@6290..6293 "for"
3995 FOR_KW@6290..6293 "for"3995 WHITESPACE@6293..6294 " "
3996 WHITESPACE@6293..6294 " "3996 NAME@6294..6295
3997 NAME@6294..62953997 IDENT@6294..6295 "x"
3998 IDENT@6294..6295 "x"3998 WHITESPACE@6295..6296 " "
3999 WHITESPACE@6295..6296 " "3999 IN_KW@6296..6298 "in"
4000 IN_KW@6296..6298 "in"4000 WHITESPACE@6298..6299 " "
4001 WHITESPACE@6298..6299 " "4001 EXPR_VAR@6299..6307
4002 EXPR_VAR@6299..63074002 NAME@6299..6307
4003 NAME@6299..63074003 IDENT@6299..6307 "children"
4004 IDENT@6299..6307 "children"4004 R_BRACK@6307..6308 "]"
4005 R_BRACK@6307..6308 "]"4005 COMMA@6308..6309 ","
4006 COMMA@6308..6309 ","4006 WHITESPACE@6309..6310 " "
4007 WHITESPACE@6309..6310 " "4007 EXPR_STRING@6310..6314
4008 EXPR_STRING@6310..63144008 STRING_SINGLE@6310..6314 "'</'"
4009 STRING_SINGLE@6310..6314 "'</'"4009 COMMA@6314..6315 ","
4010 COMMA@6314..6315 ","4010 WHITESPACE@6315..6316 " "
4011 WHITESPACE@6315..6316 " "4011 EXPR_VAR@6316..6319
4012 EXPR_VAR@6316..63194012 NAME@6316..6319
4013 NAME@6316..63194013 IDENT@6316..6319 "tag"
4014 IDENT@6316..6319 "tag"4014 COMMA@6319..6320 ","
4015 COMMA@6319..6320 ","4015 WHITESPACE@6320..6321 " "
4016 WHITESPACE@6320..6321 " "4016 EXPR_STRING@6321..6324
4017 EXPR_STRING@6321..63244017 STRING_SINGLE@6321..6324 "'>'"
4018 STRING_SINGLE@6321..6324 "'>'"4018 R_BRACK@6324..6325 "]"
4019 R_BRACK@6324..6325 "]"4019 R_PAREN@6325..6326 ")"
4020 R_PAREN@6325..6326 ")"4020 SEMI@6326..6327 ";"
4021 SEMI@6326..6327 ";"4021 WHITESPACE@6327..6335 "\n\n "
4022 WHITESPACE@6327..6335 "\n\n "4022 FALSE_EXPR@6335..6345
4023 EXPR_APPLY@6335..63454023 EXPR_APPLY@6335..6345
4024 EXPR_VAR@6335..63384024 EXPR_VAR@6335..6338
4025 NAME@6335..63384025 NAME@6335..6338
4026 IDENT@6335..6338 "aux"4026 IDENT@6335..6338 "aux"
4027 ARGS_DESC@6338..63454027 ARGS_DESC@6338..6345
4028 L_PAREN@6338..6339 "("4028 L_PAREN@6338..6339 "("
4029 ARG@6339..63444029 ARG@6339..6344
4030 EXPR_VAR@6339..63444030 EXPR_VAR@6339..6344
4031 NAME@6339..63444031 NAME@6339..6344
4032 IDENT@6339..6344 "value"4032 IDENT@6339..6344 "value"
4033 R_PAREN@6344..6345 ")"4033 R_PAREN@6344..6345 ")"
4034 COMMA@6345..6346 ","4034 COMMA@6345..6346 ","
4035 WHITESPACE@6346..6350 "\n\n "4035 WHITESPACE@6346..6350 "\n\n "
4036 MEMBER_FIELD_METHOD@6350..65564036 MEMBER_FIELD_METHOD@6350..6899
4037 FIELD_NAME_FIXED@6350..63544037 FIELD_NAME_FIXED@6350..6358
4038 NAME@6350..63544038 NAME@6350..6358
4039 IDENT@6350..6354 "uniq"4039 IDENT@6350..6358 "setUnion"
4040 PARAMS_DESC@6354..63684040 PARAMS_DESC@6358..6373
4041 L_PAREN@6354..6355 "("4041 L_PAREN@6358..6359 "("
4042 PARAM@6355..63584042 PARAM@6359..6360
4043 DESTRUCT_FULL@6355..63584043 DESTRUCT_FULL@6359..6360
4044 NAME@6355..63584044 NAME@6359..6360
4045 IDENT@6355..6358 "arr"4045 IDENT@6359..6360 "a"
4046 COMMA@6358..6359 ","4046 COMMA@6360..6361 ","
4047 WHITESPACE@6359..6360 " "4047 WHITESPACE@6361..6362 " "
4048 PARAM@6360..63674048 PARAM@6362..6363
4049 DESTRUCT_FULL@6360..63644049 DESTRUCT_FULL@6362..6363
4050 NAME@6360..63644050 NAME@6362..6363
4051 IDENT@6360..6364 "keyF"4051 IDENT@6362..6363 "b"
4052 ASSIGN@6364..6365 "="4052 COMMA@6363..6364 ","
4053 EXPR_VAR@6365..63674053 WHITESPACE@6364..6365 " "
4054 NAME@6365..63674054 PARAM@6365..6372
4055 IDENT@6365..6367 "id"4055 DESTRUCT_FULL@6365..6369
4056 R_PAREN@6367..6368 ")"4056 NAME@6365..6369
4057 COLONCOLON@6368..6370 "::"4057 IDENT@6365..6369 "keyF"
4058 WHITESPACE@6370..6375 "\n "4058 ASSIGN@6369..6370 "="
4059 EXPR_LOCAL@6375..65564059 EXPR_VAR@6370..6372
4060 LOCAL_KW@6375..6380 "local"4060 NAME@6370..6372
4061 WHITESPACE@6380..6381 " "4061 IDENT@6370..6372 "id"
4062 BIND_FUNCTION@6381..65294062 R_PAREN@6372..6373 ")"
4063 NAME@6381..63824063 COLONCOLON@6373..6375 "::"
4064 IDENT@6381..6382 "f"4064 WHITESPACE@6375..6380 "\n "
4065 PARAMS_DESC@6382..63884065 SINGLE_LINE_SLASH_COMMENT@6380..6422 "// NOTE: order matter ..."
4066 L_PAREN@6382..6383 "("4066 WHITESPACE@6422..6426 " "
4067 PARAM@6383..63844067 STMT_LOCAL@6426..6875
4068 DESTRUCT_FULL@6383..63844068 LOCAL_KW@6426..6431 "local"
4069 NAME@6383..63844069 WHITESPACE@6431..6432 " "
4070 IDENT@6383..6384 "a"4070 BIND_FUNCTION@6432..6874
4071 COMMA@6384..6385 ","4071 NAME@6432..6435
4072 WHITESPACE@6385..6386 " "4072 IDENT@6432..6435 "aux"
4073 PARAM@6386..63874073 PARAMS_DESC@6435..6452
4074 DESTRUCT_FULL@6386..63874074 L_PAREN@6435..6436 "("
4075 NAME@6386..63874075 PARAM@6436..6437
4076 IDENT@6386..6387 "b"4076 DESTRUCT_FULL@6436..6437
4077 R_PAREN@6387..6388 ")"4077 NAME@6436..6437
4078 WHITESPACE@6388..6389 " "4078 IDENT@6436..6437 "a"
4079 ASSIGN@6389..6390 "="4079 COMMA@6437..6438 ","
4080 WHITESPACE@6390..6397 "\n "4080 WHITESPACE@6438..6439 " "
4081 EXPR_IF_THEN_ELSE@6397..65294081 PARAM@6439..6440
4082 IF_KW@6397..6399 "if"4082 DESTRUCT_FULL@6439..6440
4083 WHITESPACE@6399..6400 " "4083 NAME@6439..6440
4084 EXPR_BINARY@6400..64184084 IDENT@6439..6440 "b"
4085 LHS_EXPR@6400..64134085 COMMA@6440..6441 ","
4086 EXPR_APPLY@6400..64134086 WHITESPACE@6441..6442 " "
4087 EXPR_INDEX@6400..64104087 PARAM@6442..6443
4088 EXPR_VAR@6400..64034088 DESTRUCT_FULL@6442..6443
4089 NAME@6400..64034089 NAME@6442..6443
4090 IDENT@6400..6403 "std"4090 IDENT@6442..6443 "i"
4091 DOT@6403..6404 "."4091 COMMA@6443..6444 ","
4092 NAME@6404..64104092 WHITESPACE@6444..6445 " "
4093 IDENT@6404..6410 "length"4093 PARAM@6445..6446
4094 ARGS_DESC@6410..64134094 DESTRUCT_FULL@6445..6446
4095 L_PAREN@6410..6411 "("4095 NAME@6445..6446
4096 ARG@6411..64124096 IDENT@6445..6446 "j"
4097 EXPR_VAR@6411..64124097 COMMA@6446..6447 ","
4098 NAME@6411..64124098 WHITESPACE@6447..6448 " "
4099 IDENT@6411..6412 "a"4099 PARAM@6448..6451
4100 R_PAREN@6412..6413 ")"4100 DESTRUCT_FULL@6448..6451
4101 WHITESPACE@6413..6414 " "4101 NAME@6448..6451
4102 EQ@6414..6416 "=="4102 IDENT@6448..6451 "acc"
4103 WHITESPACE@6416..6417 " "4103 R_PAREN@6451..6452 ")"
4104 EXPR_NUMBER@6417..64184104 WHITESPACE@6452..6453 " "
4105 FLOAT@6417..6418 "0"4105 ASSIGN@6453..6454 "="
4106 WHITESPACE@6418..6419 " "4106 WHITESPACE@6454..6461 "\n "
4107 THEN_KW@6419..6423 "then"4107 EXPR_IF_THEN_ELSE@6461..6874
4108 WHITESPACE@6423..6432 "\n "4108 IF_KW@6461..6463 "if"
4109 TRUE_EXPR@6432..64354109 WHITESPACE@6463..6464 " "
4110 EXPR_ARRAY@6432..64354110 EXPR_BINARY@6464..6482
4111 L_BRACK@6432..6433 "["4111 LHS_EXPR@6464..6465
4112 EXPR_VAR@6433..64344112 EXPR_VAR@6464..6465
4113 NAME@6433..64344113 NAME@6464..6465
4114 IDENT@6433..6434 "b"4114 IDENT@6464..6465 "i"
4115 R_BRACK@6434..6435 "]"4115 WHITESPACE@6465..6466 " "
4116 WHITESPACE@6435..6442 "\n "4116 GE@6466..6468 ">="
4117 ELSE_KW@6442..6446 "else"4117 WHITESPACE@6468..6469 " "
4118 WHITESPACE@6446..6447 " "4118 EXPR_APPLY@6469..6482
4119 FALSE_EXPR@6447..65294119 EXPR_INDEX@6469..6479
4120 EXPR_IF_THEN_ELSE@6447..65294120 EXPR_VAR@6469..6472
4121 IF_KW@6447..6449 "if"4121 NAME@6469..6472
4122 WHITESPACE@6449..6450 " "4122 IDENT@6469..6472 "std"
4123 EXPR_BINARY@6450..64874123 DOT@6472..6473 "."
4124 LHS_EXPR@6450..64764124 NAME@6473..6479
4125 EXPR_APPLY@6450..64764125 IDENT@6473..6479 "length"
4126 EXPR_VAR@6450..64544126 ARGS_DESC@6479..6482
4127 NAME@6450..64544127 L_PAREN@6479..6480 "("
4128 IDENT@6450..6454 "keyF"4128 ARG@6480..6481
4129 ARGS_DESC@6454..64764129 EXPR_VAR@6480..6481
4130 L_PAREN@6454..6455 "("4130 NAME@6480..6481
4131 ARG@6455..64754131 IDENT@6480..6481 "a"
4132 EXPR_INDEX_EXPR@6455..64754132 R_PAREN@6481..6482 ")"
4133 LHS_EXPR@6455..64564133 WHITESPACE@6482..6483 " "
4134 EXPR_VAR@6455..64564134 THEN_KW@6483..6487 "then"
4135 NAME@6455..64564135 WHITESPACE@6487..6496 "\n "
4136 IDENT@6455..6456 "a"4136 TRUE_EXPR@6496..6507
4137 L_BRACK@6456..6457 "["4137 EXPR_BINARY@6496..6507
4138 EXPR_BINARY@6457..64744138 LHS_EXPR@6496..6499
4139 LHS_EXPR@6457..64704139 EXPR_VAR@6496..6499
4140 EXPR_APPLY@6457..64704140 NAME@6496..6499
4141 EXPR_INDEX@6457..64674141 IDENT@6496..6499 "acc"
4142 EXPR_VAR@6457..64604142 WHITESPACE@6499..6500 " "
4143 NAME@6457..64604143 PLUS@6500..6501 "+"
4144 IDENT@6457..6460 "std"4144 WHITESPACE@6501..6502 " "
4145 DOT@6460..6461 "."4145 EXPR_SLICE@6502..6507
4146 NAME@6461..64674146 EXPR_VAR@6502..6503
4147 IDENT@6461..6467 "length"4147 NAME@6502..6503
4148 ARGS_DESC@6467..64704148 IDENT@6502..6503 "b"
4149 L_PAREN@6467..6468 "("4149 SLICE_DESC@6503..6507
4150 ARG@6468..64694150 L_BRACK@6503..6504 "["
4151 EXPR_VAR@6468..64694151 EXPR_VAR@6504..6505
4152 NAME@6468..64694152 NAME@6504..6505
4153 IDENT@6468..6469 "a"4153 IDENT@6504..6505 "j"
4154 R_PAREN@6469..6470 ")"4154 COLON@6505..6506 ":"
4155 WHITESPACE@6470..6471 " "4155 R_BRACK@6506..6507 "]"
4156 MINUS@6471..6472 "-"4156 WHITESPACE@6507..6514 "\n "
4157 WHITESPACE@6472..6473 " "4157 ELSE_KW@6514..6518 "else"
4158 EXPR_NUMBER@6473..64744158 WHITESPACE@6518..6519 " "
4159 FLOAT@6473..6474 "1"4159 FALSE_EXPR@6519..6874
4160 R_BRACK@6474..6475 "]"4160 EXPR_IF_THEN_ELSE@6519..6874
4161 R_PAREN@6475..6476 ")"4161 IF_KW@6519..6521 "if"
4162 WHITESPACE@6476..6477 " "4162 WHITESPACE@6521..6522 " "
4163 EQ@6477..6479 "=="4163 EXPR_BINARY@6522..6540
4164 WHITESPACE@6479..6480 " "4164 LHS_EXPR@6522..6523
4165 EXPR_APPLY@6480..64874165 EXPR_VAR@6522..6523
4166 EXPR_VAR@6480..64844166 NAME@6522..6523
4167 NAME@6480..64844167 IDENT@6522..6523 "j"
4168 IDENT@6480..6484 "keyF"4168 WHITESPACE@6523..6524 " "
4169 ARGS_DESC@6484..64874169 GE@6524..6526 ">="
4170 L_PAREN@6484..6485 "("4170 WHITESPACE@6526..6527 " "
4171 ARG@6485..64864171 EXPR_APPLY@6527..6540
4172 EXPR_VAR@6485..64864172 EXPR_INDEX@6527..6537
4173 NAME@6485..64864173 EXPR_VAR@6527..6530
4174 IDENT@6485..6486 "b"4174 NAME@6527..6530
4175 R_PAREN@6486..6487 ")"4175 IDENT@6527..6530 "std"
4176 WHITESPACE@6487..6488 " "4176 DOT@6530..6531 "."
4177 THEN_KW@6488..6492 "then"4177 NAME@6531..6537
4178 WHITESPACE@6492..6501 "\n "4178 IDENT@6531..6537 "length"
4179 TRUE_EXPR@6501..65024179 ARGS_DESC@6537..6540
4180 EXPR_VAR@6501..65024180 L_PAREN@6537..6538 "("
4181 NAME@6501..65024181 ARG@6538..6539
4182 IDENT@6501..6502 "a"4182 EXPR_VAR@6538..6539
4183 WHITESPACE@6502..6509 "\n "4183 NAME@6538..6539
4184 ELSE_KW@6509..6513 "else"4184 IDENT@6538..6539 "b"
4185 WHITESPACE@6513..6522 "\n "4185 R_PAREN@6539..6540 ")"
4186 FALSE_EXPR@6522..65294186 WHITESPACE@6540..6541 " "
4187 EXPR_BINARY@6522..65294187 THEN_KW@6541..6545 "then"
4188 LHS_EXPR@6522..65234188 WHITESPACE@6545..6554 "\n "
4189 EXPR_VAR@6522..65234189 TRUE_EXPR@6554..6565
4190 NAME@6522..65234190 EXPR_BINARY@6554..6565
4191 IDENT@6522..6523 "a"4191 LHS_EXPR@6554..6557
4192 WHITESPACE@6523..6524 " "4192 EXPR_VAR@6554..6557
4193 PLUS@6524..6525 "+"4193 NAME@6554..6557
4194 WHITESPACE@6525..6526 " "4194 IDENT@6554..6557 "acc"
4195 EXPR_ARRAY@6526..65294195 WHITESPACE@6557..6558 " "
4196 L_BRACK@6526..6527 "["4196 PLUS@6558..6559 "+"
4197 EXPR_VAR@6527..65284197 WHITESPACE@6559..6560 " "
4198 NAME@6527..65284198 EXPR_SLICE@6560..6565
4199 IDENT@6527..6528 "b"4199 EXPR_VAR@6560..6561
4200 R_BRACK@6528..6529 "]"4200 NAME@6560..6561
4201 SEMI@6529..6530 ";"4201 IDENT@6560..6561 "a"
4202 WHITESPACE@6530..6535 "\n "4202 SLICE_DESC@6561..6565
4203 EXPR_APPLY@6535..65564203 L_BRACK@6561..6562 "["
4204 EXPR_INDEX@6535..65444204 EXPR_VAR@6562..6563
4205 EXPR_VAR@6535..65384205 NAME@6562..6563
4206 NAME@6535..65384206 IDENT@6562..6563 "i"
4207 IDENT@6535..6538 "std"4207 COLON@6563..6564 ":"
4208 DOT@6538..6539 "."4208 R_BRACK@6564..6565 "]"
4209 NAME@6539..65444209 WHITESPACE@6565..6572 "\n "
4210 IDENT@6539..6544 "foldl"4210 ELSE_KW@6572..6576 "else"
4211 ARGS_DESC@6544..65564211 WHITESPACE@6576..6585 "\n "
4212 L_PAREN@6544..6545 "("4212 STMT_LOCAL@6585..6607
4213 ARG@6545..65464213 LOCAL_KW@6585..6590 "local"
4214 EXPR_VAR@6545..65464214 WHITESPACE@6590..6591 " "
4215 NAME@6545..65464215 BIND_DESTRUCT@6591..6606
4216 IDENT@6545..6546 "f"4216 DESTRUCT_FULL@6591..6593
4217 COMMA@6546..6547 ","4217 NAME@6591..6593
4218 WHITESPACE@6547..6548 " "4218 IDENT@6591..6593 "ak"
4219 ARG@6548..65514219 WHITESPACE@6593..6594 " "
4220 EXPR_VAR@6548..65514220 ASSIGN@6594..6595 "="
4221 NAME@6548..65514221 WHITESPACE@6595..6596 " "
4222 IDENT@6548..6551 "arr"4222 EXPR_APPLY@6596..6606
4223 COMMA@6551..6552 ","4223 EXPR_VAR@6596..6600
4224 WHITESPACE@6552..6553 " "4224 NAME@6596..6600
4225 ARG@6553..65554225 IDENT@6596..6600 "keyF"
4226 EXPR_ARRAY@6553..65554226 ARGS_DESC@6600..6606
4227 L_BRACK@6553..6554 "["4227 L_PAREN@6600..6601 "("
4228 R_BRACK@6554..6555 "]"4228 ARG@6601..6605
4229 R_PAREN@6555..6556 ")"4229 EXPR_INDEX_EXPR@6601..6605
4230 COMMA@6556..6557 ","4230 LHS_EXPR@6601..6602
4231 WHITESPACE@6557..6561 "\n\n "4231 EXPR_VAR@6601..6602
4232 MEMBER_FIELD_METHOD@6561..66204232 NAME@6601..6602
4233 FIELD_NAME_FIXED@6561..65644233 IDENT@6601..6602 "a"
4234 NAME@6561..65644234 L_BRACK@6602..6603 "["
4235 IDENT@6561..6564 "set"4235 EXPR_VAR@6603..6604
4236 PARAMS_DESC@6564..65784236 NAME@6603..6604
4237 L_PAREN@6564..6565 "("4237 IDENT@6603..6604 "i"
4238 PARAM@6565..65684238 R_BRACK@6604..6605 "]"
4239 DESTRUCT_FULL@6565..65684239 R_PAREN@6605..6606 ")"
4240 NAME@6565..65684240 SEMI@6606..6607 ";"
4241 IDENT@6565..6568 "arr"4241 WHITESPACE@6607..6616 "\n "
4242 COMMA@6568..6569 ","4242 STMT_LOCAL@6616..6638
4243 WHITESPACE@6569..6570 " "4243 LOCAL_KW@6616..6621 "local"
4244 PARAM@6570..65774244 WHITESPACE@6621..6622 " "
4245 DESTRUCT_FULL@6570..65744245 BIND_DESTRUCT@6622..6637
4246 NAME@6570..65744246 DESTRUCT_FULL@6622..6624
4247 IDENT@6570..6574 "keyF"4247 NAME@6622..6624
4248 ASSIGN@6574..6575 "="4248 IDENT@6622..6624 "bk"
4249 EXPR_VAR@6575..65774249 WHITESPACE@6624..6625 " "
4250 NAME@6575..65774250 ASSIGN@6625..6626 "="
4251 IDENT@6575..6577 "id"4251 WHITESPACE@6626..6627 " "
4252 R_PAREN@6577..6578 ")"4252 EXPR_APPLY@6627..6637
4253 COLONCOLON@6578..6580 "::"4253 EXPR_VAR@6627..6631
4254 WHITESPACE@6580..6585 "\n "4254 NAME@6627..6631
4255 EXPR_APPLY@6585..66204255 IDENT@6627..6631 "keyF"
4256 EXPR_INDEX@6585..65934256 ARGS_DESC@6631..6637
4257 EXPR_VAR@6585..65884257 L_PAREN@6631..6632 "("
4258 NAME@6585..65884258 ARG@6632..6636
4259 IDENT@6585..6588 "std"4259 EXPR_INDEX_EXPR@6632..6636
4260 DOT@6588..6589 "."4260 LHS_EXPR@6632..6633
4261 NAME@6589..65934261 EXPR_VAR@6632..6633
4262 IDENT@6589..6593 "uniq"4262 NAME@6632..6633
4263 ARGS_DESC@6593..66204263 IDENT@6632..6633 "b"
4264 L_PAREN@6593..6594 "("4264 L_BRACK@6633..6634 "["
4265 ARG@6594..66134265 EXPR_VAR@6634..6635
4266 EXPR_APPLY@6594..66134266 NAME@6634..6635
4267 EXPR_INDEX@6594..66024267 IDENT@6634..6635 "j"
4268 EXPR_VAR@6594..65974268 R_BRACK@6635..6636 "]"
4269 NAME@6594..65974269 R_PAREN@6636..6637 ")"
4270 IDENT@6594..6597 "std"4270 SEMI@6637..6638 ";"
4271 DOT@6597..6598 "."4271 WHITESPACE@6638..6647 "\n "
4272 NAME@6598..66024272 FALSE_EXPR@6647..6874
4273 IDENT@6598..6602 "sort"4273 EXPR_IF_THEN_ELSE@6647..6874
4274 ARGS_DESC@6602..66134274 IF_KW@6647..6649 "if"
4275 L_PAREN@6602..6603 "("4275 WHITESPACE@6649..6650 " "
4276 ARG@6603..66064276 EXPR_BINARY@6650..6658
4277 EXPR_VAR@6603..66064277 LHS_EXPR@6650..6652
4278 NAME@6603..66064278 EXPR_VAR@6650..6652
4279 IDENT@6603..6606 "arr"4279 NAME@6650..6652
4280 COMMA@6606..6607 ","4280 IDENT@6650..6652 "ak"
4281 WHITESPACE@6607..6608 " "4281 WHITESPACE@6652..6653 " "
4282 ARG@6608..66124282 EQ@6653..6655 "=="
4283 EXPR_VAR@6608..66124283 WHITESPACE@6655..6656 " "
4284 NAME@6608..66124284 EXPR_VAR@6656..6658
4285 IDENT@6608..6612 "keyF"4285 NAME@6656..6658
4286 R_PAREN@6612..6613 ")"4286 IDENT@6656..6658 "bk"
4287 COMMA@6613..6614 ","4287 WHITESPACE@6658..6659 " "
4288 WHITESPACE@6614..6615 " "4288 THEN_KW@6659..6663 "then"
4289 ARG@6615..66194289 WHITESPACE@6663..6674 "\n "
4290 EXPR_VAR@6615..66194290 TRUE_EXPR@6674..6722
4291 NAME@6615..66194291 EXPR_APPLY@6674..6722
4292 IDENT@6615..6619 "keyF"4292 EXPR_VAR@6674..6677
4293 R_PAREN@6619..6620 ")"4293 NAME@6674..6677
4294 COMMA@6620..6621 ","4294 IDENT@6674..6677 "aux"
4295 WHITESPACE@6621..6625 "\n\n "4295 ARGS_DESC@6677..6722
4296 MEMBER_FIELD_METHOD@6625..67604296 L_PAREN@6677..6678 "("
4297 FIELD_NAME_FIXED@6625..66344297 ARG@6678..6679
4298 NAME@6625..66344298 EXPR_VAR@6678..6679
4299 IDENT@6625..6634 "setMember"4299 NAME@6678..6679
4300 PARAMS_DESC@6634..66514300 IDENT@6678..6679 "a"
4301 L_PAREN@6634..6635 "("4301 COMMA@6679..6680 ","
4302 PARAM@6635..66364302 WHITESPACE@6680..6681 " "
4303 DESTRUCT_FULL@6635..66364303 ARG@6681..6682
4304 NAME@6635..66364304 EXPR_VAR@6681..6682
4305 IDENT@6635..6636 "x"4305 NAME@6681..6682
4306 COMMA@6636..6637 ","4306 IDENT@6681..6682 "b"
4307 WHITESPACE@6637..6638 " "4307 COMMA@6682..6683 ","
4308 PARAM@6638..66414308 WHITESPACE@6683..6684 " "
4309 DESTRUCT_FULL@6638..66414309 ARG@6684..6689
4310 NAME@6638..66414310 EXPR_BINARY@6684..6689
4311 IDENT@6638..6641 "arr"4311 LHS_EXPR@6684..6685
4312 COMMA@6641..6642 ","4312 EXPR_VAR@6684..6685
4313 WHITESPACE@6642..6643 " "4313 NAME@6684..6685
4314 PARAM@6643..66504314 IDENT@6684..6685 "i"
4315 DESTRUCT_FULL@6643..66474315 WHITESPACE@6685..6686 " "
4316 NAME@6643..66474316 PLUS@6686..6687 "+"
4317 IDENT@6643..6647 "keyF"4317 WHITESPACE@6687..6688 " "
4318 ASSIGN@6647..6648 "="4318 EXPR_NUMBER@6688..6689
4319 EXPR_VAR@6648..66504319 FLOAT@6688..6689 "1"
4320 NAME@6648..66504320 COMMA@6689..6690 ","
4321 IDENT@6648..6650 "id"4321 WHITESPACE@6690..6691 " "
4322 R_PAREN@6650..6651 ")"4322 ARG@6691..6696
4323 COLONCOLON@6651..6653 "::"4323 EXPR_BINARY@6691..6696
4324 WHITESPACE@6653..6658 "\n "4324 LHS_EXPR@6691..6692
4325 SINGLE_LINE_SLASH_COMMENT@6658..6712 "// TODO(dcunnin): Bin ..."4325 EXPR_VAR@6691..6692
4326 WHITESPACE@6712..6716 " "4326 NAME@6691..6692
4327 EXPR_BINARY@6716..67604327 IDENT@6691..6692 "j"
4328 LHS_EXPR@6716..67564328 WHITESPACE@6692..6693 " "
4329 EXPR_APPLY@6716..67564329 PLUS@6693..6694 "+"
4330 EXPR_INDEX@6716..67264330 WHITESPACE@6694..6695 " "
4331 EXPR_VAR@6716..67194331 EXPR_NUMBER@6695..6696
4332 NAME@6716..67194332 FLOAT@6695..6696 "1"
4333 IDENT@6716..6719 "std"4333 COMMA@6696..6697 ","
4334 DOT@6719..6720 "."4334 WHITESPACE@6697..6698 " "
4335 NAME@6720..67264335 ARG@6698..6710
4336 IDENT@6720..6726 "length"4336 EXPR_BINARY@6698..6710
4337 ARGS_DESC@6726..67564337 LHS_EXPR@6698..6701
4338 L_PAREN@6726..6727 "("4338 EXPR_VAR@6698..6701
4339 ARG@6727..67554339 NAME@6698..6701
4340 EXPR_APPLY@6727..67554340 IDENT@6698..6701 "acc"
4341 EXPR_INDEX@6727..67394341 WHITESPACE@6701..6702 " "
4342 EXPR_VAR@6727..67304342 PLUS@6702..6703 "+"
4343 NAME@6727..67304343 WHITESPACE@6703..6704 " "
4344 IDENT@6727..6730 "std"4344 EXPR_ARRAY@6704..6710
4345 DOT@6730..6731 "."4345 L_BRACK@6704..6705 "["
4346 NAME@6731..67394346 EXPR_INDEX_EXPR@6705..6709
4347 IDENT@6731..6739 "setInter"4347 LHS_EXPR@6705..6706
4348 ARGS_DESC@6739..67554348 EXPR_VAR@6705..6706
4349 L_PAREN@6739..6740 "("4349 NAME@6705..6706
4350 ARG@6740..67434350 IDENT@6705..6706 "a"
4351 EXPR_ARRAY@6740..67434351 L_BRACK@6706..6707 "["
4352 L_BRACK@6740..6741 "["4352 EXPR_VAR@6707..6708
4353 EXPR_VAR@6741..67424353 NAME@6707..6708
4354 NAME@6741..67424354 IDENT@6707..6708 "i"
4355 IDENT@6741..6742 "x"4355 R_BRACK@6708..6709 "]"
4356 R_BRACK@6742..6743 "]"4356 R_BRACK@6709..6710 "]"
4357 COMMA@6743..6744 ","4357 R_PAREN@6710..6711 ")"
4358 WHITESPACE@6744..6745 " "4358 WHITESPACE@6711..6712 " "
4359 ARG@6745..67484359 TAILSTRICT_KW@6712..6722 "tailstrict"
4360 EXPR_VAR@6745..67484360 WHITESPACE@6722..6731 "\n "
4361 NAME@6745..67484361 ELSE_KW@6731..6735 "else"
4362 IDENT@6745..6748 "arr"4362 WHITESPACE@6735..6736 " "
4363 COMMA@6748..6749 ","4363 FALSE_EXPR@6736..6874
4364 WHITESPACE@6749..6750 " "4364 EXPR_IF_THEN_ELSE@6736..6874
4365 ARG@6750..67544365 IF_KW@6736..6738 "if"
4366 EXPR_VAR@6750..67544366 WHITESPACE@6738..6739 " "
4367 NAME@6750..67544367 EXPR_BINARY@6739..6746
4368 IDENT@6750..6754 "keyF"4368 LHS_EXPR@6739..6741
4369 R_PAREN@6754..6755 ")"4369 EXPR_VAR@6739..6741
4370 R_PAREN@6755..6756 ")"4370 NAME@6739..6741
4371 WHITESPACE@6756..6757 " "4371 IDENT@6739..6741 "ak"
4372 GT@6757..6758 ">"4372 WHITESPACE@6741..6742 " "
4373 WHITESPACE@6758..6759 " "4373 LT@6742..6743 "<"
4374 EXPR_NUMBER@6759..67604374 WHITESPACE@6743..6744 " "
4375 FLOAT@6759..6760 "0"4375 EXPR_VAR@6744..6746
4376 COMMA@6760..6761 ","4376 NAME@6744..6746
4377 WHITESPACE@6761..6765 "\n\n "4377 IDENT@6744..6746 "bk"
4378 MEMBER_FIELD_METHOD@6765..73144378 WHITESPACE@6746..6747 " "
4379 FIELD_NAME_FIXED@6765..67734379 THEN_KW@6747..6751 "then"
4380 NAME@6765..67734380 WHITESPACE@6751..6762 "\n "
4381 IDENT@6765..6773 "setUnion"4381 TRUE_EXPR@6762..6806
4382 PARAMS_DESC@6773..67884382 EXPR_APPLY@6762..6806
4383 L_PAREN@6773..6774 "("4383 EXPR_VAR@6762..6765
4384 PARAM@6774..67754384 NAME@6762..6765
4385 DESTRUCT_FULL@6774..67754385 IDENT@6762..6765 "aux"
4386 NAME@6774..67754386 ARGS_DESC@6765..6806
4387 IDENT@6774..6775 "a"4387 L_PAREN@6765..6766 "("
4388 COMMA@6775..6776 ","4388 ARG@6766..6767
4389 WHITESPACE@6776..6777 " "4389 EXPR_VAR@6766..6767
4390 PARAM@6777..67784390 NAME@6766..6767
4391 DESTRUCT_FULL@6777..67784391 IDENT@6766..6767 "a"
4392 NAME@6777..67784392 COMMA@6767..6768 ","
4393 IDENT@6777..6778 "b"4393 WHITESPACE@6768..6769 " "
4394 COMMA@6778..6779 ","4394 ARG@6769..6770
4395 WHITESPACE@6779..6780 " "4395 EXPR_VAR@6769..6770
4396 PARAM@6780..67874396 NAME@6769..6770
4397 DESTRUCT_FULL@6780..67844397 IDENT@6769..6770 "b"
4398 NAME@6780..67844398 COMMA@6770..6771 ","
4399 IDENT@6780..6784 "keyF"4399 WHITESPACE@6771..6772 " "
4400 ASSIGN@6784..6785 "="4400 ARG@6772..6777
4401 EXPR_VAR@6785..67874401 EXPR_BINARY@6772..6777
4402 NAME@6785..67874402 LHS_EXPR@6772..6773
4403 IDENT@6785..6787 "id"4403 EXPR_VAR@6772..6773
4404 R_PAREN@6787..6788 ")"4404 NAME@6772..6773
4405 COLONCOLON@6788..6790 "::"4405 IDENT@6772..6773 "i"
4406 WHITESPACE@6790..6795 "\n "4406 WHITESPACE@6773..6774 " "
4407 SINGLE_LINE_SLASH_COMMENT@6795..6837 "// NOTE: order matter ..."4407 PLUS@6774..6775 "+"
4408 WHITESPACE@6837..6841 " "4408 WHITESPACE@6775..6776 " "
4409 EXPR_LOCAL@6841..73144409 EXPR_NUMBER@6776..6777
4410 LOCAL_KW@6841..6846 "local"4410 FLOAT@6776..6777 "1"
4411 WHITESPACE@6846..6847 " "4411 COMMA@6777..6778 ","
4412 BIND_FUNCTION@6847..72894412 WHITESPACE@6778..6779 " "
4413 NAME@6847..68504413 ARG@6779..6780
4414 IDENT@6847..6850 "aux"4414 EXPR_VAR@6779..6780
4415 PARAMS_DESC@6850..68674415 NAME@6779..6780
4416 L_PAREN@6850..6851 "("4416 IDENT@6779..6780 "j"
4417 PARAM@6851..68524417 COMMA@6780..6781 ","
4418 DESTRUCT_FULL@6851..68524418 WHITESPACE@6781..6782 " "
4419 NAME@6851..68524419 ARG@6782..6794
4420 IDENT@6851..6852 "a"4420 EXPR_BINARY@6782..6794
4421 COMMA@6852..6853 ","4421 LHS_EXPR@6782..6785
4422 WHITESPACE@6853..6854 " "4422 EXPR_VAR@6782..6785
4423 PARAM@6854..68554423 NAME@6782..6785
4424 DESTRUCT_FULL@6854..68554424 IDENT@6782..6785 "acc"
4425 NAME@6854..68554425 WHITESPACE@6785..6786 " "
4426 IDENT@6854..6855 "b"4426 PLUS@6786..6787 "+"
4427 COMMA@6855..6856 ","4427 WHITESPACE@6787..6788 " "
4428 WHITESPACE@6856..6857 " "4428 EXPR_ARRAY@6788..6794
4429 PARAM@6857..68584429 L_BRACK@6788..6789 "["
4430 DESTRUCT_FULL@6857..68584430 EXPR_INDEX_EXPR@6789..6793
4431 NAME@6857..68584431 LHS_EXPR@6789..6790
4432 IDENT@6857..6858 "i"4432 EXPR_VAR@6789..6790
4433 COMMA@6858..6859 ","4433 NAME@6789..6790
4434 WHITESPACE@6859..6860 " "4434 IDENT@6789..6790 "a"
4435 PARAM@6860..68614435 L_BRACK@6790..6791 "["
4436 DESTRUCT_FULL@6860..68614436 EXPR_VAR@6791..6792
4437 NAME@6860..68614437 NAME@6791..6792
4438 IDENT@6860..6861 "j"4438 IDENT@6791..6792 "i"
4439 COMMA@6861..6862 ","4439 R_BRACK@6792..6793 "]"
4440 WHITESPACE@6862..6863 " "4440 R_BRACK@6793..6794 "]"
4441 PARAM@6863..68664441 R_PAREN@6794..6795 ")"
4442 DESTRUCT_FULL@6863..68664442 WHITESPACE@6795..6796 " "
4443 NAME@6863..68664443 TAILSTRICT_KW@6796..6806 "tailstrict"
4444 IDENT@6863..6866 "acc"4444 WHITESPACE@6806..6815 "\n "
4445 R_PAREN@6866..6867 ")"4445 ELSE_KW@6815..6819 "else"
4446 WHITESPACE@6867..6868 " "4446 WHITESPACE@6819..6830 "\n "
4447 ASSIGN@6868..6869 "="4447 FALSE_EXPR@6830..6874
4448 WHITESPACE@6869..6876 "\n "4448 EXPR_APPLY@6830..6874
4449 EXPR_IF_THEN_ELSE@6876..72894449 EXPR_VAR@6830..6833
4450 IF_KW@6876..6878 "if"4450 NAME@6830..6833
4451 WHITESPACE@6878..6879 " "4451 IDENT@6830..6833 "aux"
4452 EXPR_BINARY@6879..68974452 ARGS_DESC@6833..6874
4453 LHS_EXPR@6879..68804453 L_PAREN@6833..6834 "("
4454 EXPR_VAR@6879..68804454 ARG@6834..6835
4455 NAME@6879..68804455 EXPR_VAR@6834..6835
4456 IDENT@6879..6880 "i"4456 NAME@6834..6835
4457 WHITESPACE@6880..6881 " "4457 IDENT@6834..6835 "a"
4458 GE@6881..6883 ">="4458 COMMA@6835..6836 ","
4459 WHITESPACE@6883..6884 " "4459 WHITESPACE@6836..6837 " "
4460 EXPR_APPLY@6884..68974460 ARG@6837..6838
4461 EXPR_INDEX@6884..68944461 EXPR_VAR@6837..6838
4462 EXPR_VAR@6884..68874462 NAME@6837..6838
4463 NAME@6884..68874463 IDENT@6837..6838 "b"
4464 IDENT@6884..6887 "std"4464 COMMA@6838..6839 ","
4465 DOT@6887..6888 "."4465 WHITESPACE@6839..6840 " "
4466 NAME@6888..68944466 ARG@6840..6841
4467 IDENT@6888..6894 "length"4467 EXPR_VAR@6840..6841
4468 ARGS_DESC@6894..68974468 NAME@6840..6841
4469 L_PAREN@6894..6895 "("4469 IDENT@6840..6841 "i"
4470 ARG@6895..68964470 COMMA@6841..6842 ","
4471 EXPR_VAR@6895..68964471 WHITESPACE@6842..6843 " "
4472 NAME@6895..68964472 ARG@6843..6848
4473 IDENT@6895..6896 "a"4473 EXPR_BINARY@6843..6848
4474 R_PAREN@6896..6897 ")"4474 LHS_EXPR@6843..6844
4475 WHITESPACE@6897..6898 " "4475 EXPR_VAR@6843..6844
4476 THEN_KW@6898..6902 "then"4476 NAME@6843..6844
4477 WHITESPACE@6902..6911 "\n "4477 IDENT@6843..6844 "j"
4478 TRUE_EXPR@6911..69224478 WHITESPACE@6844..6845 " "
4479 EXPR_BINARY@6911..69224479 PLUS@6845..6846 "+"
4480 LHS_EXPR@6911..69144480 WHITESPACE@6846..6847 " "
4481 EXPR_VAR@6911..69144481 EXPR_NUMBER@6847..6848
4482 NAME@6911..69144482 FLOAT@6847..6848 "1"
4483 IDENT@6911..6914 "acc"4483 COMMA@6848..6849 ","
4484 WHITESPACE@6914..6915 " "4484 WHITESPACE@6849..6850 " "
4485 PLUS@6915..6916 "+"4485 ARG@6850..6862
4486 WHITESPACE@6916..6917 " "4486 EXPR_BINARY@6850..6862
4487 EXPR_SLICE@6917..69224487 LHS_EXPR@6850..6853
4488 EXPR_VAR@6917..69184488 EXPR_VAR@6850..6853
4489 NAME@6917..69184489 NAME@6850..6853
4490 IDENT@6917..6918 "b"4490 IDENT@6850..6853 "acc"
4491 SLICE_DESC@6918..69224491 WHITESPACE@6853..6854 " "
4492 L_BRACK@6918..6919 "["4492 PLUS@6854..6855 "+"
4493 EXPR_VAR@6919..69204493 WHITESPACE@6855..6856 " "
4494 NAME@6919..69204494 EXPR_ARRAY@6856..6862
4495 IDENT@6919..6920 "j"4495 L_BRACK@6856..6857 "["
4496 COLON@6920..6921 ":"4496 EXPR_INDEX_EXPR@6857..6861
4497 R_BRACK@6921..6922 "]"4497 LHS_EXPR@6857..6858
4498 WHITESPACE@6922..6929 "\n "4498 EXPR_VAR@6857..6858
4499 ELSE_KW@6929..6933 "else"4499 NAME@6857..6858
4500 WHITESPACE@6933..6934 " "4500 IDENT@6857..6858 "b"
4501 FALSE_EXPR@6934..72894501 L_BRACK@6858..6859 "["
4502 EXPR_IF_THEN_ELSE@6934..72894502 EXPR_VAR@6859..6860
4503 IF_KW@6934..6936 "if"4503 NAME@6859..6860
4504 WHITESPACE@6936..6937 " "4504 IDENT@6859..6860 "j"
4505 EXPR_BINARY@6937..69554505 R_BRACK@6860..6861 "]"
4506 LHS_EXPR@6937..69384506 R_BRACK@6861..6862 "]"
4507 EXPR_VAR@6937..69384507 R_PAREN@6862..6863 ")"
4508 NAME@6937..69384508 WHITESPACE@6863..6864 " "
4509 IDENT@6937..6938 "j"4509 TAILSTRICT_KW@6864..6874 "tailstrict"
4510 WHITESPACE@6938..6939 " "4510 SEMI@6874..6875 ";"
4511 GE@6939..6941 ">="4511 WHITESPACE@6875..6880 "\n "
4512 WHITESPACE@6941..6942 " "4512 EXPR_APPLY@6880..6899
4513 EXPR_APPLY@6942..69554513 EXPR_VAR@6880..6883
4514 EXPR_INDEX@6942..69524514 NAME@6880..6883
4515 EXPR_VAR@6942..69454515 IDENT@6880..6883 "aux"
4516 NAME@6942..69454516 ARGS_DESC@6883..6899
4517 IDENT@6942..6945 "std"4517 L_PAREN@6883..6884 "("
4518 DOT@6945..6946 "."4518 ARG@6884..6885
4519 NAME@6946..69524519 EXPR_VAR@6884..6885
4520 IDENT@6946..6952 "length"4520 NAME@6884..6885
4521 ARGS_DESC@6952..69554521 IDENT@6884..6885 "a"
4522 L_PAREN@6952..6953 "("4522 COMMA@6885..6886 ","
4523 ARG@6953..69544523 WHITESPACE@6886..6887 " "
4524 EXPR_VAR@6953..69544524 ARG@6887..6888
4525 NAME@6953..69544525 EXPR_VAR@6887..6888
4526 IDENT@6953..6954 "b"4526 NAME@6887..6888
4527 R_PAREN@6954..6955 ")"4527 IDENT@6887..6888 "b"
4528 WHITESPACE@6955..6956 " "4528 COMMA@6888..6889 ","
4529 THEN_KW@6956..6960 "then"4529 WHITESPACE@6889..6890 " "
4530 WHITESPACE@6960..6969 "\n "4530 ARG@6890..6891
4531 TRUE_EXPR@6969..69804531 EXPR_NUMBER@6890..6891
4532 EXPR_BINARY@6969..69804532 FLOAT@6890..6891 "0"
4533 LHS_EXPR@6969..69724533 COMMA@6891..6892 ","
4534 EXPR_VAR@6969..69724534 WHITESPACE@6892..6893 " "
4535 NAME@6969..69724535 ARG@6893..6894
4536 IDENT@6969..6972 "acc"4536 EXPR_NUMBER@6893..6894
4537 WHITESPACE@6972..6973 " "4537 FLOAT@6893..6894 "0"
4538 PLUS@6973..6974 "+"4538 COMMA@6894..6895 ","
4539 WHITESPACE@6974..6975 " "4539 WHITESPACE@6895..6896 " "
4540 EXPR_SLICE@6975..69804540 ARG@6896..6898
4541 EXPR_VAR@6975..69764541 EXPR_ARRAY@6896..6898
4542 NAME@6975..69764542 L_BRACK@6896..6897 "["
4543 IDENT@6975..6976 "a"4543 R_BRACK@6897..6898 "]"
4544 SLICE_DESC@6976..69804544 R_PAREN@6898..6899 ")"
4545 L_BRACK@6976..6977 "["4545 COMMA@6899..6900 ","
4546 EXPR_VAR@6977..69784546 WHITESPACE@6900..6904 "\n\n "
4547 NAME@6977..69784547 MEMBER_FIELD_METHOD@6904..7361
4548 IDENT@6977..6978 "i"4548 FIELD_NAME_FIXED@6904..6911
4549 COLON@6978..6979 ":"4549 NAME@6904..6911
4550 R_BRACK@6979..6980 "]"4550 IDENT@6904..6911 "setDiff"
4551 WHITESPACE@6980..6987 "\n "4551 PARAMS_DESC@6911..6926
4552 ELSE_KW@6987..6991 "else"4552 L_PAREN@6911..6912 "("
4553 WHITESPACE@6991..7000 "\n "4553 PARAM@6912..6913
4554 FALSE_EXPR@7000..72894554 DESTRUCT_FULL@6912..6913
4555 EXPR_LOCAL@7000..72894555 NAME@6912..6913
4556 LOCAL_KW@7000..7005 "local"4556 IDENT@6912..6913 "a"
4557 WHITESPACE@7005..7006 " "4557 COMMA@6913..6914 ","
4558 BIND_DESTRUCT@7006..70214558 WHITESPACE@6914..6915 " "
4559 DESTRUCT_FULL@7006..70084559 PARAM@6915..6916
4560 NAME@7006..70084560 DESTRUCT_FULL@6915..6916
4561 IDENT@7006..7008 "ak"4561 NAME@6915..6916
4562 WHITESPACE@7008..7009 " "4562 IDENT@6915..6916 "b"
4563 ASSIGN@7009..7010 "="4563 COMMA@6916..6917 ","
4564 WHITESPACE@7010..7011 " "4564 WHITESPACE@6917..6918 " "
4565 EXPR_APPLY@7011..70214565 PARAM@6918..6925
4566 EXPR_VAR@7011..70154566 DESTRUCT_FULL@6918..6922
4567 NAME@7011..70154567 NAME@6918..6922
4568 IDENT@7011..7015 "keyF"4568 IDENT@6918..6922 "keyF"
4569 ARGS_DESC@7015..70214569 ASSIGN@6922..6923 "="
4570 L_PAREN@7015..7016 "("4570 EXPR_VAR@6923..6925
4571 ARG@7016..70204571 NAME@6923..6925
4572 EXPR_INDEX_EXPR@7016..70204572 IDENT@6923..6925 "id"
4573 LHS_EXPR@7016..70174573 R_PAREN@6925..6926 ")"
4574 EXPR_VAR@7016..70174574 COLONCOLON@6926..6928 "::"
4575 NAME@7016..70174575 WHITESPACE@6928..6933 "\n "
4576 IDENT@7016..7017 "a"4576 STMT_LOCAL@6933..7326
4577 L_BRACK@7017..7018 "["4577 LOCAL_KW@6933..6938 "local"
4578 EXPR_VAR@7018..70194578 WHITESPACE@6938..6939 " "
4579 NAME@7018..70194579 BIND_FUNCTION@6939..7325
4580 IDENT@7018..7019 "i"4580 NAME@6939..6942
4581 R_BRACK@7019..7020 "]"4581 IDENT@6939..6942 "aux"
4582 R_PAREN@7020..7021 ")"4582 PARAMS_DESC@6942..6959
4583 SEMI@7021..7022 ";"4583 L_PAREN@6942..6943 "("
4584 WHITESPACE@7022..7031 "\n "4584 PARAM@6943..6944
4585 EXPR_LOCAL@7031..72894585 DESTRUCT_FULL@6943..6944
4586 LOCAL_KW@7031..7036 "local"4586 NAME@6943..6944
4587 WHITESPACE@7036..7037 " "4587 IDENT@6943..6944 "a"
4588 BIND_DESTRUCT@7037..70524588 COMMA@6944..6945 ","
4589 DESTRUCT_FULL@7037..70394589 WHITESPACE@6945..6946 " "
4590 NAME@7037..70394590 PARAM@6946..6947
4591 IDENT@7037..7039 "bk"4591 DESTRUCT_FULL@6946..6947
4592 WHITESPACE@7039..7040 " "4592 NAME@6946..6947
4593 ASSIGN@7040..7041 "="4593 IDENT@6946..6947 "b"
4594 WHITESPACE@7041..7042 " "4594 COMMA@6947..6948 ","
4595 EXPR_APPLY@7042..70524595 WHITESPACE@6948..6949 " "
4596 EXPR_VAR@7042..70464596 PARAM@6949..6950
4597 NAME@7042..70464597 DESTRUCT_FULL@6949..6950
4598 IDENT@7042..7046 "keyF"4598 NAME@6949..6950
4599 ARGS_DESC@7046..70524599 IDENT@6949..6950 "i"
4600 L_PAREN@7046..7047 "("4600 COMMA@6950..6951 ","
4601 ARG@7047..70514601 WHITESPACE@6951..6952 " "
4602 EXPR_INDEX_EXPR@7047..70514602 PARAM@6952..6953
4603 LHS_EXPR@7047..70484603 DESTRUCT_FULL@6952..6953
4604 EXPR_VAR@7047..70484604 NAME@6952..6953
4605 NAME@7047..70484605 IDENT@6952..6953 "j"
4606 IDENT@7047..7048 "b"4606 COMMA@6953..6954 ","
4607 L_BRACK@7048..7049 "["4607 WHITESPACE@6954..6955 " "
4608 EXPR_VAR@7049..70504608 PARAM@6955..6958
4609 NAME@7049..70504609 DESTRUCT_FULL@6955..6958
4610 IDENT@7049..7050 "j"4610 NAME@6955..6958
4611 R_BRACK@7050..7051 "]"4611 IDENT@6955..6958 "acc"
4612 R_PAREN@7051..7052 ")"4612 R_PAREN@6958..6959 ")"
4613 SEMI@7052..7053 ";"4613 WHITESPACE@6959..6960 " "
4614 WHITESPACE@7053..7062 "\n "4614 ASSIGN@6960..6961 "="
4615 EXPR_IF_THEN_ELSE@7062..72894615 WHITESPACE@6961..6968 "\n "
4616 IF_KW@7062..7064 "if"4616 EXPR_IF_THEN_ELSE@6968..7325
4617 WHITESPACE@7064..7065 " "4617 IF_KW@6968..6970 "if"
4618 EXPR_BINARY@7065..70734618 WHITESPACE@6970..6971 " "
4619 LHS_EXPR@7065..70674619 EXPR_BINARY@6971..6989
4620 EXPR_VAR@7065..70674620 LHS_EXPR@6971..6972
4621 NAME@7065..70674621 EXPR_VAR@6971..6972
4622 IDENT@7065..7067 "ak"4622 NAME@6971..6972
4623 WHITESPACE@7067..7068 " "4623 IDENT@6971..6972 "i"
4624 EQ@7068..7070 "=="4624 WHITESPACE@6972..6973 " "
4625 WHITESPACE@7070..7071 " "4625 GE@6973..6975 ">="
4626 EXPR_VAR@7071..70734626 WHITESPACE@6975..6976 " "
4627 NAME@7071..70734627 EXPR_APPLY@6976..6989
4628 IDENT@7071..7073 "bk"4628 EXPR_INDEX@6976..6986
4629 WHITESPACE@7073..7074 " "4629 EXPR_VAR@6976..6979
4630 THEN_KW@7074..7078 "then"4630 NAME@6976..6979
4631 WHITESPACE@7078..7089 "\n "4631 IDENT@6976..6979 "std"
4632 TRUE_EXPR@7089..71374632 DOT@6979..6980 "."
4633 EXPR_APPLY@7089..71374633 NAME@6980..6986
4634 EXPR_VAR@7089..70924634 IDENT@6980..6986 "length"
4635 NAME@7089..70924635 ARGS_DESC@6986..6989
4636 IDENT@7089..7092 "aux"4636 L_PAREN@6986..6987 "("
4637 ARGS_DESC@7092..71374637 ARG@6987..6988
4638 L_PAREN@7092..7093 "("4638 EXPR_VAR@6987..6988
4639 ARG@7093..70944639 NAME@6987..6988
4640 EXPR_VAR@7093..70944640 IDENT@6987..6988 "a"
4641 NAME@7093..70944641 R_PAREN@6988..6989 ")"
4642 IDENT@7093..7094 "a"4642 WHITESPACE@6989..6990 " "
4643 COMMA@7094..7095 ","4643 THEN_KW@6990..6994 "then"
4644 WHITESPACE@7095..7096 " "4644 WHITESPACE@6994..7003 "\n "
4645 ARG@7096..70974645 TRUE_EXPR@7003..7006
4646 EXPR_VAR@7096..70974646 EXPR_VAR@7003..7006
4647 NAME@7096..70974647 NAME@7003..7006
4648 IDENT@7096..7097 "b"4648 IDENT@7003..7006 "acc"
4649 COMMA@7097..7098 ","4649 WHITESPACE@7006..7013 "\n "
4650 WHITESPACE@7098..7099 " "4650 ELSE_KW@7013..7017 "else"
4651 ARG@7099..71044651 WHITESPACE@7017..7018 " "
4652 EXPR_BINARY@7099..71044652 FALSE_EXPR@7018..7325
4653 LHS_EXPR@7099..71004653 EXPR_IF_THEN_ELSE@7018..7325
4654 EXPR_VAR@7099..71004654 IF_KW@7018..7020 "if"
4655 NAME@7099..71004655 WHITESPACE@7020..7021 " "
4656 IDENT@7099..7100 "i"4656 EXPR_BINARY@7021..7039
4657 WHITESPACE@7100..7101 " "4657 LHS_EXPR@7021..7022
4658 PLUS@7101..7102 "+"4658 EXPR_VAR@7021..7022
4659 WHITESPACE@7102..7103 " "4659 NAME@7021..7022
4660 EXPR_NUMBER@7103..71044660 IDENT@7021..7022 "j"
4661 FLOAT@7103..7104 "1"4661 WHITESPACE@7022..7023 " "
4662 COMMA@7104..7105 ","4662 GE@7023..7025 ">="
4663 WHITESPACE@7105..7106 " "4663 WHITESPACE@7025..7026 " "
4664 ARG@7106..71114664 EXPR_APPLY@7026..7039
4665 EXPR_BINARY@7106..71114665 EXPR_INDEX@7026..7036
4666 LHS_EXPR@7106..71074666 EXPR_VAR@7026..7029
4667 EXPR_VAR@7106..71074667 NAME@7026..7029
4668 NAME@7106..71074668 IDENT@7026..7029 "std"
4669 IDENT@7106..7107 "j"4669 DOT@7029..7030 "."
4670 WHITESPACE@7107..7108 " "4670 NAME@7030..7036
4671 PLUS@7108..7109 "+"4671 IDENT@7030..7036 "length"
4672 WHITESPACE@7109..7110 " "4672 ARGS_DESC@7036..7039
4673 EXPR_NUMBER@7110..71114673 L_PAREN@7036..7037 "("
4674 FLOAT@7110..7111 "1"4674 ARG@7037..7038
4675 COMMA@7111..7112 ","4675 EXPR_VAR@7037..7038
4676 WHITESPACE@7112..7113 " "4676 NAME@7037..7038
4677 ARG@7113..71254677 IDENT@7037..7038 "b"
4678 EXPR_BINARY@7113..71254678 R_PAREN@7038..7039 ")"
4679 LHS_EXPR@7113..71164679 WHITESPACE@7039..7040 " "
4680 EXPR_VAR@7113..71164680 THEN_KW@7040..7044 "then"
4681 NAME@7113..71164681 WHITESPACE@7044..7053 "\n "
4682 IDENT@7113..7116 "acc"4682 TRUE_EXPR@7053..7064
4683 WHITESPACE@7116..7117 " "4683 EXPR_BINARY@7053..7064
4684 PLUS@7117..7118 "+"4684 LHS_EXPR@7053..7056
4685 WHITESPACE@7118..7119 " "4685 EXPR_VAR@7053..7056
4686 EXPR_ARRAY@7119..71254686 NAME@7053..7056
4687 L_BRACK@7119..7120 "["4687 IDENT@7053..7056 "acc"
4688 EXPR_INDEX_EXPR@7120..71244688 WHITESPACE@7056..7057 " "
4689 LHS_EXPR@7120..71214689 PLUS@7057..7058 "+"
4690 EXPR_VAR@7120..71214690 WHITESPACE@7058..7059 " "
4691 NAME@7120..71214691 EXPR_SLICE@7059..7064
4692 IDENT@7120..7121 "a"4692 EXPR_VAR@7059..7060
4693 L_BRACK@7121..7122 "["4693 NAME@7059..7060
4694 EXPR_VAR@7122..71234694 IDENT@7059..7060 "a"
4695 NAME@7122..71234695 SLICE_DESC@7060..7064
4696 IDENT@7122..7123 "i"4696 L_BRACK@7060..7061 "["
4697 R_BRACK@7123..7124 "]"4697 EXPR_VAR@7061..7062
4698 R_BRACK@7124..7125 "]"4698 NAME@7061..7062
4699 R_PAREN@7125..7126 ")"4699 IDENT@7061..7062 "i"
4700 WHITESPACE@7126..7127 " "4700 COLON@7062..7063 ":"
4701 TAILSTRICT_KW@7127..7137 "tailstrict"4701 R_BRACK@7063..7064 "]"
4702 WHITESPACE@7137..7146 "\n "4702 WHITESPACE@7064..7071 "\n "
4703 ELSE_KW@7146..7150 "else"4703 ELSE_KW@7071..7075 "else"
4704 WHITESPACE@7150..7151 " "4704 WHITESPACE@7075..7084 "\n "
4705 FALSE_EXPR@7151..72894705 FALSE_EXPR@7084..7325
4706 EXPR_IF_THEN_ELSE@7151..72894706 EXPR_IF_THEN_ELSE@7084..7325
4707 IF_KW@7151..7153 "if"4707 IF_KW@7084..7086 "if"
4708 WHITESPACE@7153..7154 " "4708 WHITESPACE@7086..7087 " "
4709 EXPR_BINARY@7154..71614709 EXPR_BINARY@7087..7111
4710 LHS_EXPR@7154..71564710 LHS_EXPR@7087..7097
4711 EXPR_VAR@7154..71564711 EXPR_APPLY@7087..7097
4712 NAME@7154..71564712 EXPR_VAR@7087..7091
4713 IDENT@7154..7156 "ak"4713 NAME@7087..7091
4714 WHITESPACE@7156..7157 " "4714 IDENT@7087..7091 "keyF"
4715 LT@7157..7158 "<"4715 ARGS_DESC@7091..7097
4716 WHITESPACE@7158..7159 " "4716 L_PAREN@7091..7092 "("
4717 EXPR_VAR@7159..71614717 ARG@7092..7096
4718 NAME@7159..71614718 EXPR_INDEX_EXPR@7092..7096
4719 IDENT@7159..7161 "bk"4719 LHS_EXPR@7092..7093
4720 WHITESPACE@7161..7162 " "4720 EXPR_VAR@7092..7093
4721 THEN_KW@7162..7166 "then"4721 NAME@7092..7093
4722 WHITESPACE@7166..7177 "\n "4722 IDENT@7092..7093 "a"
4723 TRUE_EXPR@7177..72214723 L_BRACK@7093..7094 "["
4724 EXPR_APPLY@7177..72214724 EXPR_VAR@7094..7095
4725 EXPR_VAR@7177..71804725 NAME@7094..7095
4726 NAME@7177..71804726 IDENT@7094..7095 "i"
4727 IDENT@7177..7180 "aux"4727 R_BRACK@7095..7096 "]"
4728 ARGS_DESC@7180..72214728 R_PAREN@7096..7097 ")"
4729 L_PAREN@7180..7181 "("4729 WHITESPACE@7097..7098 " "
4730 ARG@7181..71824730 EQ@7098..7100 "=="
4731 EXPR_VAR@7181..71824731 WHITESPACE@7100..7101 " "
4732 NAME@7181..71824732 EXPR_APPLY@7101..7111
4733 IDENT@7181..7182 "a"4733 EXPR_VAR@7101..7105
4734 COMMA@7182..7183 ","4734 NAME@7101..7105
4735 WHITESPACE@7183..7184 " "4735 IDENT@7101..7105 "keyF"
4736 ARG@7184..71854736 ARGS_DESC@7105..7111
4737 EXPR_VAR@7184..71854737 L_PAREN@7105..7106 "("
4738 NAME@7184..71854738 ARG@7106..7110
4739 IDENT@7184..7185 "b"4739 EXPR_INDEX_EXPR@7106..7110
4740 COMMA@7185..7186 ","4740 LHS_EXPR@7106..7107
4741 WHITESPACE@7186..7187 " "4741 EXPR_VAR@7106..7107
4742 ARG@7187..71924742 NAME@7106..7107
4743 EXPR_BINARY@7187..71924743 IDENT@7106..7107 "b"
4744 LHS_EXPR@7187..71884744 L_BRACK@7107..7108 "["
4745 EXPR_VAR@7187..71884745 EXPR_VAR@7108..7109
4746 NAME@7187..71884746 NAME@7108..7109
4747 IDENT@7187..7188 "i"4747 IDENT@7108..7109 "j"
4748 WHITESPACE@7188..7189 " "4748 R_BRACK@7109..7110 "]"
4749 PLUS@7189..7190 "+"4749 R_PAREN@7110..7111 ")"
4750 WHITESPACE@7190..7191 " "4750 WHITESPACE@7111..7112 " "
4751 EXPR_NUMBER@7191..71924751 THEN_KW@7112..7116 "then"
4752 FLOAT@7191..7192 "1"4752 WHITESPACE@7116..7127 "\n "
4753 COMMA@7192..7193 ","4753 TRUE_EXPR@7127..7166
4754 WHITESPACE@7193..7194 " "4754 EXPR_APPLY@7127..7166
4755 ARG@7194..71954755 EXPR_VAR@7127..7130
4756 EXPR_VAR@7194..71954756 NAME@7127..7130
4757 NAME@7194..71954757 IDENT@7127..7130 "aux"
4758 IDENT@7194..7195 "j"4758 ARGS_DESC@7130..7166
4759 COMMA@7195..7196 ","4759 L_PAREN@7130..7131 "("
4760 WHITESPACE@7196..7197 " "4760 ARG@7131..7132
4761 ARG@7197..72094761 EXPR_VAR@7131..7132
4762 EXPR_BINARY@7197..72094762 NAME@7131..7132
4763 LHS_EXPR@7197..72004763 IDENT@7131..7132 "a"
4764 EXPR_VAR@7197..72004764 COMMA@7132..7133 ","
4765 NAME@7197..72004765 WHITESPACE@7133..7134 " "
4766 IDENT@7197..7200 "acc"4766 ARG@7134..7135
4767 WHITESPACE@7200..7201 " "4767 EXPR_VAR@7134..7135
4768 PLUS@7201..7202 "+"4768 NAME@7134..7135
4769 WHITESPACE@7202..7203 " "4769 IDENT@7134..7135 "b"
4770 EXPR_ARRAY@7203..72094770 COMMA@7135..7136 ","
4771 L_BRACK@7203..7204 "["4771 WHITESPACE@7136..7137 " "
4772 EXPR_INDEX_EXPR@7204..72084772 ARG@7137..7142
4773 LHS_EXPR@7204..72054773 EXPR_BINARY@7137..7142
4774 EXPR_VAR@7204..72054774 LHS_EXPR@7137..7138
4775 NAME@7204..72054775 EXPR_VAR@7137..7138
4776 IDENT@7204..7205 "a"4776 NAME@7137..7138
4777 L_BRACK@7205..7206 "["4777 IDENT@7137..7138 "i"
4778 EXPR_VAR@7206..72074778 WHITESPACE@7138..7139 " "
4779 NAME@7206..72074779 PLUS@7139..7140 "+"
4780 IDENT@7206..7207 "i"4780 WHITESPACE@7140..7141 " "
4781 R_BRACK@7207..7208 "]"4781 EXPR_NUMBER@7141..7142
4782 R_BRACK@7208..7209 "]"4782 FLOAT@7141..7142 "1"
4783 R_PAREN@7209..7210 ")"4783 COMMA@7142..7143 ","
4784 WHITESPACE@7210..7211 " "4784 WHITESPACE@7143..7144 " "
4785 TAILSTRICT_KW@7211..7221 "tailstrict"4785 ARG@7144..7149
4786 WHITESPACE@7221..7230 "\n "4786 EXPR_BINARY@7144..7149
4787 ELSE_KW@7230..7234 "else"4787 LHS_EXPR@7144..7145
4788 WHITESPACE@7234..7245 "\n "4788 EXPR_VAR@7144..7145
4789 FALSE_EXPR@7245..72894789 NAME@7144..7145
4790 EXPR_APPLY@7245..72894790 IDENT@7144..7145 "j"
4791 EXPR_VAR@7245..72484791 WHITESPACE@7145..7146 " "
4792 NAME@7245..72484792 PLUS@7146..7147 "+"
4793 IDENT@7245..7248 "aux"4793 WHITESPACE@7147..7148 " "
4794 ARGS_DESC@7248..72894794 EXPR_NUMBER@7148..7149
4795 L_PAREN@7248..7249 "("4795 FLOAT@7148..7149 "1"
4796 ARG@7249..72504796 COMMA@7149..7150 ","
4797 EXPR_VAR@7249..72504797 WHITESPACE@7150..7151 " "
4798 NAME@7249..72504798 ARG@7151..7154
4799 IDENT@7249..7250 "a"4799 EXPR_VAR@7151..7154
4800 COMMA@7250..7251 ","4800 NAME@7151..7154
4801 WHITESPACE@7251..7252 " "4801 IDENT@7151..7154 "acc"
4802 ARG@7252..72534802 R_PAREN@7154..7155 ")"
4803 EXPR_VAR@7252..72534803 WHITESPACE@7155..7156 " "
4804 NAME@7252..72534804 TAILSTRICT_KW@7156..7166 "tailstrict"
4805 IDENT@7252..7253 "b"4805 WHITESPACE@7166..7175 "\n "
4806 COMMA@7253..7254 ","4806 ELSE_KW@7175..7179 "else"
4807 WHITESPACE@7254..7255 " "4807 WHITESPACE@7179..7180 " "
4808 ARG@7255..72564808 FALSE_EXPR@7180..7325
4809 EXPR_VAR@7255..72564809 EXPR_IF_THEN_ELSE@7180..7325
4810 NAME@7255..72564810 IF_KW@7180..7182 "if"
4811 IDENT@7255..7256 "i"4811 WHITESPACE@7182..7183 " "
4812 COMMA@7256..7257 ","4812 EXPR_BINARY@7183..7206
4813 WHITESPACE@7257..7258 " "4813 LHS_EXPR@7183..7193
4814 ARG@7258..72634814 EXPR_APPLY@7183..7193
4815 EXPR_BINARY@7258..72634815 EXPR_VAR@7183..7187
4816 LHS_EXPR@7258..72594816 NAME@7183..7187
4817 EXPR_VAR@7258..72594817 IDENT@7183..7187 "keyF"
4818 NAME@7258..72594818 ARGS_DESC@7187..7193
4819 IDENT@7258..7259 "j"4819 L_PAREN@7187..7188 "("
4820 WHITESPACE@7259..7260 " "4820 ARG@7188..7192
4821 PLUS@7260..7261 "+"4821 EXPR_INDEX_EXPR@7188..7192
4822 WHITESPACE@7261..7262 " "4822 LHS_EXPR@7188..7189
4823 EXPR_NUMBER@7262..72634823 EXPR_VAR@7188..7189
4824 FLOAT@7262..7263 "1"4824 NAME@7188..7189
4825 COMMA@7263..7264 ","4825 IDENT@7188..7189 "a"
4826 WHITESPACE@7264..7265 " "4826 L_BRACK@7189..7190 "["
4827 ARG@7265..72774827 EXPR_VAR@7190..7191
4828 EXPR_BINARY@7265..72774828 NAME@7190..7191
4829 LHS_EXPR@7265..72684829 IDENT@7190..7191 "i"
4830 EXPR_VAR@7265..72684830 R_BRACK@7191..7192 "]"
4831 NAME@7265..72684831 R_PAREN@7192..7193 ")"
4832 IDENT@7265..7268 "acc"4832 WHITESPACE@7193..7194 " "
4833 WHITESPACE@7268..7269 " "4833 LT@7194..7195 "<"
4834 PLUS@7269..7270 "+"4834 WHITESPACE@7195..7196 " "
4835 WHITESPACE@7270..7271 " "4835 EXPR_APPLY@7196..7206
4836 EXPR_ARRAY@7271..72774836 EXPR_VAR@7196..7200
4837 L_BRACK@7271..7272 "["4837 NAME@7196..7200
4838 EXPR_INDEX_EXPR@7272..72764838 IDENT@7196..7200 "keyF"
4839 LHS_EXPR@7272..72734839 ARGS_DESC@7200..7206
4840 EXPR_VAR@7272..72734840 L_PAREN@7200..7201 "("
4841 NAME@7272..72734841 ARG@7201..7205
4842 IDENT@7272..7273 "b"4842 EXPR_INDEX_EXPR@7201..7205
4843 L_BRACK@7273..7274 "["4843 LHS_EXPR@7201..7202
4844 EXPR_VAR@7274..72754844 EXPR_VAR@7201..7202
4845 NAME@7274..72754845 NAME@7201..7202
4846 IDENT@7274..7275 "j"4846 IDENT@7201..7202 "b"
4847 R_BRACK@7275..7276 "]"4847 L_BRACK@7202..7203 "["
4848 R_BRACK@7276..7277 "]"4848 EXPR_VAR@7203..7204
4849 R_PAREN@7277..7278 ")"4849 NAME@7203..7204
4850 WHITESPACE@7278..7279 " "4850 IDENT@7203..7204 "j"
4851 TAILSTRICT_KW@7279..7289 "tailstrict"4851 R_BRACK@7204..7205 "]"
4852 SEMI@7289..7290 ";"4852 R_PAREN@7205..7206 ")"
4853 WHITESPACE@7290..7295 "\n "4853 WHITESPACE@7206..7207 " "
4854 EXPR_APPLY@7295..73144854 THEN_KW@7207..7211 "then"
4855 EXPR_VAR@7295..72984855 WHITESPACE@7211..7222 "\n "
4856 NAME@7295..72984856 TRUE_EXPR@7222..7266
4857 IDENT@7295..7298 "aux"4857 EXPR_APPLY@7222..7266
4858 ARGS_DESC@7298..73144858 EXPR_VAR@7222..7225
4859 L_PAREN@7298..7299 "("4859 NAME@7222..7225
4860 ARG@7299..73004860 IDENT@7222..7225 "aux"
4861 EXPR_VAR@7299..73004861 ARGS_DESC@7225..7266
4862 NAME@7299..73004862 L_PAREN@7225..7226 "("
4863 IDENT@7299..7300 "a"4863 ARG@7226..7227
4864 COMMA@7300..7301 ","4864 EXPR_VAR@7226..7227
4865 WHITESPACE@7301..7302 " "4865 NAME@7226..7227
4866 ARG@7302..73034866 IDENT@7226..7227 "a"
4867 EXPR_VAR@7302..73034867 COMMA@7227..7228 ","
4868 NAME@7302..73034868 WHITESPACE@7228..7229 " "
4869 IDENT@7302..7303 "b"4869 ARG@7229..7230
4870 COMMA@7303..7304 ","4870 EXPR_VAR@7229..7230
4871 WHITESPACE@7304..7305 " "4871 NAME@7229..7230
4872 ARG@7305..73064872 IDENT@7229..7230 "b"
4873 EXPR_NUMBER@7305..73064873 COMMA@7230..7231 ","
4874 FLOAT@7305..7306 "0"4874 WHITESPACE@7231..7232 " "
4875 COMMA@7306..7307 ","4875 ARG@7232..7237
4876 WHITESPACE@7307..7308 " "4876 EXPR_BINARY@7232..7237
4877 ARG@7308..73094877 LHS_EXPR@7232..7233
4878 EXPR_NUMBER@7308..73094878 EXPR_VAR@7232..7233
4879 FLOAT@7308..7309 "0"4879 NAME@7232..7233
4880 COMMA@7309..7310 ","4880 IDENT@7232..7233 "i"
4881 WHITESPACE@7310..7311 " "4881 WHITESPACE@7233..7234 " "
4882 ARG@7311..73134882 PLUS@7234..7235 "+"
4883 EXPR_ARRAY@7311..73134883 WHITESPACE@7235..7236 " "
4884 L_BRACK@7311..7312 "["4884 EXPR_NUMBER@7236..7237
4885 R_BRACK@7312..7313 "]"4885 FLOAT@7236..7237 "1"
4886 R_PAREN@7313..7314 ")"4886 COMMA@7237..7238 ","
4887 COMMA@7314..7315 ","4887 WHITESPACE@7238..7239 " "
4888 WHITESPACE@7315..7319 "\n\n "4888 ARG@7239..7240
4889 MEMBER_FIELD_METHOD@7319..77414889 EXPR_VAR@7239..7240
4890 FIELD_NAME_FIXED@7319..73274890 NAME@7239..7240
4891 NAME@7319..73274891 IDENT@7239..7240 "j"
4892 IDENT@7319..7327 "setInter"4892 COMMA@7240..7241 ","
4893 PARAMS_DESC@7327..73424893 WHITESPACE@7241..7242 " "
4894 L_PAREN@7327..7328 "("4894 ARG@7242..7254
4895 PARAM@7328..73294895 EXPR_BINARY@7242..7254
4896 DESTRUCT_FULL@7328..73294896 LHS_EXPR@7242..7245
4897 NAME@7328..73294897 EXPR_VAR@7242..7245
4898 IDENT@7328..7329 "a"4898 NAME@7242..7245
4899 COMMA@7329..7330 ","4899 IDENT@7242..7245 "acc"
4900 WHITESPACE@7330..7331 " "4900 WHITESPACE@7245..7246 " "
4901 PARAM@7331..73324901 PLUS@7246..7247 "+"
4902 DESTRUCT_FULL@7331..73324902 WHITESPACE@7247..7248 " "
4903 NAME@7331..73324903 EXPR_ARRAY@7248..7254
4904 IDENT@7331..7332 "b"4904 L_BRACK@7248..7249 "["
4905 COMMA@7332..7333 ","4905 EXPR_INDEX_EXPR@7249..7253
4906 WHITESPACE@7333..7334 " "4906 LHS_EXPR@7249..7250
4907 PARAM@7334..73414907 EXPR_VAR@7249..7250
4908 DESTRUCT_FULL@7334..73384908 NAME@7249..7250
4909 NAME@7334..73384909 IDENT@7249..7250 "a"
4910 IDENT@7334..7338 "keyF"4910 L_BRACK@7250..7251 "["
4911 ASSIGN@7338..7339 "="4911 EXPR_VAR@7251..7252
4912 EXPR_VAR@7339..73414912 NAME@7251..7252
4913 NAME@7339..73414913 IDENT@7251..7252 "i"
4914 IDENT@7339..7341 "id"4914 R_BRACK@7252..7253 "]"
4915 R_PAREN@7341..7342 ")"4915 R_BRACK@7253..7254 "]"
4916 COLONCOLON@7342..7344 "::"4916 R_PAREN@7254..7255 ")"
4917 WHITESPACE@7344..7349 "\n "4917 WHITESPACE@7255..7256 " "
4918 EXPR_LOCAL@7349..77414918 TAILSTRICT_KW@7256..7266 "tailstrict"
4919 LOCAL_KW@7349..7354 "local"4919 WHITESPACE@7266..7275 "\n "
4920 WHITESPACE@7354..7355 " "4920 ELSE_KW@7275..7279 "else"
4921 BIND_FUNCTION@7355..77054921 WHITESPACE@7279..7290 "\n "
4922 NAME@7355..73584922 FALSE_EXPR@7290..7325
4923 IDENT@7355..7358 "aux"4923 EXPR_APPLY@7290..7325
4924 PARAMS_DESC@7358..73754924 EXPR_VAR@7290..7293
4925 L_PAREN@7358..7359 "("4925 NAME@7290..7293
4926 PARAM@7359..73604926 IDENT@7290..7293 "aux"
4927 DESTRUCT_FULL@7359..73604927 ARGS_DESC@7293..7325
4928 NAME@7359..73604928 L_PAREN@7293..7294 "("
4929 IDENT@7359..7360 "a"4929 ARG@7294..7295
4930 COMMA@7360..7361 ","4930 EXPR_VAR@7294..7295
4931 WHITESPACE@7361..7362 " "4931 NAME@7294..7295
4932 PARAM@7362..73634932 IDENT@7294..7295 "a"
4933 DESTRUCT_FULL@7362..73634933 COMMA@7295..7296 ","
4934 NAME@7362..73634934 WHITESPACE@7296..7297 " "
4935 IDENT@7362..7363 "b"4935 ARG@7297..7298
4936 COMMA@7363..7364 ","4936 EXPR_VAR@7297..7298
4937 WHITESPACE@7364..7365 " "4937 NAME@7297..7298
4938 PARAM@7365..73664938 IDENT@7297..7298 "b"
4939 DESTRUCT_FULL@7365..73664939 COMMA@7298..7299 ","
4940 NAME@7365..73664940 WHITESPACE@7299..7300 " "
4941 IDENT@7365..7366 "i"4941 ARG@7300..7301
4942 COMMA@7366..7367 ","4942 EXPR_VAR@7300..7301
4943 WHITESPACE@7367..7368 " "4943 NAME@7300..7301
4944 PARAM@7368..73694944 IDENT@7300..7301 "i"
4945 DESTRUCT_FULL@7368..73694945 COMMA@7301..7302 ","
4946 NAME@7368..73694946 WHITESPACE@7302..7303 " "
4947 IDENT@7368..7369 "j"4947 ARG@7303..7308
4948 COMMA@7369..7370 ","4948 EXPR_BINARY@7303..7308
4949 WHITESPACE@7370..7371 " "4949 LHS_EXPR@7303..7304
4950 PARAM@7371..73744950 EXPR_VAR@7303..7304
4951 DESTRUCT_FULL@7371..73744951 NAME@7303..7304
4952 NAME@7371..73744952 IDENT@7303..7304 "j"
4953 IDENT@7371..7374 "acc"4953 WHITESPACE@7304..7305 " "
4954 R_PAREN@7374..7375 ")"4954 PLUS@7305..7306 "+"
4955 WHITESPACE@7375..7376 " "4955 WHITESPACE@7306..7307 " "
4956 ASSIGN@7376..7377 "="4956 EXPR_NUMBER@7307..7308
4957 WHITESPACE@7377..7384 "\n "4957 FLOAT@7307..7308 "1"
4958 EXPR_IF_THEN_ELSE@7384..77054958 COMMA@7308..7309 ","
4959 IF_KW@7384..7386 "if"4959 WHITESPACE@7309..7310 " "
4960 WHITESPACE@7386..7387 " "4960 ARG@7310..7313
4961 EXPR_BINARY@7387..74274961 EXPR_VAR@7310..7313
4962 LHS_EXPR@7387..74054962 NAME@7310..7313
4963 EXPR_BINARY@7387..74054963 IDENT@7310..7313 "acc"
4964 LHS_EXPR@7387..73884964 R_PAREN@7313..7314 ")"
4965 EXPR_VAR@7387..73884965 WHITESPACE@7314..7315 " "
4966 NAME@7387..73884966 TAILSTRICT_KW@7315..7325 "tailstrict"
4967 IDENT@7387..7388 "i"4967 SEMI@7325..7326 ";"
4968 WHITESPACE@7388..7389 " "4968 WHITESPACE@7326..7331 "\n "
4969 GE@7389..7391 ">="4969 EXPR_APPLY@7331..7361
4970 WHITESPACE@7391..7392 " "4970 EXPR_VAR@7331..7334
4971 EXPR_APPLY@7392..74054971 NAME@7331..7334
4972 EXPR_INDEX@7392..74024972 IDENT@7331..7334 "aux"
4973 EXPR_VAR@7392..73954973 ARGS_DESC@7334..7361
4974 NAME@7392..73954974 L_PAREN@7334..7335 "("
4975 IDENT@7392..7395 "std"4975 ARG@7335..7336
4976 DOT@7395..7396 "."4976 EXPR_VAR@7335..7336
4977 NAME@7396..74024977 NAME@7335..7336
4978 IDENT@7396..7402 "length"4978 IDENT@7335..7336 "a"
4979 ARGS_DESC@7402..74054979 COMMA@7336..7337 ","
4980 L_PAREN@7402..7403 "("4980 WHITESPACE@7337..7338 " "
4981 ARG@7403..74044981 ARG@7338..7339
4982 EXPR_VAR@7403..74044982 EXPR_VAR@7338..7339
4983 NAME@7403..74044983 NAME@7338..7339
4984 IDENT@7403..7404 "a"4984 IDENT@7338..7339 "b"
4985 R_PAREN@7404..7405 ")"4985 COMMA@7339..7340 ","
4986 WHITESPACE@7405..7406 " "4986 WHITESPACE@7340..7341 " "
4987 OR@7406..7408 "||"4987 ARG@7341..7342
4988 WHITESPACE@7408..7409 " "4988 EXPR_NUMBER@7341..7342
4989 EXPR_BINARY@7409..74274989 FLOAT@7341..7342 "0"
4990 LHS_EXPR@7409..74104990 COMMA@7342..7343 ","
4991 EXPR_VAR@7409..74104991 WHITESPACE@7343..7344 " "
4992 NAME@7409..74104992 ARG@7344..7345
4993 IDENT@7409..7410 "j"4993 EXPR_NUMBER@7344..7345
4994 WHITESPACE@7410..7411 " "4994 FLOAT@7344..7345 "0"
4995 GE@7411..7413 ">="4995 COMMA@7345..7346 ","
4996 WHITESPACE@7413..7414 " "4996 WHITESPACE@7346..7347 " "
4997 EXPR_APPLY@7414..74274997 ARG@7347..7349
4998 EXPR_INDEX@7414..74244998 EXPR_ARRAY@7347..7349
4999 EXPR_VAR@7414..74174999 L_BRACK@7347..7348 "["
5000 NAME@7414..74175000 R_BRACK@7348..7349 "]"
5001 IDENT@7414..7417 "std"5001 R_PAREN@7349..7350 ")"
5002 DOT@7417..7418 "."5002 WHITESPACE@7350..7351 " "
5003 NAME@7418..74245003 TAILSTRICT_KW@7351..7361 "tailstrict"
5004 IDENT@7418..7424 "length"5004 COMMA@7361..7362 ","
5005 ARGS_DESC@7424..74275005 WHITESPACE@7362..7366 "\n\n "
5006 L_PAREN@7424..7425 "("5006 MEMBER_FIELD_METHOD@7366..8154
5007 ARG@7425..74265007 FIELD_NAME_FIXED@7366..7376
5008 EXPR_VAR@7425..74265008 NAME@7366..7376
5009 NAME@7425..74265009 IDENT@7366..7376 "mergePatch"
5010 IDENT@7425..7426 "b"5010 PARAMS_DESC@7376..7391
5011 R_PAREN@7426..7427 ")"5011 L_PAREN@7376..7377 "("
5012 WHITESPACE@7427..7428 " "5012 PARAM@7377..7383
5013 THEN_KW@7428..7432 "then"5013 DESTRUCT_FULL@7377..7383
5014 WHITESPACE@7432..7441 "\n "5014 NAME@7377..7383
5015 TRUE_EXPR@7441..74445015 IDENT@7377..7383 "target"
5016 EXPR_VAR@7441..74445016 COMMA@7383..7384 ","
5017 NAME@7441..74445017 WHITESPACE@7384..7385 " "
5018 IDENT@7441..7444 "acc"5018 PARAM@7385..7390
5019 WHITESPACE@7444..7451 "\n "5019 DESTRUCT_FULL@7385..7390
5020 ELSE_KW@7451..7455 "else"5020 NAME@7385..7390
5021 WHITESPACE@7455..7464 "\n "5021 IDENT@7385..7390 "patch"
5022 FALSE_EXPR@7464..77055022 R_PAREN@7390..7391 ")"
5023 EXPR_IF_THEN_ELSE@7464..77055023 COLONCOLON@7391..7393 "::"
5024 IF_KW@7464..7466 "if"5024 WHITESPACE@7393..7398 "\n "
5025 WHITESPACE@7466..7467 " "5025 EXPR_IF_THEN_ELSE@7398..8154
5026 EXPR_BINARY@7467..74915026 IF_KW@7398..7400 "if"
5027 LHS_EXPR@7467..74775027 WHITESPACE@7400..7401 " "
5028 EXPR_APPLY@7467..74775028 EXPR_APPLY@7401..7420
5029 EXPR_VAR@7467..74715029 EXPR_INDEX@7401..7413
5030 NAME@7467..74715030 EXPR_VAR@7401..7404
5031 IDENT@7467..7471 "keyF"5031 NAME@7401..7404
5032 ARGS_DESC@7471..74775032 IDENT@7401..7404 "std"
5033 L_PAREN@7471..7472 "("5033 DOT@7404..7405 "."
5034 ARG@7472..74765034 NAME@7405..7413
5035 EXPR_INDEX_EXPR@7472..74765035 IDENT@7405..7413 "isObject"
5036 LHS_EXPR@7472..74735036 ARGS_DESC@7413..7420
5037 EXPR_VAR@7472..74735037 L_PAREN@7413..7414 "("
5038 NAME@7472..74735038 ARG@7414..7419
5039 IDENT@7472..7473 "a"5039 EXPR_VAR@7414..7419
5040 L_BRACK@7473..7474 "["5040 NAME@7414..7419
5041 EXPR_VAR@7474..74755041 IDENT@7414..7419 "patch"
5042 NAME@7474..74755042 R_PAREN@7419..7420 ")"
5043 IDENT@7474..7475 "i"5043 WHITESPACE@7420..7421 " "
5044 R_BRACK@7475..7476 "]"5044 THEN_KW@7421..7425 "then"
5045 R_PAREN@7476..7477 ")"5045 WHITESPACE@7425..7432 "\n "
5046 WHITESPACE@7477..7478 " "5046 STMT_LOCAL@7432..7506
5047 EQ@7478..7480 "=="5047 LOCAL_KW@7432..7437 "local"
5048 WHITESPACE@7480..7481 " "5048 WHITESPACE@7437..7438 " "
5049 EXPR_APPLY@7481..74915049 BIND_DESTRUCT@7438..7505
5050 EXPR_VAR@7481..74855050 DESTRUCT_FULL@7438..7451
5051 NAME@7481..74855051 NAME@7438..7451
5052 IDENT@7481..7485 "keyF"5052 IDENT@7438..7451 "target_object"
5053 ARGS_DESC@7485..74915053 WHITESPACE@7451..7452 " "
5054 L_PAREN@7485..7486 "("5054 ASSIGN@7452..7453 "="
5055 ARG@7486..74905055 WHITESPACE@7453..7462 "\n "
5056 EXPR_INDEX_EXPR@7486..74905056 EXPR_IF_THEN_ELSE@7462..7505
5057 LHS_EXPR@7486..74875057 IF_KW@7462..7464 "if"
5058 EXPR_VAR@7486..74875058 WHITESPACE@7464..7465 " "
5059 NAME@7486..74875059 EXPR_APPLY@7465..7485
5060 IDENT@7486..7487 "b"5060 EXPR_INDEX@7465..7477
5061 L_BRACK@7487..7488 "["5061 EXPR_VAR@7465..7468
5062 EXPR_VAR@7488..74895062 NAME@7465..7468
5063 NAME@7488..74895063 IDENT@7465..7468 "std"
5064 IDENT@7488..7489 "j"5064 DOT@7468..7469 "."
5065 R_BRACK@7489..7490 "]"5065 NAME@7469..7477
5066 R_PAREN@7490..7491 ")"5066 IDENT@7469..7477 "isObject"
5067 WHITESPACE@7491..7492 " "5067 ARGS_DESC@7477..7485
5068 THEN_KW@7492..7496 "then"5068 L_PAREN@7477..7478 "("
5069 WHITESPACE@7496..7507 "\n "5069 ARG@7478..7484
5070 TRUE_EXPR@7507..75555070 EXPR_VAR@7478..7484
5071 EXPR_APPLY@7507..75555071 NAME@7478..7484
5072 EXPR_VAR@7507..75105072 IDENT@7478..7484 "target"
5073 NAME@7507..75105073 R_PAREN@7484..7485 ")"
5074 IDENT@7507..7510 "aux"5074 WHITESPACE@7485..7486 " "
5075 ARGS_DESC@7510..75555075 THEN_KW@7486..7490 "then"
5076 L_PAREN@7510..7511 "("5076 WHITESPACE@7490..7491 " "
5077 ARG@7511..75125077 TRUE_EXPR@7491..7497
5078 EXPR_VAR@7511..75125078 EXPR_VAR@7491..7497
5079 NAME@7511..75125079 NAME@7491..7497
5080 IDENT@7511..7512 "a"5080 IDENT@7491..7497 "target"
5081 COMMA@7512..7513 ","5081 WHITESPACE@7497..7498 " "
5082 WHITESPACE@7513..7514 " "5082 ELSE_KW@7498..7502 "else"
5083 ARG@7514..75155083 WHITESPACE@7502..7503 " "
5084 EXPR_VAR@7514..75155084 FALSE_EXPR@7503..7505
5085 NAME@7514..75155085 EXPR_OBJECT@7503..7505
5086 IDENT@7514..7515 "b"5086 OBJ_BODY_MEMBER_LIST@7503..7505
5087 COMMA@7515..7516 ","5087 L_BRACE@7503..7504 "{"
5088 WHITESPACE@7516..7517 " "5088 R_BRACE@7504..7505 "}"
5089 ARG@7517..75225089 SEMI@7505..7506 ";"
5090 EXPR_BINARY@7517..75225090 WHITESPACE@7506..7514 "\n\n "
5091 LHS_EXPR@7517..75185091 STMT_LOCAL@7514..7620
5092 EXPR_VAR@7517..75185092 LOCAL_KW@7514..7519 "local"
5093 NAME@7517..75185093 WHITESPACE@7519..7520 " "
5094 IDENT@7517..7518 "i"5094 BIND_DESTRUCT@7520..7619
5095 WHITESPACE@7518..7519 " "5095 DESTRUCT_FULL@7520..7533
5096 PLUS@7519..7520 "+"5096 NAME@7520..7533
5097 WHITESPACE@7520..7521 " "5097 IDENT@7520..7533 "target_fields"
5098 EXPR_NUMBER@7521..75225098 WHITESPACE@7533..7534 " "
5099 FLOAT@7521..7522 "1"5099 ASSIGN@7534..7535 "="
5100 COMMA@7522..7523 ","5100 WHITESPACE@7535..7544 "\n "
5101 WHITESPACE@7523..7524 " "5101 EXPR_IF_THEN_ELSE@7544..7619
5102 ARG@7524..75295102 IF_KW@7544..7546 "if"
5103 EXPR_BINARY@7524..75295103 WHITESPACE@7546..7547 " "
5104 LHS_EXPR@7524..75255104 EXPR_APPLY@7547..7574
5105 EXPR_VAR@7524..75255105 EXPR_INDEX@7547..7559
5106 NAME@7524..75255106 EXPR_VAR@7547..7550
5107 IDENT@7524..7525 "j"5107 NAME@7547..7550
5108 WHITESPACE@7525..7526 " "5108 IDENT@7547..7550 "std"
5109 PLUS@7526..7527 "+"5109 DOT@7550..7551 "."
5110 WHITESPACE@7527..7528 " "5110 NAME@7551..7559
5111 EXPR_NUMBER@7528..75295111 IDENT@7551..7559 "isObject"
5112 FLOAT@7528..7529 "1"5112 ARGS_DESC@7559..7574
5113 COMMA@7529..7530 ","5113 L_PAREN@7559..7560 "("
5114 WHITESPACE@7530..7531 " "5114 ARG@7560..7573
5115 ARG@7531..75435115 EXPR_VAR@7560..7573
5116 EXPR_BINARY@7531..75435116 NAME@7560..7573
5117 LHS_EXPR@7531..75345117 IDENT@7560..7573 "target_object"
5118 EXPR_VAR@7531..75345118 R_PAREN@7573..7574 ")"
5119 NAME@7531..75345119 WHITESPACE@7574..7575 " "
5120 IDENT@7531..7534 "acc"5120 THEN_KW@7575..7579 "then"
5121 WHITESPACE@7534..7535 " "5121 WHITESPACE@7579..7580 " "
5122 PLUS@7535..7536 "+"5122 TRUE_EXPR@7580..7611
5123 WHITESPACE@7536..7537 " "5123 EXPR_APPLY@7580..7611
5124 EXPR_ARRAY@7537..75435124 EXPR_INDEX@7580..7596
5125 L_BRACK@7537..7538 "["5125 EXPR_VAR@7580..7583
5126 EXPR_INDEX_EXPR@7538..75425126 NAME@7580..7583
5127 LHS_EXPR@7538..75395127 IDENT@7580..7583 "std"
5128 EXPR_VAR@7538..75395128 DOT@7583..7584 "."
5129 NAME@7538..75395129 NAME@7584..7596
5130 IDENT@7538..7539 "a"5130 IDENT@7584..7596 "objectFields"
5131 L_BRACK@7539..7540 "["5131 ARGS_DESC@7596..7611
5132 EXPR_VAR@7540..75415132 L_PAREN@7596..7597 "("
5133 NAME@7540..75415133 ARG@7597..7610
5134 IDENT@7540..7541 "i"5134 EXPR_VAR@7597..7610
5135 R_BRACK@7541..7542 "]"5135 NAME@7597..7610
5136 R_BRACK@7542..7543 "]"5136 IDENT@7597..7610 "target_object"
5137 R_PAREN@7543..7544 ")"5137 R_PAREN@7610..7611 ")"
5138 WHITESPACE@7544..7545 " "5138 WHITESPACE@7611..7612 " "
5139 TAILSTRICT_KW@7545..7555 "tailstrict"5139 ELSE_KW@7612..7616 "else"
5140 WHITESPACE@7555..7564 "\n "5140 WHITESPACE@7616..7617 " "
5141 ELSE_KW@7564..7568 "else"5141 FALSE_EXPR@7617..7619
5142 WHITESPACE@7568..7569 " "5142 EXPR_ARRAY@7617..7619
5143 FALSE_EXPR@7569..77055143 L_BRACK@7617..7618 "["
5144 EXPR_IF_THEN_ELSE@7569..77055144 R_BRACK@7618..7619 "]"
5145 IF_KW@7569..7571 "if"5145 SEMI@7619..7620 ";"
5146 WHITESPACE@7571..7572 " "5146 WHITESPACE@7620..7628 "\n\n "
5147 EXPR_BINARY@7572..75955147 STMT_LOCAL@7628..7705
5148 LHS_EXPR@7572..75825148 LOCAL_KW@7628..7633 "local"
5149 EXPR_APPLY@7572..75825149 WHITESPACE@7633..7634 " "
5150 EXPR_VAR@7572..75765150 BIND_DESTRUCT@7634..7704
5151 NAME@7572..75765151 DESTRUCT_FULL@7634..7645
5152 IDENT@7572..7576 "keyF"5152 NAME@7634..7645
5153 ARGS_DESC@7576..75825153 IDENT@7634..7645 "null_fields"
5154 L_PAREN@7576..7577 "("5154 WHITESPACE@7645..7646 " "
5155 ARG@7577..75815155 ASSIGN@7646..7647 "="
5156 EXPR_INDEX_EXPR@7577..75815156 WHITESPACE@7647..7648 " "
5157 LHS_EXPR@7577..75785157 EXPR_ARRAY_COMP@7648..7704
5158 EXPR_VAR@7577..75785158 L_BRACK@7648..7649 "["
5159 NAME@7577..75785159 EXPR_VAR@7649..7650
5160 IDENT@7577..7578 "a"5160 NAME@7649..7650
5161 L_BRACK@7578..7579 "["5161 IDENT@7649..7650 "k"
5162 EXPR_VAR@7579..75805162 WHITESPACE@7650..7651 " "
5163 NAME@7579..75805163 FOR_SPEC@7651..7683
5164 IDENT@7579..7580 "i"5164 FOR_KW@7651..7654 "for"
5165 R_BRACK@7580..7581 "]"5165 WHITESPACE@7654..7655 " "
5166 R_PAREN@7581..7582 ")"5166 NAME@7655..7656
5167 WHITESPACE@7582..7583 " "5167 IDENT@7655..7656 "k"
5168 LT@7583..7584 "<"5168 WHITESPACE@7656..7657 " "
5169 WHITESPACE@7584..7585 " "5169 IN_KW@7657..7659 "in"
5170 EXPR_APPLY@7585..75955170 WHITESPACE@7659..7660 " "
5171 EXPR_VAR@7585..75895171 EXPR_APPLY@7660..7683
5172 NAME@7585..75895172 EXPR_INDEX@7660..7676
5173 IDENT@7585..7589 "keyF"5173 EXPR_VAR@7660..7663
5174 ARGS_DESC@7589..75955174 NAME@7660..7663
5175 L_PAREN@7589..7590 "("5175 IDENT@7660..7663 "std"
5176 ARG@7590..75945176 DOT@7663..7664 "."
5177 EXPR_INDEX_EXPR@7590..75945177 NAME@7664..7676
5178 LHS_EXPR@7590..75915178 IDENT@7664..7676 "objectFields"
5179 EXPR_VAR@7590..75915179 ARGS_DESC@7676..7683
5180 NAME@7590..75915180 L_PAREN@7676..7677 "("
5181 IDENT@7590..7591 "b"5181 ARG@7677..7682
5182 L_BRACK@7591..7592 "["5182 EXPR_VAR@7677..7682
5183 EXPR_VAR@7592..75935183 NAME@7677..7682
5184 NAME@7592..75935184 IDENT@7677..7682 "patch"
5185 IDENT@7592..7593 "j"5185 R_PAREN@7682..7683 ")"
5186 R_BRACK@7593..7594 "]"5186 WHITESPACE@7683..7684 " "
5187 R_PAREN@7594..7595 ")"5187 IF_SPEC@7684..7703
5188 WHITESPACE@7595..7596 " "5188 IF_KW@7684..7686 "if"
5189 THEN_KW@7596..7600 "then"5189 WHITESPACE@7686..7687 " "
5190 WHITESPACE@7600..7611 "\n "5190 EXPR_BINARY@7687..7703
5191 TRUE_EXPR@7611..76465191 LHS_EXPR@7687..7695
5192 EXPR_APPLY@7611..76465192 EXPR_INDEX_EXPR@7687..7695
5193 EXPR_VAR@7611..76145193 LHS_EXPR@7687..7692
5194 NAME@7611..76145194 EXPR_VAR@7687..7692
5195 IDENT@7611..7614 "aux"5195 NAME@7687..7692
5196 ARGS_DESC@7614..76465196 IDENT@7687..7692 "patch"
5197 L_PAREN@7614..7615 "("5197 L_BRACK@7692..7693 "["
5198 ARG@7615..76165198 EXPR_VAR@7693..7694
5199 EXPR_VAR@7615..76165199 NAME@7693..7694
5200 NAME@7615..76165200 IDENT@7693..7694 "k"
5201 IDENT@7615..7616 "a"5201 R_BRACK@7694..7695 "]"
5202 COMMA@7616..7617 ","5202 WHITESPACE@7695..7696 " "
5203 WHITESPACE@7617..7618 " "5203 EQ@7696..7698 "=="
5204 ARG@7618..76195204 WHITESPACE@7698..7699 " "
5205 EXPR_VAR@7618..76195205 EXPR_LITERAL@7699..7703
5206 NAME@7618..76195206 NULL_KW@7699..7703 "null"
5207 IDENT@7618..7619 "b"5207 R_BRACK@7703..7704 "]"
5208 COMMA@7619..7620 ","5208 SEMI@7704..7705 ";"
5209 WHITESPACE@7620..7621 " "5209 WHITESPACE@7705..7712 "\n "
5210 ARG@7621..76265210 STMT_LOCAL@7712..7785
5211 EXPR_BINARY@7621..76265211 LOCAL_KW@7712..7717 "local"
5212 LHS_EXPR@7621..76225212 WHITESPACE@7717..7718 " "
5213 EXPR_VAR@7621..76225213 BIND_DESTRUCT@7718..7784
5214 NAME@7621..76225214 DESTRUCT_FULL@7718..7729
5215 IDENT@7621..7622 "i"5215 NAME@7718..7729
5216 WHITESPACE@7622..7623 " "5216 IDENT@7718..7729 "both_fields"
5217 PLUS@7623..7624 "+"5217 WHITESPACE@7729..7730 " "
5218 WHITESPACE@7624..7625 " "5218 ASSIGN@7730..7731 "="
5219 EXPR_NUMBER@7625..76265219 WHITESPACE@7731..7732 " "
5220 FLOAT@7625..7626 "1"5220 EXPR_APPLY@7732..7784
5221 COMMA@7626..7627 ","5221 EXPR_INDEX@7732..7744
5222 WHITESPACE@7627..7628 " "5222 EXPR_VAR@7732..7735
5223 ARG@7628..76295223 NAME@7732..7735
5224 EXPR_VAR@7628..76295224 IDENT@7732..7735 "std"
5225 NAME@7628..76295225 DOT@7735..7736 "."
5226 IDENT@7628..7629 "j"5226 NAME@7736..7744
5227 COMMA@7629..7630 ","5227 IDENT@7736..7744 "setUnion"
5228 WHITESPACE@7630..7631 " "5228 ARGS_DESC@7744..7784
5229 ARG@7631..76345229 L_PAREN@7744..7745 "("
5230 EXPR_VAR@7631..76345230 ARG@7745..7758
5231 NAME@7631..76345231 EXPR_VAR@7745..7758
5232 IDENT@7631..7634 "acc"5232 NAME@7745..7758
5233 R_PAREN@7634..7635 ")"5233 IDENT@7745..7758 "target_fields"
5234 WHITESPACE@7635..7636 " "5234 COMMA@7758..7759 ","
5235 TAILSTRICT_KW@7636..7646 "tailstrict"5235 WHITESPACE@7759..7760 " "
5236 WHITESPACE@7646..7655 "\n "5236 ARG@7760..7783
5237 ELSE_KW@7655..7659 "else"5237 EXPR_APPLY@7760..7783
5238 WHITESPACE@7659..7670 "\n "5238 EXPR_INDEX@7760..7776
5239 FALSE_EXPR@7670..77055239 EXPR_VAR@7760..7763
5240 EXPR_APPLY@7670..77055240 NAME@7760..7763
5241 EXPR_VAR@7670..76735241 IDENT@7760..7763 "std"
5242 NAME@7670..76735242 DOT@7763..7764 "."
5243 IDENT@7670..7673 "aux"5243 NAME@7764..7776
5244 ARGS_DESC@7673..77055244 IDENT@7764..7776 "objectFields"
5245 L_PAREN@7673..7674 "("5245 ARGS_DESC@7776..7783
5246 ARG@7674..76755246 L_PAREN@7776..7777 "("
5247 EXPR_VAR@7674..76755247 ARG@7777..7782
5248 NAME@7674..76755248 EXPR_VAR@7777..7782
5249 IDENT@7674..7675 "a"5249 NAME@7777..7782
5250 COMMA@7675..7676 ","5250 IDENT@7777..7782 "patch"
5251 WHITESPACE@7676..7677 " "5251 R_PAREN@7782..7783 ")"
5252 ARG@7677..76785252 R_PAREN@7783..7784 ")"
5253 EXPR_VAR@7677..76785253 SEMI@7784..7785 ";"
5254 NAME@7677..76785254 WHITESPACE@7785..7793 "\n\n "
5255 IDENT@7677..7678 "b"5255 TRUE_EXPR@7793..8133
5256 COMMA@7678..7679 ","5256 EXPR_OBJECT@7793..8133
5257 WHITESPACE@7679..7680 " "5257 OBJ_BODY_COMP@7793..8133
5258 ARG@7680..76815258 L_BRACE@7793..7794 "{"
5259 EXPR_VAR@7680..76815259 WHITESPACE@7794..7803 "\n "
5260 NAME@7680..76815260 MEMBER_FIELD_NORMAL@7803..8070
5261 IDENT@7680..7681 "i"5261 FIELD_NAME_DYNAMIC@7803..7806
5262 COMMA@7681..7682 ","5262 L_BRACK@7803..7804 "["
5263 WHITESPACE@7682..7683 " "5263 EXPR_VAR@7804..7805
5264 ARG@7683..76885264 NAME@7804..7805
5265 EXPR_BINARY@7683..76885265 IDENT@7804..7805 "k"
5266 LHS_EXPR@7683..76845266 R_BRACK@7805..7806 "]"
5267 EXPR_VAR@7683..76845267 COLON@7806..7807 ":"
5268 NAME@7683..76845268 WHITESPACE@7807..7818 "\n "
5269 IDENT@7683..7684 "j"5269 EXPR_IF_THEN_ELSE@7818..8070
5270 WHITESPACE@7684..7685 " "5270 IF_KW@7818..7820 "if"
5271 PLUS@7685..7686 "+"5271 WHITESPACE@7820..7821 " "
5272 WHITESPACE@7686..7687 " "5272 EXPR_UNARY@7821..7845
5273 EXPR_NUMBER@7687..76885273 NOT@7821..7822 "!"
5274 FLOAT@7687..7688 "1"5274 EXPR_APPLY@7822..7845
5275 COMMA@7688..7689 ","5275 EXPR_INDEX@7822..7835
5276 WHITESPACE@7689..7690 " "5276 EXPR_VAR@7822..7825
5277 ARG@7690..76935277 NAME@7822..7825
5278 EXPR_VAR@7690..76935278 IDENT@7822..7825 "std"
5279 NAME@7690..76935279 DOT@7825..7826 "."
5280 IDENT@7690..7693 "acc"5280 NAME@7826..7835
5281 R_PAREN@7693..7694 ")"5281 IDENT@7826..7835 "objectHas"
5282 WHITESPACE@7694..7695 " "5282 ARGS_DESC@7835..7845
5283 TAILSTRICT_KW@7695..7705 "tailstrict"5283 L_PAREN@7835..7836 "("
5284 SEMI@7705..7706 ";"5284 ARG@7836..7841
5285 WHITESPACE@7706..7711 "\n "5285 EXPR_VAR@7836..7841
5286 EXPR_APPLY@7711..77415286 NAME@7836..7841
5287 EXPR_VAR@7711..77145287 IDENT@7836..7841 "patch"
5288 NAME@7711..77145288 COMMA@7841..7842 ","
5289 IDENT@7711..7714 "aux"5289 WHITESPACE@7842..7843 " "
5290 ARGS_DESC@7714..77415290 ARG@7843..7844
5291 L_PAREN@7714..7715 "("5291 EXPR_VAR@7843..7844
5292 ARG@7715..77165292 NAME@7843..7844
5293 EXPR_VAR@7715..77165293 IDENT@7843..7844 "k"
5294 NAME@7715..77165294 R_PAREN@7844..7845 ")"
5295 IDENT@7715..7716 "a"5295 WHITESPACE@7845..7846 " "
5296 COMMA@7716..7717 ","5296 THEN_KW@7846..7850 "then"
5297 WHITESPACE@7717..7718 " "5297 WHITESPACE@7850..7863 "\n "
5298 ARG@7718..77195298 TRUE_EXPR@7863..7879
5299 EXPR_VAR@7718..77195299 EXPR_INDEX_EXPR@7863..7879
5300 NAME@7718..77195300 LHS_EXPR@7863..7876
5301 IDENT@7718..7719 "b"5301 EXPR_VAR@7863..7876
5302 COMMA@7719..7720 ","5302 NAME@7863..7876
5303 WHITESPACE@7720..7721 " "5303 IDENT@7863..7876 "target_object"
5304 ARG@7721..77225304 L_BRACK@7876..7877 "["
5305 EXPR_NUMBER@7721..77225305 EXPR_VAR@7877..7878
5306 FLOAT@7721..7722 "0"5306 NAME@7877..7878
5307 COMMA@7722..7723 ","5307 IDENT@7877..7878 "k"
5308 WHITESPACE@7723..7724 " "5308 R_BRACK@7878..7879 "]"
5309 ARG@7724..77255309 WHITESPACE@7879..7890 "\n "
5310 EXPR_NUMBER@7724..77255310 ELSE_KW@7890..7894 "else"
5311 FLOAT@7724..7725 "0"5311 WHITESPACE@7894..7895 " "
5312 COMMA@7725..7726 ","5312 FALSE_EXPR@7895..8070
5313 WHITESPACE@7726..7727 " "5313 EXPR_IF_THEN_ELSE@7895..8070
5314 ARG@7727..77295314 IF_KW@7895..7897 "if"
5315 EXPR_ARRAY@7727..77295315 WHITESPACE@7897..7898 " "
5316 L_BRACK@7727..7728 "["5316 EXPR_UNARY@7898..7930
5317 R_BRACK@7728..7729 "]"5317 NOT@7898..7899 "!"
5318 R_PAREN@7729..7730 ")"5318 EXPR_APPLY@7899..7930
5319 WHITESPACE@7730..7731 " "5319 EXPR_INDEX@7899..7912
5320 TAILSTRICT_KW@7731..7741 "tailstrict"5320 EXPR_VAR@7899..7902
5321 COMMA@7741..7742 ","5321 NAME@7899..7902
5322 WHITESPACE@7742..7746 "\n\n "5322 IDENT@7899..7902 "std"
5323 MEMBER_FIELD_METHOD@7746..82035323 DOT@7902..7903 "."
5324 FIELD_NAME_FIXED@7746..77535324 NAME@7903..7912
5325 NAME@7746..77535325 IDENT@7903..7912 "objectHas"
5326 IDENT@7746..7753 "setDiff"5326 ARGS_DESC@7912..7930
5327 PARAMS_DESC@7753..77685327 L_PAREN@7912..7913 "("
5328 L_PAREN@7753..7754 "("5328 ARG@7913..7926
5329 PARAM@7754..77555329 EXPR_VAR@7913..7926
5330 DESTRUCT_FULL@7754..77555330 NAME@7913..7926
5331 NAME@7754..77555331 IDENT@7913..7926 "target_object"
5332 IDENT@7754..7755 "a"5332 COMMA@7926..7927 ","
5333 COMMA@7755..7756 ","5333 WHITESPACE@7927..7928 " "
5334 WHITESPACE@7756..7757 " "5334 ARG@7928..7929
5335 PARAM@7757..77585335 EXPR_VAR@7928..7929
5336 DESTRUCT_FULL@7757..77585336 NAME@7928..7929
5337 NAME@7757..77585337 IDENT@7928..7929 "k"
5338 IDENT@7757..7758 "b"5338 R_PAREN@7929..7930 ")"
5339 COMMA@7758..7759 ","5339 WHITESPACE@7930..7931 " "
5340 WHITESPACE@7759..7760 " "5340 THEN_KW@7931..7935 "then"
5341 PARAM@7760..77675341 WHITESPACE@7935..7948 "\n "
5342 DESTRUCT_FULL@7760..77645342 TRUE_EXPR@7948..7989
5343 NAME@7760..77645343 EXPR_APPLY@7948..7989
5344 IDENT@7760..7764 "keyF"5344 EXPR_INDEX@7948..7962
5345 ASSIGN@7764..7765 "="5345 EXPR_VAR@7948..7951
5346 EXPR_VAR@7765..77675346 NAME@7948..7951
5347 NAME@7765..77675347 IDENT@7948..7951 "std"
5348 IDENT@7765..7767 "id"5348 DOT@7951..7952 "."
5349 R_PAREN@7767..7768 ")"5349 NAME@7952..7962
5350 COLONCOLON@7768..7770 "::"5350 IDENT@7952..7962 "mergePatch"
5351 WHITESPACE@7770..7775 "\n "5351 ARGS_DESC@7962..7989
5352 EXPR_LOCAL@7775..82035352 L_PAREN@7962..7963 "("
5353 LOCAL_KW@7775..7780 "local"5353 ARG@7963..7967
5354 WHITESPACE@7780..7781 " "5354 EXPR_LITERAL@7963..7967
5355 BIND_FUNCTION@7781..81675355 NULL_KW@7963..7967 "null"
5356 NAME@7781..77845356 COMMA@7967..7968 ","
5357 IDENT@7781..7784 "aux"5357 WHITESPACE@7968..7969 " "
5358 PARAMS_DESC@7784..78015358 ARG@7969..7977
5359 L_PAREN@7784..7785 "("5359 EXPR_INDEX_EXPR@7969..7977
5360 PARAM@7785..77865360 LHS_EXPR@7969..7974
5361 DESTRUCT_FULL@7785..77865361 EXPR_VAR@7969..7974
5362 NAME@7785..77865362 NAME@7969..7974
5363 IDENT@7785..7786 "a"5363 IDENT@7969..7974 "patch"
5364 COMMA@7786..7787 ","5364 L_BRACK@7974..7975 "["
5365 WHITESPACE@7787..7788 " "5365 EXPR_VAR@7975..7976
5366 PARAM@7788..77895366 NAME@7975..7976
5367 DESTRUCT_FULL@7788..77895367 IDENT@7975..7976 "k"
5368 NAME@7788..77895368 R_BRACK@7976..7977 "]"
5369 IDENT@7788..7789 "b"5369 R_PAREN@7977..7978 ")"
5370 COMMA@7789..7790 ","5370 WHITESPACE@7978..7979 " "
5371 WHITESPACE@7790..7791 " "5371 TAILSTRICT_KW@7979..7989 "tailstrict"
5372 PARAM@7791..77925372 WHITESPACE@7989..8000 "\n "
5373 DESTRUCT_FULL@7791..77925373 ELSE_KW@8000..8004 "else"
5374 NAME@7791..77925374 WHITESPACE@8004..8017 "\n "
5375 IDENT@7791..7792 "i"5375 FALSE_EXPR@8017..8070
5376 COMMA@7792..7793 ","5376 EXPR_APPLY@8017..8070
5377 WHITESPACE@7793..7794 " "5377 EXPR_INDEX@8017..8031
5378 PARAM@7794..77955378 EXPR_VAR@8017..8020
5379 DESTRUCT_FULL@7794..77955379 NAME@8017..8020
5380 NAME@7794..77955380 IDENT@8017..8020 "std"
5381 IDENT@7794..7795 "j"5381 DOT@8020..8021 "."
5382 COMMA@7795..7796 ","5382 NAME@8021..8031
5383 WHITESPACE@7796..7797 " "5383 IDENT@8021..8031 "mergePatch"
5384 PARAM@7797..78005384 ARGS_DESC@8031..8070
5385 DESTRUCT_FULL@7797..78005385 L_PAREN@8031..8032 "("
5386 NAME@7797..78005386 ARG@8032..8048
5387 IDENT@7797..7800 "acc"5387 EXPR_INDEX_EXPR@8032..8048
5388 R_PAREN@7800..7801 ")"5388 LHS_EXPR@8032..8045
5389 WHITESPACE@7801..7802 " "5389 EXPR_VAR@8032..8045
5390 ASSIGN@7802..7803 "="5390 NAME@8032..8045
5391 WHITESPACE@7803..7810 "\n "5391 IDENT@8032..8045 "target_object"
5392 EXPR_IF_THEN_ELSE@7810..81675392 L_BRACK@8045..8046 "["
5393 IF_KW@7810..7812 "if"5393 EXPR_VAR@8046..8047
5394 WHITESPACE@7812..7813 " "5394 NAME@8046..8047
5395 EXPR_BINARY@7813..78315395 IDENT@8046..8047 "k"
5396 LHS_EXPR@7813..78145396 R_BRACK@8047..8048 "]"
5397 EXPR_VAR@7813..78145397 COMMA@8048..8049 ","
5398 NAME@7813..78145398 WHITESPACE@8049..8050 " "
5399 IDENT@7813..7814 "i"5399 ARG@8050..8058
5400 WHITESPACE@7814..7815 " "5400 EXPR_INDEX_EXPR@8050..8058
5401 GE@7815..7817 ">="5401 LHS_EXPR@8050..8055
5402 WHITESPACE@7817..7818 " "5402 EXPR_VAR@8050..8055
5403 EXPR_APPLY@7818..78315403 NAME@8050..8055
5404 EXPR_INDEX@7818..78285404 IDENT@8050..8055 "patch"
5405 EXPR_VAR@7818..78215405 L_BRACK@8055..8056 "["
5406 NAME@7818..78215406 EXPR_VAR@8056..8057
5407 IDENT@7818..7821 "std"5407 NAME@8056..8057
5408 DOT@7821..7822 "."5408 IDENT@8056..8057 "k"
5409 NAME@7822..78285409 R_BRACK@8057..8058 "]"
5410 IDENT@7822..7828 "length"5410 R_PAREN@8058..8059 ")"
5411 ARGS_DESC@7828..78315411 WHITESPACE@8059..8060 " "
5412 L_PAREN@7828..7829 "("5412 TAILSTRICT_KW@8060..8070 "tailstrict"
5413 ARG@7829..78305413 WHITESPACE@8070..8079 "\n "
5414 EXPR_VAR@7829..78305414 FOR_SPEC@8079..8125
5415 NAME@7829..78305415 FOR_KW@8079..8082 "for"
5416 IDENT@7829..7830 "a"5416 WHITESPACE@8082..8083 " "
5417 R_PAREN@7830..7831 ")"5417 NAME@8083..8084
5418 WHITESPACE@7831..7832 " "5418 IDENT@8083..8084 "k"
5419 THEN_KW@7832..7836 "then"5419 WHITESPACE@8084..8085 " "
5420 WHITESPACE@7836..7845 "\n "5420 IN_KW@8085..8087 "in"
5421 TRUE_EXPR@7845..78485421 WHITESPACE@8087..8088 " "
5422 EXPR_VAR@7845..78485422 EXPR_APPLY@8088..8125
5423 NAME@7845..78485423 EXPR_INDEX@8088..8099
5424 IDENT@7845..7848 "acc"5424 EXPR_VAR@8088..8091
5425 WHITESPACE@7848..7855 "\n "5425 NAME@8088..8091
5426 ELSE_KW@7855..7859 "else"5426 IDENT@8088..8091 "std"
5427 WHITESPACE@7859..7860 " "5427 DOT@8091..8092 "."
5428 FALSE_EXPR@7860..81675428 NAME@8092..8099
5429 EXPR_IF_THEN_ELSE@7860..81675429 IDENT@8092..8099 "setDiff"
5430 IF_KW@7860..7862 "if"5430 ARGS_DESC@8099..8125
5431 WHITESPACE@7862..7863 " "5431 L_PAREN@8099..8100 "("
5432 EXPR_BINARY@7863..78815432 ARG@8100..8111
5433 LHS_EXPR@7863..78645433 EXPR_VAR@8100..8111
5434 EXPR_VAR@7863..78645434 NAME@8100..8111
5435 NAME@7863..78645435 IDENT@8100..8111 "both_fields"
5436 IDENT@7863..7864 "j"5436 COMMA@8111..8112 ","
5437 WHITESPACE@7864..7865 " "5437 WHITESPACE@8112..8113 " "
5438 GE@7865..7867 ">="5438 ARG@8113..8124
5439 WHITESPACE@7867..7868 " "5439 EXPR_VAR@8113..8124
5440 EXPR_APPLY@7868..78815440 NAME@8113..8124
5441 EXPR_INDEX@7868..78785441 IDENT@8113..8124 "null_fields"
5442 EXPR_VAR@7868..78715442 R_PAREN@8124..8125 ")"
5443 NAME@7868..78715443 WHITESPACE@8125..8132 "\n "
5444 IDENT@7868..7871 "std"5444 R_BRACE@8132..8133 "}"
5445 DOT@7871..7872 "."5445 WHITESPACE@8133..8138 "\n "
5446 NAME@7872..78785446 ELSE_KW@8138..8142 "else"
5447 IDENT@7872..7878 "length"5447 WHITESPACE@8142..8149 "\n "
5448 ARGS_DESC@7878..78815448 FALSE_EXPR@8149..8154
5449 L_PAREN@7878..7879 "("5449 EXPR_VAR@8149..8154
5450 ARG@7879..78805450 NAME@8149..8154
5451 EXPR_VAR@7879..78805451 IDENT@8149..8154 "patch"
5452 NAME@7879..78805452 COMMA@8154..8155 ","
5453 IDENT@7879..7880 "b"5453 WHITESPACE@8155..8159 "\n\n "
5454 R_PAREN@7880..7881 ")"5454 MEMBER_FIELD_METHOD@8159..8265
5455 WHITESPACE@7881..7882 " "5455 FIELD_NAME_FIXED@8159..8162
5456 THEN_KW@7882..7886 "then"5456 NAME@8159..8162
5457 WHITESPACE@7886..7895 "\n "5457 IDENT@8159..8162 "get"
5458 TRUE_EXPR@7895..79065458 PARAMS_DESC@8162..8199
5459 EXPR_BINARY@7895..79065459 L_PAREN@8162..8163 "("
5460 LHS_EXPR@7895..78985460 PARAM@8163..8164
5461 EXPR_VAR@7895..78985461 DESTRUCT_FULL@8163..8164
5462 NAME@7895..78985462 NAME@8163..8164
5463 IDENT@7895..7898 "acc"5463 IDENT@8163..8164 "o"
5464 WHITESPACE@7898..7899 " "5464 COMMA@8164..8165 ","
5465 PLUS@7899..7900 "+"5465 WHITESPACE@8165..8166 " "
5466 WHITESPACE@7900..7901 " "5466 PARAM@8166..8167
5467 EXPR_SLICE@7901..79065467 DESTRUCT_FULL@8166..8167
5468 EXPR_VAR@7901..79025468 NAME@8166..8167
5469 NAME@7901..79025469 IDENT@8166..8167 "f"
5470 IDENT@7901..7902 "a"5470 COMMA@8167..8168 ","
5471 SLICE_DESC@7902..79065471 WHITESPACE@8168..8169 " "
5472 L_BRACK@7902..7903 "["5472 PARAM@8169..8181
5473 EXPR_VAR@7903..79045473 DESTRUCT_FULL@8169..8176
5474 NAME@7903..79045474 NAME@8169..8176
5475 IDENT@7903..7904 "i"5475 IDENT@8169..8176 "default"
5476 COLON@7904..7905 ":"5476 ASSIGN@8176..8177 "="
5477 R_BRACK@7905..7906 "]"5477 EXPR_LITERAL@8177..8181
5478 WHITESPACE@7906..7913 "\n "5478 NULL_KW@8177..8181 "null"
5479 ELSE_KW@7913..7917 "else"5479 COMMA@8181..8182 ","
5480 WHITESPACE@7917..7926 "\n "5480 WHITESPACE@8182..8183 " "
5481 FALSE_EXPR@7926..81675481 PARAM@8183..8198
5482 EXPR_IF_THEN_ELSE@7926..81675482 DESTRUCT_FULL@8183..8193
5483 IF_KW@7926..7928 "if"5483 NAME@8183..8193
5484 WHITESPACE@7928..7929 " "5484 IDENT@8183..8193 "inc_hidden"
5485 EXPR_BINARY@7929..79535485 ASSIGN@8193..8194 "="
5486 LHS_EXPR@7929..79395486 EXPR_LITERAL@8194..8198
5487 EXPR_APPLY@7929..79395487 TRUE_KW@8194..8198 "true"
5488 EXPR_VAR@7929..79335488 R_PAREN@8198..8199 ")"
5489 NAME@7929..79335489 COLONCOLON@8199..8201 "::"
5490 IDENT@7929..7933 "keyF"5490 WHITESPACE@8201..8206 "\n "
5491 ARGS_DESC@7933..79395491 EXPR_IF_THEN_ELSE@8206..8265
5492 L_PAREN@7933..7934 "("5492 IF_KW@8206..8208 "if"
5493 ARG@7934..79385493 WHITESPACE@8208..8209 " "
5494 EXPR_INDEX_EXPR@7934..79385494 EXPR_APPLY@8209..8242
5495 LHS_EXPR@7934..79355495 EXPR_INDEX@8209..8224
5496 EXPR_VAR@7934..79355496 EXPR_VAR@8209..8212
5497 NAME@7934..79355497 NAME@8209..8212
5498 IDENT@7934..7935 "a"5498 IDENT@8209..8212 "std"
5499 L_BRACK@7935..7936 "["5499 DOT@8212..8213 "."
5500 EXPR_VAR@7936..79375500 NAME@8213..8224
5501 NAME@7936..79375501 IDENT@8213..8224 "objectHasEx"
5502 IDENT@7936..7937 "i"5502 ARGS_DESC@8224..8242
5503 R_BRACK@7937..7938 "]"5503 L_PAREN@8224..8225 "("
5504 R_PAREN@7938..7939 ")"5504 ARG@8225..8226
5505 WHITESPACE@7939..7940 " "5505 EXPR_VAR@8225..8226
5506 EQ@7940..7942 "=="5506 NAME@8225..8226
5507 WHITESPACE@7942..7943 " "5507 IDENT@8225..8226 "o"
5508 EXPR_APPLY@7943..79535508 COMMA@8226..8227 ","
5509 EXPR_VAR@7943..79475509 WHITESPACE@8227..8228 " "
5510 NAME@7943..79475510 ARG@8228..8229
5511 IDENT@7943..7947 "keyF"5511 EXPR_VAR@8228..8229
5512 ARGS_DESC@7947..79535512 NAME@8228..8229
5513 L_PAREN@7947..7948 "("5513 IDENT@8228..8229 "f"
5514 ARG@7948..79525514 COMMA@8229..8230 ","
5515 EXPR_INDEX_EXPR@7948..79525515 WHITESPACE@8230..8231 " "
5516 LHS_EXPR@7948..79495516 ARG@8231..8241
5517 EXPR_VAR@7948..79495517 EXPR_VAR@8231..8241
5518 NAME@7948..79495518 NAME@8231..8241
5519 IDENT@7948..7949 "b"5519 IDENT@8231..8241 "inc_hidden"
5520 L_BRACK@7949..7950 "["5520 R_PAREN@8241..8242 ")"
5521 EXPR_VAR@7950..7951
5522 NAME@7950..7951
5523 IDENT@7950..7951 "j"
5524 R_BRACK@7951..7952 "]"
5525 R_PAREN@7952..7953 ")"
5526 WHITESPACE@7953..7954 " "
5527 THEN_KW@7954..7958 "then"
5528 WHITESPACE@7958..7969 "\n "
5529 TRUE_EXPR@7969..8008
5530 EXPR_APPLY@7969..8008
5531 EXPR_VAR@7969..7972
5532 NAME@7969..7972
5533 IDENT@7969..7972 "aux"
5534 ARGS_DESC@7972..8008
5535 L_PAREN@7972..7973 "("
5536 ARG@7973..7974
5537 EXPR_VAR@7973..7974
5538 NAME@7973..7974
5539 IDENT@7973..7974 "a"
5540 COMMA@7974..7975 ","
5541 WHITESPACE@7975..7976 " "
5542 ARG@7976..7977
5543 EXPR_VAR@7976..7977
5544 NAME@7976..7977
5545 IDENT@7976..7977 "b"
5546 COMMA@7977..7978 ","
5547 WHITESPACE@7978..7979 " "
5548 ARG@7979..7984
5549 EXPR_BINARY@7979..7984
5550 LHS_EXPR@7979..7980
5551 EXPR_VAR@7979..7980
5552 NAME@7979..7980
5553 IDENT@7979..7980 "i"
5554 WHITESPACE@7980..7981 " "
5555 PLUS@7981..7982 "+"
5556 WHITESPACE@7982..7983 " "
5557 EXPR_NUMBER@7983..7984
5558 FLOAT@7983..7984 "1"
5559 COMMA@7984..7985 ","
5560 WHITESPACE@7985..7986 " "
5561 ARG@7986..7991
5562 EXPR_BINARY@7986..7991
5563 LHS_EXPR@7986..7987
5564 EXPR_VAR@7986..7987
5565 NAME@7986..7987
5566 IDENT@7986..7987 "j"
5567 WHITESPACE@7987..7988 " "
5568 PLUS@7988..7989 "+"
5569 WHITESPACE@7989..7990 " "
5570 EXPR_NUMBER@7990..7991
5571 FLOAT@7990..7991 "1"
5572 COMMA@7991..7992 ","
5573 WHITESPACE@7992..7993 " "
5574 ARG@7993..7996
5575 EXPR_VAR@7993..7996
5576 NAME@7993..7996
5577 IDENT@7993..7996 "acc"
5578 R_PAREN@7996..7997 ")"
5579 WHITESPACE@7997..7998 " "
5580 TAILSTRICT_KW@7998..8008 "tailstrict"
5581 WHITESPACE@8008..8017 "\n "
5582 ELSE_KW@8017..8021 "else"
5583 WHITESPACE@8021..8022 " "
5584 FALSE_EXPR@8022..8167
5585 EXPR_IF_THEN_ELSE@8022..8167
5586 IF_KW@8022..8024 "if"
5587 WHITESPACE@8024..8025 " "
5588 EXPR_BINARY@8025..8048
5589 LHS_EXPR@8025..8035
5590 EXPR_APPLY@8025..8035
5591 EXPR_VAR@8025..8029
5592 NAME@8025..8029
5593 IDENT@8025..8029 "keyF"
5594 ARGS_DESC@8029..8035
5595 L_PAREN@8029..8030 "("
5596 ARG@8030..8034
5597 EXPR_INDEX_EXPR@8030..8034
5598 LHS_EXPR@8030..8031
5599 EXPR_VAR@8030..8031
5600 NAME@8030..8031
5601 IDENT@8030..8031 "a"
5602 L_BRACK@8031..8032 "["
5603 EXPR_VAR@8032..8033
5604 NAME@8032..8033
5605 IDENT@8032..8033 "i"
5606 R_BRACK@8033..8034 "]"
5607 R_PAREN@8034..8035 ")"
5608 WHITESPACE@8035..8036 " "
5609 LT@8036..8037 "<"
5610 WHITESPACE@8037..8038 " "
5611 EXPR_APPLY@8038..8048
5612 EXPR_VAR@8038..8042
5613 NAME@8038..8042
5614 IDENT@8038..8042 "keyF"
5615 ARGS_DESC@8042..8048
5616 L_PAREN@8042..8043 "("
5617 ARG@8043..8047
5618 EXPR_INDEX_EXPR@8043..8047
5619 LHS_EXPR@8043..8044
5620 EXPR_VAR@8043..8044
5621 NAME@8043..8044
5622 IDENT@8043..8044 "b"
5623 L_BRACK@8044..8045 "["
5624 EXPR_VAR@8045..8046
5625 NAME@8045..8046
5626 IDENT@8045..8046 "j"
5627 R_BRACK@8046..8047 "]"
5628 R_PAREN@8047..8048 ")"
5629 WHITESPACE@8048..8049 " "
5630 THEN_KW@8049..8053 "then"
5631 WHITESPACE@8053..8064 "\n "
5632 TRUE_EXPR@8064..8108
5633 EXPR_APPLY@8064..8108
5634 EXPR_VAR@8064..8067
5635 NAME@8064..8067
5636 IDENT@8064..8067 "aux"
5637 ARGS_DESC@8067..8108
5638 L_PAREN@8067..8068 "("
5639 ARG@8068..8069
5640 EXPR_VAR@8068..8069
5641 NAME@8068..8069
5642 IDENT@8068..8069 "a"
5643 COMMA@8069..8070 ","
5644 WHITESPACE@8070..8071 " "
5645 ARG@8071..8072
5646 EXPR_VAR@8071..8072
5647 NAME@8071..8072
5648 IDENT@8071..8072 "b"
5649 COMMA@8072..8073 ","
5650 WHITESPACE@8073..8074 " "
5651 ARG@8074..8079
5652 EXPR_BINARY@8074..8079
5653 LHS_EXPR@8074..8075
5654 EXPR_VAR@8074..8075
5655 NAME@8074..8075
5656 IDENT@8074..8075 "i"
5657 WHITESPACE@8075..8076 " "
5658 PLUS@8076..8077 "+"
5659 WHITESPACE@8077..8078 " "
5660 EXPR_NUMBER@8078..8079
5661 FLOAT@8078..8079 "1"
5662 COMMA@8079..8080 ","
5663 WHITESPACE@8080..8081 " "
5664 ARG@8081..8082
5665 EXPR_VAR@8081..8082
5666 NAME@8081..8082
5667 IDENT@8081..8082 "j"
5668 COMMA@8082..8083 ","
5669 WHITESPACE@8083..8084 " "
5670 ARG@8084..8096
5671 EXPR_BINARY@8084..8096
5672 LHS_EXPR@8084..8087
5673 EXPR_VAR@8084..8087
5674 NAME@8084..8087
5675 IDENT@8084..8087 "acc"
5676 WHITESPACE@8087..8088 " "
5677 PLUS@8088..8089 "+"
5678 WHITESPACE@8089..8090 " "
5679 EXPR_ARRAY@8090..8096
5680 L_BRACK@8090..8091 "["
5681 EXPR_INDEX_EXPR@8091..8095
5682 LHS_EXPR@8091..8092
5683 EXPR_VAR@8091..8092
5684 NAME@8091..8092
5685 IDENT@8091..8092 "a"
5686 L_BRACK@8092..8093 "["
5687 EXPR_VAR@8093..8094
5688 NAME@8093..8094
5689 IDENT@8093..8094 "i"
5690 R_BRACK@8094..8095 "]"
5691 R_BRACK@8095..8096 "]"
5692 R_PAREN@8096..8097 ")"
5693 WHITESPACE@8097..8098 " "
5694 TAILSTRICT_KW@8098..8108 "tailstrict"
5695 WHITESPACE@8108..8117 "\n "
5696 ELSE_KW@8117..8121 "else"
5697 WHITESPACE@8121..8132 "\n "
5698 FALSE_EXPR@8132..8167
5699 EXPR_APPLY@8132..8167
5700 EXPR_VAR@8132..8135
5701 NAME@8132..8135
5702 IDENT@8132..8135 "aux"
5703 ARGS_DESC@8135..8167
5704 L_PAREN@8135..8136 "("
5705 ARG@8136..8137
5706 EXPR_VAR@8136..8137
5707 NAME@8136..8137
5708 IDENT@8136..8137 "a"
5709 COMMA@8137..8138 ","
5710 WHITESPACE@8138..8139 " "
5711 ARG@8139..8140
5712 EXPR_VAR@8139..8140
5713 NAME@8139..8140
5714 IDENT@8139..8140 "b"
5715 COMMA@8140..8141 ","
5716 WHITESPACE@8141..8142 " "
5717 ARG@8142..8143
5718 EXPR_VAR@8142..8143
5719 NAME@8142..8143
5720 IDENT@8142..8143 "i"
5721 COMMA@8143..8144 ","
5722 WHITESPACE@8144..8145 " "
5723 ARG@8145..8150
5724 EXPR_BINARY@8145..8150
5725 LHS_EXPR@8145..8146
5726 EXPR_VAR@8145..8146
5727 NAME@8145..8146
5728 IDENT@8145..8146 "j"
5729 WHITESPACE@8146..8147 " "
5730 PLUS@8147..8148 "+"
5731 WHITESPACE@8148..8149 " "
5732 EXPR_NUMBER@8149..8150
5733 FLOAT@8149..8150 "1"
5734 COMMA@8150..8151 ","
5735 WHITESPACE@8151..8152 " "
5736 ARG@8152..8155
5737 EXPR_VAR@8152..8155
5738 NAME@8152..8155
5739 IDENT@8152..8155 "acc"
5740 R_PAREN@8155..8156 ")"
5741 WHITESPACE@8156..8157 " "
5742 TAILSTRICT_KW@8157..8167 "tailstrict"
5743 SEMI@8167..8168 ";"
5744 WHITESPACE@8168..8173 "\n "
5745 EXPR_APPLY@8173..8203
5746 EXPR_VAR@8173..8176
5747 NAME@8173..8176
5748 IDENT@8173..8176 "aux"
5749 ARGS_DESC@8176..8203
5750 L_PAREN@8176..8177 "("
5751 ARG@8177..8178
5752 EXPR_VAR@8177..8178
5753 NAME@8177..8178
5754 IDENT@8177..8178 "a"
5755 COMMA@8178..8179 ","
5756 WHITESPACE@8179..8180 " "
5757 ARG@8180..8181
5758 EXPR_VAR@8180..8181
5759 NAME@8180..8181
5760 IDENT@8180..8181 "b"
5761 COMMA@8181..8182 ","
5762 WHITESPACE@8182..8183 " "
5763 ARG@8183..8184
5764 EXPR_NUMBER@8183..8184
5765 FLOAT@8183..8184 "0"
5766 COMMA@8184..8185 ","
5767 WHITESPACE@8185..8186 " "
5768 ARG@8186..8187
5769 EXPR_NUMBER@8186..8187
5770 FLOAT@8186..8187 "0"
5771 COMMA@8187..8188 ","
5772 WHITESPACE@8188..8189 " "
5773 ARG@8189..8191
5774 EXPR_ARRAY@8189..8191
5775 L_BRACK@8189..8190 "["
5776 R_BRACK@8190..8191 "]"
5777 R_PAREN@8191..8192 ")"
5778 WHITESPACE@8192..8193 " "
5779 TAILSTRICT_KW@8193..8203 "tailstrict"
5780 COMMA@8203..8204 ","
5781 WHITESPACE@8204..8208 "\n\n "
5782 MEMBER_FIELD_METHOD@8208..8996
5783 FIELD_NAME_FIXED@8208..8218
5784 NAME@8208..8218
5785 IDENT@8208..8218 "mergePatch"
5786 PARAMS_DESC@8218..8233
5787 L_PAREN@8218..8219 "("
5788 PARAM@8219..8225
5789 DESTRUCT_FULL@8219..8225
5790 NAME@8219..8225
5791 IDENT@8219..8225 "target"
5792 COMMA@8225..8226 ","
5793 WHITESPACE@8226..8227 " "
5794 PARAM@8227..8232
5795 DESTRUCT_FULL@8227..8232
5796 NAME@8227..8232
5797 IDENT@8227..8232 "patch"
5798 R_PAREN@8232..8233 ")"
5799 COLONCOLON@8233..8235 "::"
5800 WHITESPACE@8235..8240 "\n "
5801 EXPR_IF_THEN_ELSE@8240..8996
5802 IF_KW@8240..8242 "if"
5803 WHITESPACE@8242..8243 " "5521 WHITESPACE@8242..8243 " "
5804 EXPR_APPLY@8243..82625522 THEN_KW@8243..8247 "then"
5805 EXPR_INDEX@8243..82555523 WHITESPACE@8247..8248 " "
5806 EXPR_VAR@8243..82465524 TRUE_EXPR@8248..8252
5807 NAME@8243..82465525 EXPR_INDEX_EXPR@8248..8252
5808 IDENT@8243..8246 "std"5526 LHS_EXPR@8248..8249
5809 DOT@8246..8247 "."5527 EXPR_VAR@8248..8249
5810 NAME@8247..82555528 NAME@8248..8249
5811 IDENT@8247..8255 "isObject"5529 IDENT@8248..8249 "o"
5812 ARGS_DESC@8255..82625530 L_BRACK@8249..8250 "["
5813 L_PAREN@8255..8256 "("5531 EXPR_VAR@8250..8251
5814 ARG@8256..82615532 NAME@8250..8251
5815 EXPR_VAR@8256..82615533 IDENT@8250..8251 "f"
5816 NAME@8256..82615534 R_BRACK@8251..8252 "]"
5817 IDENT@8256..8261 "patch"5535 WHITESPACE@8252..8253 " "
5818 R_PAREN@8261..8262 ")"5536 ELSE_KW@8253..8257 "else"
5819 WHITESPACE@8262..8263 " "5537 WHITESPACE@8257..8258 " "
5820 THEN_KW@8263..8267 "then"5538 FALSE_EXPR@8258..8265
5821 WHITESPACE@8267..8274 "\n "5539 EXPR_VAR@8258..8265
5822 TRUE_EXPR@8274..89755540 NAME@8258..8265
5823 EXPR_LOCAL@8274..89755541 IDENT@8258..8265 "default"
5824 LOCAL_KW@8274..8279 "local"5542 COMMA@8265..8266 ","
5825 WHITESPACE@8279..8280 " "5543 WHITESPACE@8266..8270 "\n\n "
5826 BIND_DESTRUCT@8280..83475544 MEMBER_FIELD_METHOD@8270..8320
5827 DESTRUCT_FULL@8280..82935545 FIELD_NAME_FIXED@8270..8282
5828 NAME@8280..82935546 NAME@8270..8282
5829 IDENT@8280..8293 "target_object"5547 IDENT@8270..8282 "objectFields"
5830 WHITESPACE@8293..8294 " "5548 PARAMS_DESC@8282..8285
5831 ASSIGN@8294..8295 "="5549 L_PAREN@8282..8283 "("
5832 WHITESPACE@8295..8304 "\n "5550 PARAM@8283..8284
5833 EXPR_IF_THEN_ELSE@8304..83475551 DESTRUCT_FULL@8283..8284
5834 IF_KW@8304..8306 "if"5552 NAME@8283..8284
5835 WHITESPACE@8306..8307 " "5553 IDENT@8283..8284 "o"
5836 EXPR_APPLY@8307..83275554 R_PAREN@8284..8285 ")"
5837 EXPR_INDEX@8307..83195555 COLONCOLON@8285..8287 "::"
5838 EXPR_VAR@8307..83105556 WHITESPACE@8287..8292 "\n "
5839 NAME@8307..83105557 EXPR_APPLY@8292..8320
5840 IDENT@8307..8310 "std"5558 EXPR_INDEX@8292..8310
5841 DOT@8310..8311 "."5559 EXPR_VAR@8292..8295
5842 NAME@8311..83195560 NAME@8292..8295
5843 IDENT@8311..8319 "isObject"5561 IDENT@8292..8295 "std"
5844 ARGS_DESC@8319..83275562 DOT@8295..8296 "."
5845 L_PAREN@8319..8320 "("5563 NAME@8296..8310
5846 ARG@8320..83265564 IDENT@8296..8310 "objectFieldsEx"
5847 EXPR_VAR@8320..83265565 ARGS_DESC@8310..8320
5848 NAME@8320..83265566 L_PAREN@8310..8311 "("
5849 IDENT@8320..8326 "target"5567 ARG@8311..8312
5850 R_PAREN@8326..8327 ")"5568 EXPR_VAR@8311..8312
5851 WHITESPACE@8327..8328 " "5569 NAME@8311..8312
5852 THEN_KW@8328..8332 "then"5570 IDENT@8311..8312 "o"
5853 WHITESPACE@8332..8333 " "5571 COMMA@8312..8313 ","
5854 TRUE_EXPR@8333..83395572 WHITESPACE@8313..8314 " "
5855 EXPR_VAR@8333..83395573 ARG@8314..8319
5856 NAME@8333..83395574 EXPR_LITERAL@8314..8319
5857 IDENT@8333..8339 "target"5575 FALSE_KW@8314..8319 "false"
5858 WHITESPACE@8339..8340 " "5576 R_PAREN@8319..8320 ")"
5859 ELSE_KW@8340..8344 "else"5577 COMMA@8320..8321 ","
5860 WHITESPACE@8344..8345 " "5578 WHITESPACE@8321..8325 "\n\n "
5861 FALSE_EXPR@8345..83475579 MEMBER_FIELD_METHOD@8325..8377
5862 EXPR_OBJECT@8345..83475580 FIELD_NAME_FIXED@8325..8340
5863 OBJ_BODY_MEMBER_LIST@8345..83475581 NAME@8325..8340
5864 L_BRACE@8345..8346 "{"5582 IDENT@8325..8340 "objectFieldsAll"
5865 R_BRACE@8346..8347 "}"5583 PARAMS_DESC@8340..8343
5866 SEMI@8347..8348 ";"5584 L_PAREN@8340..8341 "("
5867 WHITESPACE@8348..8356 "\n\n "5585 PARAM@8341..8342
5868 EXPR_LOCAL@8356..89755586 DESTRUCT_FULL@8341..8342
5869 LOCAL_KW@8356..8361 "local"5587 NAME@8341..8342
5870 WHITESPACE@8361..8362 " "5588 IDENT@8341..8342 "o"
5871 BIND_DESTRUCT@8362..84615589 R_PAREN@8342..8343 ")"
5872 DESTRUCT_FULL@8362..83755590 COLONCOLON@8343..8345 "::"
5873 NAME@8362..83755591 WHITESPACE@8345..8350 "\n "
5874 IDENT@8362..8375 "target_fields"5592 EXPR_APPLY@8350..8377
5875 WHITESPACE@8375..8376 " "5593 EXPR_INDEX@8350..8368
5876 ASSIGN@8376..8377 "="5594 EXPR_VAR@8350..8353
5877 WHITESPACE@8377..8386 "\n "5595 NAME@8350..8353
5878 EXPR_IF_THEN_ELSE@8386..84615596 IDENT@8350..8353 "std"
5879 IF_KW@8386..8388 "if"5597 DOT@8353..8354 "."
5880 WHITESPACE@8388..8389 " "5598 NAME@8354..8368
5881 EXPR_APPLY@8389..84165599 IDENT@8354..8368 "objectFieldsEx"
5882 EXPR_INDEX@8389..84015600 ARGS_DESC@8368..8377
5883 EXPR_VAR@8389..83925601 L_PAREN@8368..8369 "("
5884 NAME@8389..83925602 ARG@8369..8370
5885 IDENT@8389..8392 "std"5603 EXPR_VAR@8369..8370
5886 DOT@8392..8393 "."5604 NAME@8369..8370
5887 NAME@8393..84015605 IDENT@8369..8370 "o"
5888 IDENT@8393..8401 "isObject"5606 COMMA@8370..8371 ","
5889 ARGS_DESC@8401..84165607 WHITESPACE@8371..8372 " "
5890 L_PAREN@8401..8402 "("5608 ARG@8372..8376
5891 ARG@8402..84155609 EXPR_LITERAL@8372..8376
5892 EXPR_VAR@8402..84155610 TRUE_KW@8372..8376 "true"
5893 NAME@8402..84155611 R_PAREN@8376..8377 ")"
5894 IDENT@8402..8415 "target_object"5612 COMMA@8377..8378 ","
5895 R_PAREN@8415..8416 ")"5613 WHITESPACE@8378..8382 "\n\n "
5896 WHITESPACE@8416..8417 " "5614 MEMBER_FIELD_METHOD@8382..8432
5897 THEN_KW@8417..8421 "then"5615 FIELD_NAME_FIXED@8382..8391
5898 WHITESPACE@8421..8422 " "5616 NAME@8382..8391
5899 TRUE_EXPR@8422..84535617 IDENT@8382..8391 "objectHas"
5900 EXPR_APPLY@8422..84535618 PARAMS_DESC@8391..8397
5901 EXPR_INDEX@8422..84385619 L_PAREN@8391..8392 "("
5902 EXPR_VAR@8422..84255620 PARAM@8392..8393
5903 NAME@8422..84255621 DESTRUCT_FULL@8392..8393
5904 IDENT@8422..8425 "std"5622 NAME@8392..8393
5905 DOT@8425..8426 "."5623 IDENT@8392..8393 "o"
5906 NAME@8426..84385624 COMMA@8393..8394 ","
5907 IDENT@8426..8438 "objectFields"5625 WHITESPACE@8394..8395 " "
5908 ARGS_DESC@8438..84535626 PARAM@8395..8396
5909 L_PAREN@8438..8439 "("5627 DESTRUCT_FULL@8395..8396
5910 ARG@8439..84525628 NAME@8395..8396
5911 EXPR_VAR@8439..84525629 IDENT@8395..8396 "f"
5912 NAME@8439..84525630 R_PAREN@8396..8397 ")"
5913 IDENT@8439..8452 "target_object"5631 COLONCOLON@8397..8399 "::"
5914 R_PAREN@8452..8453 ")"5632 WHITESPACE@8399..8404 "\n "
5915 WHITESPACE@8453..8454 " "5633 EXPR_APPLY@8404..8432
5916 ELSE_KW@8454..8458 "else"5634 EXPR_INDEX@8404..8419
5917 WHITESPACE@8458..8459 " "5635 EXPR_VAR@8404..8407
5918 FALSE_EXPR@8459..84615636 NAME@8404..8407
5919 EXPR_ARRAY@8459..84615637 IDENT@8404..8407 "std"
5920 L_BRACK@8459..8460 "["5638 DOT@8407..8408 "."
5921 R_BRACK@8460..8461 "]"5639 NAME@8408..8419
5922 SEMI@8461..8462 ";"5640 IDENT@8408..8419 "objectHasEx"
5923 WHITESPACE@8462..8470 "\n\n "5641 ARGS_DESC@8419..8432
5924 EXPR_LOCAL@8470..89755642 L_PAREN@8419..8420 "("
5925 LOCAL_KW@8470..8475 "local"5643 ARG@8420..8421
5926 WHITESPACE@8475..8476 " "5644 EXPR_VAR@8420..8421
5927 BIND_DESTRUCT@8476..85465645 NAME@8420..8421
5928 DESTRUCT_FULL@8476..84875646 IDENT@8420..8421 "o"
5929 NAME@8476..84875647 COMMA@8421..8422 ","
5930 IDENT@8476..8487 "null_fields"5648 WHITESPACE@8422..8423 " "
5931 WHITESPACE@8487..8488 " "5649 ARG@8423..8424
5932 ASSIGN@8488..8489 "="5650 EXPR_VAR@8423..8424
5933 WHITESPACE@8489..8490 " "5651 NAME@8423..8424
5934 EXPR_ARRAY_COMP@8490..85465652 IDENT@8423..8424 "f"
5935 L_BRACK@8490..8491 "["5653 COMMA@8424..8425 ","
5936 EXPR_VAR@8491..84925654 WHITESPACE@8425..8426 " "
5937 NAME@8491..84925655 ARG@8426..8431
5938 IDENT@8491..8492 "k"5656 EXPR_LITERAL@8426..8431
5939 WHITESPACE@8492..8493 " "5657 FALSE_KW@8426..8431 "false"
5940 FOR_SPEC@8493..85255658 R_PAREN@8431..8432 ")"
5941 FOR_KW@8493..8496 "for"5659 COMMA@8432..8433 ","
5942 WHITESPACE@8496..8497 " "5660 WHITESPACE@8433..8437 "\n\n "
5943 NAME@8497..84985661 MEMBER_FIELD_METHOD@8437..8489
5944 IDENT@8497..8498 "k"5662 FIELD_NAME_FIXED@8437..8449
5945 WHITESPACE@8498..8499 " "5663 NAME@8437..8449
5946 IN_KW@8499..8501 "in"5664 IDENT@8437..8449 "objectHasAll"
5947 WHITESPACE@8501..8502 " "5665 PARAMS_DESC@8449..8455
5948 EXPR_APPLY@8502..85255666 L_PAREN@8449..8450 "("
5949 EXPR_INDEX@8502..85185667 PARAM@8450..8451
5950 EXPR_VAR@8502..85055668 DESTRUCT_FULL@8450..8451
5951 NAME@8502..85055669 NAME@8450..8451
5952 IDENT@8502..8505 "std"5670 IDENT@8450..8451 "o"
5953 DOT@8505..8506 "."5671 COMMA@8451..8452 ","
5954 NAME@8506..85185672 WHITESPACE@8452..8453 " "
5955 IDENT@8506..8518 "objectFields"5673 PARAM@8453..8454
5956 ARGS_DESC@8518..85255674 DESTRUCT_FULL@8453..8454
5957 L_PAREN@8518..8519 "("5675 NAME@8453..8454
5958 ARG@8519..85245676 IDENT@8453..8454 "f"
5959 EXPR_VAR@8519..85245677 R_PAREN@8454..8455 ")"
5960 NAME@8519..85245678 COLONCOLON@8455..8457 "::"
5961 IDENT@8519..8524 "patch"5679 WHITESPACE@8457..8462 "\n "
5962 R_PAREN@8524..8525 ")"5680 EXPR_APPLY@8462..8489
5963 WHITESPACE@8525..8526 " "5681 EXPR_INDEX@8462..8477
5964 IF_SPEC@8526..85455682 EXPR_VAR@8462..8465
5965 IF_KW@8526..8528 "if"5683 NAME@8462..8465
5966 WHITESPACE@8528..8529 " "5684 IDENT@8462..8465 "std"
5967 EXPR_BINARY@8529..85455685 DOT@8465..8466 "."
5968 LHS_EXPR@8529..85375686 NAME@8466..8477
5969 EXPR_INDEX_EXPR@8529..85375687 IDENT@8466..8477 "objectHasEx"
5970 LHS_EXPR@8529..85345688 ARGS_DESC@8477..8489
5971 EXPR_VAR@8529..85345689 L_PAREN@8477..8478 "("
5972 NAME@8529..85345690 ARG@8478..8479
5973 IDENT@8529..8534 "patch"5691 EXPR_VAR@8478..8479
5974 L_BRACK@8534..8535 "["5692 NAME@8478..8479
5975 EXPR_VAR@8535..85365693 IDENT@8478..8479 "o"
5976 NAME@8535..85365694 COMMA@8479..8480 ","
5977 IDENT@8535..8536 "k"5695 WHITESPACE@8480..8481 " "
5978 R_BRACK@8536..8537 "]"5696 ARG@8481..8482
5979 WHITESPACE@8537..8538 " "5697 EXPR_VAR@8481..8482
5980 EQ@8538..8540 "=="5698 NAME@8481..8482
5981 WHITESPACE@8540..8541 " "5699 IDENT@8481..8482 "f"
5982 EXPR_LITERAL@8541..85455700 COMMA@8482..8483 ","
5983 NULL_KW@8541..8545 "null"5701 WHITESPACE@8483..8484 " "
5984 R_BRACK@8545..8546 "]"5702 ARG@8484..8488
5985 SEMI@8546..8547 ";"5703 EXPR_LITERAL@8484..8488
5986 WHITESPACE@8547..8554 "\n "5704 TRUE_KW@8484..8488 "true"
5987 EXPR_LOCAL@8554..89755705 R_PAREN@8488..8489 ")"
5988 LOCAL_KW@8554..8559 "local"5706 COMMA@8489..8490 ","
5989 WHITESPACE@8559..8560 " "5707 WHITESPACE@8490..8494 "\n\n "
5990 BIND_DESTRUCT@8560..86265708 MEMBER_FIELD_METHOD@8494..8551
5991 DESTRUCT_FULL@8560..85715709 FIELD_NAME_FIXED@8494..8506
5992 NAME@8560..85715710 NAME@8494..8506
5993 IDENT@8560..8571 "both_fields"5711 IDENT@8494..8506 "objectValues"
5994 WHITESPACE@8571..8572 " "5712 PARAMS_DESC@8506..8509
5995 ASSIGN@8572..8573 "="5713 L_PAREN@8506..8507 "("
5996 WHITESPACE@8573..8574 " "5714 PARAM@8507..8508
5997 EXPR_APPLY@8574..86265715 DESTRUCT_FULL@8507..8508
5998 EXPR_INDEX@8574..85865716 NAME@8507..8508
5999 EXPR_VAR@8574..85775717 IDENT@8507..8508 "o"
6000 NAME@8574..85775718 R_PAREN@8508..8509 ")"
6001 IDENT@8574..8577 "std"5719 COLONCOLON@8509..8511 "::"
6002 DOT@8577..8578 "."5720 WHITESPACE@8511..8516 "\n "
6003 NAME@8578..85865721 EXPR_ARRAY_COMP@8516..8551
6004 IDENT@8578..8586 "setUnion"5722 L_BRACK@8516..8517 "["
6005 ARGS_DESC@8586..86265723 EXPR_INDEX_EXPR@8517..8521
6006 L_PAREN@8586..8587 "("5724 LHS_EXPR@8517..8518
6007 ARG@8587..86005725 EXPR_VAR@8517..8518
6008 EXPR_VAR@8587..86005726 NAME@8517..8518
6009 NAME@8587..86005727 IDENT@8517..8518 "o"
6010 IDENT@8587..8600 "target_fields"5728 L_BRACK@8518..8519 "["
6011 COMMA@8600..8601 ","5729 EXPR_VAR@8519..8520
6012 WHITESPACE@8601..8602 " "5730 NAME@8519..8520
6013 ARG@8602..86255731 IDENT@8519..8520 "k"
6014 EXPR_APPLY@8602..86255732 R_BRACK@8520..8521 "]"
6015 EXPR_INDEX@8602..86185733 WHITESPACE@8521..8522 " "
6016 EXPR_VAR@8602..86055734 FOR_SPEC@8522..8550
6017 NAME@8602..86055735 FOR_KW@8522..8525 "for"
6018 IDENT@8602..8605 "std"5736 WHITESPACE@8525..8526 " "
6019 DOT@8605..8606 "."5737 NAME@8526..8527
6020 NAME@8606..86185738 IDENT@8526..8527 "k"
6021 IDENT@8606..8618 "objectFields"5739 WHITESPACE@8527..8528 " "
6022 ARGS_DESC@8618..86255740 IN_KW@8528..8530 "in"
6023 L_PAREN@8618..8619 "("5741 WHITESPACE@8530..8531 " "
6024 ARG@8619..86245742 EXPR_APPLY@8531..8550
6025 EXPR_VAR@8619..86245743 EXPR_INDEX@8531..8547
6026 NAME@8619..86245744 EXPR_VAR@8531..8534
6027 IDENT@8619..8624 "patch"5745 NAME@8531..8534
6028 R_PAREN@8624..8625 ")"5746 IDENT@8531..8534 "std"
6029 R_PAREN@8625..8626 ")"5747 DOT@8534..8535 "."
6030 SEMI@8626..8627 ";"5748 NAME@8535..8547
6031 WHITESPACE@8627..8635 "\n\n "5749 IDENT@8535..8547 "objectFields"
6032 EXPR_OBJECT@8635..89755750 ARGS_DESC@8547..8550
6033 OBJ_BODY_COMP@8635..89755751 L_PAREN@8547..8548 "("
6034 L_BRACE@8635..8636 "{"5752 ARG@8548..8549
6035 WHITESPACE@8636..8645 "\n "5753 EXPR_VAR@8548..8549
6036 MEMBER_FIELD_NORMAL@8645..89125754 NAME@8548..8549
6037 FIELD_NAME_DYNAMIC@8645..86485755 IDENT@8548..8549 "o"
6038 L_BRACK@8645..8646 "["5756 R_PAREN@8549..8550 ")"
6039 EXPR_VAR@8646..86475757 R_BRACK@8550..8551 "]"
6040 NAME@8646..86475758 COMMA@8551..8552 ","
6041 IDENT@8646..8647 "k"5759 WHITESPACE@8552..8556 "\n\n "
6042 R_BRACK@8647..8648 "]"5760 MEMBER_FIELD_METHOD@8556..8619
6043 COLON@8648..8649 ":"5761 FIELD_NAME_FIXED@8556..8571
6044 WHITESPACE@8649..8660 "\n "5762 NAME@8556..8571
6045 EXPR_IF_THEN_ELSE@8660..89125763 IDENT@8556..8571 "objectValuesAll"
6046 IF_KW@8660..8662 "if"5764 PARAMS_DESC@8571..8574
6047 WHITESPACE@8662..8663 " "5765 L_PAREN@8571..8572 "("
6048 EXPR_UNARY@8663..86875766 PARAM@8572..8573
6049 NOT@8663..8664 "!"5767 DESTRUCT_FULL@8572..8573
6050 EXPR_APPLY@8664..86875768 NAME@8572..8573
6051 EXPR_INDEX@8664..86775769 IDENT@8572..8573 "o"
6052 EXPR_VAR@8664..86675770 R_PAREN@8573..8574 ")"
6053 NAME@8664..86675771 COLONCOLON@8574..8576 "::"
6054 IDENT@8664..8667 "std"5772 WHITESPACE@8576..8581 "\n "
6055 DOT@8667..8668 "."5773 EXPR_ARRAY_COMP@8581..8619
6056 NAME@8668..86775774 L_BRACK@8581..8582 "["
6057 IDENT@8668..8677 "objectHas"5775 EXPR_INDEX_EXPR@8582..8586
6058 ARGS_DESC@8677..86875776 LHS_EXPR@8582..8583
6059 L_PAREN@8677..8678 "("5777 EXPR_VAR@8582..8583
6060 ARG@8678..86835778 NAME@8582..8583
6061 EXPR_VAR@8678..86835779 IDENT@8582..8583 "o"
6062 NAME@8678..86835780 L_BRACK@8583..8584 "["
6063 IDENT@8678..8683 "patch"5781 EXPR_VAR@8584..8585
6064 COMMA@8683..8684 ","5782 NAME@8584..8585
6065 WHITESPACE@8684..8685 " "5783 IDENT@8584..8585 "k"
6066 ARG@8685..86865784 R_BRACK@8585..8586 "]"
6067 EXPR_VAR@8685..86865785 WHITESPACE@8586..8587 " "
6068 NAME@8685..86865786 FOR_SPEC@8587..8618
6069 IDENT@8685..8686 "k"5787 FOR_KW@8587..8590 "for"
6070 R_PAREN@8686..8687 ")"5788 WHITESPACE@8590..8591 " "
6071 WHITESPACE@8687..8688 " "5789 NAME@8591..8592
6072 THEN_KW@8688..8692 "then"5790 IDENT@8591..8592 "k"
6073 WHITESPACE@8692..8705 "\n "5791 WHITESPACE@8592..8593 " "
6074 TRUE_EXPR@8705..87215792 IN_KW@8593..8595 "in"
6075 EXPR_INDEX_EXPR@8705..87215793 WHITESPACE@8595..8596 " "
6076 LHS_EXPR@8705..87185794 EXPR_APPLY@8596..8618
6077 EXPR_VAR@8705..87185795 EXPR_INDEX@8596..8615
6078 NAME@8705..87185796 EXPR_VAR@8596..8599
6079 IDENT@8705..8718 "target_object"5797 NAME@8596..8599
6080 L_BRACK@8718..8719 "["5798 IDENT@8596..8599 "std"
6081 EXPR_VAR@8719..87205799 DOT@8599..8600 "."
6082 NAME@8719..87205800 NAME@8600..8615
6083 IDENT@8719..8720 "k"5801 IDENT@8600..8615 "objectFieldsAll"
6084 R_BRACK@8720..8721 "]"5802 ARGS_DESC@8615..8618
6085 WHITESPACE@8721..8732 "\n "5803 L_PAREN@8615..8616 "("
6086 ELSE_KW@8732..8736 "else"5804 ARG@8616..8617
6087 WHITESPACE@8736..8737 " "5805 EXPR_VAR@8616..8617
6088 FALSE_EXPR@8737..89125806 NAME@8616..8617
6089 EXPR_IF_THEN_ELSE@8737..89125807 IDENT@8616..8617 "o"
6090 IF_KW@8737..8739 "if"5808 R_PAREN@8617..8618 ")"
6091 WHITESPACE@8739..8740 " "5809 R_BRACK@8618..8619 "]"
6092 EXPR_UNARY@8740..87725810 COMMA@8619..8620 ","
6093 NOT@8740..8741 "!"5811 WHITESPACE@8620..8624 "\n\n "
6094 EXPR_APPLY@8741..87725812 MEMBER_FIELD_METHOD@8624..8758
6095 EXPR_INDEX@8741..87545813 FIELD_NAME_FIXED@8624..8635
6096 EXPR_VAR@8741..87445814 NAME@8624..8635
6097 NAME@8741..87445815 IDENT@8624..8635 "resolvePath"
6098 IDENT@8741..8744 "std"5816 PARAMS_DESC@8635..8641
6099 DOT@8744..8745 "."5817 L_PAREN@8635..8636 "("
6100 NAME@8745..87545818 PARAM@8636..8637
6101 IDENT@8745..8754 "objectHas"5819 DESTRUCT_FULL@8636..8637
6102 ARGS_DESC@8754..87725820 NAME@8636..8637
6103 L_PAREN@8754..8755 "("5821 IDENT@8636..8637 "f"
6104 ARG@8755..87685822 COMMA@8637..8638 ","
6105 EXPR_VAR@8755..87685823 WHITESPACE@8638..8639 " "
6106 NAME@8755..87685824 PARAM@8639..8640
6107 IDENT@8755..8768 "target_object"5825 DESTRUCT_FULL@8639..8640
6108 COMMA@8768..8769 ","5826 NAME@8639..8640
6109 WHITESPACE@8769..8770 " "5827 IDENT@8639..8640 "r"
6110 ARG@8770..87715828 R_PAREN@8640..8641 ")"
6111 EXPR_VAR@8770..87715829 COLONCOLON@8641..8643 "::"
6112 NAME@8770..87715830 WHITESPACE@8643..8648 "\n "
6113 IDENT@8770..8771 "k"5831 STMT_LOCAL@8648..8678
6114 R_PAREN@8771..8772 ")"5832 LOCAL_KW@8648..8653 "local"
6115 WHITESPACE@8772..8773 " "5833 WHITESPACE@8653..8654 " "
6116 THEN_KW@8773..8777 "then"5834 BIND_DESTRUCT@8654..8677
6117 WHITESPACE@8777..8790 "\n "5835 DESTRUCT_FULL@8654..8657
6118 TRUE_EXPR@8790..88315836 NAME@8654..8657
6119 EXPR_APPLY@8790..88315837 IDENT@8654..8657 "arr"
6120 EXPR_INDEX@8790..88045838 WHITESPACE@8657..8658 " "
6121 EXPR_VAR@8790..87935839 ASSIGN@8658..8659 "="
6122 NAME@8790..87935840 WHITESPACE@8659..8660 " "
6123 IDENT@8790..8793 "std"5841 EXPR_APPLY@8660..8677
6124 DOT@8793..8794 "."5842 EXPR_INDEX@8660..8669
6125 NAME@8794..88045843 EXPR_VAR@8660..8663
6126 IDENT@8794..8804 "mergePatch"5844 NAME@8660..8663
6127 ARGS_DESC@8804..88315845 IDENT@8660..8663 "std"
6128 L_PAREN@8804..8805 "("5846 DOT@8663..8664 "."
6129 ARG@8805..88095847 NAME@8664..8669
6130 EXPR_LITERAL@8805..88095848 IDENT@8664..8669 "split"
6131 NULL_KW@8805..8809 "null"5849 ARGS_DESC@8669..8677
6132 COMMA@8809..8810 ","5850 L_PAREN@8669..8670 "("
6133 WHITESPACE@8810..8811 " "5851 ARG@8670..8671
6134 ARG@8811..88195852 EXPR_VAR@8670..8671
6135 EXPR_INDEX_EXPR@8811..88195853 NAME@8670..8671
6136 LHS_EXPR@8811..88165854 IDENT@8670..8671 "f"
6137 EXPR_VAR@8811..88165855 COMMA@8671..8672 ","
6138 NAME@8811..88165856 WHITESPACE@8672..8673 " "
6139 IDENT@8811..8816 "patch"5857 ARG@8673..8676
6140 L_BRACK@8816..8817 "["5858 EXPR_STRING@8673..8676
6141 EXPR_VAR@8817..88185859 STRING_SINGLE@8673..8676 "'/'"
6142 NAME@8817..88185860 R_PAREN@8676..8677 ")"
6143 IDENT@8817..8818 "k"5861 SEMI@8677..8678 ";"
6144 R_BRACK@8818..8819 "]"5862 WHITESPACE@8678..8683 "\n "
6145 R_PAREN@8819..8820 ")"5863 EXPR_APPLY@8683..8758
6146 WHITESPACE@8820..8821 " "5864 EXPR_INDEX@8683..8691
6147 TAILSTRICT_KW@8821..8831 "tailstrict"5865 EXPR_VAR@8683..8686
6148 WHITESPACE@8831..8842 "\n "5866 NAME@8683..8686
6149 ELSE_KW@8842..8846 "else"5867 IDENT@8683..8686 "std"
6150 WHITESPACE@8846..8859 "\n "5868 DOT@8686..8687 "."
6151 FALSE_EXPR@8859..89125869 NAME@8687..8691
6152 EXPR_APPLY@8859..89125870 IDENT@8687..8691 "join"
6153 EXPR_INDEX@8859..88735871 ARGS_DESC@8691..8758
6154 EXPR_VAR@8859..88625872 L_PAREN@8691..8692 "("
6155 NAME@8859..88625873 ARG@8692..8695
6156 IDENT@8859..8862 "std"5874 EXPR_STRING@8692..8695
6157 DOT@8862..8863 "."5875 STRING_SINGLE@8692..8695 "'/'"
6158 NAME@8863..88735876 COMMA@8695..8696 ","
6159 IDENT@8863..8873 "mergePatch"5877 WHITESPACE@8696..8697 " "
6160 ARGS_DESC@8873..89125878 ARG@8697..8757
6161 L_PAREN@8873..8874 "("5879 EXPR_BINARY@8697..8757
6162 ARG@8874..88905880 LHS_EXPR@8697..8751
6163 EXPR_INDEX_EXPR@8874..88905881 EXPR_APPLY@8697..8751
6164 LHS_EXPR@8874..88875882 EXPR_INDEX@8697..8710
6165 EXPR_VAR@8874..88875883 EXPR_VAR@8697..8700
6166 NAME@8874..88875884 NAME@8697..8700
6167 IDENT@8874..8887 "target_object"5885 IDENT@8697..8700 "std"
6168 L_BRACK@8887..8888 "["5886 DOT@8700..8701 "."
6169 EXPR_VAR@8888..88895887 NAME@8701..8710
6170 NAME@8888..88895888 IDENT@8701..8710 "makeArray"
6171 IDENT@8888..8889 "k"5889 ARGS_DESC@8710..8751
6172 R_BRACK@8889..8890 "]"5890 L_PAREN@8710..8711 "("
6173 COMMA@8890..8891 ","5891 ARG@8711..8730
6174 WHITESPACE@8891..8892 " "5892 EXPR_BINARY@8711..8730
6175 ARG@8892..89005893 LHS_EXPR@8711..8726
6176 EXPR_INDEX_EXPR@8892..89005894 EXPR_APPLY@8711..8726
6177 LHS_EXPR@8892..88975895 EXPR_INDEX@8711..8721
6178 EXPR_VAR@8892..88975896 EXPR_VAR@8711..8714
6179 NAME@8892..88975897 NAME@8711..8714
6180 IDENT@8892..8897 "patch"5898 IDENT@8711..8714 "std"
6181 L_BRACK@8897..8898 "["5899 DOT@8714..8715 "."
6182 EXPR_VAR@8898..88995900 NAME@8715..8721
6183 NAME@8898..88995901 IDENT@8715..8721 "length"
6184 IDENT@8898..8899 "k"5902 ARGS_DESC@8721..8726
6185 R_BRACK@8899..8900 "]"5903 L_PAREN@8721..8722 "("
6186 R_PAREN@8900..8901 ")"5904 ARG@8722..8725
6187 WHITESPACE@8901..8902 " "5905 EXPR_VAR@8722..8725
6188 TAILSTRICT_KW@8902..8912 "tailstrict"5906 NAME@8722..8725
6189 WHITESPACE@8912..8921 "\n "5907 IDENT@8722..8725 "arr"
6190 FOR_SPEC@8921..89675908 R_PAREN@8725..8726 ")"
6191 FOR_KW@8921..8924 "for"5909 WHITESPACE@8726..8727 " "
6192 WHITESPACE@8924..8925 " "5910 MINUS@8727..8728 "-"
6193 NAME@8925..89265911 WHITESPACE@8728..8729 " "
6194 IDENT@8925..8926 "k"5912 EXPR_NUMBER@8729..8730
6195 WHITESPACE@8926..8927 " "5913 FLOAT@8729..8730 "1"
6196 IN_KW@8927..8929 "in"5914 COMMA@8730..8731 ","
6197 WHITESPACE@8929..8930 " "5915 WHITESPACE@8731..8732 " "
6198 EXPR_APPLY@8930..89675916 ARG@8732..8750
6199 EXPR_INDEX@8930..89415917 EXPR_FUNCTION@8732..8750
6200 EXPR_VAR@8930..89335918 FUNCTION_KW@8732..8740 "function"
6201 NAME@8930..89335919 PARAMS_DESC@8740..8743
6202 IDENT@8930..8933 "std"5920 L_PAREN@8740..8741 "("
6203 DOT@8933..8934 "."5921 PARAM@8741..8742
6204 NAME@8934..89415922 DESTRUCT_FULL@8741..8742
6205 IDENT@8934..8941 "setDiff"5923 NAME@8741..8742
6206 ARGS_DESC@8941..89675924 IDENT@8741..8742 "i"
6207 L_PAREN@8941..8942 "("5925 R_PAREN@8742..8743 ")"
6208 ARG@8942..89535926 WHITESPACE@8743..8744 " "
6209 EXPR_VAR@8942..89535927 EXPR_INDEX_EXPR@8744..8750
6210 NAME@8942..89535928 LHS_EXPR@8744..8747
6211 IDENT@8942..8953 "both_fields"5929 EXPR_VAR@8744..8747
6212 COMMA@8953..8954 ","5930 NAME@8744..8747
6213 WHITESPACE@8954..8955 " "5931 IDENT@8744..8747 "arr"
6214 ARG@8955..89665932 L_BRACK@8747..8748 "["
6215 EXPR_VAR@8955..89665933 EXPR_VAR@8748..8749
6216 NAME@8955..89665934 NAME@8748..8749
6217 IDENT@8955..8966 "null_fields"5935 IDENT@8748..8749 "i"
6218 R_PAREN@8966..8967 ")"5936 R_BRACK@8749..8750 "]"
6219 WHITESPACE@8967..8974 "\n "5937 R_PAREN@8750..8751 ")"
6220 R_BRACE@8974..8975 "}"5938 WHITESPACE@8751..8752 " "
6221 WHITESPACE@8975..8980 "\n "5939 PLUS@8752..8753 "+"
6222 ELSE_KW@8980..8984 "else"5940 WHITESPACE@8753..8754 " "
6223 WHITESPACE@8984..8991 "\n "5941 EXPR_ARRAY@8754..8757
6224 FALSE_EXPR@8991..89965942 L_BRACK@8754..8755 "["
6225 EXPR_VAR@8991..89965943 EXPR_VAR@8755..8756
6226 NAME@8991..89965944 NAME@8755..8756
6227 IDENT@8991..8996 "patch"5945 IDENT@8755..8756 "r"
6228 COMMA@8996..8997 ","5946 R_BRACK@8756..8757 "]"
6229 WHITESPACE@8997..9001 "\n\n "5947 R_PAREN@8757..8758 ")"
6230 MEMBER_FIELD_METHOD@9001..91075948 COMMA@8758..8759 ","
6231 FIELD_NAME_FIXED@9001..90045949 WHITESPACE@8759..8763 "\n\n "
6232 NAME@9001..90045950 MEMBER_FIELD_METHOD@8763..9216
6233 IDENT@9001..9004 "get"5951 FIELD_NAME_FIXED@8763..8768
6234 PARAMS_DESC@9004..90415952 NAME@8763..8768
6235 L_PAREN@9004..9005 "("5953 IDENT@8763..8768 "prune"
6236 PARAM@9005..90065954 PARAMS_DESC@8768..8771
6237 DESTRUCT_FULL@9005..90065955 L_PAREN@8768..8769 "("
6238 NAME@9005..90065956 PARAM@8769..8770
6239 IDENT@9005..9006 "o"5957 DESTRUCT_FULL@8769..8770
6240 COMMA@9006..9007 ","5958 NAME@8769..8770
6241 WHITESPACE@9007..9008 " "5959 IDENT@8769..8770 "a"
6242 PARAM@9008..90095960 R_PAREN@8770..8771 ")"
6243 DESTRUCT_FULL@9008..90095961 COLONCOLON@8771..8773 "::"
6244 NAME@9008..90095962 WHITESPACE@8773..8778 "\n "
6245 IDENT@9008..9009 "f"5963 STMT_LOCAL@8778..8982
6246 COMMA@9009..9010 ","5964 LOCAL_KW@8778..8783 "local"
6247 WHITESPACE@9010..9011 " "5965 WHITESPACE@8783..8784 " "
6248 PARAM@9011..90235966 BIND_FUNCTION@8784..8981
6249 DESTRUCT_FULL@9011..90185967 NAME@8784..8793
6250 NAME@9011..90185968 IDENT@8784..8793 "isContent"
6251 IDENT@9011..9018 "default"5969 PARAMS_DESC@8793..8796
6252 ASSIGN@9018..9019 "="5970 L_PAREN@8793..8794 "("
6253 EXPR_LITERAL@9019..90235971 PARAM@8794..8795
6254 NULL_KW@9019..9023 "null"5972 DESTRUCT_FULL@8794..8795
6255 COMMA@9023..9024 ","5973 NAME@8794..8795
6256 WHITESPACE@9024..9025 " "5974 IDENT@8794..8795 "b"
6257 PARAM@9025..90405975 R_PAREN@8795..8796 ")"
6258 DESTRUCT_FULL@9025..90355976 WHITESPACE@8796..8797 " "
6259 NAME@9025..90355977 ASSIGN@8797..8798 "="
6260 IDENT@9025..9035 "inc_hidden"5978 WHITESPACE@8798..8805 "\n "
6261 ASSIGN@9035..9036 "="5979 EXPR_IF_THEN_ELSE@8805..8981
6262 EXPR_LITERAL@9036..90405980 IF_KW@8805..8807 "if"
6263 TRUE_KW@9036..9040 "true"5981 WHITESPACE@8807..8808 " "
6264 R_PAREN@9040..9041 ")"5982 EXPR_BINARY@8808..8817
6265 COLONCOLON@9041..9043 "::"5983 LHS_EXPR@8808..8809
6266 WHITESPACE@9043..9048 "\n "5984 EXPR_VAR@8808..8809
6267 EXPR_IF_THEN_ELSE@9048..91075985 NAME@8808..8809
6268 IF_KW@9048..9050 "if"5986 IDENT@8808..8809 "b"
6269 WHITESPACE@9050..9051 " "5987 WHITESPACE@8809..8810 " "
6270 EXPR_APPLY@9051..90845988 EQ@8810..8812 "=="
6271 EXPR_INDEX@9051..90665989 WHITESPACE@8812..8813 " "
6272 EXPR_VAR@9051..90545990 EXPR_LITERAL@8813..8817
6273 NAME@9051..90545991 NULL_KW@8813..8817 "null"
6274 IDENT@9051..9054 "std"5992 WHITESPACE@8817..8818 " "
6275 DOT@9054..9055 "."5993 THEN_KW@8818..8822 "then"
6276 NAME@9055..90665994 WHITESPACE@8822..8831 "\n "
6277 IDENT@9055..9066 "objectHasEx"5995 TRUE_EXPR@8831..8836
6278 ARGS_DESC@9066..90845996 EXPR_LITERAL@8831..8836
6279 L_PAREN@9066..9067 "("5997 FALSE_KW@8831..8836 "false"
6280 ARG@9067..90685998 WHITESPACE@8836..8843 "\n "
6281 EXPR_VAR@9067..90685999 ELSE_KW@8843..8847 "else"
6282 NAME@9067..90686000 WHITESPACE@8847..8848 " "
6283 IDENT@9067..9068 "o"6001 FALSE_EXPR@8848..8981
6284 COMMA@9068..9069 ","6002 EXPR_IF_THEN_ELSE@8848..8981
6285 WHITESPACE@9069..9070 " "6003 IF_KW@8848..8850 "if"
6286 ARG@9070..90716004 WHITESPACE@8850..8851 " "
6287 EXPR_VAR@9070..90716005 EXPR_APPLY@8851..8865
6288 NAME@9070..90716006 EXPR_INDEX@8851..8862
6289 IDENT@9070..9071 "f"6007 EXPR_VAR@8851..8854
6290 COMMA@9071..9072 ","6008 NAME@8851..8854
6291 WHITESPACE@9072..9073 " "6009 IDENT@8851..8854 "std"
6292 ARG@9073..90836010 DOT@8854..8855 "."
6293 EXPR_VAR@9073..90836011 NAME@8855..8862
6294 NAME@9073..90836012 IDENT@8855..8862 "isArray"
6295 IDENT@9073..9083 "inc_hidden"6013 ARGS_DESC@8862..8865
6296 R_PAREN@9083..9084 ")"6014 L_PAREN@8862..8863 "("
6297 WHITESPACE@9084..9085 " "6015 ARG@8863..8864
6298 THEN_KW@9085..9089 "then"6016 EXPR_VAR@8863..8864
6299 WHITESPACE@9089..9090 " "6017 NAME@8863..8864
6300 TRUE_EXPR@9090..90946018 IDENT@8863..8864 "b"
6301 EXPR_INDEX_EXPR@9090..90946019 R_PAREN@8864..8865 ")"
6302 LHS_EXPR@9090..90916020 WHITESPACE@8865..8866 " "
6303 EXPR_VAR@9090..90916021 THEN_KW@8866..8870 "then"
6304 NAME@9090..90916022 WHITESPACE@8870..8879 "\n "
6305 IDENT@9090..9091 "o"6023 TRUE_EXPR@8879..8896
6306 L_BRACK@9091..9092 "["6024 EXPR_BINARY@8879..8896
6307 EXPR_VAR@9092..90936025 LHS_EXPR@8879..8892
6308 NAME@9092..90936026 EXPR_APPLY@8879..8892
6309 IDENT@9092..9093 "f"6027 EXPR_INDEX@8879..8889
6310 R_BRACK@9093..9094 "]"6028 EXPR_VAR@8879..8882
6311 WHITESPACE@9094..9095 " "6029 NAME@8879..8882
6312 ELSE_KW@9095..9099 "else"6030 IDENT@8879..8882 "std"
6313 WHITESPACE@9099..9100 " "6031 DOT@8882..8883 "."
6314 FALSE_EXPR@9100..91076032 NAME@8883..8889
6315 EXPR_VAR@9100..91076033 IDENT@8883..8889 "length"
6316 NAME@9100..91076034 ARGS_DESC@8889..8892
6317 IDENT@9100..9107 "default"6035 L_PAREN@8889..8890 "("
6318 COMMA@9107..9108 ","6036 ARG@8890..8891
6319 WHITESPACE@9108..9112 "\n\n "6037 EXPR_VAR@8890..8891
6320 MEMBER_FIELD_METHOD@9112..91626038 NAME@8890..8891
6321 FIELD_NAME_FIXED@9112..91246039 IDENT@8890..8891 "b"
6322 NAME@9112..91246040 R_PAREN@8891..8892 ")"
6323 IDENT@9112..9124 "objectFields"6041 WHITESPACE@8892..8893 " "
6324 PARAMS_DESC@9124..91276042 GT@8893..8894 ">"
6325 L_PAREN@9124..9125 "("6043 WHITESPACE@8894..8895 " "
6326 PARAM@9125..91266044 EXPR_NUMBER@8895..8896
6327 DESTRUCT_FULL@9125..91266045 FLOAT@8895..8896 "0"
6328 NAME@9125..91266046 WHITESPACE@8896..8903 "\n "
6329 IDENT@9125..9126 "o"6047 ELSE_KW@8903..8907 "else"
6330 R_PAREN@9126..9127 ")"6048 WHITESPACE@8907..8908 " "
6331 COLONCOLON@9127..9129 "::"6049 FALSE_EXPR@8908..8981
6332 WHITESPACE@9129..9134 "\n "6050 EXPR_IF_THEN_ELSE@8908..8981
6333 EXPR_APPLY@9134..91626051 IF_KW@8908..8910 "if"
6334 EXPR_INDEX@9134..91526052 WHITESPACE@8910..8911 " "
6335 EXPR_VAR@9134..91376053 EXPR_APPLY@8911..8926
6336 NAME@9134..91376054 EXPR_INDEX@8911..8923
6337 IDENT@9134..9137 "std"6055 EXPR_VAR@8911..8914
6338 DOT@9137..9138 "."6056 NAME@8911..8914
6339 NAME@9138..91526057 IDENT@8911..8914 "std"
6340 IDENT@9138..9152 "objectFieldsEx"6058 DOT@8914..8915 "."
6341 ARGS_DESC@9152..91626059 NAME@8915..8923
6342 L_PAREN@9152..9153 "("6060 IDENT@8915..8923 "isObject"
6343 ARG@9153..91546061 ARGS_DESC@8923..8926
6344 EXPR_VAR@9153..91546062 L_PAREN@8923..8924 "("
6345 NAME@9153..91546063 ARG@8924..8925
6346 IDENT@9153..9154 "o"6064 EXPR_VAR@8924..8925
6347 COMMA@9154..9155 ","6065 NAME@8924..8925
6348 WHITESPACE@9155..9156 " "6066 IDENT@8924..8925 "b"
6349 ARG@9156..91616067 R_PAREN@8925..8926 ")"
6350 EXPR_LITERAL@9156..91616068 WHITESPACE@8926..8927 " "
6351 FALSE_KW@9156..9161 "false"6069 THEN_KW@8927..8931 "then"
6352 R_PAREN@9161..9162 ")"6070 WHITESPACE@8931..8940 "\n "
6353 COMMA@9162..9163 ","6071 TRUE_EXPR@8940..8957
6354 WHITESPACE@9163..9167 "\n\n "6072 EXPR_BINARY@8940..8957
6355 MEMBER_FIELD_METHOD@9167..92196073 LHS_EXPR@8940..8953
6356 FIELD_NAME_FIXED@9167..91826074 EXPR_APPLY@8940..8953
6357 NAME@9167..91826075 EXPR_INDEX@8940..8950
6358 IDENT@9167..9182 "objectFieldsAll"6076 EXPR_VAR@8940..8943
6359 PARAMS_DESC@9182..91856077 NAME@8940..8943
6360 L_PAREN@9182..9183 "("6078 IDENT@8940..8943 "std"
6361 PARAM@9183..91846079 DOT@8943..8944 "."
6362 DESTRUCT_FULL@9183..91846080 NAME@8944..8950
6363 NAME@9183..91846081 IDENT@8944..8950 "length"
6364 IDENT@9183..9184 "o"6082 ARGS_DESC@8950..8953
6365 R_PAREN@9184..9185 ")"6083 L_PAREN@8950..8951 "("
6366 COLONCOLON@9185..9187 "::"6084 ARG@8951..8952
6367 WHITESPACE@9187..9192 "\n "6085 EXPR_VAR@8951..8952
6368 EXPR_APPLY@9192..92196086 NAME@8951..8952
6369 EXPR_INDEX@9192..92106087 IDENT@8951..8952 "b"
6370 EXPR_VAR@9192..91956088 R_PAREN@8952..8953 ")"
6371 NAME@9192..91956089 WHITESPACE@8953..8954 " "
6372 IDENT@9192..9195 "std"6090 GT@8954..8955 ">"
6373 DOT@9195..9196 "."6091 WHITESPACE@8955..8956 " "
6374 NAME@9196..92106092 EXPR_NUMBER@8956..8957
6375 IDENT@9196..9210 "objectFieldsEx"6093 FLOAT@8956..8957 "0"
6376 ARGS_DESC@9210..92196094 WHITESPACE@8957..8964 "\n "
6377 L_PAREN@9210..9211 "("6095 ELSE_KW@8964..8968 "else"
6378 ARG@9211..92126096 WHITESPACE@8968..8977 "\n "
6379 EXPR_VAR@9211..92126097 FALSE_EXPR@8977..8981
6380 NAME@9211..92126098 EXPR_LITERAL@8977..8981
6381 IDENT@9211..9212 "o"6099 TRUE_KW@8977..8981 "true"
6382 COMMA@9212..9213 ","6100 SEMI@8981..8982 ";"
6383 WHITESPACE@9213..9214 " "6101 WHITESPACE@8982..8987 "\n "
6384 ARG@9214..92186102 EXPR_IF_THEN_ELSE@8987..9216
6385 EXPR_LITERAL@9214..92186103 IF_KW@8987..8989 "if"
6386 TRUE_KW@9214..9218 "true"6104 WHITESPACE@8989..8990 " "
6387 R_PAREN@9218..9219 ")"6105 EXPR_APPLY@8990..9004
6388 COMMA@9219..9220 ","6106 EXPR_INDEX@8990..9001
6389 WHITESPACE@9220..9224 "\n\n "6107 EXPR_VAR@8990..8993
6390 MEMBER_FIELD_METHOD@9224..92746108 NAME@8990..8993
6391 FIELD_NAME_FIXED@9224..92336109 IDENT@8990..8993 "std"
6392 NAME@9224..92336110 DOT@8993..8994 "."
6393 IDENT@9224..9233 "objectHas"6111 NAME@8994..9001
6394 PARAMS_DESC@9233..92396112 IDENT@8994..9001 "isArray"
6395 L_PAREN@9233..9234 "("6113 ARGS_DESC@9001..9004
6396 PARAM@9234..92356114 L_PAREN@9001..9002 "("
6397 DESTRUCT_FULL@9234..92356115 ARG@9002..9003
6398 NAME@9234..92356116 EXPR_VAR@9002..9003
6399 IDENT@9234..9235 "o"6117 NAME@9002..9003
6400 COMMA@9235..9236 ","6118 IDENT@9002..9003 "a"
6401 WHITESPACE@9236..9237 " "6119 R_PAREN@9003..9004 ")"
6402 PARAM@9237..92386120 WHITESPACE@9004..9005 " "
6403 DESTRUCT_FULL@9237..92386121 THEN_KW@9005..9009 "then"
6404 NAME@9237..92386122 WHITESPACE@9009..9016 "\n "
6405 IDENT@9237..9238 "f"6123 TRUE_EXPR@9016..9066
6406 R_PAREN@9238..9239 ")"6124 EXPR_ARRAY_COMP@9016..9066
6407 COLONCOLON@9239..9241 "::"6125 L_BRACK@9016..9017 "["
6408 WHITESPACE@9241..9246 "\n "6126 EXPR_APPLY@9017..9029
6409 EXPR_APPLY@9246..92746127 EXPR_INDEX@9017..9026
6410 EXPR_INDEX@9246..92616128 EXPR_VAR@9017..9020
6411 EXPR_VAR@9246..92496129 NAME@9017..9020
6412 NAME@9246..92496130 IDENT@9017..9020 "std"
6413 IDENT@9246..9249 "std"6131 DOT@9020..9021 "."
6414 DOT@9249..9250 "."6132 NAME@9021..9026
6415 NAME@9250..92616133 IDENT@9021..9026 "prune"
6416 IDENT@9250..9261 "objectHasEx"6134 ARGS_DESC@9026..9029
6417 ARGS_DESC@9261..92746135 L_PAREN@9026..9027 "("
6418 L_PAREN@9261..9262 "("6136 ARG@9027..9028
6419 ARG@9262..92636137 EXPR_VAR@9027..9028
6420 EXPR_VAR@9262..92636138 NAME@9027..9028
6421 NAME@9262..92636139 IDENT@9027..9028 "x"
6422 IDENT@9262..9263 "o"6140 R_PAREN@9028..9029 ")"
6423 COMMA@9263..9264 ","6141 WHITESPACE@9029..9030 " "
6424 WHITESPACE@9264..9265 " "6142 FOR_SPEC@9030..9040
6425 ARG@9265..92666143 FOR_KW@9030..9033 "for"
6426 EXPR_VAR@9265..92666144 WHITESPACE@9033..9034 " "
6427 NAME@9265..92666145 NAME@9034..9035
6428 IDENT@9265..9266 "f"6146 IDENT@9034..9035 "x"
6429 COMMA@9266..9267 ","6147 WHITESPACE@9035..9036 " "
6430 WHITESPACE@9267..9268 " "6148 IN_KW@9036..9038 "in"
6431 ARG@9268..92736149 WHITESPACE@9038..9039 " "
6432 EXPR_LITERAL@9268..92736150 EXPR_VAR@9039..9040
6433 FALSE_KW@9268..9273 "false"6151 NAME@9039..9040
6434 R_PAREN@9273..9274 ")"6152 IDENT@9039..9040 "a"
6435 COMMA@9274..9275 ","6153 WHITESPACE@9040..9041 " "
6436 WHITESPACE@9275..9279 "\n\n "6154 IF_SPEC@9041..9065
6437 MEMBER_FIELD_METHOD@9279..93316155 IF_KW@9041..9043 "if"
6438 FIELD_NAME_FIXED@9279..92916156 WHITESPACE@9043..9044 " "
6439 NAME@9279..92916157 EXPR_APPLY@9044..9065
6440 IDENT@9279..9291 "objectHasAll"6158 EXPR_VAR@9044..9053
6441 PARAMS_DESC@9291..92976159 NAME@9044..9053
6442 L_PAREN@9291..9292 "("6160 IDENT@9044..9053 "isContent"
6443 PARAM@9292..92936161 ARGS_DESC@9053..9065
6444 DESTRUCT_FULL@9292..92936162 L_PAREN@9053..9054 "("
6445 NAME@9292..92936163 ARG@9054..9064
6446 IDENT@9292..9293 "o"6164 EXPR_APPLY@9054..9064
6447 COMMA@9293..9294 ","6165 EXPR_INDEX@9054..9061
6448 WHITESPACE@9294..9295 " "6166 EXPR_LITERAL@9054..9055
6449 PARAM@9295..92966167 DOLLAR@9054..9055 "$"
6450 DESTRUCT_FULL@9295..92966168 DOT@9055..9056 "."
6451 NAME@9295..92966169 NAME@9056..9061
6452 IDENT@9295..9296 "f"6170 IDENT@9056..9061 "prune"
6453 R_PAREN@9296..9297 ")"6171 ARGS_DESC@9061..9064
6454 COLONCOLON@9297..9299 "::"6172 L_PAREN@9061..9062 "("
6455 WHITESPACE@9299..9304 "\n "6173 ARG@9062..9063
6456 EXPR_APPLY@9304..93316174 EXPR_VAR@9062..9063
6457 EXPR_INDEX@9304..93196175 NAME@9062..9063
6458 EXPR_VAR@9304..93076176 IDENT@9062..9063 "x"
6459 NAME@9304..93076177 R_PAREN@9063..9064 ")"
6460 IDENT@9304..9307 "std"6178 R_PAREN@9064..9065 ")"
6461 DOT@9307..9308 "."6179 R_BRACK@9065..9066 "]"
6462 NAME@9308..93196180 WHITESPACE@9066..9071 "\n "
6463 IDENT@9308..9319 "objectHasEx"6181 ELSE_KW@9071..9075 "else"
6464 ARGS_DESC@9319..93316182 WHITESPACE@9075..9076 " "
6465 L_PAREN@9319..9320 "("6183 FALSE_EXPR@9076..9216
6466 ARG@9320..93216184 EXPR_IF_THEN_ELSE@9076..9216
6467 EXPR_VAR@9320..93216185 IF_KW@9076..9078 "if"
6468 NAME@9320..93216186 WHITESPACE@9078..9079 " "
6469 IDENT@9320..9321 "o"6187 EXPR_APPLY@9079..9094
6470 COMMA@9321..9322 ","6188 EXPR_INDEX@9079..9091
6471 WHITESPACE@9322..9323 " "6189 EXPR_VAR@9079..9082
6472 ARG@9323..93246190 NAME@9079..9082
6473 EXPR_VAR@9323..93246191 IDENT@9079..9082 "std"
6474 NAME@9323..93246192 DOT@9082..9083 "."
6475 IDENT@9323..9324 "f"6193 NAME@9083..9091
6476 COMMA@9324..9325 ","6194 IDENT@9083..9091 "isObject"
6477 WHITESPACE@9325..9326 " "6195 ARGS_DESC@9091..9094
6478 ARG@9326..93306196 L_PAREN@9091..9092 "("
6479 EXPR_LITERAL@9326..93306197 ARG@9092..9093
6480 TRUE_KW@9326..9330 "true"6198 EXPR_VAR@9092..9093
6481 R_PAREN@9330..9331 ")"6199 NAME@9092..9093
6482 COMMA@9331..9332 ","6200 IDENT@9092..9093 "a"
6483 WHITESPACE@9332..9336 "\n\n "6201 R_PAREN@9093..9094 ")"
6484 MEMBER_FIELD_METHOD@9336..93936202 WHITESPACE@9094..9095 " "
6485 FIELD_NAME_FIXED@9336..93486203 THEN_KW@9095..9099 "then"
6486 NAME@9336..93486204 WHITESPACE@9099..9100 " "
6487 IDENT@9336..9348 "objectValues"6205 TRUE_EXPR@9100..9203
6488 PARAMS_DESC@9348..93516206 EXPR_OBJECT@9100..9203
6489 L_PAREN@9348..9349 "("6207 OBJ_BODY_COMP@9100..9203
6490 PARAM@9349..93506208 L_BRACE@9100..9101 "{"
6491 DESTRUCT_FULL@9349..93506209 WHITESPACE@9101..9108 "\n "
6492 NAME@9349..93506210 MEMBER_FIELD_NORMAL@9108..9126
6493 IDENT@9349..9350 "o"6211 FIELD_NAME_DYNAMIC@9108..9111
6494 R_PAREN@9350..9351 ")"6212 L_BRACK@9108..9109 "["
6495 COLONCOLON@9351..9353 "::"6213 EXPR_VAR@9109..9110
6496 WHITESPACE@9353..9358 "\n "6214 NAME@9109..9110
6497 EXPR_ARRAY_COMP@9358..93936215 IDENT@9109..9110 "x"
6498 L_BRACK@9358..9359 "["6216 R_BRACK@9110..9111 "]"
6499 EXPR_INDEX_EXPR@9359..93636217 COLON@9111..9112 ":"
6500 LHS_EXPR@9359..93606218 WHITESPACE@9112..9113 " "
6501 EXPR_VAR@9359..93606219 EXPR_APPLY@9113..9126
6502 NAME@9359..93606220 EXPR_INDEX@9113..9120
6503 IDENT@9359..9360 "o"6221 EXPR_LITERAL@9113..9114
6504 L_BRACK@9360..9361 "["6222 DOLLAR@9113..9114 "$"
6505 EXPR_VAR@9361..93626223 DOT@9114..9115 "."
6506 NAME@9361..93626224 NAME@9115..9120
6507 IDENT@9361..9362 "k"6225 IDENT@9115..9120 "prune"
6508 R_BRACK@9362..9363 "]"6226 ARGS_DESC@9120..9126
6509 WHITESPACE@9363..9364 " "6227 L_PAREN@9120..9121 "("
6510 FOR_SPEC@9364..93926228 ARG@9121..9125
6511 FOR_KW@9364..9367 "for"6229 EXPR_INDEX_EXPR@9121..9125
6512 WHITESPACE@9367..9368 " "6230 LHS_EXPR@9121..9122
6513 NAME@9368..93696231 EXPR_VAR@9121..9122
6514 IDENT@9368..9369 "k"6232 NAME@9121..9122
6515 WHITESPACE@9369..9370 " "6233 IDENT@9121..9122 "a"
6516 IN_KW@9370..9372 "in"6234 L_BRACK@9122..9123 "["
6517 WHITESPACE@9372..9373 " "6235 EXPR_VAR@9123..9124
6518 EXPR_APPLY@9373..93926236 NAME@9123..9124
6519 EXPR_INDEX@9373..93896237 IDENT@9123..9124 "x"
6520 EXPR_VAR@9373..93766238 R_BRACK@9124..9125 "]"
6521 NAME@9373..93766239 R_PAREN@9125..9126 ")"
6522 IDENT@9373..9376 "std"6240 WHITESPACE@9126..9133 "\n "
6523 DOT@9376..9377 "."6241 FOR_SPEC@9133..9161
6524 NAME@9377..93896242 FOR_KW@9133..9136 "for"
6525 IDENT@9377..9389 "objectFields"6243 WHITESPACE@9136..9137 " "
6526 ARGS_DESC@9389..93926244 NAME@9137..9138
6527 L_PAREN@9389..9390 "("6245 IDENT@9137..9138 "x"
6528 ARG@9390..93916246 WHITESPACE@9138..9139 " "
6529 EXPR_VAR@9390..93916247 IN_KW@9139..9141 "in"
6530 NAME@9390..93916248 WHITESPACE@9141..9142 " "
6531 IDENT@9390..9391 "o"6249 EXPR_APPLY@9142..9161
6532 R_PAREN@9391..9392 ")"6250 EXPR_INDEX@9142..9158
6533 R_BRACK@9392..9393 "]"6251 EXPR_VAR@9142..9145
6534 COMMA@9393..9394 ","6252 NAME@9142..9145
6535 WHITESPACE@9394..9398 "\n\n "6253 IDENT@9142..9145 "std"
6536 MEMBER_FIELD_METHOD@9398..94616254 DOT@9145..9146 "."
6537 FIELD_NAME_FIXED@9398..94136255 NAME@9146..9158
6538 NAME@9398..94136256 IDENT@9146..9158 "objectFields"
6539 IDENT@9398..9413 "objectValuesAll"6257 ARGS_DESC@9158..9161
6540 PARAMS_DESC@9413..94166258 L_PAREN@9158..9159 "("
6541 L_PAREN@9413..9414 "("6259 ARG@9159..9160
6542 PARAM@9414..94156260 EXPR_VAR@9159..9160
6543 DESTRUCT_FULL@9414..94156261 NAME@9159..9160
6544 NAME@9414..94156262 IDENT@9159..9160 "a"
6545 IDENT@9414..9415 "o"6263 R_PAREN@9160..9161 ")"
6546 R_PAREN@9415..9416 ")"6264 WHITESPACE@9161..9168 "\n "
6547 COLONCOLON@9416..9418 "::"6265 IF_SPEC@9168..9197
6548 WHITESPACE@9418..9423 "\n "6266 IF_KW@9168..9170 "if"
6549 EXPR_ARRAY_COMP@9423..94616267 WHITESPACE@9170..9171 " "
6550 L_BRACK@9423..9424 "["6268 EXPR_APPLY@9171..9197
6551 EXPR_INDEX_EXPR@9424..94286269 EXPR_VAR@9171..9180
6552 LHS_EXPR@9424..94256270 NAME@9171..9180
6553 EXPR_VAR@9424..94256271 IDENT@9171..9180 "isContent"
6554 NAME@9424..94256272 ARGS_DESC@9180..9197
6555 IDENT@9424..9425 "o"6273 L_PAREN@9180..9181 "("
6556 L_BRACK@9425..9426 "["6274 ARG@9181..9196
6557 EXPR_VAR@9426..94276275 EXPR_APPLY@9181..9196
6558 NAME@9426..94276276 EXPR_INDEX@9181..9190
6559 IDENT@9426..9427 "k"6277 EXPR_VAR@9181..9184
6560 R_BRACK@9427..9428 "]"6278 NAME@9181..9184
6561 WHITESPACE@9428..9429 " "6279 IDENT@9181..9184 "std"
6562 FOR_SPEC@9429..94606280 DOT@9184..9185 "."
6563 FOR_KW@9429..9432 "for"6281 NAME@9185..9190
6564 WHITESPACE@9432..9433 " "6282 IDENT@9185..9190 "prune"
6565 NAME@9433..94346283 ARGS_DESC@9190..9196
6566 IDENT@9433..9434 "k"6284 L_PAREN@9190..9191 "("
6567 WHITESPACE@9434..9435 " "6285 ARG@9191..9195
6568 IN_KW@9435..9437 "in"6286 EXPR_INDEX_EXPR@9191..9195
6569 WHITESPACE@9437..9438 " "6287 LHS_EXPR@9191..9192
6570 EXPR_APPLY@9438..94606288 EXPR_VAR@9191..9192
6571 EXPR_INDEX@9438..94576289 NAME@9191..9192
6572 EXPR_VAR@9438..94416290 IDENT@9191..9192 "a"
6573 NAME@9438..94416291 L_BRACK@9192..9193 "["
6574 IDENT@9438..9441 "std"6292 EXPR_VAR@9193..9194
6575 DOT@9441..9442 "."6293 NAME@9193..9194
6576 NAME@9442..94576294 IDENT@9193..9194 "x"
6577 IDENT@9442..9457 "objectFieldsAll"6295 R_BRACK@9194..9195 "]"
6578 ARGS_DESC@9457..94606296 R_PAREN@9195..9196 ")"
6579 L_PAREN@9457..9458 "("6297 R_PAREN@9196..9197 ")"
6580 ARG@9458..94596298 WHITESPACE@9197..9202 "\n "
6581 EXPR_VAR@9458..94596299 R_BRACE@9202..9203 "}"
6582 NAME@9458..94596300 WHITESPACE@9203..9204 " "
6583 IDENT@9458..9459 "o"6301 ELSE_KW@9204..9208 "else"
6584 R_PAREN@9459..9460 ")"6302 WHITESPACE@9208..9215 "\n "
6585 R_BRACK@9460..9461 "]"6303 FALSE_EXPR@9215..9216
6586 COMMA@9461..9462 ","6304 EXPR_VAR@9215..9216
6587 WHITESPACE@9462..9466 "\n\n "6305 NAME@9215..9216
6588 MEMBER_FIELD_METHOD@9466..96006306 IDENT@9215..9216 "a"
6589 FIELD_NAME_FIXED@9466..94776307 COMMA@9216..9217 ","
6590 NAME@9466..94776308 WHITESPACE@9217..9221 "\n\n "
6591 IDENT@9466..9477 "resolvePath"6309 MEMBER_FIELD_METHOD@9221..9436
6592 PARAMS_DESC@9477..94836310 FIELD_NAME_FIXED@9221..9225
6593 L_PAREN@9477..9478 "("6311 NAME@9221..9225
6594 PARAM@9478..94796312 IDENT@9221..9225 "find"
6595 DESTRUCT_FULL@9478..94796313 PARAMS_DESC@9225..9237
6596 NAME@9478..94796314 L_PAREN@9225..9226 "("
6597 IDENT@9478..9479 "f"6315 PARAM@9226..9231
6598 COMMA@9479..9480 ","6316 DESTRUCT_FULL@9226..9231
6599 WHITESPACE@9480..9481 " "6317 NAME@9226..9231
6600 PARAM@9481..94826318 IDENT@9226..9231 "value"
6601 DESTRUCT_FULL@9481..94826319 COMMA@9231..9232 ","
6602 NAME@9481..94826320 WHITESPACE@9232..9233 " "
6603 IDENT@9481..9482 "r"6321 PARAM@9233..9236
6604 R_PAREN@9482..9483 ")"6322 DESTRUCT_FULL@9233..9236
6605 COLONCOLON@9483..9485 "::"6323 NAME@9233..9236
6606 WHITESPACE@9485..9490 "\n "6324 IDENT@9233..9236 "arr"
6607 EXPR_LOCAL@9490..96006325 R_PAREN@9236..9237 ")"
6608 LOCAL_KW@9490..9495 "local"6326 COLONCOLON@9237..9239 "::"
6609 WHITESPACE@9495..9496 " "6327 WHITESPACE@9239..9244 "\n "
6610 BIND_DESTRUCT@9496..95196328 EXPR_IF_THEN_ELSE@9244..9436
6611 DESTRUCT_FULL@9496..94996329 IF_KW@9244..9246 "if"
6612 NAME@9496..94996330 WHITESPACE@9246..9247 " "
6613 IDENT@9496..9499 "arr"6331 EXPR_UNARY@9247..9264
6614 WHITESPACE@9499..9500 " "6332 NOT@9247..9248 "!"
6615 ASSIGN@9500..9501 "="6333 EXPR_APPLY@9248..9264
6616 WHITESPACE@9501..9502 " "6334 EXPR_INDEX@9248..9259
6617 EXPR_APPLY@9502..95196335 EXPR_VAR@9248..9251
6618 EXPR_INDEX@9502..95116336 NAME@9248..9251
6619 EXPR_VAR@9502..95056337 IDENT@9248..9251 "std"
6620 NAME@9502..95056338 DOT@9251..9252 "."
6621 IDENT@9502..9505 "std"6339 NAME@9252..9259
6622 DOT@9505..9506 "."6340 IDENT@9252..9259 "isArray"
6623 NAME@9506..95116341 ARGS_DESC@9259..9264
6624 IDENT@9506..9511 "split"6342 L_PAREN@9259..9260 "("
6625 ARGS_DESC@9511..95196343 ARG@9260..9263
6626 L_PAREN@9511..9512 "("6344 EXPR_VAR@9260..9263
6627 ARG@9512..95136345 NAME@9260..9263
6628 EXPR_VAR@9512..95136346 IDENT@9260..9263 "arr"
6629 NAME@9512..95136347 R_PAREN@9263..9264 ")"
6630 IDENT@9512..9513 "f"6348 WHITESPACE@9264..9265 " "
6631 COMMA@9513..9514 ","6349 THEN_KW@9265..9269 "then"
6350 WHITESPACE@9269..9276 "\n "
6351 TRUE_EXPR@9276..9346
6352 EXPR_ERROR@9276..9346
6353 ERROR_KW@9276..9281 "error"
6354 WHITESPACE@9281..9282 " "
6355 EXPR_BINARY@9282..9346
6356 LHS_EXPR@9282..9330
6357 EXPR_STRING@9282..9330
6358 STRING_SINGLE@9282..9330 "'find second paramete ..."
6359 WHITESPACE@9330..9331 " "
6360 PLUS@9331..9332 "+"
6361 WHITESPACE@9332..9333 " "
6362 EXPR_APPLY@9333..9346
6363 EXPR_INDEX@9333..9341
6364 EXPR_VAR@9333..9336
6365 NAME@9333..9336
6366 IDENT@9333..9336 "std"
6367 DOT@9336..9337 "."
6368 NAME@9337..9341
6369 IDENT@9337..9341 "type"
6370 ARGS_DESC@9341..9346
6371 L_PAREN@9341..9342 "("
6372 ARG@9342..9345
6373 EXPR_VAR@9342..9345
6374 NAME@9342..9345
6375 IDENT@9342..9345 "arr"
6376 R_PAREN@9345..9346 ")"
6377 WHITESPACE@9346..9351 "\n "
6378 ELSE_KW@9351..9355 "else"
6379 WHITESPACE@9355..9362 "\n "
6380 FALSE_EXPR@9362..9436
6381 EXPR_APPLY@9362..9436
6382 EXPR_INDEX@9362..9372
6383 EXPR_VAR@9362..9365
6384 NAME@9362..9365
6385 IDENT@9362..9365 "std"
6386 DOT@9365..9366 "."
6387 NAME@9366..9372
6388 IDENT@9366..9372 "filter"
6389 ARGS_DESC@9372..9436
6390 L_PAREN@9372..9373 "("
6391 ARG@9373..9400
6392 EXPR_FUNCTION@9373..9400
6393 FUNCTION_KW@9373..9381 "function"
6394 PARAMS_DESC@9381..9384
6395 L_PAREN@9381..9382 "("
6396 PARAM@9382..9383
6397 DESTRUCT_FULL@9382..9383
6398 NAME@9382..9383
6399 IDENT@9382..9383 "i"
6400 R_PAREN@9383..9384 ")"
6401 WHITESPACE@9384..9385 " "
6402 EXPR_BINARY@9385..9400
6403 LHS_EXPR@9385..9391
6404 EXPR_INDEX_EXPR@9385..9391
6405 LHS_EXPR@9385..9388
6406 EXPR_VAR@9385..9388
6407 NAME@9385..9388
6408 IDENT@9385..9388 "arr"
6409 L_BRACK@9388..9389 "["
6410 EXPR_VAR@9389..9390
6411 NAME@9389..9390
6412 IDENT@9389..9390 "i"
6413 R_BRACK@9390..9391 "]"
6414 WHITESPACE@9391..9392 " "
6415 EQ@9392..9394 "=="
6416 WHITESPACE@9394..9395 " "
6417 EXPR_VAR@9395..9400
6418 NAME@9395..9400
6419 IDENT@9395..9400 "value"
6420 COMMA@9400..9401 ","
6421 WHITESPACE@9401..9402 " "
6422 ARG@9402..9435
6423 EXPR_APPLY@9402..9435
6424 EXPR_INDEX@9402..9411
6425 EXPR_VAR@9402..9405
6426 NAME@9402..9405
6427 IDENT@9402..9405 "std"
6428 DOT@9405..9406 "."
6429 NAME@9406..9411
6430 IDENT@9406..9411 "range"
6431 ARGS_DESC@9411..9435
6432 L_PAREN@9411..9412 "("
6433 ARG@9412..9413
6434 EXPR_NUMBER@9412..9413
6435 FLOAT@9412..9413 "0"
6436 COMMA@9413..9414 ","
6437 WHITESPACE@9414..9415 " "
6438 ARG@9415..9434
6439 EXPR_BINARY@9415..9434
6440 LHS_EXPR@9415..9430
6441 EXPR_APPLY@9415..9430
6442 EXPR_INDEX@9415..9425
6443 EXPR_VAR@9415..9418
6444 NAME@9415..9418
6445 IDENT@9415..9418 "std"
6446 DOT@9418..9419 "."
6447 NAME@9419..9425
6448 IDENT@9419..9425 "length"
6449 ARGS_DESC@9425..9430
6450 L_PAREN@9425..9426 "("
6451 ARG@9426..9429
6452 EXPR_VAR@9426..9429
6453 NAME@9426..9429
6454 IDENT@9426..9429 "arr"
6455 R_PAREN@9429..9430 ")"
6456 WHITESPACE@9430..9431 " "
6457 MINUS@9431..9432 "-"
6458 WHITESPACE@9432..9433 " "
6459 EXPR_NUMBER@9433..9434
6460 FLOAT@9433..9434 "1"
6461 R_PAREN@9434..9435 ")"
6462 R_PAREN@9435..9436 ")"
6463 COMMA@9436..9437 ","
6464 WHITESPACE@9437..9441 "\n\n "
6465 SINGLE_LINE_SLASH_COMMENT@9441..9451 "// Compat\n"
6466 WHITESPACE@9451..9453 " "
6467 MEMBER_FIELD_METHOD@9453..9563
6468 FIELD_NAME_FIXED@9453..9468
6469 NAME@9453..9468
6470 IDENT@9453..9468 "__compare_array"
6471 PARAMS_DESC@9468..9480
6472 L_PAREN@9468..9469 "("
6473 PARAM@9469..9473
6474 DESTRUCT_FULL@9469..9473
6475 NAME@9469..9473
6476 IDENT@9469..9473 "arr1"
6477 COMMA@9473..9474 ","
6478 WHITESPACE@9474..9475 " "
6479 PARAM@9475..9479
6480 DESTRUCT_FULL@9475..9479
6481 NAME@9475..9479
6482 IDENT@9475..9479 "arr2"
6483 R_PAREN@9479..9480 ")"
6484 COLONCOLON@9480..9482 "::"
6485 WHITESPACE@9482..9487 "\n "
6486 EXPR_ASSERT@9487..9563
6487 ASSERTION@9487..9532
6488 ASSERT_KW@9487..9493 "assert"
6489 WHITESPACE@9493..9494 " "
6490 LHS_EXPR@9494..9532
6491 EXPR_BINARY@9494..9532
6492 LHS_EXPR@9494..9511
6493 EXPR_APPLY@9494..9511
6494 EXPR_INDEX@9494..9505
6495 EXPR_VAR@9494..9497
6496 NAME@9494..9497
6497 IDENT@9494..9497 "std"
6498 DOT@9497..9498 "."
6499 NAME@9498..9505
6500 IDENT@9498..9505 "isArray"
6501 ARGS_DESC@9505..9511
6502 L_PAREN@9505..9506 "("
6503 ARG@9506..9510
6504 EXPR_VAR@9506..9510
6505 NAME@9506..9510
6506 IDENT@9506..9510 "arr1"
6507 R_PAREN@9510..9511 ")"
6508 WHITESPACE@9511..9512 " "
6509 AND@9512..9514 "&&"
6632 WHITESPACE@9514..9515 " "6510 WHITESPACE@9514..9515 " "
6633 ARG@9515..95186511 EXPR_APPLY@9515..9532
6634 EXPR_STRING@9515..95186512 EXPR_INDEX@9515..9526
6635 STRING_SINGLE@9515..9518 "'/'"6513 EXPR_VAR@9515..9518
6636 R_PAREN@9518..9519 ")"6514 NAME@9515..9518
6637 SEMI@9519..9520 ";"6515 IDENT@9515..9518 "std"
6638 WHITESPACE@9520..9525 "\n "6516 DOT@9518..9519 "."
6639 EXPR_APPLY@9525..96006517 NAME@9519..9526
6640 EXPR_INDEX@9525..95336518 IDENT@9519..9526 "isArray"
6641 EXPR_VAR@9525..95286519 ARGS_DESC@9526..9532
6642 NAME@9525..95286520 L_PAREN@9526..9527 "("
6643 IDENT@9525..9528 "std"6521 ARG@9527..9531
6644 DOT@9528..9529 "."6522 EXPR_VAR@9527..9531
6645 NAME@9529..95336523 NAME@9527..9531
6646 IDENT@9529..9533 "join"6524 IDENT@9527..9531 "arr2"
6647 ARGS_DESC@9533..96006525 R_PAREN@9531..9532 ")"
6648 L_PAREN@9533..9534 "("6526 SEMI@9532..9533 ";"
6649 ARG@9534..95376527 WHITESPACE@9533..9538 "\n "
6650 EXPR_STRING@9534..95376528 EXPR_APPLY@9538..9563
6651 STRING_SINGLE@9534..9537 "'/'"6529 EXPR_INDEX@9538..9551
6652 COMMA@9537..9538 ","6530 EXPR_VAR@9538..9541
6653 WHITESPACE@9538..9539 " "6531 NAME@9538..9541
6654 ARG@9539..95996532 IDENT@9538..9541 "std"
6655 EXPR_BINARY@9539..95996533 DOT@9541..9542 "."
6656 LHS_EXPR@9539..95936534 NAME@9542..9551
6657 EXPR_APPLY@9539..95936535 IDENT@9542..9551 "__compare"
6658 EXPR_INDEX@9539..95526536 ARGS_DESC@9551..9563
6659 EXPR_VAR@9539..95426537 L_PAREN@9551..9552 "("
6660 NAME@9539..95426538 ARG@9552..9556
6661 IDENT@9539..9542 "std"6539 EXPR_VAR@9552..9556
6662 DOT@9542..9543 "."6540 NAME@9552..9556
6663 NAME@9543..95526541 IDENT@9552..9556 "arr1"
6664 IDENT@9543..9552 "makeArray"6542 COMMA@9556..9557 ","
6665 ARGS_DESC@9552..95936543 WHITESPACE@9557..9558 " "
6666 L_PAREN@9552..9553 "("6544 ARG@9558..9562
6667 ARG@9553..95726545 EXPR_VAR@9558..9562
6668 EXPR_BINARY@9553..95726546 NAME@9558..9562
6669 LHS_EXPR@9553..95686547 IDENT@9558..9562 "arr2"
6670 EXPR_APPLY@9553..95686548 R_PAREN@9562..9563 ")"
6671 EXPR_INDEX@9553..95636549 COMMA@9563..9564 ","
6672 EXPR_VAR@9553..95566550 WHITESPACE@9564..9567 "\n "
6673 NAME@9553..95566551 MEMBER_FIELD_METHOD@9567..9631
6674 IDENT@9553..9556 "std"6552 FIELD_NAME_FIXED@9567..9579
6675 DOT@9556..9557 "."6553 NAME@9567..9579
6676 NAME@9557..95636554 IDENT@9567..9579 "__array_less"
6677 IDENT@9557..9563 "length"6555 PARAMS_DESC@9579..9591
6678 ARGS_DESC@9563..95686556 L_PAREN@9579..9580 "("
6679 L_PAREN@9563..9564 "("6557 PARAM@9580..9584
6680 ARG@9564..95676558 DESTRUCT_FULL@9580..9584
6681 EXPR_VAR@9564..95676559 NAME@9580..9584
6682 NAME@9564..95676560 IDENT@9580..9584 "arr1"
6683 IDENT@9564..9567 "arr"6561 COMMA@9584..9585 ","
6684 R_PAREN@9567..9568 ")"6562 WHITESPACE@9585..9586 " "
6685 WHITESPACE@9568..9569 " "6563 PARAM@9586..9590
6686 MINUS@9569..9570 "-"6564 DESTRUCT_FULL@9586..9590
6687 WHITESPACE@9570..9571 " "6565 NAME@9586..9590
6688 EXPR_NUMBER@9571..95726566 IDENT@9586..9590 "arr2"
6689 FLOAT@9571..9572 "1"6567 R_PAREN@9590..9591 ")"
6690 COMMA@9572..9573 ","6568 COLONCOLON@9591..9593 "::"
6691 WHITESPACE@9573..9574 " "6569 WHITESPACE@9593..9594 " "
6692 ARG@9574..95926570 EXPR_BINARY@9594..9631
6693 EXPR_FUNCTION@9574..95926571 LHS_EXPR@9594..9625
6694 FUNCTION_KW@9574..9582 "function"6572 EXPR_APPLY@9594..9625
6695 PARAMS_DESC@9582..95856573 EXPR_INDEX@9594..9613
6696 L_PAREN@9582..9583 "("6574 EXPR_VAR@9594..9597
6697 PARAM@9583..95846575 NAME@9594..9597
6698 DESTRUCT_FULL@9583..95846576 IDENT@9594..9597 "std"
6699 NAME@9583..95846577 DOT@9597..9598 "."
6700 IDENT@9583..9584 "i"6578 NAME@9598..9613
6701 R_PAREN@9584..9585 ")"6579 IDENT@9598..9613 "__compare_array"
6702 WHITESPACE@9585..9586 " "6580 ARGS_DESC@9613..9625
6703 EXPR_INDEX_EXPR@9586..95926581 L_PAREN@9613..9614 "("
6704 LHS_EXPR@9586..95896582 ARG@9614..9618
6705 EXPR_VAR@9586..95896583 EXPR_VAR@9614..9618
6706 NAME@9586..95896584 NAME@9614..9618
6707 IDENT@9586..9589 "arr"6585 IDENT@9614..9618 "arr1"
6708 L_BRACK@9589..9590 "["6586 COMMA@9618..9619 ","
6709 EXPR_VAR@9590..95916587 WHITESPACE@9619..9620 " "
6710 NAME@9590..95916588 ARG@9620..9624
6711 IDENT@9590..9591 "i"6589 EXPR_VAR@9620..9624
6712 R_BRACK@9591..9592 "]"6590 NAME@9620..9624
6713 R_PAREN@9592..9593 ")"6591 IDENT@9620..9624 "arr2"
6714 WHITESPACE@9593..9594 " "6592 R_PAREN@9624..9625 ")"
6715 PLUS@9594..9595 "+"
6716 WHITESPACE@9595..9596 " "
6717 EXPR_ARRAY@9596..9599
6718 L_BRACK@9596..9597 "["
6719 EXPR_VAR@9597..9598
6720 NAME@9597..9598
6721 IDENT@9597..9598 "r"
6722 R_BRACK@9598..9599 "]"
6723 R_PAREN@9599..9600 ")"
6724 COMMA@9600..9601 ","
6725 WHITESPACE@9601..9605 "\n\n "
6726 MEMBER_FIELD_METHOD@9605..10058
6727 FIELD_NAME_FIXED@9605..9610
6728 NAME@9605..9610
6729 IDENT@9605..9610 "prune"
6730 PARAMS_DESC@9610..9613
6731 L_PAREN@9610..9611 "("
6732 PARAM@9611..9612
6733 DESTRUCT_FULL@9611..9612
6734 NAME@9611..9612
6735 IDENT@9611..9612 "a"
6736 R_PAREN@9612..9613 ")"
6737 COLONCOLON@9613..9615 "::"
6738 WHITESPACE@9615..9620 "\n "
6739 EXPR_LOCAL@9620..10058
6740 LOCAL_KW@9620..9625 "local"
6741 WHITESPACE@9625..9626 " "6593 WHITESPACE@9625..9626 " "
6742 BIND_FUNCTION@9626..98236594 EQ@9626..9628 "=="
6743 NAME@9626..96356595 WHITESPACE@9628..9629 " "
6744 IDENT@9626..9635 "isContent"6596 EXPR_UNARY@9629..9631
6745 PARAMS_DESC@9635..96386597 MINUS@9629..9630 "-"
6746 L_PAREN@9635..9636 "("6598 EXPR_NUMBER@9630..9631
6747 PARAM@9636..96376599 FLOAT@9630..9631 "1"
6748 DESTRUCT_FULL@9636..96376600 COMMA@9631..9632 ","
6749 NAME@9636..96376601 WHITESPACE@9632..9635 "\n "
6750 IDENT@9636..9637 "b"6602 MEMBER_FIELD_METHOD@9635..9701
6751 R_PAREN@9637..9638 ")"6603 FIELD_NAME_FIXED@9635..9650
6752 WHITESPACE@9638..9639 " "6604 NAME@9635..9650
6753 ASSIGN@9639..9640 "="6605 IDENT@9635..9650 "__array_greater"
6754 WHITESPACE@9640..9647 "\n "6606 PARAMS_DESC@9650..9662
6755 EXPR_IF_THEN_ELSE@9647..98236607 L_PAREN@9650..9651 "("
6756 IF_KW@9647..9649 "if"6608 PARAM@9651..9655
6757 WHITESPACE@9649..9650 " "6609 DESTRUCT_FULL@9651..9655
6758 EXPR_BINARY@9650..96596610 NAME@9651..9655
6759 LHS_EXPR@9650..96516611 IDENT@9651..9655 "arr1"
6760 EXPR_VAR@9650..96516612 COMMA@9655..9656 ","
6761 NAME@9650..96516613 WHITESPACE@9656..9657 " "
6762 IDENT@9650..9651 "b"6614 PARAM@9657..9661
6763 WHITESPACE@9651..9652 " "6615 DESTRUCT_FULL@9657..9661
6764 EQ@9652..9654 "=="6616 NAME@9657..9661
6765 WHITESPACE@9654..9655 " "6617 IDENT@9657..9661 "arr2"
6766 EXPR_LITERAL@9655..96596618 R_PAREN@9661..9662 ")"
6767 NULL_KW@9655..9659 "null"6619 COLONCOLON@9662..9664 "::"
6768 WHITESPACE@9659..9660 " "6620 WHITESPACE@9664..9665 " "
6769 THEN_KW@9660..9664 "then"6621 EXPR_BINARY@9665..9701
6770 WHITESPACE@9664..9673 "\n "6622 LHS_EXPR@9665..9696
6771 TRUE_EXPR@9673..96786623 EXPR_APPLY@9665..9696
6772 EXPR_LITERAL@9673..96786624 EXPR_INDEX@9665..9684
6773 FALSE_KW@9673..9678 "false"6625 EXPR_VAR@9665..9668
6774 WHITESPACE@9678..9685 "\n "6626 NAME@9665..9668
6775 ELSE_KW@9685..9689 "else"6627 IDENT@9665..9668 "std"
6776 WHITESPACE@9689..9690 " "6628 DOT@9668..9669 "."
6777 FALSE_EXPR@9690..98236629 NAME@9669..9684
6778 EXPR_IF_THEN_ELSE@9690..98236630 IDENT@9669..9684 "__compare_array"
6779 IF_KW@9690..9692 "if"6631 ARGS_DESC@9684..9696
6780 WHITESPACE@9692..9693 " "6632 L_PAREN@9684..9685 "("
6781 EXPR_APPLY@9693..97076633 ARG@9685..9689
6782 EXPR_INDEX@9693..97046634 EXPR_VAR@9685..9689
6783 EXPR_VAR@9693..96966635 NAME@9685..9689
6784 NAME@9693..96966636 IDENT@9685..9689 "arr1"
6785 IDENT@9693..9696 "std"6637 COMMA@9689..9690 ","
6786 DOT@9696..9697 "."6638 WHITESPACE@9690..9691 " "
6787 NAME@9697..97046639 ARG@9691..9695
6788 IDENT@9697..9704 "isArray"6640 EXPR_VAR@9691..9695
6789 ARGS_DESC@9704..97076641 NAME@9691..9695
6790 L_PAREN@9704..9705 "("6642 IDENT@9691..9695 "arr2"
6791 ARG@9705..97066643 R_PAREN@9695..9696 ")"
6792 EXPR_VAR@9705..97066644 WHITESPACE@9696..9697 " "
6793 NAME@9705..97066645 EQ@9697..9699 "=="
6794 IDENT@9705..9706 "b"6646 WHITESPACE@9699..9700 " "
6795 R_PAREN@9706..9707 ")"6647 EXPR_NUMBER@9700..9701
6796 WHITESPACE@9707..9708 " "6648 FLOAT@9700..9701 "1"
6797 THEN_KW@9708..9712 "then"6649 COMMA@9701..9702 ","
6798 WHITESPACE@9712..9721 "\n "6650 WHITESPACE@9702..9705 "\n "
6799 TRUE_EXPR@9721..97386651 MEMBER_FIELD_METHOD@9705..9777
6800 EXPR_BINARY@9721..97386652 FIELD_NAME_FIXED@9705..9726
6801 LHS_EXPR@9721..97346653 NAME@9705..9726
6802 EXPR_APPLY@9721..97346654 IDENT@9705..9726 "__array_less_or_equal"
6803 EXPR_INDEX@9721..97316655 PARAMS_DESC@9726..9738
6804 EXPR_VAR@9721..97246656 L_PAREN@9726..9727 "("
6805 NAME@9721..97246657 PARAM@9727..9731
6806 IDENT@9721..9724 "std"6658 DESTRUCT_FULL@9727..9731
6807 DOT@9724..9725 "."6659 NAME@9727..9731
6808 NAME@9725..97316660 IDENT@9727..9731 "arr1"
6809 IDENT@9725..9731 "length"6661 COMMA@9731..9732 ","
6810 ARGS_DESC@9731..97346662 WHITESPACE@9732..9733 " "
6811 L_PAREN@9731..9732 "("6663 PARAM@9733..9737
6812 ARG@9732..97336664 DESTRUCT_FULL@9733..9737
6813 EXPR_VAR@9732..97336665 NAME@9733..9737
6814 NAME@9732..97336666 IDENT@9733..9737 "arr2"
6815 IDENT@9732..9733 "b"6667 R_PAREN@9737..9738 ")"
6816 R_PAREN@9733..9734 ")"6668 COLONCOLON@9738..9740 "::"
6817 WHITESPACE@9734..9735 " "6669 WHITESPACE@9740..9741 " "
6818 GT@9735..9736 ">"6670 EXPR_BINARY@9741..9777
6819 WHITESPACE@9736..9737 " "6671 LHS_EXPR@9741..9772
6820 EXPR_NUMBER@9737..97386672 EXPR_APPLY@9741..9772
6821 FLOAT@9737..9738 "0"6673 EXPR_INDEX@9741..9760
6822 WHITESPACE@9738..9745 "\n "6674 EXPR_VAR@9741..9744
6823 ELSE_KW@9745..9749 "else"6675 NAME@9741..9744
6824 WHITESPACE@9749..9750 " "6676 IDENT@9741..9744 "std"
6825 FALSE_EXPR@9750..98236677 DOT@9744..9745 "."
6826 EXPR_IF_THEN_ELSE@9750..98236678 NAME@9745..9760
6827 IF_KW@9750..9752 "if"6679 IDENT@9745..9760 "__compare_array"
6828 WHITESPACE@9752..9753 " "6680 ARGS_DESC@9760..9772
6829 EXPR_APPLY@9753..97686681 L_PAREN@9760..9761 "("
6830 EXPR_INDEX@9753..97656682 ARG@9761..9765
6831 EXPR_VAR@9753..97566683 EXPR_VAR@9761..9765
6832 NAME@9753..97566684 NAME@9761..9765
6833 IDENT@9753..9756 "std"6685 IDENT@9761..9765 "arr1"
6834 DOT@9756..9757 "."6686 COMMA@9765..9766 ","
6835 NAME@9757..97656687 WHITESPACE@9766..9767 " "
6836 IDENT@9757..9765 "isObject"6688 ARG@9767..9771
6837 ARGS_DESC@9765..97686689 EXPR_VAR@9767..9771
6838 L_PAREN@9765..9766 "("6690 NAME@9767..9771
6839 ARG@9766..97676691 IDENT@9767..9771 "arr2"
6840 EXPR_VAR@9766..97676692 R_PAREN@9771..9772 ")"
6841 NAME@9766..97676693 WHITESPACE@9772..9773 " "
6842 IDENT@9766..9767 "b"6694 LE@9773..9775 "<="
6843 R_PAREN@9767..9768 ")"6695 WHITESPACE@9775..9776 " "
6844 WHITESPACE@9768..9769 " "6696 EXPR_NUMBER@9776..9777
6845 THEN_KW@9769..9773 "then"6697 FLOAT@9776..9777 "0"
6846 WHITESPACE@9773..9782 "\n "6698 COMMA@9777..9778 ","
6847 TRUE_EXPR@9782..97996699 WHITESPACE@9778..9781 "\n "
6848 EXPR_BINARY@9782..97996700 MEMBER_FIELD_METHOD@9781..9856
6849 LHS_EXPR@9782..97956701 FIELD_NAME_FIXED@9781..9805
6850 EXPR_APPLY@9782..97956702 NAME@9781..9805
6851 EXPR_INDEX@9782..97926703 IDENT@9781..9805 "__array_greater_or_equal"
6852 EXPR_VAR@9782..97856704 PARAMS_DESC@9805..9817
6853 NAME@9782..97856705 L_PAREN@9805..9806 "("
6854 IDENT@9782..9785 "std"6706 PARAM@9806..9810
6855 DOT@9785..9786 "."6707 DESTRUCT_FULL@9806..9810
6856 NAME@9786..97926708 NAME@9806..9810
6857 IDENT@9786..9792 "length"6709 IDENT@9806..9810 "arr1"
6858 ARGS_DESC@9792..97956710 COMMA@9810..9811 ","
6859 L_PAREN@9792..9793 "("6711 WHITESPACE@9811..9812 " "
6860 ARG@9793..97946712 PARAM@9812..9816
6861 EXPR_VAR@9793..97946713 DESTRUCT_FULL@9812..9816
6862 NAME@9793..97946714 NAME@9812..9816
6863 IDENT@9793..9794 "b"6715 IDENT@9812..9816 "arr2"
6864 R_PAREN@9794..9795 ")"6716 R_PAREN@9816..9817 ")"
6865 WHITESPACE@9795..9796 " "6717 COLONCOLON@9817..9819 "::"
6866 GT@9796..9797 ">"6718 WHITESPACE@9819..9820 " "
6867 WHITESPACE@9797..9798 " "6719 EXPR_BINARY@9820..9856
6868 EXPR_NUMBER@9798..97996720 LHS_EXPR@9820..9851
6869 FLOAT@9798..9799 "0"6721 EXPR_APPLY@9820..9851
6870 WHITESPACE@9799..9806 "\n "6722 EXPR_INDEX@9820..9839
6871 ELSE_KW@9806..9810 "else"6723 EXPR_VAR@9820..9823
6872 WHITESPACE@9810..9819 "\n "6724 NAME@9820..9823
6873 FALSE_EXPR@9819..98236725 IDENT@9820..9823 "std"
6874 EXPR_LITERAL@9819..98236726 DOT@9823..9824 "."
6875 TRUE_KW@9819..9823 "true"6727 NAME@9824..9839
6876 SEMI@9823..9824 ";"6728 IDENT@9824..9839 "__compare_array"
6877 WHITESPACE@9824..9829 "\n "6729 ARGS_DESC@9839..9851
6878 EXPR_IF_THEN_ELSE@9829..100586730 L_PAREN@9839..9840 "("
6879 IF_KW@9829..9831 "if"6731 ARG@9840..9844
6880 WHITESPACE@9831..9832 " "6732 EXPR_VAR@9840..9844
6881 EXPR_APPLY@9832..98466733 NAME@9840..9844
6882 EXPR_INDEX@9832..98436734 IDENT@9840..9844 "arr1"
6883 EXPR_VAR@9832..98356735 COMMA@9844..9845 ","
6884 NAME@9832..98356736 WHITESPACE@9845..9846 " "
6885 IDENT@9832..9835 "std"6737 ARG@9846..9850
6886 DOT@9835..9836 "."6738 EXPR_VAR@9846..9850
6887 NAME@9836..98436739 NAME@9846..9850
6888 IDENT@9836..9843 "isArray"6740 IDENT@9846..9850 "arr2"
6889 ARGS_DESC@9843..98466741 R_PAREN@9850..9851 ")"
6890 L_PAREN@9843..9844 "("6742 WHITESPACE@9851..9852 " "
6891 ARG@9844..98456743 GE@9852..9854 ">="
6892 EXPR_VAR@9844..98456744 WHITESPACE@9854..9855 " "
6893 NAME@9844..98456745 EXPR_NUMBER@9855..9856
6894 IDENT@9844..9845 "a"6746 FLOAT@9855..9856 "0"
6895 R_PAREN@9845..9846 ")"6747 COMMA@9856..9857 ","
6896 WHITESPACE@9846..9847 " "6748 WHITESPACE@9857..9858 "\n"
6897 THEN_KW@9847..9851 "then"6749 R_BRACE@9858..9859 "}"
6898 WHITESPACE@9851..9858 "\n "6750 WHITESPACE@9859..9860 "\n"
6899 TRUE_EXPR@9858..9908
6900 EXPR_ARRAY_COMP@9858..9908
6901 L_BRACK@9858..9859 "["
6902 EXPR_APPLY@9859..9871
6903 EXPR_INDEX@9859..9868
6904 EXPR_VAR@9859..9862
6905 NAME@9859..9862
6906 IDENT@9859..9862 "std"
6907 DOT@9862..9863 "."
6908 NAME@9863..9868
6909 IDENT@9863..9868 "prune"
6910 ARGS_DESC@9868..9871
6911 L_PAREN@9868..9869 "("
6912 ARG@9869..9870
6913 EXPR_VAR@9869..9870
6914 NAME@9869..9870
6915 IDENT@9869..9870 "x"
6916 R_PAREN@9870..9871 ")"
6917 WHITESPACE@9871..9872 " "
6918 FOR_SPEC@9872..9882
6919 FOR_KW@9872..9875 "for"
6920 WHITESPACE@9875..9876 " "
6921 NAME@9876..9877
6922 IDENT@9876..9877 "x"
6923 WHITESPACE@9877..9878 " "
6924 IN_KW@9878..9880 "in"
6925 WHITESPACE@9880..9881 " "
6926 EXPR_VAR@9881..9882
6927 NAME@9881..9882
6928 IDENT@9881..9882 "a"
6929 WHITESPACE@9882..9883 " "
6930 IF_SPEC@9883..9907
6931 IF_KW@9883..9885 "if"
6932 WHITESPACE@9885..9886 " "
6933 EXPR_APPLY@9886..9907
6934 EXPR_VAR@9886..9895
6935 NAME@9886..9895
6936 IDENT@9886..9895 "isContent"
6937 ARGS_DESC@9895..9907
6938 L_PAREN@9895..9896 "("
6939 ARG@9896..9906
6940 EXPR_APPLY@9896..9906
6941 EXPR_INDEX@9896..9903
6942 EXPR_LITERAL@9896..9897
6943 DOLLAR@9896..9897 "$"
6944 DOT@9897..9898 "."
6945 NAME@9898..9903
6946 IDENT@9898..9903 "prune"
6947 ARGS_DESC@9903..9906
6948 L_PAREN@9903..9904 "("
6949 ARG@9904..9905
6950 EXPR_VAR@9904..9905
6951 NAME@9904..9905
6952 IDENT@9904..9905 "x"
6953 R_PAREN@9905..9906 ")"
6954 R_PAREN@9906..9907 ")"
6955 R_BRACK@9907..9908 "]"
6956 WHITESPACE@9908..9913 "\n "
6957 ELSE_KW@9913..9917 "else"
6958 WHITESPACE@9917..9918 " "
6959 FALSE_EXPR@9918..10058
6960 EXPR_IF_THEN_ELSE@9918..10058
6961 IF_KW@9918..9920 "if"
6962 WHITESPACE@9920..9921 " "
6963 EXPR_APPLY@9921..9936
6964 EXPR_INDEX@9921..9933
6965 EXPR_VAR@9921..9924
6966 NAME@9921..9924
6967 IDENT@9921..9924 "std"
6968 DOT@9924..9925 "."
6969 NAME@9925..9933
6970 IDENT@9925..9933 "isObject"
6971 ARGS_DESC@9933..9936
6972 L_PAREN@9933..9934 "("
6973 ARG@9934..9935
6974 EXPR_VAR@9934..9935
6975 NAME@9934..9935
6976 IDENT@9934..9935 "a"
6977 R_PAREN@9935..9936 ")"
6978 WHITESPACE@9936..9937 " "
6979 THEN_KW@9937..9941 "then"
6980 WHITESPACE@9941..9942 " "
6981 TRUE_EXPR@9942..10045
6982 EXPR_OBJECT@9942..10045
6983 OBJ_BODY_COMP@9942..10045
6984 L_BRACE@9942..9943 "{"
6985 WHITESPACE@9943..9950 "\n "
6986 MEMBER_FIELD_NORMAL@9950..9968
6987 FIELD_NAME_DYNAMIC@9950..9953
6988 L_BRACK@9950..9951 "["
6989 EXPR_VAR@9951..9952
6990 NAME@9951..9952
6991 IDENT@9951..9952 "x"
6992 R_BRACK@9952..9953 "]"
6993 COLON@9953..9954 ":"
6994 WHITESPACE@9954..9955 " "
6995 EXPR_APPLY@9955..9968
6996 EXPR_INDEX@9955..9962
6997 EXPR_LITERAL@9955..9956
6998 DOLLAR@9955..9956 "$"
6999 DOT@9956..9957 "."
7000 NAME@9957..9962
7001 IDENT@9957..9962 "prune"
7002 ARGS_DESC@9962..9968
7003 L_PAREN@9962..9963 "("
7004 ARG@9963..9967
7005 EXPR_INDEX_EXPR@9963..9967
7006 LHS_EXPR@9963..9964
7007 EXPR_VAR@9963..9964
7008 NAME@9963..9964
7009 IDENT@9963..9964 "a"
7010 L_BRACK@9964..9965 "["
7011 EXPR_VAR@9965..9966
7012 NAME@9965..9966
7013 IDENT@9965..9966 "x"
7014 R_BRACK@9966..9967 "]"
7015 R_PAREN@9967..9968 ")"
7016 WHITESPACE@9968..9975 "\n "
7017 FOR_SPEC@9975..10003
7018 FOR_KW@9975..9978 "for"
7019 WHITESPACE@9978..9979 " "
7020 NAME@9979..9980
7021 IDENT@9979..9980 "x"
7022 WHITESPACE@9980..9981 " "
7023 IN_KW@9981..9983 "in"
7024 WHITESPACE@9983..9984 " "
7025 EXPR_APPLY@9984..10003
7026 EXPR_INDEX@9984..10000
7027 EXPR_VAR@9984..9987
7028 NAME@9984..9987
7029 IDENT@9984..9987 "std"
7030 DOT@9987..9988 "."
7031 NAME@9988..10000
7032 IDENT@9988..10000 "objectFields"
7033 ARGS_DESC@10000..10003
7034 L_PAREN@10000..10001 "("
7035 ARG@10001..10002
7036 EXPR_VAR@10001..10002
7037 NAME@10001..10002
7038 IDENT@10001..10002 "a"
7039 R_PAREN@10002..10003 ")"
7040 WHITESPACE@10003..10010 "\n "
7041 IF_SPEC@10010..10039
7042 IF_KW@10010..10012 "if"
7043 WHITESPACE@10012..10013 " "
7044 EXPR_APPLY@10013..10039
7045 EXPR_VAR@10013..10022
7046 NAME@10013..10022
7047 IDENT@10013..10022 "isContent"
7048 ARGS_DESC@10022..10039
7049 L_PAREN@10022..10023 "("
7050 ARG@10023..10038
7051 EXPR_APPLY@10023..10038
7052 EXPR_INDEX@10023..10032
7053 EXPR_VAR@10023..10026
7054 NAME@10023..10026
7055 IDENT@10023..10026 "std"
7056 DOT@10026..10027 "."
7057 NAME@10027..10032
7058 IDENT@10027..10032 "prune"
7059 ARGS_DESC@10032..10038
7060 L_PAREN@10032..10033 "("
7061 ARG@10033..10037
7062 EXPR_INDEX_EXPR@10033..10037
7063 LHS_EXPR@10033..10034
7064 EXPR_VAR@10033..10034
7065 NAME@10033..10034
7066 IDENT@10033..10034 "a"
7067 L_BRACK@10034..10035 "["
7068 EXPR_VAR@10035..10036
7069 NAME@10035..10036
7070 IDENT@10035..10036 "x"
7071 R_BRACK@10036..10037 "]"
7072 R_PAREN@10037..10038 ")"
7073 R_PAREN@10038..10039 ")"
7074 WHITESPACE@10039..10044 "\n "
7075 R_BRACE@10044..10045 "}"
7076 WHITESPACE@10045..10046 " "
7077 ELSE_KW@10046..10050 "else"
7078 WHITESPACE@10050..10057 "\n "
7079 FALSE_EXPR@10057..10058
7080 EXPR_VAR@10057..10058
7081 NAME@10057..10058
7082 IDENT@10057..10058 "a"
7083 COMMA@10058..10059 ","
7084 WHITESPACE@10059..10063 "\n\n "
7085 MEMBER_FIELD_METHOD@10063..10278
7086 FIELD_NAME_FIXED@10063..10067
7087 NAME@10063..10067
7088 IDENT@10063..10067 "find"
7089 PARAMS_DESC@10067..10079
7090 L_PAREN@10067..10068 "("
7091 PARAM@10068..10073
7092 DESTRUCT_FULL@10068..10073
7093 NAME@10068..10073
7094 IDENT@10068..10073 "value"
7095 COMMA@10073..10074 ","
7096 WHITESPACE@10074..10075 " "
7097 PARAM@10075..10078
7098 DESTRUCT_FULL@10075..10078
7099 NAME@10075..10078
7100 IDENT@10075..10078 "arr"
7101 R_PAREN@10078..10079 ")"
7102 COLONCOLON@10079..10081 "::"
7103 WHITESPACE@10081..10086 "\n "
7104 EXPR_IF_THEN_ELSE@10086..10278
7105 IF_KW@10086..10088 "if"
7106 WHITESPACE@10088..10089 " "
7107 EXPR_UNARY@10089..10106
7108 NOT@10089..10090 "!"
7109 EXPR_APPLY@10090..10106
7110 EXPR_INDEX@10090..10101
7111 EXPR_VAR@10090..10093
7112 NAME@10090..10093
7113 IDENT@10090..10093 "std"
7114 DOT@10093..10094 "."
7115 NAME@10094..10101
7116 IDENT@10094..10101 "isArray"
7117 ARGS_DESC@10101..10106
7118 L_PAREN@10101..10102 "("
7119 ARG@10102..10105
7120 EXPR_VAR@10102..10105
7121 NAME@10102..10105
7122 IDENT@10102..10105 "arr"
7123 R_PAREN@10105..10106 ")"
7124 WHITESPACE@10106..10107 " "
7125 THEN_KW@10107..10111 "then"
7126 WHITESPACE@10111..10118 "\n "
7127 TRUE_EXPR@10118..10188
7128 EXPR_ERROR@10118..10188
7129 ERROR_KW@10118..10123 "error"
7130 WHITESPACE@10123..10124 " "
7131 EXPR_BINARY@10124..10188
7132 LHS_EXPR@10124..10172
7133 EXPR_STRING@10124..10172
7134 STRING_SINGLE@10124..10172 "'find second paramete ..."
7135 WHITESPACE@10172..10173 " "
7136 PLUS@10173..10174 "+"
7137 WHITESPACE@10174..10175 " "
7138 EXPR_APPLY@10175..10188
7139 EXPR_INDEX@10175..10183
7140 EXPR_VAR@10175..10178
7141 NAME@10175..10178
7142 IDENT@10175..10178 "std"
7143 DOT@10178..10179 "."
7144 NAME@10179..10183
7145 IDENT@10179..10183 "type"
7146 ARGS_DESC@10183..10188
7147 L_PAREN@10183..10184 "("
7148 ARG@10184..10187
7149 EXPR_VAR@10184..10187
7150 NAME@10184..10187
7151 IDENT@10184..10187 "arr"
7152 R_PAREN@10187..10188 ")"
7153 WHITESPACE@10188..10193 "\n "
7154 ELSE_KW@10193..10197 "else"
7155 WHITESPACE@10197..10204 "\n "
7156 FALSE_EXPR@10204..10278
7157 EXPR_APPLY@10204..10278
7158 EXPR_INDEX@10204..10214
7159 EXPR_VAR@10204..10207
7160 NAME@10204..10207
7161 IDENT@10204..10207 "std"
7162 DOT@10207..10208 "."
7163 NAME@10208..10214
7164 IDENT@10208..10214 "filter"
7165 ARGS_DESC@10214..10278
7166 L_PAREN@10214..10215 "("
7167 ARG@10215..10242
7168 EXPR_FUNCTION@10215..10242
7169 FUNCTION_KW@10215..10223 "function"
7170 PARAMS_DESC@10223..10226
7171 L_PAREN@10223..10224 "("
7172 PARAM@10224..10225
7173 DESTRUCT_FULL@10224..10225
7174 NAME@10224..10225
7175 IDENT@10224..10225 "i"
7176 R_PAREN@10225..10226 ")"
7177 WHITESPACE@10226..10227 " "
7178 EXPR_BINARY@10227..10242
7179 LHS_EXPR@10227..10233
7180 EXPR_INDEX_EXPR@10227..10233
7181 LHS_EXPR@10227..10230
7182 EXPR_VAR@10227..10230
7183 NAME@10227..10230
7184 IDENT@10227..10230 "arr"
7185 L_BRACK@10230..10231 "["
7186 EXPR_VAR@10231..10232
7187 NAME@10231..10232
7188 IDENT@10231..10232 "i"
7189 R_BRACK@10232..10233 "]"
7190 WHITESPACE@10233..10234 " "
7191 EQ@10234..10236 "=="
7192 WHITESPACE@10236..10237 " "
7193 EXPR_VAR@10237..10242
7194 NAME@10237..10242
7195 IDENT@10237..10242 "value"
7196 COMMA@10242..10243 ","
7197 WHITESPACE@10243..10244 " "
7198 ARG@10244..10277
7199 EXPR_APPLY@10244..10277
7200 EXPR_INDEX@10244..10253
7201 EXPR_VAR@10244..10247
7202 NAME@10244..10247
7203 IDENT@10244..10247 "std"
7204 DOT@10247..10248 "."
7205 NAME@10248..10253
7206 IDENT@10248..10253 "range"
7207 ARGS_DESC@10253..10277
7208 L_PAREN@10253..10254 "("
7209 ARG@10254..10255
7210 EXPR_NUMBER@10254..10255
7211 FLOAT@10254..10255 "0"
7212 COMMA@10255..10256 ","
7213 WHITESPACE@10256..10257 " "
7214 ARG@10257..10276
7215 EXPR_BINARY@10257..10276
7216 LHS_EXPR@10257..10272
7217 EXPR_APPLY@10257..10272
7218 EXPR_INDEX@10257..10267
7219 EXPR_VAR@10257..10260
7220 NAME@10257..10260
7221 IDENT@10257..10260 "std"
7222 DOT@10260..10261 "."
7223 NAME@10261..10267
7224 IDENT@10261..10267 "length"
7225 ARGS_DESC@10267..10272
7226 L_PAREN@10267..10268 "("
7227 ARG@10268..10271
7228 EXPR_VAR@10268..10271
7229 NAME@10268..10271
7230 IDENT@10268..10271 "arr"
7231 R_PAREN@10271..10272 ")"
7232 WHITESPACE@10272..10273 " "
7233 MINUS@10273..10274 "-"
7234 WHITESPACE@10274..10275 " "
7235 EXPR_NUMBER@10275..10276
7236 FLOAT@10275..10276 "1"
7237 R_PAREN@10276..10277 ")"
7238 R_PAREN@10277..10278 ")"
7239 COMMA@10278..10279 ","
7240 WHITESPACE@10279..10280 "\n"
7241 R_BRACE@10280..10281 "}"
7242 WHITESPACE@10281..10282 "\n"
72436751
modifiedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__unexpected_destruct.snapdiffbeforeafterboth
3expression: "local * = 1;\na\n"3expression: "local * = 1;\na\n"
4---4---
5SOURCE_FILE@0..155SOURCE_FILE@0..15
6 EXPR_LOCAL@0..146 STMT_LOCAL@0..12
7 LOCAL_KW@0..5 "local"7 LOCAL_KW@0..5 "local"
8 WHITESPACE@5..6 " "8 WHITESPACE@5..6 " "
9 BIND_DESTRUCT@6..119 BIND_DESTRUCT@6..11
15 EXPR_NUMBER@10..1115 EXPR_NUMBER@10..11
16 FLOAT@10..11 "1"16 FLOAT@10..11 "1"
17 SEMI@11..12 ";"17 SEMI@11..12 ";"
18 WHITESPACE@12..13 "\n"18 WHITESPACE@12..13 "\n"
19 EXPR_VAR@13..1419 EXPR_VAR@13..14
20 NAME@13..1420 NAME@13..14
21 IDENT@13..14 "a"21 IDENT@13..14 "a"
22 WHITESPACE@14..15 "\n"22 WHITESPACE@14..15 "\n"
23===23===
24LocatedSyntaxError { error: Unexpected { expected: Named("destruction specifier"), found: MUL }, range: 6..7 }24LocatedSyntaxError { error: Unexpected { expected: Named("destruction specifier"), found: MUL }, range: 6..7 }
modifiedcrates/jrsonnet-rowan-parser/src/tests.rsdiffbeforeafterboth
244 let result = process(src);244 let result = process(src);
245 insta::assert_snapshot!("stdlib", result, src);245 insta::assert_snapshot!("stdlib", result, src);
246}246}
247#[test]
248fn eval_simple() {
249 let src = "local a = 1, b = 2; a + local c = 1; c";
250 let (node, errors) = parse(src);
251
252 dbg!(node);
253}
247254
modifiedflake.nixdiffbeforeafterboth
132 cargo-asm132 cargo-asm
133 cargo-outdated133 cargo-outdated
134 cargo-watch134 cargo-watch
135 cargo-insta
135 lld136 lld
136 hyperfine137 hyperfine
137 graphviz138 graphviz