Skip to content

Move to tree-sitter based parser#413

Closed
Cypher1 wants to merge 238 commits intomainfrom
goHamTs
Closed

Move to tree-sitter based parser#413
Cypher1 wants to merge 238 commits intomainfrom
goHamTs

Conversation

@Cypher1
Copy link
Copy Markdown
Owner

@Cypher1 Cypher1 commented Feb 20, 2025

  • Examples and work on testing
  • Indentation in tracing
  • More example cases
  • Testing error message improvements
  • Indentation and parser API improvements
  • Classify trailing or infix operators (comma and semicolon) separately
  • Use a helper function for repeated expressions like arrays, lists, etc
  • Indentation and use of any_expr
  • Improved error reporting
  • Cleanup and add repeated helper
  • TMP
  • TMP
  • Classify trailing or infix operators (comma and semicolon) separately
  • Add implements / trait keywords
  • Clippy
  • Clean up inefficient token handling
  • TMP - added
  • Handle paren groups
  • Support infix and postfix binding types
  • Change expectation parameter order to match got vs expected idiom
  • Fmt
  • TMP
  • TMP
  • Bug fix
  • Why not support curlies in weird spots
  • Use 'forall T: Nat' syntax over planned '{T: Nat}'
  • Clean up example syntax
  • Handle indexing operations and add debugging information for the parser's current token and context
  • Fmt
  • Add tests for forall bindings in call arguments
  • Thinking about assignments
  • Handle scoped better and catch cases with non-definition assignment ops
  • Clarify binding vs arguments
  • WIP: Merge bindings and call_or_definition
  • Merge bindings and call_or_definition
  • Cleaning up binding handling
  • Fixup binding/argument handling
  • Fmt
  • TMP - added
  • Split parser module error, tests code into sub modules
  • Cleanup
  • Reorder
  • Think about more test cases
  • Cleanup
  • Call out a recurring pattern with a name
  • Split short-typed-index into crate
  • TMP - added
  • Add basic smoke tests for short typed index
  • Add to default members and sort them
  • Avoid unnecessary use of Arc for Ast datastructures
  • Show that nonzero optimisation works for typed index
  • Add a typed non-zero index which is just an alias to typed index that uses NonZero to save space when used as an Option
  • Keep the String and &str sizes for reference in the string_interner
  • Revert "Avoid unnecessary use of Arc for Ast datastructures"
  • Update note
  • Add note about BTreeMap
  • Split entity-component-slab crate out of the ast module
  • TMP
  • More macro boilerplate
  • More macro boilerplate
  • More macro boilerplate
  • More macro boilerplate
  • More readme
  • TMP
  • Clean up old code
  • Clean up old code
  • Add a mailmap
  • Reorder macro arguments for readability
  • Avoid unnecessary trait leak
  • Avoid unnecessary NodeRef and rename types and macros
  • Avoid using a slab where a small vec would be better
  • Add note
  • Clippy
  • Fmt
  • Add note on bitvec vs bitsvec (which uses simd)
  • TMP - added
  • tmp
  • TMP
  • TMP
  • TMP
  • TMP
  • tmp
  • tmp
  • Partially working
  • Cleanup
  • Add a second test case and performance counters
  • Clean up and implement Debug for State
  • Use underscore not space to enusure word selection grabs the position and type of an entry
  • Renaming to industry jargon
  • Fmt and clippy
  • Child nodes
  • TMP
  • Formatting
  • Debug for rule
  • Tables for output
  • Simplify
  • Track entry origins
  • TMP
  • Passes basic tests
  • clear
  • Mark a failing test as expected
  • Add grmtools deps
  • Add grmtools build
  • Add calc lexer as tako.l
  • TMP
  • Add lexeme definition
  • Start
  • Add error messages to the build script
  • Generators gon generate
  • Try example parser
  • Working example parser
  • Make a test
  • Show that we can 'safely' mutate the context (though only children of the root should be trusted as back tracking may be supported
  • Start parsing some inputs
  • Work out more about how to use yacc style parsers
  • Fix pretty printing a bit
  • TMP
  • Simplify and reduce conflicts
  • Rename Or to BitOr despite it also being type Or for clarity
  • New error type from lrlex
  • TMP
  • TMP
  • Turn off checks that assume windows/unix for wasm
  • Drop partable use treesitter directly
  • Drop rust-sitter use treesitter directly
  • Init
  • Init more
  • Test that the parser already works (sorta) in nvim
  • Add generated files
  • Add tree sitter tako github action
  • Start adding tests and npm setup
  • Configure treesitter package registration
  • Add empty queries for later
  • Add a rough start at highlights
  • Rebuild in CI
  • Don't track generated files
  • Try again
  • Add watch script
  • Add parser to parent project
  • Update build for takolib
  • Go back
  • Update deps
  • Regen with git
  • Regen with git
  • Use git
  • Add comment support
  • Add basic int and float support
  • Add hex support via a color syntax
  • Add number and hex support
  • Deps
  • Add entry points to queries to make tools happy (despite these being the defaults)
  • Fix highlights!
  • More testing and filetypes
  • Progress on binary operations and nested comments
  • TMP
  • TMP
  • Make bacon in root work for parser
  • TMP
  • Improve bacon rebuilding config
  • Ignore more build output
  • Add more corpus tests
  • Iterate on lang
  • Nested comments are tricky, document edge cases
  • Big improvements to definitions
  • Add explicit support for tree sitter style markup so that we can use that for literate programming / multi 'file' files for examples etc.
  • TMP
  • TMP
  • Don't track generated files
  • Don't track generated files
  • Remove unused test file
  • Huge progress
  • Add optionally postfix (or infix) operator ';' sequence
  • Add notation for containers list array/list/set/vector as '[' ']'
  • Tests for type annotations and renam ops to use snake case
  • Update and improve examples
  • Add format strings
  • Add format strings for other test cases
  • Add support for ranges, spread operators, bindings [forall, given, exists], indexing and set notation {a,b,c} inside blocks
  • Add instances test case
  • Reformat number tests
  • Remove unused ident in color test
  • Add separators to contexts test
  • Use forall instead of with keywords
  • Add separators to gadts test
  • Add bindings back
  • TMP
  • Add node-gyp
  • Clean up lazy static and fmt
  • Support mode node types
  • Add handling for more literals and identifiers
  • Int literal test passes with tree sitter
  • Binary operators
  • Start on bindings
  • WIP
  • TMP - added
  • Add missing '->' syntax for 'closure'
  • Rename 'closure' to 'arrow'
  • TMP - added
  • More node types
  • TMP
  • Update dependencies

@Cypher1 Cypher1 closed this Apr 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant