Skip to content

Commit 66f9ccb

Browse files
authored
Merge pull request #2118 from undb-io/release/v1.0.0-112
Release version v1.0.0-112
2 parents 97d49a5 + b9b59dc commit 66f9ccb

File tree

16 files changed

+832
-918
lines changed

16 files changed

+832
-918
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Changelog
22

3+
## v1.0.0-112
4+
5+
6+
### 🩹 Fixes
7+
8+
- Remove antlr4ts ([13eaa3d](https://github.com/undb-io/undb/commit/13eaa3d))
9+
10+
### ❤️ Contributors
11+
12+
- Nichenqin ([@nichenqin](http://github.com/nichenqin))
13+
314
## v1.0.0-111
415

516

apps/frontend/src/lib/components/formula/formula-cursor.visitor.ts

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import {
2-
AbstractParseTreeVisitor,
32
AddSubExprContext,
43
AndExprContext,
54
ArgumentListContext,
@@ -16,7 +15,7 @@ import {
1615
VariableContext,
1716
} from "@undb/formula"
1817

19-
export class FormulaCursorVisitor extends AbstractParseTreeVisitor<void> implements FormulaParserVisitor<void> {
18+
export class FormulaCursorVisitor extends FormulaParserVisitor<void> {
2019
private pathNodes: ParseTree[] = []
2120
private variables: Set<string> = new Set()
2221
public readonly targetPosition: number
@@ -46,7 +45,7 @@ export class FormulaCursorVisitor extends AbstractParseTreeVisitor<void> impleme
4645

4746
public getFunctionName(): string | undefined {
4847
const functionCall = this.getNearestFunctionNode()
49-
return functionCall?.IDENTIFIER()?.text
48+
return functionCall?.IDENTIFIER().getText()
5049
}
5150

5251
protected defaultResult(): void {
@@ -60,8 +59,8 @@ export class FormulaCursorVisitor extends AbstractParseTreeVisitor<void> impleme
6059
visitPositionInRange(ctx: ExpressionContext) {
6160
if (!ctx.start || !ctx.stop) return
6261

63-
const start = ctx.start.startIndex
64-
const stop = ctx.stop.stopIndex
62+
const start = ctx.start.tokenIndex
63+
const stop = ctx.stop.tokenIndex
6564
const isPositionWithinRange = start <= this.targetPosition && stop >= this.targetPosition
6665

6766
if (isPositionWithinRange) {
@@ -70,48 +69,48 @@ export class FormulaCursorVisitor extends AbstractParseTreeVisitor<void> impleme
7069
}
7170
}
7271

73-
visitFormula(ctx: FormulaContext) {
72+
visitFormula = (ctx: FormulaContext) => {
7473
this.visitPositionInRange(ctx)
7574
}
7675

77-
visitComparisonExpr(ctx: ComparisonExprContext) {
76+
visitComparisonExpr = (ctx: ComparisonExprContext) => {
7877
this.visitPositionInRange(ctx)
7978
}
8079

81-
visitAndExpr(ctx: AndExprContext) {
80+
visitAndExpr = (ctx: AndExprContext) => {
8281
this.visitPositionInRange(ctx)
8382
}
8483

85-
visitOrExpr(ctx: OrExprContext) {
84+
visitOrExpr = (ctx: OrExprContext) => {
8685
this.visitPositionInRange(ctx)
8786
}
8887

89-
visitNotExpr(ctx: NotExprContext) {
88+
visitNotExpr = (ctx: NotExprContext) => {
9089
this.visitPositionInRange(ctx)
9190
}
9291

93-
visitMulDivModExpr(ctx: MulDivModExprContext) {
92+
visitMulDivModExpr = (ctx: MulDivModExprContext) => {
9493
this.visitPositionInRange(ctx)
9594
}
9695

97-
visitAddSubExpr(ctx: AddSubExprContext) {
96+
visitAddSubExpr = (ctx: AddSubExprContext) => {
9897
this.visitPositionInRange(ctx)
9998
}
10099

101-
visitFunctionExpr(ctx: FunctionExprContext) {
100+
visitFunctionExpr = (ctx: FunctionExprContext) => {
102101
this.visitPositionInRange(ctx)
103102
}
104103

105-
visitFunctionCall(ctx: FunctionCallContext) {
104+
visitFunctionCall = (ctx: FunctionCallContext) => {
106105
this.visitPositionInRange(ctx)
107106
}
108107

109-
visitArgumentList(ctx: ArgumentListContext) {
108+
visitArgumentList = (ctx: ArgumentListContext) => {
110109
this.visitPositionInRange(ctx)
111110
}
112111

113-
visitVariable(ctx: VariableContext) {
114-
this.variables.add(ctx.IDENTIFIER().text)
112+
visitVariable = (ctx: VariableContext) => {
113+
this.variables.add(ctx.IDENTIFIER().getText())
115114
this.visitPositionInRange(ctx)
116115
}
117116
}

bun.lockb

-328 Bytes
Binary file not shown.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "undb",
3-
"version": "1.0.0-111",
3+
"version": "1.0.0-112",
44
"private": true,
55
"scripts": {
66
"build": "NODE_ENV=production bun --bun turbo build",

packages/formula/package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@
44
"type": "module",
55
"types": "src/index.d.ts",
66
"devDependencies": {
7-
"@types/bun": "latest",
8-
"antlr4ts-cli": "^0.5.0-alpha.4"
7+
"@types/bun": "latest"
98
},
109
"peerDependencies": {
1110
"typescript": "^5.0.0"
1211
},
1312
"dependencies": {
1413
"@undb/zod": "*",
15-
"antlr4ts": "^0.5.0-alpha.4"
14+
"antlr4": "^4.13.2"
1615
},
1716
"scripts": {
1817
"generate-parser": "bun run scripts/generate-parser.ts",
19-
"generate": "bun generate-parser"
18+
"generate": "bun run generate-parser"
2019
}
2120
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import { $ } from "bun"
22

3-
await $`antlr4ts -visitor -no-listener src/grammar/*.g4`
3+
await $`antlr -Dlanguage=TypeScript -visitor -no-listener src/grammar/*.g4`

packages/formula/src/formula.visitor.ts

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { AbstractParseTreeVisitor } from "antlr4ts/tree/AbstractParseTreeVisitor"
21
import { FormulaFunction } from "./formula/formula.type"
32
import { globalFunctionRegistry } from "./formula/registry"
43
import {
@@ -18,7 +17,7 @@ import {
1817
VariableContext,
1918
VariableExprContext,
2019
} from "./grammar/FormulaParser"
21-
import type { FormulaParserVisitor } from "./grammar/FormulaParserVisitor"
20+
import FormulaParserVisitor from "./grammar/FormulaParserVisitor"
2221
import {
2322
ArgumentListResult,
2423
ReturnType,
@@ -28,10 +27,7 @@ import {
2827
type VariableResult,
2928
} from "./types"
3029

31-
export class FormulaVisitor
32-
extends AbstractParseTreeVisitor<ExpressionResult>
33-
implements FormulaParserVisitor<ExpressionResult>
34-
{
30+
export class FormulaVisitor extends FormulaParserVisitor<ExpressionResult> {
3531
private variables: Set<string> = new Set()
3632

3733
private assertType(result: ExpressionResult, types: ReturnType[]): boolean {
@@ -53,11 +49,11 @@ export class FormulaVisitor
5349
return true
5450
}
5551

56-
visitFormula(ctx: FormulaContext): ExpressionResult {
52+
visitFormula = (ctx: FormulaContext): ExpressionResult => {
5753
return this.visit(ctx.expression())
5854
}
5955

60-
visitMulDivModExpr(ctx: MulDivModExprContext): ExpressionResult {
56+
visitMulDivModExpr = (ctx: MulDivModExprContext): ExpressionResult => {
6157
const left = this.visit(ctx.expression(0)) as NumberResult | VariableResult
6258
const right = this.visit(ctx.expression(1)) as NumberResult | VariableResult
6359

@@ -70,11 +66,11 @@ export class FormulaVisitor
7066
name: op,
7167
arguments: [left, right],
7268
returnType: "number",
73-
value: ctx.text,
69+
value: ctx.getText(),
7470
}
7571
}
7672

77-
visitAddSubExpr(ctx: AddSubExprContext): ExpressionResult {
73+
visitAddSubExpr = (ctx: AddSubExprContext): ExpressionResult => {
7874
const left = this.visit(ctx.expression(0)) as NumberResult | VariableResult
7975
const right = this.visit(ctx.expression(1)) as NumberResult | VariableResult
8076

@@ -87,11 +83,11 @@ export class FormulaVisitor
8783
name: op,
8884
arguments: [left, right],
8985
returnType: "number",
90-
value: ctx.text,
86+
value: ctx.getText(),
9187
}
9288
}
9389

94-
visitComparisonExpr(ctx: ComparisonExprContext): ExpressionResult {
90+
visitComparisonExpr = (ctx: ComparisonExprContext): ExpressionResult => {
9591
const left = this.visit(ctx.expression(0))
9692
const right = this.visit(ctx.expression(1))
9793

@@ -104,11 +100,11 @@ export class FormulaVisitor
104100
name: op,
105101
arguments: [left, right],
106102
returnType: "boolean",
107-
value: ctx.text,
103+
value: ctx.getText(),
108104
}
109105
}
110106

111-
visitAndExpr(ctx: AndExprContext): ExpressionResult {
107+
visitAndExpr = (ctx: AndExprContext): ExpressionResult => {
112108
const left = this.visit(ctx.expression(0))
113109
const right = this.visit(ctx.expression(1))
114110

@@ -120,11 +116,11 @@ export class FormulaVisitor
120116
name: "AND",
121117
arguments: [left, right],
122118
returnType: "boolean",
123-
value: ctx.text,
119+
value: ctx.getText(),
124120
}
125121
}
126122

127-
visitOrExpr(ctx: OrExprContext): ExpressionResult {
123+
visitOrExpr = (ctx: OrExprContext): ExpressionResult => {
128124
const left = this.visit(ctx.expression(0))
129125
const right = this.visit(ctx.expression(1))
130126

@@ -136,44 +132,44 @@ export class FormulaVisitor
136132
name: "OR",
137133
arguments: [left, right],
138134
returnType: "boolean",
139-
value: ctx.text,
135+
value: ctx.getText(),
140136
}
141137
}
142138

143-
visitNotExpr(ctx: NotExprContext): ExpressionResult {
139+
visitNotExpr = (ctx: NotExprContext): ExpressionResult => {
144140
const expr = this.visit(ctx.expression())
145141
this.assertType(expr, ["boolean"])
146142
return {
147143
type: "functionCall",
148144
name: "NOT",
149145
arguments: [expr],
150146
returnType: "boolean",
151-
value: ctx.text,
147+
value: ctx.getText(),
152148
}
153149
}
154150

155-
visitFunctionExpr(ctx: FunctionExprContext): ExpressionResult {
151+
visitFunctionExpr = (ctx: FunctionExprContext): ExpressionResult => {
156152
return this.visit(ctx.functionCall())
157153
}
158154

159-
visitVariableExpr(ctx: VariableExprContext): ExpressionResult {
155+
visitVariableExpr = (ctx: VariableExprContext): ExpressionResult => {
160156
return this.visit(ctx.variable())
161157
}
162158

163-
visitNumberExpr(ctx: NumberExprContext): ExpressionResult {
164-
return { type: "number", value: Number(ctx.NUMBER().text) }
159+
visitNumberExpr = (ctx: NumberExprContext): ExpressionResult => {
160+
return { type: "number", value: Number(ctx.NUMBER().getText()) }
165161
}
166162

167-
visitStringExpr(ctx: StringExprContext): ExpressionResult {
168-
return { type: "string", value: ctx.STRING().text.slice(1, -1) }
163+
visitStringExpr = (ctx: StringExprContext): ExpressionResult => {
164+
return { type: "string", value: ctx.STRING().getText().slice(1, -1) }
169165
}
170166

171-
visitParenExpr(ctx: ParenExprContext): ExpressionResult {
167+
visitParenExpr = (ctx: ParenExprContext): ExpressionResult => {
172168
return this.visit(ctx.expression())
173169
}
174170

175-
visitFunctionCall(ctx: FunctionCallContext): ExpressionResult {
176-
const funcName = ctx.IDENTIFIER().text as FormulaFunction
171+
visitFunctionCall = (ctx: FunctionCallContext): ExpressionResult => {
172+
const funcName = ctx.IDENTIFIER().getText() as FormulaFunction
177173
const args = ctx.argumentList() ? (this.visit(ctx.argumentList()!) as FunctionExpressionResult) : undefined
178174

179175
if (!globalFunctionRegistry.isValid(funcName)) {
@@ -191,20 +187,20 @@ export class FormulaVisitor
191187
name: funcName,
192188
arguments: args?.arguments ?? [],
193189
returnType,
194-
value: ctx.text,
190+
value: ctx.getText(),
195191
}
196192
}
197193

198-
visitArgumentList(ctx: ArgumentListContext): ArgumentListResult {
199-
const args = ctx.expression().map((expr) => this.visit(expr))
194+
visitArgumentList = (ctx: ArgumentListContext): ArgumentListResult => {
195+
const args = ctx.expression_list().map((expr) => this.visit(expr))
200196
return {
201197
type: "argumentList",
202198
arguments: args,
203199
}
204200
}
205-
visitVariable(ctx: VariableContext): VariableResult {
206-
const variableName = ctx.IDENTIFIER().text
207-
const raw = ctx.text
201+
visitVariable = (ctx: VariableContext): VariableResult => {
202+
const variableName = ctx.IDENTIFIER().getText()
203+
const raw = ctx.getText()
208204
this.variables.add(variableName)
209205
return { type: "variable", value: raw, variable: variableName }
210206
}

0 commit comments

Comments
 (0)