aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2025-05-26 10:56:14 +0200
committerJonas Smedegaard <dr@jones.dk>2025-05-26 11:40:24 +0200
commitbd8c87a53621a3e1e421c22caf30571a90db398c (patch)
treee85f440a1cbe8572a0d895c5f365c0caed25b58d
parent393fbb26231c57309e8bfa92c9b209c5f4b6c70e (diff)
fix define BlockX as PEG; prioritise definition blocks
-rw-r--r--syntax/def.peg9
-rwxr-xr-xsyntax/def_Block.py2
-rwxr-xr-xsyntax/def_BlockX.py4
3 files changed, 10 insertions, 5 deletions
diff --git a/syntax/def.peg b/syntax/def.peg
index ab809ac..7696a0d 100644
--- a/syntax/def.peg
+++ b/syntax/def.peg
@@ -8,9 +8,9 @@
Markdown <- ('---' NEWLINE MetaBlock* '---' NEWLINE)? Block*
# Block elements
-Block <- Header
+Block <- LinkDefinition
+ / Header
/ List
- / LinkDefinition
/ Paragraph
Header <- '#'+ SPACE* !NEWLINE Words? SPACE* NEWLINE
List <- ([-*]+ / [[:digit:]]+ [).]) (_ (List / Words))? NEWLINE
@@ -49,6 +49,11 @@ NEWLINE <- '\r\n'
# Semantic Markdown
# @see <https://source.jones.dk/semantic-markdown/about/>
+BlockX <- LinkDefinition
+ / PrefixDefinition
+ / Header
+ / List
+ / Paragraph
PrefixDefinition <- '{' CuriePrefix '}' ':' _? SemWord NEWLINE
AnnotatedWordsX <- '[' Words ']'
('{' (SemWords / ![{}] PlainWords) '}')
diff --git a/syntax/def_Block.py b/syntax/def_Block.py
index b9688e9..8dc618c 100755
--- a/syntax/def_Block.py
+++ b/syntax/def_Block.py
@@ -7,9 +7,9 @@ from railroad import *
Diagram(
Choice(0,
+ NonTerminal("LinkDefinition"),
NonTerminal("Header"),
NonTerminal("List"),
- NonTerminal("LinkDefinition"),
NonTerminal("Paragraph")
),
type="complex"
diff --git a/syntax/def_BlockX.py b/syntax/def_BlockX.py
index da38385..a2f230f 100755
--- a/syntax/def_BlockX.py
+++ b/syntax/def_BlockX.py
@@ -7,10 +7,10 @@ from railroad import *
Diagram(
Choice(0,
- NonTerminal("Header"),
- NonTerminal("List"),
Group(NonTerminal("PrefixDefinition")),
NonTerminal("LinkDefinition"),
+ NonTerminal("Header"),
+ NonTerminal("List"),
NonTerminal("Paragraph")
),
type="complex"