diff options
Diffstat (limited to 'syntax')
| -rwxr-xr-x | syntax/def_AnnotatedWords.py | 18 | ||||
| -rwxr-xr-x | syntax/def_AnnotatedWordsX.py | 23 | ||||
| -rwxr-xr-x | syntax/def_Block.py | 18 | ||||
| -rwxr-xr-x | syntax/def_HardBreak.py | 15 | ||||
| -rwxr-xr-x | syntax/def_Header.py | 26 | ||||
| -rwxr-xr-x | syntax/def_LinkDefinition.py | 24 | ||||
| -rwxr-xr-x | syntax/def_LinkLabel.py | 17 | ||||
| -rwxr-xr-x | syntax/def_LinkTitle.py | 35 | ||||
| -rwxr-xr-x | syntax/def_LinkedWords.py | 38 | ||||
| -rwxr-xr-x | syntax/def_List.py | 30 | ||||
| -rwxr-xr-x | syntax/def_Markdown.py | 28 | ||||
| -rwxr-xr-x | syntax/def_NEWLINE.py | 17 | ||||
| -rwxr-xr-x | syntax/def_PRINTABLES.py | 13 | ||||
| -rwxr-xr-x | syntax/def_Paragraph.py | 23 | ||||
| -rwxr-xr-x | syntax/def_PlainWords.py | 20 | ||||
| -rwxr-xr-x | syntax/def_SEMPREFIX.py | 13 | ||||
| -rwxr-xr-x | syntax/def_SPACE.py | 13 | ||||
| -rwxr-xr-x | syntax/def_SemWords.py | 24 | ||||
| -rwxr-xr-x | syntax/def_StyledWords.py | 29 | ||||
| -rwxr-xr-x | syntax/def_Uri.py | 20 | ||||
| -rwxr-xr-x | syntax/def_Words.py | 18 | ||||
| -rwxr-xr-x | syntax/def__.py | 24 |
22 files changed, 486 insertions, 0 deletions
diff --git a/syntax/def_AnnotatedWords.py b/syntax/def_AnnotatedWords.py new file mode 100755 index 0000000..8449ace --- /dev/null +++ b/syntax/def_AnnotatedWords.py @@ -0,0 +1,18 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + "[", + NonTerminal("Words"), + "]", + "{", + NonTerminal('![{}] PlainWords'), + "}", + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_AnnotatedWordsX.py b/syntax/def_AnnotatedWordsX.py new file mode 100755 index 0000000..a90aaf6 --- /dev/null +++ b/syntax/def_AnnotatedWordsX.py @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + "[", + NonTerminal("Words"), + "]", + "{", + Choice(0, + Group( + NonTerminal('SemWords'), + ), + NonTerminal('![{}] PlainWords'), + ), + "}", + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_Block.py b/syntax/def_Block.py new file mode 100755 index 0000000..b44c121 --- /dev/null +++ b/syntax/def_Block.py @@ -0,0 +1,18 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + NonTerminal("Header"), + NonTerminal("List"), + NonTerminal("LinkDefinition"), + NonTerminal("Paragraph") + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_HardBreak.py b/syntax/def_HardBreak.py new file mode 100755 index 0000000..b39251b --- /dev/null +++ b/syntax/def_HardBreak.py @@ -0,0 +1,15 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + NonTerminal("SPACE"), + OneOrMore(NonTerminal("SPACE")), + NonTerminal("NEWLINE"), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_Header.py b/syntax/def_Header.py new file mode 100755 index 0000000..f8c1935 --- /dev/null +++ b/syntax/def_Header.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + OneOrMore('#'), + Choice(0, + Sequence( + OneOrMore(NonTerminal("SPACE")) + ), + Skip() + ), + Choice(0, + Sequence( + NonTerminal("!NEWLINE Words") + ), + Skip() + ), + NonTerminal("NEWLINE"), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_LinkDefinition.py b/syntax/def_LinkDefinition.py new file mode 100755 index 0000000..c340fe0 --- /dev/null +++ b/syntax/def_LinkDefinition.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + NonTerminal("LinkLabel"), + ":", + Choice(0, NonTerminal("_"), Skip()), + NonTerminal("Uri"), + Choice(0, + Sequence( + NonTerminal("_"), + NonTerminal("LinkTitle") + ), + Skip() + ), + NonTerminal("NEWLINE"), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_LinkLabel.py b/syntax/def_LinkLabel.py new file mode 100755 index 0000000..869e353 --- /dev/null +++ b/syntax/def_LinkLabel.py @@ -0,0 +1,17 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + "[", + Optional(NonTerminal("_"), True), + NonTerminal("![\\[\\]] PlainWords"), + Optional(NonTerminal("_"), True), + "]", + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_LinkTitle.py b/syntax/def_LinkTitle.py new file mode 100755 index 0000000..beed133 --- /dev/null +++ b/syntax/def_LinkTitle.py @@ -0,0 +1,35 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + Sequence( + '"', + Optional(NonTerminal("_"), True), + NonTerminal("!'\"' PlainWords"), + Optional(NonTerminal("_"), True), + '"', + ), + Sequence( + "'", + Optional(NonTerminal("_"), True), + NonTerminal("!\"'\" PlainWords"), + Optional(NonTerminal("_"), True), + "'", + ), + Sequence( + "(", + Optional(NonTerminal("_"), True), + NonTerminal("![()] PlainWords"), + Optional(NonTerminal("_"), True), + ")", + ) + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_LinkedWords.py b/syntax/def_LinkedWords.py new file mode 100755 index 0000000..d9d7301 --- /dev/null +++ b/syntax/def_LinkedWords.py @@ -0,0 +1,38 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + Sequence( + "[", + NonTerminal("Words"), + "]", + Choice(0, + Sequence( + "(", + Choice(0, + Sequence( + NonTerminal("Uri"), + NonTerminal("_"), + NonTerminal("LinkTitle") + ), + NonTerminal("Uri"), + NonTerminal("LinkTitle") + ), + ")" + ), + NonTerminal("LinkLabel") + ) + ), + Sequence( + NonTerminal("LinkLabel") + ) + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_List.py b/syntax/def_List.py new file mode 100755 index 0000000..087727e --- /dev/null +++ b/syntax/def_List.py @@ -0,0 +1,30 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + "[-*]", + Sequence( + "[[:digit:]]+", + "[).]", + ) + ), + Choice(0, + Sequence( + NonTerminal("_"), + Choice(0, + NonTerminal("List"), + NonTerminal("Words") + ) + ), + Skip() + ), + NonTerminal("NEWLINE"), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_Markdown.py b/syntax/def_Markdown.py new file mode 100755 index 0000000..782e3c5 --- /dev/null +++ b/syntax/def_Markdown.py @@ -0,0 +1,28 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + Sequence( + "---", + NonTerminal("NEWLINE"), + Choice(0, + OneOrMore(NonTerminal("MetaBlock")), + Skip() + ), + "---", + NonTerminal("NEWLINE"), + ), + Skip() + ), + Choice(0, + OneOrMore(NonTerminal("Block")), + Skip() + ) +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_NEWLINE.py b/syntax/def_NEWLINE.py new file mode 100755 index 0000000..2720bee --- /dev/null +++ b/syntax/def_NEWLINE.py @@ -0,0 +1,17 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + '\\r\\n', + '\\n', + '\\r', + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_PRINTABLES.py b/syntax/def_PRINTABLES.py new file mode 100755 index 0000000..4fc41b4 --- /dev/null +++ b/syntax/def_PRINTABLES.py @@ -0,0 +1,13 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + "[[:graph:]]+", + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_Paragraph.py b/syntax/def_Paragraph.py new file mode 100755 index 0000000..2f8e68d --- /dev/null +++ b/syntax/def_Paragraph.py @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + NonTerminal("Words"), + Choice(0, + OneOrMore( + NonTerminal("HardBreak"), + NonTerminal("Words") + ), + Skip() + ), + OneOrMore( + NonTerminal("NEWLINE") + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_PlainWords.py b/syntax/def_PlainWords.py new file mode 100755 index 0000000..eafe2fc --- /dev/null +++ b/syntax/def_PlainWords.py @@ -0,0 +1,20 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + NonTerminal("PRINTABLES"), + Choice(0, + OneOrMore( + NonTerminal("_"), + NonTerminal("PRINTABLES") + ), + Skip() + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_SEMPREFIX.py b/syntax/def_SEMPREFIX.py new file mode 100755 index 0000000..a7fc4a0 --- /dev/null +++ b/syntax/def_SEMPREFIX.py @@ -0,0 +1,13 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + "[.#]", + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_SPACE.py b/syntax/def_SPACE.py new file mode 100755 index 0000000..102f6f4 --- /dev/null +++ b/syntax/def_SPACE.py @@ -0,0 +1,13 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + "' '", + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_SemWords.py b/syntax/def_SemWords.py new file mode 100755 index 0000000..292e4b4 --- /dev/null +++ b/syntax/def_SemWords.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + Sequence( + NonTerminal("SEMPREFIX"), + "<", + NonTerminal("![<>] PRINTABLES"), + ">", + ), + Sequence( + NonTerminal("SEMPREFIX"), + NonTerminal("CURIE"), + ) + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_StyledWords.py b/syntax/def_StyledWords.py new file mode 100755 index 0000000..05a7583 --- /dev/null +++ b/syntax/def_StyledWords.py @@ -0,0 +1,29 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + Sequence( + "**", + NonTerminal("Words"), + "**" + ), + Sequence( + "*", + NonTerminal("Words"), + "*" + ), + Sequence( + "_", + NonTerminal("Words"), + "_" + ) + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_Uri.py b/syntax/def_Uri.py new file mode 100755 index 0000000..922a49d --- /dev/null +++ b/syntax/def_Uri.py @@ -0,0 +1,20 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + Sequence( + "<", + NonTerminal("![<>] PRINTABLES"), + ">", + ), + NonTerminal("![<>] PRINTABLES"), + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def_Words.py b/syntax/def_Words.py new file mode 100755 index 0000000..f4e5152 --- /dev/null +++ b/syntax/def_Words.py @@ -0,0 +1,18 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + NonTerminal("StyledWords"), + NonTerminal("LinkedWords"), + NonTerminal("AnnotatedWords"), + NonTerminal("PlainWords") + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) diff --git a/syntax/def__.py b/syntax/def__.py new file mode 100755 index 0000000..0ae7368 --- /dev/null +++ b/syntax/def__.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +# Copyright 2025, Jonas Smedegaard <dr@jones.dk> +# SPDX-License-Identifier: GPL-3+ + +from os.path import basename, splitext +from railroad import * + +Diagram( + Choice(0, + Sequence( + OneOrMore(NonTerminal("SPACE")), + ), + Sequence( + Optional(NonTerminal("SPACE"), True), + NonTerminal("NEWLINE"), + Optional(NonTerminal("SPACE"), True), + Optional(NonTerminal("SPACE"), True), + Optional(NonTerminal("SPACE"), True) + ) + ), + type="complex" +).writeStandalone( + open(splitext(basename(__file__))[0] + ".svg", "w").write) |
