Skip to content

Latest commit

 

History

History
62 lines (58 loc) · 2.62 KB

TODO.md

File metadata and controls

62 lines (58 loc) · 2.62 KB

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