stackto
To-do list for StackTo
In no particular order.
(done) spaces in strings
(done) expressions directly in output
(done) negative numbers
(done) add min and max operators
(done) add sum keyword for lists
(done) add prod keyword for lists
(done) test remaining untested operators
(done) random library/function
(done) “type” keyword to get type of a item in an expression
(done) “split” string operator
(done) run code from directory/path not just cwd
(done) represent program as flowchart (parsed statements)
(done) brainstorm language name - “stackto”/”StackTo” (stack + goto)
(done) brainstorm file extension - “.stackto”
(done) syntax highlighter (/formatter)
(done) revised bnf
use argparse for impl.py and generate_flowchart.py
(done) figure out something better than COLON to replace colon with port issue for graphviz
(done) add special “inputnum” operator to autocast user input to number
(done) add list set nth trinary operator e.g. “$list index x setnth”
add line numbers to error output
fix flowchart generator to use node labels and remove possible duplicate node name issues
port syntax highlighter to js so that it can be run on a website
add list “contains” binary operator
add string formatting with %s or similar
fix code formatter to allow empty lines for readability
academic writeup of syntax, semantics
display code output underneath highlighted syntax output from syntax highlighter (capture stdout)
actual jupyter-like notebook support
“set” datatype
record/dict datatype
dark theme css for syntax highlighting
ide support (lsp)
data structure libraries or keywords
graphviz integration
optimize code
write wrapper to mock output for batch testing files
input from within expressions (?)
provide prompt functionality for input, e.g. “inputprompt”
standard library/functions (?)
file i/o library/functionality
gui library
cli repl
csv lib
function namespaces (e.g., List.nth, List.splat…) (?)
allow definition of custom stack operators
js interpreter and online repl
port to c or llvm or java
regex lib
web/requests library
documentation website
language logo
naming convention for markers based on function
Rejected ideas
(rejected) fix comment difficulty by removing comments before splitting on semicolons
(rejected) add multiline comments - brainstorm a delimiter