From b26ed8e2ef15eb8ce013fa0ba49f6951250e3455 Mon Sep 17 00:00:00 2001 From: Alessandro Coglio Date: Tue, 24 May 2022 23:05:14 -0700 Subject: [PATCH 1/3] [ABNF] Add initial output grammar. This is for the current simplified version of Leo. When the main function is executed, it returns a value. According to this grammar, the output (i.e. `.out`) file contains a single literal, which describes the output value, preceded by an `[output]` title. This may be extended in the future. --- docs/grammar/README.md | 41 +++++++++++++++++++++++++++++++++++ docs/grammar/abnf-grammar.txt | 15 +++++++++++++ 2 files changed, 56 insertions(+) diff --git a/docs/grammar/README.md b/docs/grammar/README.md index e7710dd5dc..ae55d18b83 100644 --- a/docs/grammar/README.md +++ b/docs/grammar/README.md @@ -963,4 +963,45 @@ Go to: _[input-title](#user-content-input-title)_; ```abnf input-file = *input-section +``` + + +-------- + + +Output Grammar +-------------- + + +```abnf +output-expression = literal +``` + +Go to: _[literal](#user-content-literal)_; + + + +```abnf +output-item = output-expression ";" +``` + +Go to: _[output-expression](#user-content-output-expression)_; + + + +```abnf +output-title = "[" %s"output" "]" +``` + + +```abnf +output-section = output-title output-item +``` + +Go to: _[output-item](#user-content-output-item), [output-title](#user-content-output-title)_; + + + +```abnf +output-file = output-section diff --git a/docs/grammar/abnf-grammar.txt b/docs/grammar/abnf-grammar.txt index c41b639f79..75c4e14c28 100644 --- a/docs/grammar/abnf-grammar.txt +++ b/docs/grammar/abnf-grammar.txt @@ -374,3 +374,18 @@ input-title = "[" ( %s"public" / %s"private" / %s"constant" / %s"const" ) "]" input-section = input-title *input-item input-file = *input-section + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; Output Grammar +; -------------- + +output-expression = literal + +output-item = output-expression ";" + +output-title = "[" %s"output" "]" + +output-section = output-title output-item + +output-file = output-section From a0abb01abdf65845bf8c58226b363fe9065b3e0b Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Wed, 25 May 2022 09:22:32 -0700 Subject: [PATCH 2/3] regenerate readme --- docs/grammar/README.md | Bin 24830 -> 51676 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/grammar/README.md b/docs/grammar/README.md index ae55d18b83944704339f733e8a2259ae77379d62..345a6841297df6626a3a279300453c8b6f1e790e 100644 GIT binary patch literal 51676 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 Qz){OEx|+OmeOg5PKLpI+VgLXD literal 24830 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 From dc084038992a71ed6d1bde8828ad8a27b59bed32 Mon Sep 17 00:00:00 2001 From: collin <16715212+collinc97@users.noreply.github.com> Date: Wed, 25 May 2022 14:40:06 -0400 Subject: [PATCH 3/3] remove readme --- docs/grammar/README.md | Bin 52400 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/grammar/README.md diff --git a/docs/grammar/README.md b/docs/grammar/README.md deleted file mode 100644 index 04fb2dc7ddbe67825dc10afc2b4b77cb5c406000..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52400 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