add support of shape path
This commit is contained in:
parent
867ed6662b
commit
2871ceb718
12 changed files with 277 additions and 230 deletions
|
@ -1,2 +1,2 @@
|
||||||
a.shape: oval
|
'a'.'B'.shape: oval
|
||||||
b
|
b
|
||||||
|
|
54
grammar.js
54
grammar.js
|
@ -8,9 +8,10 @@ module.exports = grammar({
|
||||||
word: ($) => $._word,
|
word: ($) => $._word,
|
||||||
|
|
||||||
conflicts: ($) => [
|
conflicts: ($) => [
|
||||||
[$.identifier],
|
[$.shape_key],
|
||||||
[$.arrow],
|
[$.arrow],
|
||||||
[$._identifier],
|
[$._shape_path],
|
||||||
|
[$._shape_key],
|
||||||
[$._shape_block],
|
[$._shape_block],
|
||||||
[$._shape_block_definition],
|
[$._shape_block_definition],
|
||||||
[$._style_attr_block],
|
[$._style_attr_block],
|
||||||
|
@ -19,25 +20,29 @@ module.exports = grammar({
|
||||||
],
|
],
|
||||||
|
|
||||||
rules: {
|
rules: {
|
||||||
source_file: ($) => repeat($._definition),
|
source_file: ($) => repeat($._root_definition),
|
||||||
|
|
||||||
_definition: ($) =>
|
_root_definition: ($) =>
|
||||||
choice($._emptyline, $._root_attribute, $.connection, $.shape),
|
choice(
|
||||||
|
$._emptyline,
|
||||||
|
$._root_attribute,
|
||||||
|
$.connection,
|
||||||
|
$._shape_definition
|
||||||
|
),
|
||||||
|
|
||||||
connection: ($) =>
|
connection: ($) =>
|
||||||
seq(
|
seq(
|
||||||
$._identifier,
|
$._shape_path,
|
||||||
repeat1(seq($._arrow, $._identifier)),
|
repeat1(seq($._arrow, $._shape_path)),
|
||||||
optional(
|
optional(
|
||||||
choice(seq($.dot, $._connection_attribute), seq($._colon, $.label))
|
choice(seq($.dot, $._connection_attribute), seq($._colon, $.label))
|
||||||
),
|
),
|
||||||
$._end
|
$._end
|
||||||
),
|
),
|
||||||
|
|
||||||
shape: ($) =>
|
_shape_definition: ($) =>
|
||||||
seq(
|
seq(
|
||||||
$._identifier,
|
$._shape_path,
|
||||||
repeat(seq($.dot, $._identifier)),
|
|
||||||
optional(
|
optional(
|
||||||
choice(
|
choice(
|
||||||
seq($.dot, $._shape_attribute),
|
seq($.dot, $._shape_attribute),
|
||||||
|
@ -50,6 +55,12 @@ module.exports = grammar({
|
||||||
$._end
|
$._end
|
||||||
),
|
),
|
||||||
|
|
||||||
|
_shape_path: ($) =>
|
||||||
|
choice(
|
||||||
|
$._shape_key,
|
||||||
|
seq($._shape_key, repeat1(seq($.dot, $._shape_key)))
|
||||||
|
),
|
||||||
|
|
||||||
label: ($) => choice($.string, $._unquoted_string),
|
label: ($) => choice($.string, $._unquoted_string),
|
||||||
|
|
||||||
attr_value: ($) => seq(spaces, choice($.string, $._unquoted_string)),
|
attr_value: ($) => seq(spaces, choice($.string, $._unquoted_string)),
|
||||||
|
@ -80,7 +91,7 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
|
|
||||||
_shape_block_definition: ($) =>
|
_shape_block_definition: ($) =>
|
||||||
choice($.connection, $.shape, $._shape_attribute),
|
choice($.connection, $._shape_definition, $._shape_attribute),
|
||||||
|
|
||||||
_shape_attribute: ($) =>
|
_shape_attribute: ($) =>
|
||||||
choice(
|
choice(
|
||||||
|
@ -146,16 +157,19 @@ module.exports = grammar({
|
||||||
|
|
||||||
_connection_attr_key: ($) => choice("source-arrowhead", "target-arrowhead"),
|
_connection_attr_key: ($) => choice("source-arrowhead", "target-arrowhead"),
|
||||||
|
|
||||||
_identifier: ($) => seq(spaces, $.identifier),
|
_shape_key: ($) => seq(spaces, $.shape_key),
|
||||||
|
|
||||||
identifier: ($) =>
|
shape_key: ($) =>
|
||||||
seq(
|
choice(
|
||||||
optional($._dash),
|
$.string,
|
||||||
choice(
|
seq(
|
||||||
$._word,
|
optional($._dash),
|
||||||
repeat1(seq($._word, choice(spaces, $._dash), $._word))
|
choice(
|
||||||
),
|
$._word,
|
||||||
optional($._dash)
|
repeat1(seq($._word, choice(repeat1(" "), $._dash), $._word))
|
||||||
|
),
|
||||||
|
optional($._dash)
|
||||||
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
_colon: ($) => seq(spaces, ":"),
|
_colon: ($) => seq(spaces, ":"),
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
(invalid (_) @error)
|
(invalid (_) @error)
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
|
|
||||||
(identifier) @variable
|
(shape_key) @variable
|
||||||
(attr_key) @keyword
|
(attr_key) @keyword
|
||||||
|
|
||||||
; Literals
|
; Literals
|
||||||
|
@ -26,7 +26,6 @@
|
||||||
(arrow) @operator
|
(arrow) @operator
|
||||||
|
|
||||||
[
|
[
|
||||||
(dot)
|
|
||||||
":"
|
":"
|
||||||
";"
|
";"
|
||||||
] @punctuation.delimiter
|
] @punctuation.delimiter
|
||||||
|
|
183
src/grammar.json
183
src/grammar.json
|
@ -6,10 +6,10 @@
|
||||||
"type": "REPEAT",
|
"type": "REPEAT",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_definition"
|
"name": "_root_definition"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"_definition": {
|
"_root_definition": {
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "shape"
|
"name": "_shape_definition"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_identifier"
|
"name": "_shape_path"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "REPEAT1",
|
"type": "REPEAT1",
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_identifier"
|
"name": "_shape_path"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -98,28 +98,12 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"shape": {
|
"_shape_definition": {
|
||||||
"type": "SEQ",
|
"type": "SEQ",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_identifier"
|
"name": "_shape_path"
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "REPEAT",
|
|
||||||
"content": {
|
|
||||||
"type": "SEQ",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "SYMBOL",
|
|
||||||
"name": "dot"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "SYMBOL",
|
|
||||||
"name": "_identifier"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
|
@ -204,6 +188,40 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"_shape_path": {
|
||||||
|
"type": "CHOICE",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "_shape_key"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "SEQ",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "_shape_key"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "REPEAT1",
|
||||||
|
"content": {
|
||||||
|
"type": "SEQ",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "dot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "_shape_key"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"label": {
|
"label": {
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
|
@ -428,7 +446,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "shape"
|
"name": "_shape_definition"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
|
@ -791,7 +809,7 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"_identifier": {
|
"_shape_key": {
|
||||||
"type": "SEQ",
|
"type": "SEQ",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
|
@ -812,84 +830,84 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "identifier"
|
"name": "shape_key"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"identifier": {
|
"shape_key": {
|
||||||
"type": "SEQ",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "CHOICE",
|
"type": "SYMBOL",
|
||||||
"members": [
|
"name": "string"
|
||||||
{
|
|
||||||
"type": "SYMBOL",
|
|
||||||
"name": "_dash"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "BLANK"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "CHOICE",
|
"type": "SEQ",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "CHOICE",
|
||||||
"name": "_word"
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "_dash"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "BLANK"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "REPEAT1",
|
"type": "CHOICE",
|
||||||
"content": {
|
"members": [
|
||||||
"type": "SEQ",
|
{
|
||||||
"members": [
|
"type": "SYMBOL",
|
||||||
{
|
"name": "_word"
|
||||||
"type": "SYMBOL",
|
},
|
||||||
"name": "_word"
|
{
|
||||||
},
|
"type": "REPEAT1",
|
||||||
{
|
"content": {
|
||||||
"type": "CHOICE",
|
"type": "SEQ",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "REPEAT",
|
"type": "SYMBOL",
|
||||||
"content": {
|
"name": "_word"
|
||||||
"type": "CHOICE",
|
},
|
||||||
"members": [
|
{
|
||||||
{
|
"type": "CHOICE",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "REPEAT1",
|
||||||
|
"content": {
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
"value": " "
|
"value": " "
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "\t"
|
|
||||||
}
|
}
|
||||||
]
|
},
|
||||||
}
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "_dash"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_dash"
|
"name": "_word"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "SYMBOL",
|
|
||||||
"name": "_word"
|
|
||||||
}
|
}
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "CHOICE",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "SYMBOL",
|
|
||||||
"name": "_dash"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "BLANK"
|
"type": "CHOICE",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "_dash"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "BLANK"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1214,13 +1232,16 @@
|
||||||
],
|
],
|
||||||
"conflicts": [
|
"conflicts": [
|
||||||
[
|
[
|
||||||
"identifier"
|
"shape_key"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"arrow"
|
"arrow"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"_identifier"
|
"_shape_path"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"_shape_key"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"_shape_block"
|
"_shape_block"
|
||||||
|
|
|
@ -53,7 +53,11 @@
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "shape",
|
"type": "label",
|
||||||
|
"named": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shape_key",
|
||||||
"named": true
|
"named": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -84,21 +88,16 @@
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "identifier",
|
"type": "label",
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "label",
|
"type": "shape_key",
|
||||||
"named": true
|
"named": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "identifier",
|
|
||||||
"named": true,
|
|
||||||
"fields": {}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "invalid",
|
"type": "invalid",
|
||||||
"named": true,
|
"named": true,
|
||||||
|
@ -142,35 +141,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "shape",
|
"type": "shape_key",
|
||||||
"named": true,
|
"named": true,
|
||||||
"fields": {},
|
"fields": {},
|
||||||
"children": {
|
"children": {
|
||||||
"multiple": true,
|
"multiple": false,
|
||||||
"required": true,
|
"required": false,
|
||||||
"types": [
|
"types": [
|
||||||
{
|
{
|
||||||
"type": "attr_key",
|
"type": "string",
|
||||||
"named": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "attr_value",
|
|
||||||
"named": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "block",
|
|
||||||
"named": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "dot",
|
|
||||||
"named": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "identifier",
|
|
||||||
"named": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "label",
|
|
||||||
"named": true
|
"named": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -192,16 +171,28 @@
|
||||||
"type": "attr_value",
|
"type": "attr_value",
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "block",
|
||||||
|
"named": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "connection",
|
"type": "connection",
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "dot",
|
||||||
|
"named": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "invalid",
|
"type": "invalid",
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "shape",
|
"type": "label",
|
||||||
|
"named": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shape_key",
|
||||||
"named": true
|
"named": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
BIN
src/parser.c
BIN
src/parser.c
Binary file not shown.
|
@ -23,12 +23,14 @@ foo: {
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier) (block
|
(shape_key)
|
||||||
|
(block
|
||||||
(attr_key) (attr_value)
|
(attr_key) (attr_value)
|
||||||
(shape (identifier) (dot) (identifier) (dot) (identifier) (block
|
(shape_key) (dot) (shape_key) (dot) (shape_key)
|
||||||
|
(block
|
||||||
(attr_key) (attr_value)
|
(attr_key) (attr_value)
|
||||||
))
|
)
|
||||||
))
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,8 +43,8 @@ foo.bar.baz.shape: oval
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier) (dot) (attr_key) (attr_value))
|
(shape_key) (dot) (attr_key) (attr_value)
|
||||||
(shape (identifier) (dot) (identifier) (dot) (identifier) (dot) (attr_key) (attr_value))
|
(shape_key) (dot) (shape_key) (dot) (shape_key) (dot) (attr_key) (attr_value)
|
||||||
)
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
|
@ -53,7 +55,7 @@ foo.style.opacity: 5
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier) (dot) (attr_key) (dot) (attr_key) (attr_value))
|
(shape_key) (dot) (attr_key) (dot) (attr_key) (attr_value)
|
||||||
)
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
|
@ -68,12 +70,10 @@ foo.style: {
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape
|
(shape_key) (dot) (attr_key)
|
||||||
(identifier) (dot) (attr_key)
|
(block
|
||||||
(block
|
(attr_key) (attr_value)
|
||||||
(attr_key) (attr_value)
|
(attr_key) (attr_value)
|
||||||
(attr_key) (attr_value)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -86,18 +86,14 @@ foo.style: { opacity: 5 }
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape
|
(shape_key) (dot) (attr_key)
|
||||||
(identifier) (dot) (attr_key)
|
(block
|
||||||
(block
|
(attr_key) (attr_value)
|
||||||
(attr_key) (attr_value)
|
(attr_key) (attr_value)
|
||||||
(attr_key) (attr_value)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
(shape
|
(shape_key) (dot) (attr_key)
|
||||||
(identifier) (dot) (attr_key)
|
(block
|
||||||
(block
|
(attr_key) (attr_value)
|
||||||
(attr_key) (attr_value)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -10,24 +10,24 @@ biz<-baz
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -43,24 +43,24 @@ biz <- baz
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -75,14 +75,14 @@ Foo Bar -- Biz Baz
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -95,13 +95,13 @@ foo--bar->biz->baz
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -114,14 +114,14 @@ foo--bar;biz->baz
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -135,15 +135,31 @@ bar -> baz: Yes
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
(label)
|
(label)
|
||||||
)
|
)
|
||||||
(connection
|
(connection
|
||||||
(identifier)
|
(shape_key)
|
||||||
(arrow)
|
(arrow)
|
||||||
(identifier)
|
(shape_key)
|
||||||
|
(label)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
Connection using shape path
|
||||||
|
================================================================================
|
||||||
|
foo.biz.baz -> bar.baz.biz: Label
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(source_file
|
||||||
|
(connection
|
||||||
|
(shape_key) (dot) (shape_key) (dot) (shape_key)
|
||||||
|
(arrow)
|
||||||
|
(shape_key) (dot) (shape_key) (dot) (shape_key)
|
||||||
(label)
|
(label)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,8 +7,8 @@ bar
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
)
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
|
@ -20,37 +20,43 @@ Complex identifier
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
)
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
Inline shapes
|
Declare a shape inside a container
|
||||||
================================================================================
|
================================================================================
|
||||||
foo.baz
|
foo.baz
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape
|
(shape_key) (dot) (shape_key)
|
||||||
(identifier)
|
|
||||||
(dot)
|
|
||||||
(identifier)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
Use quoted string as a shape key
|
||||||
|
================================================================================
|
||||||
|
'foo'.'baz'
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(source_file
|
||||||
|
(shape_key (string)) (dot) (shape_key (string))
|
||||||
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
Many shapes inline
|
Define multiple shapes using semicolons
|
||||||
================================================================================
|
================================================================================
|
||||||
a;b;c
|
a;b;c
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
)
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
|
@ -62,9 +68,9 @@ a: Foo Bar; b: Biz Baz
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier) (label))
|
(shape_key) (label)
|
||||||
(shape (identifier) (label))
|
(shape_key) (label)
|
||||||
(shape (identifier) (label))
|
(shape_key) (label)
|
||||||
)
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
|
@ -78,9 +84,9 @@ bar : Foo Bar; baz
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
(shape (identifier) (label))
|
(shape_key) (label)
|
||||||
(shape (identifier))
|
(shape_key)
|
||||||
)
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
|
@ -98,13 +104,16 @@ foo: {
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier) (block
|
(shape_key)
|
||||||
(shape (identifier) (block
|
(block
|
||||||
(shape (identifier) (block
|
(shape_key)
|
||||||
(shape (identifier))
|
(block
|
||||||
))
|
(shape_key)
|
||||||
))
|
(block
|
||||||
))
|
(shape_key)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
|
@ -122,12 +131,15 @@ foo: Foo {
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(shape (identifier) (label) (block
|
(shape_key) (label)
|
||||||
(shape (identifier) (label) (block
|
(block
|
||||||
(shape (identifier) (label) (block
|
(shape_key) (label)
|
||||||
(shape (identifier) (label))
|
(block
|
||||||
))
|
(shape_key) (label)
|
||||||
))
|
(block
|
||||||
))
|
(shape_key) (label)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ direction: right;
|
||||||
# ^ string
|
# ^ string
|
||||||
# ^ punctuation.delimiter
|
# ^ punctuation.delimiter
|
||||||
|
|
||||||
shape: oval;
|
shape: oval
|
||||||
# <- error
|
# <- error
|
||||||
# ^ error
|
# ^ error
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
foo.baz.biz
|
foo.baz.biz
|
||||||
# <- variable
|
# <- variable
|
||||||
# ^ punctuation.delimiter
|
|
||||||
# ^ variable
|
# ^ variable
|
||||||
# ^ punctuation.delimiter
|
|
||||||
# ^ variable
|
# ^ variable
|
||||||
|
|
||||||
foo: Foo Bar
|
foo: Foo Bar
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue