From b3a382ff5b7c41d29fe522ac13742b59a67922dd Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Fri, 9 Dec 2022 18:49:33 +0300 Subject: [PATCH] add primitive types --- grammar.js | 11 ++- src/grammar.json | 35 ++++++++- src/node-types.json | 33 +++++++++ src/parser.c | Bin 152076 -> 162347 bytes test/corpus/attributes.txt | 142 ++++++++++++++++++------------------- 5 files changed, 147 insertions(+), 74 deletions(-) diff --git a/grammar.js b/grammar.js index 2ea0227..9caabde 100644 --- a/grammar.js +++ b/grammar.js @@ -2,7 +2,7 @@ const PREC = { COMMENT: -2, EOL: -1, TEXT_BLOCK_CONTENT: -1, - UNQUOTED_STRING: 0, + UNQUOTED_STRING: -1, CONTAINER: 2, CONNECTION: 2, SHAPE: 3, @@ -266,7 +266,8 @@ module.exports = grammar({ label: ($) => choice($.string, $._unquoted_string), - attr_value: ($) => seq(choice($.string, $._unquoted_string)), + attr_value: ($) => + seq(choice($.boolean, $.integer, $.float, $.string, $._unquoted_string)), // -------------------------------------------- @@ -288,6 +289,12 @@ module.exports = grammar({ seq("`", repeat(token.immediate(/[^`\n]+/)), "`") ), + boolean: ($) => choice("true", "false"), + + integer: ($) => /[0-9]+/, + + float: ($) => /[0-9]+\.[0-9]+/, + line_comment: ($) => token(prec(PREC.COMMENT, seq("#", /.*/))), _eol: ($) => token(prec(PREC.EOL, "\n")), diff --git a/src/grammar.json b/src/grammar.json index e89c666..7854d60 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1115,6 +1115,18 @@ { "type": "CHOICE", "members": [ + { + "type": "SYMBOL", + "name": "boolean" + }, + { + "type": "SYMBOL", + "name": "integer" + }, + { + "type": "SYMBOL", + "name": "float" + }, { "type": "SYMBOL", "name": "string" @@ -1182,7 +1194,7 @@ "type": "TOKEN", "content": { "type": "PREC", - "value": 0, + "value": -1, "content": { "type": "PATTERN", "value": "[^'\"`|\\n\\s;{}]([^\\n;{}]*[^\\n\\s;{}])?" @@ -1263,6 +1275,27 @@ } ] }, + "boolean": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "true" + }, + { + "type": "STRING", + "value": "false" + } + ] + }, + "integer": { + "type": "PATTERN", + "value": "[0-9]+" + }, + "float": { + "type": "PATTERN", + "value": "[0-9]+\\.[0-9]+" + }, "line_comment": { "type": "TOKEN", "content": { diff --git a/src/node-types.json b/src/node-types.json index 4ec46b8..1512154 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -22,6 +22,18 @@ "multiple": false, "required": false, "types": [ + { + "type": "boolean", + "named": true + }, + { + "type": "float", + "named": true + }, + { + "type": "integer", + "named": true + }, { "type": "string", "named": true @@ -91,6 +103,11 @@ ] } }, + { + "type": "boolean", + "named": true, + "fields": {} + }, { "type": "connection", "named": true, @@ -349,10 +366,18 @@ "type": "dot", "named": true }, + { + "type": "false", + "named": false + }, { "type": "fill", "named": false }, + { + "type": "float", + "named": true + }, { "type": "font-color", "named": false @@ -365,6 +390,10 @@ "type": "icon", "named": false }, + { + "type": "integer", + "named": true + }, { "type": "label", "named": false @@ -421,6 +450,10 @@ "type": "target-arrowhead", "named": false }, + { + "type": "true", + "named": false + }, { "type": "width", "named": false diff --git a/src/parser.c b/src/parser.c index 09532e9995715aa5d016de8fab1c863bfc716d21..81824c5fd7d3e5f1057cebfb0e047447d5e73238 100644 GIT binary patch literal 162347 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 bar: { style: { - opacity: 5 + opacity: 0.5 fill: red stroke: red stroke-width: 5 stroke-dash: 4 border-radius: 1 font-color: red - shadow: true + shadow: false multiple: true animated: true link: https://to @@ -256,16 +256,16 @@ foo -> bar: { (attribute (attr_key) (block + (attribute (attr_key) (attr_value (float))) (attribute (attr_key) (attr_value)) (attribute (attr_key) (attr_value)) + (attribute (attr_key) (attr_value (integer))) + (attribute (attr_key) (attr_value (integer))) + (attribute (attr_key) (attr_value (integer))) (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) + (attribute (attr_key) (attr_value (boolean))) + (attribute (attr_key) (attr_value (boolean))) + (attribute (attr_key) (attr_value (boolean))) (attribute (attr_key) (attr_value)) ) ) @@ -307,14 +307,14 @@ Block style attributes inside a connection arrowhead foo -> bar: { target-arrowhead: { style: { - opacity: 5 + opacity: 0.5 fill: red stroke: red stroke-width: 5 stroke-dash: 4 border-radius: 1 font-color: red - shadow: true + shadow: false multiple: true animated: true link: https://to @@ -336,16 +336,16 @@ foo -> bar: { (attribute (attr_key) (block + (attribute (attr_key) (attr_value (float))) (attribute (attr_key) (attr_value)) (attribute (attr_key) (attr_value)) + (attribute (attr_key) (attr_value (integer))) + (attribute (attr_key) (attr_value (integer))) + (attribute (attr_key) (attr_value (integer))) (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) + (attribute (attr_key) (attr_value (boolean))) + (attribute (attr_key) (attr_value (boolean))) + (attribute (attr_key) (attr_value (boolean))) (attribute (attr_key) (attr_value)) ) ) @@ -361,7 +361,7 @@ Container attributes inside a connection arrowhead foo -> bar: { target-arrowhead: { shape: oval - label: Baz + label: 'Baz' constraint: primary-key icon: pathto width: 100 @@ -381,11 +381,11 @@ foo -> bar: { (attr_key) (block (attribute (attr_key) (attr_value)) + (attribute (attr_key) (attr_value (string))) (attribute (attr_key) (attr_value)) (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) - (attribute (attr_key) (attr_value)) + (attribute (attr_key) (attr_value (integer))) + (attribute (attr_key) (attr_value (integer))) ) ) )