File tree Expand file tree Collapse file tree 9 files changed +54
-137
lines changed
Expand file tree Collapse file tree 9 files changed +54
-137
lines changed Original file line number Diff line number Diff line change @@ -2002,28 +2002,18 @@ binary_column_expr
20022002 }
20032003 return result
20042004 }
2005-
20062005or_and_where_expr
2007- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
2008- let result = head
2009- let seperator = ' '
2006+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
20102007 const len = tail .length
2011- let i = 0
2012- while (i < len) {
2008+ let result = head;
2009+ let seperator = ' '
2010+ for (let i = 0 ; i < len; ++ i) {
20132011 if (tail[i][1 ] === ' ,' ) {
20142012 seperator = ' ,'
20152013 if (! Array .isArray (result)) result = [result]
2016- result .push (tail[i++ ][3 ])
2014+ result .push (tail[i][3 ])
20172015 } else {
2018- let lastBinaryIndex = i
2019- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
2020- let temp = tail[lastBinaryIndex - 1 ][3 ]
2021- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
2022- const left = j === 0 ? head : tail[j - 1 ][3 ]
2023- temp = createBinaryExpr (tail[j][1 ], left, temp)
2024- }
2025- result = temp
2026- i = lastBinaryIndex
2016+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
20272017 }
20282018 }
20292019 if (seperator === ' ,' ) {
Original file line number Diff line number Diff line change @@ -1565,26 +1565,17 @@ binary_column_expr
15651565 }
15661566
15671567or_and_where_expr
1568- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
1569- let result = head
1570- let seperator = ' '
1568+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
15711569 const len = tail .length
1572- let i = 0
1573- while (i < len) {
1570+ let result = head;
1571+ let seperator = ' '
1572+ for (let i = 0 ; i < len; ++ i) {
15741573 if (tail[i][1 ] === ' ,' ) {
15751574 seperator = ' ,'
15761575 if (! Array .isArray (result)) result = [result]
1577- result .push (tail[i++ ][3 ])
1576+ result .push (tail[i][3 ])
15781577 } else {
1579- let lastBinaryIndex = i
1580- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
1581- let temp = tail[lastBinaryIndex - 1 ][3 ]
1582- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
1583- const left = j === 0 ? head : tail[j - 1 ][3 ]
1584- temp = createBinaryExpr (tail[j][1 ], left, temp)
1585- }
1586- result = temp
1587- i = lastBinaryIndex
1578+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
15881579 }
15891580 }
15901581 if (seperator === ' ,' ) {
Original file line number Diff line number Diff line change @@ -2065,26 +2065,17 @@ binary_column_expr
20652065 }
20662066
20672067or_and_where_expr
2068- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
2069- let result = head
2070- let seperator = ' '
2068+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
20712069 const len = tail .length
2072- let i = 0
2073- while (i < len) {
2070+ let result = head;
2071+ let seperator = ' '
2072+ for (let i = 0 ; i < len; ++ i) {
20742073 if (tail[i][1 ] === ' ,' ) {
20752074 seperator = ' ,'
20762075 if (! Array .isArray (result)) result = [result]
2077- result .push (tail[i++ ][3 ])
2076+ result .push (tail[i][3 ])
20782077 } else {
2079- let lastBinaryIndex = i
2080- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
2081- let temp = tail[lastBinaryIndex - 1 ][3 ]
2082- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
2083- const left = j === 0 ? head : tail[j - 1 ][3 ]
2084- temp = createBinaryExpr (tail[j][1 ], left, temp)
2085- }
2086- result = temp
2087- i = lastBinaryIndex
2078+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
20882079 }
20892080 }
20902081 if (seperator === ' ,' ) {
Original file line number Diff line number Diff line change @@ -1570,26 +1570,17 @@ binary_column_expr
15701570 }
15711571
15721572or_and_where_expr
1573- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
1574- let result = head
1575- let seperator = ' '
1573+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
15761574 const len = tail .length
1577- let i = 0
1578- while (i < len) {
1575+ let result = head;
1576+ let seperator = ' '
1577+ for (let i = 0 ; i < len; ++ i) {
15791578 if (tail[i][1 ] === ' ,' ) {
15801579 seperator = ' ,'
15811580 if (! Array .isArray (result)) result = [result]
1582- result .push (tail[i++ ][3 ])
1581+ result .push (tail[i][3 ])
15831582 } else {
1584- let lastBinaryIndex = i
1585- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
1586- let temp = tail[lastBinaryIndex - 1 ][3 ]
1587- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
1588- const left = j === 0 ? head : tail[j - 1 ][3 ]
1589- temp = createBinaryExpr (tail[j][1 ], left, temp)
1590- }
1591- result = temp
1592- i = lastBinaryIndex
1583+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
15931584 }
15941585 }
15951586 if (seperator === ' ,' ) {
Original file line number Diff line number Diff line change @@ -1877,26 +1877,17 @@ binary_column_expr
18771877 }
18781878
18791879or_and_where_expr
1880- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
1881- let result = head
1882- let seperator = ' '
1880+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
18831881 const len = tail .length
1884- let i = 0
1885- while (i < len) {
1882+ let result = head;
1883+ let seperator = ' '
1884+ for (let i = 0 ; i < len; ++ i) {
18861885 if (tail[i][1 ] === ' ,' ) {
18871886 seperator = ' ,'
18881887 if (! Array .isArray (result)) result = [result]
1889- result .push (tail[i++ ][3 ])
1888+ result .push (tail[i][3 ])
18901889 } else {
1891- let lastBinaryIndex = i
1892- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
1893- let temp = tail[lastBinaryIndex - 1 ][3 ]
1894- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
1895- const left = j === 0 ? head : tail[j - 1 ][3 ]
1896- temp = createBinaryExpr (tail[j][1 ], left, temp)
1897- }
1898- result = temp
1899- i = lastBinaryIndex
1890+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
19001891 }
19011892 }
19021893 if (seperator === ' ,' ) {
Original file line number Diff line number Diff line change @@ -2186,26 +2186,17 @@ binary_column_expr
21862186 }
21872187
21882188or_and_where_expr
2189- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
2190- let result = head
2191- let seperator = ' '
2189+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
21922190 const len = tail .length
2193- let i = 0
2194- while (i < len) {
2191+ let result = head;
2192+ let seperator = ' '
2193+ for (let i = 0 ; i < len; ++ i) {
21952194 if (tail[i][1 ] === ' ,' ) {
21962195 seperator = ' ,'
21972196 if (! Array .isArray (result)) result = [result]
2198- result .push (tail[i++ ][3 ])
2197+ result .push (tail[i][3 ])
21992198 } else {
2200- let lastBinaryIndex = i
2201- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
2202- let temp = tail[lastBinaryIndex - 1 ][3 ]
2203- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
2204- const left = j === 0 ? head : tail[j - 1 ][3 ]
2205- temp = createBinaryExpr (tail[j][1 ], left, temp)
2206- }
2207- result = temp
2208- i = lastBinaryIndex
2199+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
22092200 }
22102201 }
22112202 if (seperator === ' ,' ) {
Original file line number Diff line number Diff line change @@ -2550,27 +2550,18 @@ binary_column_expr
25502550 }
25512551
25522552or_and_where_expr
2553- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
2553+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
25542554 // => binary_expr | { type: 'expr_list'; value: expr[] }
2555- let result = head
2556- let seperator = ' '
25572555 const len = tail .length
2558- let i = 0
2559- while (i < len) {
2556+ let result = head;
2557+ let seperator = ' '
2558+ for (let i = 0 ; i < len; ++ i) {
25602559 if (tail[i][1 ] === ' ,' ) {
25612560 seperator = ' ,'
25622561 if (! Array .isArray (result)) result = [result]
2563- result .push (tail[i++ ][3 ])
2562+ result .push (tail[i][3 ])
25642563 } else {
2565- let lastBinaryIndex = i
2566- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
2567- let temp = tail[lastBinaryIndex - 1 ][3 ]
2568- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
2569- const left = j === 0 ? head : tail[j - 1 ][3 ]
2570- temp = createBinaryExpr (tail[j][1 ], left, temp)
2571- }
2572- result = temp
2573- i = lastBinaryIndex
2564+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
25742565 }
25752566 }
25762567 if (seperator === ' ,' ) {
@@ -2581,7 +2572,6 @@ or_and_where_expr
25812572 return result
25822573 }
25832574
2584-
25852575or_expr
25862576 = head :and_expr tail :(___ KW_OR __ and_expr )* {
25872577 // => binary_expr
Original file line number Diff line number Diff line change @@ -1612,26 +1612,17 @@ binary_column_expr
16121612 }
16131613
16141614or_and_where_expr
1615- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
1616- let result = head
1617- let seperator = ' '
1615+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
16181616 const len = tail .length
1619- let i = 0
1620- while (i < len) {
1617+ let result = head;
1618+ let seperator = ' '
1619+ for (let i = 0 ; i < len; ++ i) {
16211620 if (tail[i][1 ] === ' ,' ) {
16221621 seperator = ' ,'
16231622 if (! Array .isArray (result)) result = [result]
1624- result .push (tail[i++ ][3 ])
1623+ result .push (tail[i][3 ])
16251624 } else {
1626- let lastBinaryIndex = i
1627- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
1628- let temp = tail[lastBinaryIndex - 1 ][3 ]
1629- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
1630- const left = j === 0 ? head : tail[j - 1 ][3 ]
1631- temp = createBinaryExpr (tail[j][1 ], left, temp)
1632- }
1633- result = temp
1634- i = lastBinaryIndex
1625+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
16351626 }
16361627 }
16371628 if (seperator === ' ,' ) {
Original file line number Diff line number Diff line change @@ -1872,26 +1872,17 @@ binary_column_expr
18721872 }
18731873
18741874or_and_where_expr
1875- = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
1876- let result = head
1877- let seperator = ' '
1875+ = head :expr tail :(__ (KW_AND / KW_OR / COMMA ) __ expr )* {
18781876 const len = tail .length
1879- let i = 0
1880- while (i < len) {
1877+ let result = head;
1878+ let seperator = ' '
1879+ for (let i = 0 ; i < len; ++ i) {
18811880 if (tail[i][1 ] === ' ,' ) {
18821881 seperator = ' ,'
18831882 if (! Array .isArray (result)) result = [result]
1884- result .push (tail[i++ ][3 ])
1883+ result .push (tail[i][3 ])
18851884 } else {
1886- let lastBinaryIndex = i
1887- while (lastBinaryIndex < len && tail[lastBinaryIndex][1 ] !== ' ,' ) lastBinaryIndex++
1888- let temp = tail[lastBinaryIndex - 1 ][3 ]
1889- for (let j = lastBinaryIndex - 1 ; j >= i; -- j) {
1890- const left = j === 0 ? head : tail[j - 1 ][3 ]
1891- temp = createBinaryExpr (tail[j][1 ], left, temp)
1892- }
1893- result = temp
1894- i = lastBinaryIndex
1885+ result = createBinaryExpr (tail[i][1 ], result, tail[i][3 ]);
18951886 }
18961887 }
18971888 if (seperator === ' ,' ) {
You can’t perform that action at this time.
0 commit comments