The new SPEC. - #21
Open
janstrakowski wants to merge 36 commits into
Open
Conversation
Added charset and encoding details to the specification.
Added typographical conventions section and clarified comments and identifiers.
Clarified specifications for binary integer literals and string interpolation.
Clarified specification for Line-Formatting String Literal regarding allowed characters.
Alongside the grammar skeleton and ignorables files it now lives next to. Updates the paths that actually resolve against it: the spec-html generator's default input and usage text, the playground's virtual-fs assertion and its `cat` help example, and LANGUAGE.md's repo listing and link. Comments citing "SPEC.md §N" for a design rule are left alone - the document's name didn't change, only its directory. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MX2AMXTjijaCXmiw5PFF3g
Added EBNF conceptual definitions and grammar constructs.
Clarified the definition of 'anywhere' in the context of ignorables.
Clarified the definition of 'anywhere' in the context of ignorables.
…r files spec/SPEC.md embeds grammar_skeleton.ebnf and grammar_ignorables.ebnf verbatim, and GitHub's Markdown rendering has no include directive that would keep the embedded copy in sync on its own - so it was a silent copy-paste from here on. Generalizes the existing fenced_block helper (previously hardcoded to the "```hashedbuild" fence) to take the fence literal as a parameter, and reuses it to compare SPEC.md's two ```ebnf blocks against the standalone files. Nothing outside spec/ touches either side of the comparison, so this only ever fires on a spec/ change. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MX2AMXTjijaCXmiw5PFF3g
Updated grammar to include function application and pipe operator. Added operation precedence table and clarified juxtaposition rules.
The spec/ directory (SPEC.md plus grammar_skeleton.ebnf and grammar_ignorables.ebnf) turned out to be more structure than needed: the two EBNF files were duplicated verbatim inside SPEC.md's own ```ebnf blocks (guarded only by a drift test), rather than adding anything SPEC.md couldn't hold on its own. Move SPEC.md back to the repo root, delete the two grammar_*.ebnf files, and update every reference (tools/spec-html, LANGUAGE.md, the playground page and its browser test) plus drop the now-obsolete drift test in docs_test.odin. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aXoeHLg1CNF9SyCpfJoyQ
Updated the specification to include new constructs and clarify existing definitions. Adjusted grammar rules and added extra specifications for better clarity.
Added 'Func' to the list of operators and introduced 'Let', 'Then', 'Matches', 'Else' as new constructs. Clarified restrictions on Function Application and added details on Arithmetic Negation.
Anything-Else Marker -> Anything-Else Table Pattern Marker (the two occurrences had drifted to different names for the same nonterminal), plus spelling fixes: compiletoobj, Conceptual, consecutive, their underlying hierarchies, Ambiguity, interpreted, juxtaposition, beginning, adjacent construct. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018rHGLAdRLeZf55Cvj5MSxg
Removed typographical conventions section from SPEC.md.
Added sections on Data Representation, Data Types, and their descriptions.
Item 2 pointed at "Data Types", the child subsection, instead of the new top-level "Data Representation" heading that now also contains "Data Structure Representation". Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFLodvjcRvAJ38efn1uhZg
Added sections on evaluation, functions, let rec, and placeholders for other topics.
A stale local checkout was reviewed as current on this branch; git status only compares against the last fetch, so it reported clean while origin had moved 5 commits ahead. Recording the fix so it doesn't recur. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016vjCb7JCbkrbhjo3RLYa4J
Clarify the behavior of `let rec` in the specification.
Clarified the explanation of 'let rec' regarding accessibility and function behavior.
Removed 'rec' from 'let rec' syntax and updated the description accordingly.
Added sections on Boolean representation and parameters, and introduced control flow expressions.
Updated syntax for 'let' and 'then' to include optional 'func' keyword. Added sections for named and implicit parameters in function definitions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.