m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src/parser.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.js')
-rw-r--r--src/parser.js12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/parser.js b/src/parser.js
index acae9ad..3cf6d55 100644
--- a/src/parser.js
+++ b/src/parser.js
@@ -44,6 +44,16 @@ newSymbol('constant', function() {
return { type: 'constant', value: this.value }
})
+const newBrackets = (openSymbol, closeSymbol, valueWrapper) => {
+ newSymbol(openSymbol, function(parser) {
+ const value = parser.expression(1)
+ parser.match(closeSymbol)
+ return valueWrapper(value)
+ })
+
+ newSymbol(closeSymbol)
+}
+
newSymbol('(', function(parser) {
const value = parser.expression(1)
parser.match(')')
@@ -52,6 +62,8 @@ newSymbol('(', function(parser) {
newSymbol(')')
+newBrackets('[', ']', value => ({ type: 'collect', value: value }))
+
newDieOperation('d')
newSymbol('d', (parser) => {
return {