aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2023-08-25 10:17:21 +0530
committerAkshay Nair <phenax5@gmail.com>2023-08-25 10:17:21 +0530
commit0665e6a2490c9ea770a98908788a1e5d210aa811 (patch)
tree307654d37d10ad2055947c0d8ec40c3188f01938 /src
parent2f99128e354e5c5334094f072767164c8e4fbd2f (diff)
downloadcss-everything-0665e6a2490c9ea770a98908788a1e5d210aa811.tar.gz
css-everything-0665e6a2490c9ea770a98908788a1e5d210aa811.zip
feat: adds try expression for error handlign
Diffstat (limited to '')
-rw-r--r--src/eval.ts8
-rw-r--r--src/parser.ts2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/eval.ts b/src/eval.ts
index 91514b9..0be3de5 100644
--- a/src/eval.ts
+++ b/src/eval.ts
@@ -322,6 +322,14 @@ const getFunctions = (
return EvalValue.String(dequotify(str || ''))
},
+ try: async () => {
+ try {
+ return await evalExpr(args[0], actions)
+ } catch (e) {
+ return evalExpr(args[1], actions)
+ }
+ },
+
_: () => Promise.reject(new Error(`Not implemented: ${name}`)),
})
}
diff --git a/src/parser.ts b/src/parser.ts
index eeb9acf..216c1bc 100644
--- a/src/parser.ts
+++ b/src/parser.ts
@@ -142,7 +142,7 @@ export const parseDeclarations = (input: string) =>
)
export const parse = (input: string): Array<Expr> => {
- const res = P.many1(exprParser)(input.trim())
+ const res = P.sepBy(exprParser, P.or([comma, whitespace]))(input.trim())
return match(res, {
Ok: ({ value, input }) => {
if (input) {