Skip to content

Instantly share code, notes, and snippets.

@briantrice
Created January 25, 2011 16:11
Show Gist options
  • Save briantrice/795125 to your computer and use it in GitHub Desktop.
Save briantrice/795125 to your computer and use it in GitHub Desktop.
org-mode file
Syntax
* DONE Bootstrap in :=. :macro:global:
* DONE Allow | as a binary selector character.
* STARTED Bootstrap in ::= binding. :macro:global:
* TODO Implement mutator selector pattern of "foo:=" and sunset "foo:". :global:
* TODO Externalize `setTo: rules into data structures.
* TODO Implement Ruby === for includes:/select:/case-statement usage. :vm:support:
With different assymetrical selector, e.g. isCaseOf:.
Root -> \=. Collection -> includes:, Block -> applyWith:. Regex -> matches:.
* TODO Implement \=:= as pattern-matching binding. :macro:
Requires generation of ::= statements.
Requires destructuring of Patterns/Partials
* TODO Implement method definition as "signature := body".
Requires method header rewrite at macro-expansion time.
* TODO Implement generalized word-quoting. foo{any text...} http://atomo-lang.org/docs/macros.html#section_macro-quotes :lexer:
** TODO Implement bytes{1 2 3 4} to create literal ByteArrays.
** TODO Implement w{foo bar baz} (or words{}) to tokenize a list of words.
** TODO Implement path{/usr/lib/foo} to create literal Path objects.
** TODO Implement r{[a-z](.*)[ ]} to create regular expression matchers.
** TODO Implement glob{foo?.*.c} to create Glob objects.
** TODO Implement q{} to create ##() literal/read-time arrays.
** TODO Implement comment{} or why{} or doc{} for comments and reclaim double-quotes.
* TODO Change block header syntax to [|( ... ) body ]. :lexer:global:incompatible:
* TODO Swap {} with [] :lexer:global:incompatible:
Libraries
* TODO Finish XTreams refactoring of base libraries.
* TODO Mini-language for unit testing.
System Structure
* TODO Implement file loading as parse-compile-then-execute and use/install the result object.
* TODO Re-implement the bootstrap assembly in terms of these compiled file-methods.
* TODO Implement an Eco-system style repository of modules that can be loaded per-caller.
* TODO Rename files to mirror module name (very closely if not identically).
Documentation
* TODO Anatomy-style documentation tool based on the parser.
* TODO Literate-style documentation facility based on the doctool.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment