crystal-lang-tools / tree-sitter Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Following up from the forum discussion, the two most developed tree sitter parsers for Crystal are Keidax's implementation and Will's implementation. However, both take very different approaches when expressing the language grammar: Will's implementation (from some non-thorough reading) makes use of a lot of regex, whereas Keidax's implementation is more expression-based and even makes use of custom C code for additional grammar logic.
For these reasons, I think it would be best if we took a more balanced approach โ that is, still using hand-written grammar that is based from both of these implementations. Both of them have varying techniques for expressing the language's grammar that should definitely be taken advantage of in this implementation.
\
)forall
)&
)require
private
(methods, macros, enums, structs, aliases, classes, modules, libs)protected
(methods)abstract
(methods, structs, classes)include
(structs, classes, modules)extend
(modules)begin
do
rescue
ensure
return
break
next
end
typeof
sizeof
instance_sizeof
offsetof
with
) yield
super
previous_def
of
pointerof
uninitialized
verbatim
(macros)for
(macros)out
fun
(libs)union
(libs)is_a?
nil?
responds_to?
as
as?
if
/unless
else
/elsif
while
/until
case
- when
/in
(then
)__LINE__
__END_LINE__
__FILE__
__DIR__
There should be CI setup to test PRs to ensure functionality (running tests) and for generating artifacts
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.