Skip to content

Commit a42adcd

Browse files
committed
update x-data -- distinguish symbol from string
1 parent be897c2 commit a42adcd

File tree

4 files changed

+14
-14
lines changed

4 files changed

+14
-14
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
},
2424
"dependencies": {
2525
"@xieyuheng/commander.js": "^0.1.3",
26-
"@xieyuheng/x-data.js": "^0.1.7"
26+
"@xieyuheng/x-data.js": "^0.1.9"
2727
},
2828
"devDependencies": {
2929
"@types/node": "^24.1.0",

src/lang/parse/matchExp.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { bindsFromArray, type Bind, type Exp } from "../exp/index.ts"
55
const expMatcher: X.Matcher<Exp> = X.matcherChoice<Exp>([
66
X.matcher("`(lambda ,names ,exp)", ({ names, exp }) =>
77
X.dataToArray(names)
8-
.map(X.dataToString)
8+
.map(X.symbolToString)
99
.reduceRight((fn, name) => Exps.Lambda(name, fn), matchExp(exp)),
1010
),
1111

@@ -22,7 +22,7 @@ const expMatcher: X.Matcher<Exp> = X.matcherChoice<Exp>([
2222
.reduce((result, arg) => Exps.Apply(result, arg), matchExp(target)),
2323
),
2424

25-
X.matcher("name", ({ name }) => Exps.Var(X.dataToString(name))),
25+
X.matcher("name", ({ name }) => Exps.Var(X.symbolToString(name))),
2626
])
2727

2828
export function matchExp(data: X.Data): Exp {
@@ -32,7 +32,7 @@ export function matchExp(data: X.Data): Exp {
3232
export function matchBind(data: X.Data): Bind {
3333
return X.match(
3434
X.matcher("`(,name ,exp)", ({ name, exp }) => ({
35-
name: X.dataToString(name),
35+
name: X.symbolToString(name),
3636
exp: matchExp(exp),
3737
})),
3838
data,

src/lang/parse/matchStmt.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import { matchExp } from "./matchExp.ts"
77
const stmtMatcher: X.Matcher<Stmt> = X.matcherChoice<Stmt>([
88
X.matcher("`(define ,(cons name args) ,exp)", ({ name, args, exp }) =>
99
Stmts.Define(
10-
X.dataToString(name),
10+
X.symbolToString(name),
1111
X.dataToArray(args)
12-
.map(X.dataToString)
12+
.map(X.symbolToString)
1313
.reduceRight((fn, name) => Exps.Lambda(name, fn), matchExp(exp)),
1414
),
1515
),
1616

1717
X.matcher("`(define ,name ,exp)", ({ name, exp }) =>
18-
Stmts.Define(X.dataToString(name), matchExp(exp)),
18+
Stmts.Define(X.symbolToString(name), matchExp(exp)),
1919
),
2020

2121
X.matcher("(cons 'import body)", ({ body }) => {
@@ -52,11 +52,11 @@ function matchImportEntry(data: X.Data): Stmts.ImportEntry {
5252
return X.match(
5353
X.matcherChoice([
5454
X.matcher("`(rename ,name ,rename)", ({ name, rename }) => ({
55-
name: X.dataToString(name),
56-
rename: X.dataToString(rename),
55+
name: X.symbolToString(name),
56+
rename: X.symbolToString(rename),
5757
})),
5858

59-
X.matcher("name", ({ name }) => ({ name: X.dataToString(name) })),
59+
X.matcher("name", ({ name }) => ({ name: X.symbolToString(name) })),
6060
]),
6161
data,
6262
)

0 commit comments

Comments
 (0)