diff options
| author | Jonas Smedegaard <dr@jones.dk> | 2025-05-26 10:05:06 +0200 |
|---|---|---|
| committer | Jonas Smedegaard <dr@jones.dk> | 2025-05-26 10:10:36 +0200 |
| commit | aba01b80e7ea75438db7933f9430997bc853250f (patch) | |
| tree | 650aa3983f1483243755b0de9ddeaad63bcbb851 | |
| parent | 881490dfec59f22b648766ea083cf23c0b29eaba (diff) | |
add syntax SemWord
| -rw-r--r-- | _markdown.qmd | 4 | ||||
| -rw-r--r-- | _syntax.qmd | 2 | ||||
| -rw-r--r-- | syntax/def.peg | 3 | ||||
| -rwxr-xr-x | syntax/def_SemWord.py | 22 | ||||
| -rwxr-xr-x | syntax/def_SemWords.py | 14 |
5 files changed, 34 insertions, 11 deletions
diff --git a/_markdown.qmd b/_markdown.qmd index 12a2180..d1aa5dd 100644 --- a/_markdown.qmd +++ b/_markdown.qmd @@ -246,9 +246,11 @@ See @fig-def-additions for their syntax diagrams.  + +  -Syntax of `SemWords`, `Curie`, `SEMPREFIX`. +Syntax of `SemWords`, `SemWord`, `Curie`, `SEMPREFIX`. ::: diff --git a/_syntax.qmd b/_syntax.qmd index e7b9d56..d8af814 100644 --- a/_syntax.qmd +++ b/_syntax.qmd @@ -32,6 +32,8 @@ regular expressions and the negative predicate from PEG notation.  + +   diff --git a/syntax/def.peg b/syntax/def.peg index 30157d2..11ce1ab 100644 --- a/syntax/def.peg +++ b/syntax/def.peg @@ -51,7 +51,8 @@ NEWLINE <- '\r\n' # @see <https://source.jones.dk/semantic-markdown/about/> AnnotatedWordsX <- '[' Words ']' ('{' (SemWords / ![{}] PlainWords) '}') -SemWords <- SEMPREFIX '<' ![<>] PRINTABLES '>' +SemWords <- SemWord (_ SemWord)* +SemWord <- SEMPREFIX '<' ![<>] PRINTABLES '>' / SEMPREFIX Curie SEMPREFIX <- [.=] diff --git a/syntax/def_SemWord.py b/syntax/def_SemWord.py new file mode 100755 index 0000000..d0768ad --- /dev/null +++ b/syntax/def_SemWord.py @@ -0,0 +1,22 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from railroad import * + +Diagram( + Choice(0, + Sequence( + NonTerminal("SEMPREFIX"), + "<", + NonTerminal("![<>] PRINTABLES"), + ">", + ), + Sequence( + NonTerminal("SEMPREFIX"), + NonTerminal("CURIE"), + ) + ), + type="complex" +).writeStandalone(sys.stdout.write) diff --git a/syntax/def_SemWords.py b/syntax/def_SemWords.py index d0768ad..2a2af8f 100755 --- a/syntax/def_SemWords.py +++ b/syntax/def_SemWords.py @@ -6,17 +6,13 @@ from railroad import * Diagram( + NonTerminal("SemWord"), Choice(0, - Sequence( - NonTerminal("SEMPREFIX"), - "<", - NonTerminal("![<>] PRINTABLES"), - ">", + OneOrMore( + NonTerminal("_"), + NonTerminal("SemWord") ), - Sequence( - NonTerminal("SEMPREFIX"), - NonTerminal("CURIE"), - ) + Skip() ), type="complex" ).writeStandalone(sys.stdout.write) |
