Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/JuliaLang/JuliaSyntax.jl
The Julia compiler frontend
https://github.com/JuliaLang/JuliaSyntax.jl
7c16f1bddf64d27d77366a1f7c68bf3c76d3b6cd authored over 1 year ago by c42f <[email protected]>
The tokenizer can't really solve this case, it needs help from the
parser. ie, tighter coupling...
8fb13c66e9ed26ffcebf0165a10d4197370f8f15 authored over 1 year ago by c42f <[email protected]>
* Parsing `* <: A` doesn't crash the parser
* `+ <: A` now parses correctly as `(call-pre + (<:...
* Text-based test reduction moved into test_utils
* Remove some obsolete utils
* Rename reduct...
Discovered parsing packages in General
1515d8f9b01a18573df860bb5c4e0c50fa7bc5dd authored over 1 year ago by c42f <[email protected]>Copy this list from issue #88 to the docs.
e55e238e0e1d36a3691f97e57cd7ef8d9faff1ba authored over 1 year ago by c42f <[email protected]>
Change the parsing of standalone dotted operators such as `.+` to always
parse as `(. +)`, rega...
This is also distinguishable based on the presence of a child `block`
as the only argument, but...
In `Expr` trees, the internal structure of children of `Expr(:.)` is
different within an import...
`JuliaSyntax.parse()` clashes with `Base.parse()` and it's really not clear
whether `parse()` s...
People keep asking me about this 😅
419d173ed9c7d146f3305204bad1881ae17fe47f authored over 1 year ago by c42f <[email protected]>
The child layout of try-catch-else-finally is awkward because several of
the subclauses are opt...
f762e7669e8d03d6dc4694850b406c3018fdf07d authored over 1 year ago by c42f <[email protected]>
Co-authored-by: c42f <[email protected]>
c808a70754e9f7cf287102b0017bfa3413ea3c88 authored over 1 year ago by Kristoffer Carlsson <[email protected]>
Highlighting of empty ranges needs special handling at the ends of lines
as the source line of ...
6b947dbc2b23f464fa763cd847c66e4ddb5871bf authored over 1 year ago by ndinsmore <[email protected]>
bd19475bb616c8344d5212a64cc434ecdd1fb5e4 authored almost 2 years ago by c42f <[email protected]>
* Fix `:kw` conversion in dubious constructs like `f(((a=1)))`
* Fix Expr conversion for parens...
7482d9c77cea8b559a3b76d47bb7924bfe191147 authored almost 2 years ago by c42f <[email protected]>
Allow parentheses in import paths and macro names
8cad384ceb622d178c7c75c4fbb587f638cdbedd authored almost 2 years ago by c42f <[email protected]>Some packages use this syntax, even though it's apparently pointless!
45860e0990b2074547a2b4a91f5ff7c71f94e509 authored almost 2 years ago by c42f <[email protected]>7a5de3a2e629a42e5d83496acd4e19d3a76251fc authored almost 2 years ago by c42f <[email protected]>
Clean up emit_diagnostic stream position handling
92eac55a3ab87a4b4ad1da39fae7d57c258dda3c authored almost 2 years ago by c42f <[email protected]>
`emit_diagnostic(ps, mark, ...)` now behaves like `emit(ps, mark, ...)`
in terms of the source r...
This isn't a complete solution, but it improves the situation somewhat.
(It's unclear whether w...
2becf30217702dc4db17ac2860eec25372e36672 authored almost 2 years ago by c42f <[email protected]>
Introduce a new kind `K"parens"` to represent grouping parentheses with
a tree node of their ow...
d192ceae95f8de9fd3e7e412e909eedee0cc3cd9 authored almost 2 years ago by c42f <[email protected]>
381e9f2ddc845a0ec02f318d6f716615e5572c12 authored almost 2 years ago by c42f <[email protected]>
Implement a `tokenize()` function which retreives the tokens *after*
parsing.
Going through ...
36909cd6fd31b0b8331aed4c05d339f84f9cd6e6 authored almost 2 years ago by c42f <[email protected]>Various AST cleanups related to removing invisible tokens
2720980503b1e7b66e59205a0e236e18d0d67be9 authored almost 2 years ago by c42f <[email protected]>Various AST cleanups:
* `struct` and `mutable struct` are distinguished with flags not children...
9eb28b238a185332a1e2b4350c65340741e9ae10 authored almost 2 years ago by c42f <[email protected]>
This allows us to easily distinguish juxtaposition syntax from explicit
multiplication.
`return` can have zero arguments - indicate this with empty children,
rather than with an invisi...
f7c74881361b146da7191e0a9a489b49fb9e31c2 authored almost 2 years ago by c42f <[email protected]>
Several syntactic constructs can occur either with or without
parentheses and it can be useful ...
With this change `"str" f` now parses as
(doc (string "str") f)
This better represents...
917e87ff1c339c02351ab1e6dad3196e2f1988c1 authored almost 2 years ago by c42f <[email protected]>c4f1f6a858f2e17fd17070a46ed1ec1a102936f8 authored almost 2 years ago by c42f <[email protected]>
`highlight()` now always prints whole lines of source code, and can
highlight arbitrary ranges ...
* add a very basic precompile workload
Before:
```
julia> @time @eval collect(JuliaSyntax...
Add basic benchmark script + other rearrangments
32336762349fdeb5a0c99d2ecc2e17d90160036e authored almost 2 years ago by c42f <[email protected]>841ed02314016cc2de8add3ed5bb6af4f179be99 authored almost 2 years ago by c42f <[email protected]>
59e917602a4a120d05637968071500116a5a9599 authored almost 2 years ago by c42f <[email protected]>
2f72b12fc50bc6173db2ffab7ff179a3cfe1683a authored almost 2 years ago by c42f <[email protected]>
97e2825c68e770a3f56f0ec247deda1a8588070c authored almost 2 years ago by Tim Holy <[email protected]>
Co-authored-by: c42f <[email protected]>
b693c90f74930909331237fd6efe3cfb135ee960 authored almost 2 years ago by Tim Holy <[email protected]>9a038af82c250de0139975f2ec5ede56b5f02d8c authored almost 2 years ago by c42f <[email protected]>
These add a couple more convenience methods useful for TypedSyntax.
aaaae29a09738f115e8153cb08c39c757e14926a authored almost 2 years ago by Tim Holy <[email protected]>
The byte range is probably most useful for debugging JuliaSyntax than
general use. So disable t...
9ce4c2e4450d7cca87cd3f526d9f28e04060b818 authored almost 2 years ago by c42f <[email protected]>
Closes #192
Co-authored-by: c42f <[email protected]>
0b1aa971e38a363866aee61a40e37688e3cd2bb1 authored almost 2 years ago by Tim Holy <[email protected]>
These two files are particularly affected by recent and upcoming
changes (e.g., #193). This add...
The only weird case here is Base's test/syntax.jl which contains some
pretty weird syntax cases...
142984134136f1637d80f59971bd2801bdf6be40 authored almost 2 years ago by Tim Holy <[email protected]>
a94191988dde0ddc761e2668d0fc17e76c132429 authored almost 2 years ago by Tim Holy <[email protected]>
c58ea423c664d7437d2b0e4436a46f0754e200b2 authored almost 2 years ago by Tim Holy <[email protected]>
This was incorrect when not including a finally clause.
764597acc87265c9c96bc5fe52a0ce11a94c6d4a authored almost 2 years ago by c42f <[email protected]>
- Slightly reword some passages for clarity
- Use punctuation to help reveal sentence structure...
Allow operator-named macros to be used without spaces.
947359ca0707f7d1c4a716743ac01468b69ffd7f authored almost 2 years ago by c42f <[email protected]>Co-authored-by: c42f <[email protected]>
0747ea011a978cd69200f9ecaf8ed1fb10eebf09 authored almost 2 years ago by Tim Holy <[email protected]>
A fairly big refactor of numeric literal tokenization error cases and a
couple of other tokeniz...
Also add start of more targeted tests for SyntaxNode.
0b2c422d15ad67d38e3c6c3c63220546838451c0 authored almost 2 years ago by c42f <[email protected]>
* Line-deletion based fuzzer
* Token-deletion based fuzzer
* Fixes for two crashing bugs fou...
e57b80044e3a863924909ef51e1370c381109e58 authored almost 2 years ago by c42f <[email protected]>f2452c493ee3f8e4c553a61e4781d3283ce037ba authored almost 2 years ago by c42f <[email protected]>
Some fuzz testing tooling to check that the parser doesn't crash on
randomly generated source s...
The reference parser sees `(a; b,)` as a block, but the trailing comma
implies this should be a...
2470b289fdae75d11872307ccc81c9d7db0a8f08 authored almost 2 years ago by c42f <[email protected]>
9507f9b83a6b568081ffd57f7bdb3e335c5639af authored almost 2 years ago by c42f <[email protected]>
Support for running JuliaSyntax on Julia 1.0
f4db9ce550154c3cf1f27a8f70d4a8e8b7d74951 authored almost 2 years ago by c42f <[email protected]>50f4e6ae2ee274040dd08cae03765c3b887a7700 authored almost 2 years ago by c42f <[email protected]>
e8264728c7669136f3defe539068a490f5673d34 authored almost 2 years ago by c42f <[email protected]>
Mostly just compat changes here, adding a bunch of Base utility
functions we use which don't exi...
Fixes for General registry testing
bb1265eb16ab8f3af1239653922a3b37143162d5 authored almost 2 years ago by c42f <[email protected]>37ec22b207645cc3ed04e8f3c4abd53c4b2ae81e authored almost 2 years ago by c42f <[email protected]>
These aren't failures so just ignore them for the purposes of
comparison.
f9f06fcc79d3665b8f1f179daea7003d012a690b authored almost 2 years ago by c42f <[email protected]>
When an interpolation occurs at the beginning of a line without any
preceding whitespace this c...
6a113fcfc9f9b31e45eb8bf4d1887e4c806503bb authored almost 2 years ago by c42f <[email protected]>
This syntax is unnecessary but does occur ~10 times in the General
registry so we should suppor...
Here we emit invalid token errors during the token validation pass. This
ensures any invalid to...
Add special cases to explicitly allow a few incompatibilities for cases
where the reference par...
Fix Expr conversion for expressions like `x{a, b; i=j}`
f7ad15faaf4b749bdb7875875ff87881a4f20adf authored about 2 years ago by c42f <[email protected]>a80b038d8dfbc336ed0e27caf2a9c01010a5edeb authored about 2 years ago by c42f <[email protected]>
55e84b703aa52eff0a220eefaebf30c1ebb0f217 authored about 2 years ago by c42f <[email protected]>
In the reference parser, `[a b\n\n]` parses as `(hcat a b)`, not vcat
with a single row.
Fixes for `is_eventuall_call` so that the following parse correctly
function (::g(x))() e...
d09245bb29390794115503a7d55a738ea0d6437b authored about 2 years ago by c42f <[email protected]>Fix cases where parens are used around module name such as
function (A).f()
end
S...
d6f05cab9be486709c8af506aae95db0b8728856 authored about 2 years ago by c42f <[email protected]>
* Compare Expr in detail against reference parser
* Hack for visual expression diffing
* Cache...
This makes the tree more symbolic, by using unique SyntaxNode head types
to refer to core macro...
0e8c12d9b2ed321efeeed17abc9f059c55968e27 authored about 2 years ago by c42f <[email protected]>
This "frankenwhere" syntax is used by the SimpleTraits.jl `@traitfn`
macro.
7c737710edd7a3a9f0b9d1db15b225b37da4d290 authored about 2 years ago by c42f <[email protected]>
So +0xff is a numeric literal, not `(call-pre + 0xff)`
059867a5b533e3dc7ab40a48e280979b0264ef01 authored about 2 years ago by c42f <[email protected]>1be2e7a3229bd22db6289293be362b9b921cebe2 authored about 2 years ago by c42f <[email protected]>
Several unicode operators were in the wrong precedence category; fix
this:
* Assignment, not c...
6f84a9c2321d233a9da2647f9ed65d86368b0685 authored about 2 years ago by c42f <[email protected]>
618e2850a57bae809edae872b7261f2b4592031d authored about 2 years ago by c42f <[email protected]>
jl_strtod_c can return "underflow" even for valid cases such as `5e-324`
where the source strin...
f270a56e57988d22b051725e0e3c5aa1ce0ca1c5 authored about 2 years ago by c42f <[email protected]>