Skip to content

Commit 31cec68

Browse files
committed
refactor: change operator order to origin
1 parent 8174654 commit 31cec68

File tree

9 files changed

+54
-137
lines changed

9 files changed

+54
-137
lines changed

pegjs/bigquery.pegjs

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2002,28 +2002,18 @@ binary_column_expr
20022002
}
20032003
return result
20042004
}
2005-
20062005
or_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 === ',') {

pegjs/db2.pegjs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1565,26 +1565,17 @@ binary_column_expr
15651565
}
15661566

15671567
or_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 === ',') {

pegjs/flinksql.pegjs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2065,26 +2065,17 @@ binary_column_expr
20652065
}
20662066

20672067
or_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 === ',') {

pegjs/hive.pegjs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1570,26 +1570,17 @@ binary_column_expr
15701570
}
15711571

15721572
or_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 === ',') {

pegjs/mariadb.pegjs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1877,26 +1877,17 @@ binary_column_expr
18771877
}
18781878

18791879
or_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 === ',') {

pegjs/mysql.pegjs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2186,26 +2186,17 @@ binary_column_expr
21862186
}
21872187

21882188
or_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 === ',') {

pegjs/postgresql.pegjs

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2550,27 +2550,18 @@ binary_column_expr
25502550
}
25512551

25522552
or_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-
25852575
or_expr
25862576
= head:and_expr tail:(___ KW_OR __ and_expr)* {
25872577
// => binary_expr

pegjs/sqlite.pegjs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1612,26 +1612,17 @@ binary_column_expr
16121612
}
16131613

16141614
or_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 === ',') {

pegjs/transactsql.pegjs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1872,26 +1872,17 @@ binary_column_expr
18721872
}
18731873

18741874
or_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 === ',') {

0 commit comments

Comments
 (0)