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

Remove utility function for combining parser flags

This seemed like a good idea at the time but using the raw flags
directly is quite ok too, no ne...

8a993e2742977f6986ce8449fc121214913c8e03 authored almost 3 years ago by Chris Foster <[email protected]>
Better high level organization for README.md

Add some basic examples and bring some high level order to a document
that's grown organically.

8fa959baafc52c98ca0aea307d45cbe73495ed91 authored almost 3 years ago by Chris Foster <[email protected]>
Add another known broken test in triple string processing

f6c8905458998035cfc58ba407c5e68d5656b81b authored almost 3 years ago by Chris Foster <[email protected]>
Fixes for var"" syntax - raw mode unescaping and empty string

da5fe4e5e45d697b30e170150edb6ed9aa0bdffe authored almost 3 years ago by Chris Foster <[email protected]>
Add various known broken test cases

4f788f6fc599832661e7beac51586905f2ef90e6 authored almost 3 years ago by Chris Foster <[email protected]>
Allow newlines after `where`

5fa9d64f9eb7519ff310d66212b94aa8bbe29c24 authored almost 3 years ago by Chris Foster <[email protected]>
Compat hack for same representation of quoted :true

06e07c78ef70a29a1376da4dc5292fe3c3aae867 authored almost 3 years ago by Chris Foster <[email protected]>
Cleanup some usage of SourceFile

2946ff372bde213af41c235996077a4dd9ee1d67 authored almost 3 years ago by Chris Foster <[email protected]>
Address a few minor fixmes and todos; add some tests

766f93bf7067795e56cff6b776b28be0d36cce6b authored almost 3 years ago by Chris Foster <[email protected]>
Disallow sufficies on unary operators for compatibility

The Julia flisp parser disallows things like `+₁ x` to mean
`(call +₁ x)`, so we probably should...

f78c17a8fea6cd147fd274e4a442b1e897992960 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing `outer` keyword with expression on lhs

It seems we need to use peek_behind here, as a full expression of
arbitrary length (parsed by pa...

d96ee27bbd55b4e2c1809ba42d413658df1f8822 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing of decorated --> arrow (eg x.-->y and x-->₁y)

6bf1c53deaa49cda4d44c0028d50434e1911a248 authored almost 3 years ago by Chris Foster <[email protected]>
Improved tools for syntax test case reduction

When reducing syntax disagreements, search for all failing subtrees
rather than the first one. A...

82448e0fb51c10ef9b94d02a378eb4b805316181 authored almost 3 years ago by Chris Foster <[email protected]>
Fix: hexfloat literals are always parsed as Float64

bbbf2d567f0c7a03922d63a98f1bebc65db823d1 authored almost 3 years ago by Chris Foster <[email protected]>
Parse +(;a) with (parameters a) rather than (block a)

372b010f664b53d9c1ca58b4d9c793ca480d3ac5 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing of empty source files

Also some tweaks to SourceFile pretty printing

e655c1f805c4c8dd130a677a02ac096a73eaa2c6 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: allow ' to be adjoint after contextural keywords

33d02797c6fcc9da176f74e2d7ab216dd566a966 authored almost 3 years ago by Chris Foster <[email protected]>
Various fixes for test case reduction

Make peek() a method of Base.peek, as it's semantically similar.

9e66a47740d48e363a90c6b4e96fb85cb49d0543 authored almost 3 years ago by Chris Foster <[email protected]>
Don't try to parse var identifiers in strings

09957f4c2bb979c4bd8760cfda92acb9a5abe8c3 authored almost 3 years ago by Chris Foster <[email protected]>
Make parser API input and ParseStream text input coherent

Internally in the parser we'd like to work with a string of UTF-8
encoded source code, as we'd l...

27de976765c0da704b08ed943bf23b8c1ccdae3d authored almost 3 years ago by Chris Foster <[email protected]>
Fix raw string escaping prior to closing delimiter

7cfb8bf1ffc35d26a1a1958bbef72f1637e7dc75 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing of nested flattened generators

0856e16f9052c191ef0a1d4c8fdcd6fc2f9c4ce1 authored almost 3 years ago by Chris Foster <[email protected]>
Version compatibility for `.&&` and `.||` syntax: set to >= 1.7

Also replace the julia_version keyword with simply `version` in various
places and simplify the ...

08d3ee029fae52b5f60ebfc48804912ff972db80 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: Always treat .&& and .|| as tokens

In https://github.com/JuliaLang/julia/pull/39594 it was considered
non-breaking enough to change...

6fc13a903ffdefde6b2bb343d0a54333fdea3cd7 authored almost 3 years ago by Chris Foster <[email protected]>
Lots of code movement + parser API cleanup

Work on defining a more useful public parser API in the combination of
- parse() and build_tre...

418d531cd50374c774eed6e96d5e3c88ad887483 authored almost 3 years ago by Chris Foster <[email protected]>
Allow U+2212 (\minus / '−') in numeric literals

Also add a bunch of test cases for numeric literal parsing and fix the
types which arise from pa...

f44b81f20ecf74f44e3ae9489a7cb5cf2a3f78eb authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: Allow floating point with \minus in exponent

d753fddb88bd1354c9c7cce9278f271514a44817 authored almost 3 years ago by Chris Foster <[email protected]>
Fix bumping of `end` in zero-method functions

5ba2d24bbbf134f25c8e16930682a20ca5ad6467 authored almost 3 years ago by Chris Foster <[email protected]>
Fix Expr conversion of double quoted expressions

9308b0d17f61aace1502ef12e58e66b535427332 authored almost 3 years ago by Chris Foster <[email protected]>
Fixes for dotted syntactic operators

* Fix parsing of dotted short circuiting operators .&& and .||
* Fix parsing of dotted type comp...

a710caaa6064132cf11eb80c254ed9a15c824515 authored almost 3 years ago by Chris Foster <[email protected]>
Fix to allow `begin x end::T` to parse correctly

Our parse_factor / parse_factor_with_initial_ex is a bit different from
the flisp parser so type...

add5dcb50f7a31de70f571ff70ffe183d6485705 authored almost 3 years ago by Chris Foster <[email protected]>
Unicode normalization of identifiers

* Add Unicode NFC normalization of all identifiers
* Add Julia-specific normalizations of lookal...

695e0aaaa7ada4fc1adb3b3d87dcb92d62f6ece2 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: Add operators ⫫ ⫪ − and ⋅ lookalikes

fc5fc1b92d51eab68ff4749da2ba6278d6b8d1b8 authored almost 3 years ago by Chris Foster <[email protected]>
Use contextural keyword predicates from Tokenize module

7446eda2c1428f2d2252c5020547a62dae67590b authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: Fix lexing raw strings with contextural keyword prefixes

Introduce a category for contextural keywords. Use that to ensure that
strings are parsed as raw...

cdc0230f15570a4d2228d77c25e39418180f4fcf authored almost 3 years ago by Chris Foster <[email protected]>
Remove use of K"VarIdentifier" from parser

Removing this allows us to remove the VAR_IDENTIFIER/VarIdentifier token
kind, the VAR_EOF token...

0f6fbcf45e222bff38722f93f957b7a30f437ae8 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: remove special parsing of var

It turns out that having this special token type in the lexer isn't
actually very natural. Inste...

3f8b240ce2f3336acb66d89bb37c0e41ed3819c2 authored almost 3 years ago by Chris Foster <[email protected]>
Basic tools for reducing test cases

This includes some simple tooling for test case reduction. This isn't
very precise yet and in va...

a1e48cb7c4692f42339a6b03067f499617fdb5f8 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing chains of mixtures of decorated and undecorated operators

8a28b9ef912137e8a98c488ac22930709d38d83f authored almost 3 years ago by Chris Foster <[email protected]>
Fix bracketed interpolation syntax in macro names, exports, etc.

7cf8552db09dfe26b19659d9b99c7646666df81a authored almost 3 years ago by Chris Foster <[email protected]>
More consistent parsing of assignment in const/global/local

Split parse_assignment up so that we can reuse the second part -
parse_assignment_with_initial_e...

d2b6a65ae85e1cc123d1fa413ceea7d19ba52c0d authored almost 3 years ago by Chris Foster <[email protected]>
Allow interpolations in macro module paths

It turns out that the flisp parser does allow this, so we should too.

98453b3255554a2ead77d2490df07f1c92c4c957 authored almost 3 years ago by Chris Foster <[email protected]>
Allow word operators where keywords are allowed

bc3ddd8a19451d6b439ec109711c74f4b46d45e6 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing of dot before operators in export paths

In `import A.==` the `.` is a separator, not part of a dotted operator
`.==`. Fix this. Also fix...

aaab5b770d5e16cb9295802f824ca2d62c6f9fa3 authored almost 3 years ago by Chris Foster <[email protected]>
Skeleton for generated docs

16ebf702c33b79b2471be0b08013d28cb610aeae authored almost 3 years ago by Chris Foster <[email protected]>
Systemetize the way that version compatibility checking is done

45cf77854cf0eb2975d1f9b34efea45983bd497f authored almost 3 years ago by Chris Foster <[email protected]>
Clean up early prototype of syntax interpolation

Now that we have a real parser, we can just use this parser for the
syntax interpolation prototy...

04016f04b487e0fda036346d3ac828264a7c160c authored almost 3 years ago by Chris Foster <[email protected]>
Emit a warning for space between dots in in import paths

This seems to be strange syntax, and I guess unintentional that this was
allowed by the flisp pa...

ae67ebdf4b8ab5c19e9ab8149f7b027288b80cf9 authored almost 3 years ago by Chris Foster <[email protected]>
Rearrange test utilities into their own file

4e511921b2bf06ce74572e6cc26e617161131e68 authored almost 3 years ago by Chris Foster <[email protected]>
Tools for reducing files down to minimal test cases

f9b2634336482902a82f7322d28fe980c30fcb84 authored almost 3 years ago by Chris Foster <[email protected]>
Allow parsing of const fields for Julia 1.8

4bd0b50c82ac664a464d158657e0adcf23856bc8 authored almost 3 years ago by Chris Foster <[email protected]>
Parse Base 🎉

Many small fixes to correctly parse Base (some failures remain in the
stdlib and Base tests).

*...

4d368e074a13ae66c58d4a980563482994b54bc7 authored almost 3 years ago by Chris Foster <[email protected]>
Rework parsing of function and macro names

There's quite a wide variety of syntax allowed in the function "name"
component which makes dist...

4cbe27a84e458f7460e40006a766ecd6509b5a41 authored almost 3 years ago by Chris Foster <[email protected]>
Move ParseState into parser.jl

ParseState is very specific to Julia parsing, whereas the ParseStream is
somewhat less so and mi...

59bd68559c30d105f0fa155683ef1730c0862195 authored almost 3 years ago by Chris Foster <[email protected]>
Fix space sensitive parsing of primitive types

This allows the bit size to be interpolated.

08817475b5c6e98fd0de5cfb5bc178b0d9542da5 authored almost 3 years ago by Chris Foster <[email protected]>
Fix triple quoted string initial newline stripping

ab2391975c225906c64baf00efcfde5026fba326 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parse_docstring to allow interpolated docstrings

4cf9e049b560e989ed31cbc2d3392d452ee5f615 authored almost 3 years ago by Chris Foster <[email protected]>
Add test file for parsing Base

Not yet connected, as it causes a few failures still.

4165d80af3dd518639e8c5491827cb0c6333d389 authored almost 3 years ago by Chris Foster <[email protected]>
Fix triplequoted string indentation again

The previous version turned out to be quite broken - initial whitespace
is never regarded as ind...

a961b257679abbb5bfa9230890439ed0a9fa446b authored almost 3 years ago by Chris Foster <[email protected]>
Remove unneded generic kinds and fix associated bugs

It turns out that things like K"Keyword" are very easy to accidentally
misuse.

77e0d9dfcca1cc0c7065967b6e74395fc860f961 authored almost 3 years ago by Chris Foster <[email protected]>
Notes kinds/sum types vs the Julia type system

def1fde896dfc46058239f84484d8087c29f3dc3 authored almost 3 years ago by Chris Foster <[email protected]>
Fix: allow operators in parse_identifier_or_interpolate

e0cee22df882348152983801a36f5ee43d2f07f7 authored almost 3 years ago by Chris Foster <[email protected]>
Fix where_enabled=true in normal parsing context

ef0fe1539b9a1ce96e28ddad36c70d36dea71fd9 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing of docstrings within module blocks

c0471fbfcf111ed0f74d938ce5d48bb2116dcc09 authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing of functions definition without method

4c2ef0e67403c3b667983354eb169620775dba53 authored almost 3 years ago by Chris Foster <[email protected]>
Fix backslash escaping of newlines and following indentation

da02805ae0f1955b3717cb93fa6a4694e41268d2 authored almost 3 years ago by Chris Foster <[email protected]>
Disallow hex/bin/oct floats before juxtaposition

f6dd127bf7286e2e94008b1b04d5e4ce7d6e1b4d authored almost 3 years ago by Chris Foster <[email protected]>
Rough parsing of numerical values from strings

bbedbd8f0ab3f14ef373e634827c3e8893a1af0a authored almost 3 years ago by Chris Foster <[email protected]>
Fix parsing of macrocall followed by a space and tuple

For example `@eval (x,y)`

9c5d4891f1df6d455768b467ff15b1d69cc22362 authored almost 3 years ago by Chris Foster <[email protected]>
Use SyntaxHead for head of SyntaxNode

It seems that SyntaxNode shouldn't simply be a proxy for Expr, but
rather a more convenient inte...

186e35c46c1ef6c4debf046b9c7edab60dde010d authored almost 3 years ago by Chris Foster <[email protected]>
Fix parse_unary_subtype, allow initial delimiter in parse_block

ad94efd345308e92624deb281805ae30af45c6cb authored almost 3 years ago by Chris Foster <[email protected]>
Fix diagnostic printing on the last line of the source

a9a9f89341a070cbe57aa7659e839fea46dceb4c authored almost 3 years ago by Chris Foster <[email protected]>
Add self-parsing of test code as an additional test

35c9c51356d3dafbe5ac43a3de5897ba703c120d authored almost 3 years ago by Chris Foster <[email protected]>
Rearrange start of README

Start to clean things up to give a better overview.

0e701f6eee7eaf11424bf33030ceac7d884b6fa8 authored almost 3 years ago by Chris Foster <[email protected]>
Drop 1.4 from CI for now

Probably no point keeping this working at this early stage.

bb73c4a8d4d72eee7da20e820c95e4d51f854b39 authored almost 3 years ago by Chris Foster <[email protected]>
Enable self-parsing test!

392961fb498d2a25dc6221498657b1f7833f2fc5 authored almost 3 years ago by Chris Foster <[email protected]>
String escape processing and triple quoted dedenting

* String unescaping
* Raw string unescaping
* De-indentation of triple quoted strings

81c21c44709be1ce51f79ab5280743424be78995 authored almost 3 years ago by Chris Foster <[email protected]>
Expand parse_all to producing GreenNode + SyntaxNode

This allows any of the tree types to be conveniently produced using the
parse_all interface.

defa9017a5d8739ad20bccbfd195b656727be605 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: emit all strings as STRING or CMD

Emit strings as either STRING or CMD. This distinction is required
downstream from the lexer whe...

691691552c3274b97e9ea623ba26efd748c611b2 authored almost 3 years ago by Chris Foster <[email protected]>
KSet macro - lighter syntax for sets of kinds

This macro makes sets of kinds easier to read. We could also consider
optimizing the set members...

9c364c3c782487076c3217c62c294e5ea8e4c39d authored almost 3 years ago by Chris Foster <[email protected]>
Make tests pass on Julia 1.4

66bfdbb97d3f8a868dda0b96f9aba31024283d6c authored almost 3 years ago by Chris Foster <[email protected]>
Fix project/manifest

b375578978b46d24169f510dbfe05d7f23dbd2d2 authored almost 3 years ago by Chris Foster <[email protected]>
Various fixes; JuliaSyntax now parses its own source code 🎉

* Fix parsing of where with curlies; add test cases.
* Don't emit blocks for right hand side of ...

d6b488fd7b84a13fb8f5106fa67ed1136c718299 authored almost 3 years ago by Chris Foster <[email protected]>
Fix blocks in rhs of `->` syntax, fix break/continue trivia

2c9e5ac92ec827f192150b3e9d42bc2274d0643c authored almost 3 years ago by Chris Foster <[email protected]>
Better printing of diagnostics for errors with large spans

7b5fc2d1bf4d9957a4ff68ac4ffaf11f7ad83240 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: Fix parsing of backslashes in raw strings

db201f6afefbf78f9f3eaec335c80c7c81f547f3 authored almost 3 years ago by Chris Foster <[email protected]>
Parse string interpolations and literals

9d2392f7a164a865fde9b672426ab6858950f493 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: disallow ambiguous string interpolation identifiers

This is done in the lexer rather than the parser as the next character
is readily available.

9078e1832d9c4180531293939af9d1632e76907c authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: add test case for var"" syntax in string interpolations

af3e8d548a108a652ab59acd6bd2a363c6ab8062 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: Rework string interpolations to emit source tokens

This change completely reworks how tokenization of strings happens so
that expressions within st...

df32f7c33cd220501bf81329094cf373d9f03edb authored almost 3 years ago by Chris Foster <[email protected]>
Adapt Tokenize tests to run from JuliaSyntax test suite

426f6bd5df04436b6230369470d1180cb3cc5af6 authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: Lex raw strings

57107b28411fd218b3e4bffcce95a05ad9e0fe39 authored almost 3 years ago by Chris Foster <[email protected]>
Ensure bump_glue / bump_split update the next byte index.

This bug caused the output stream to get out of sync with the text, with
all sorts of messy cons...

fc30688a662e407a5a99a6e4f7e1e08982c675ea authored almost 3 years ago by Chris Foster <[email protected]>
parse_imports: import / using statements

9e65d67cd2db938f8c8a11052ea1d8c9d8c6803a authored almost 3 years ago by Chris Foster <[email protected]>
Tokenize: Add as keyword for import/using

b33962e8ef6a6bf3189a80288b8c1937bdc5d94a authored almost 3 years ago by Chris Foster <[email protected]>
Fix typed_ncat Expr conversion

2665427d224d892783b2db1f3fa9306492ce0e33 authored almost 3 years ago by Chris Foster <[email protected]>
Clean up of SyntaxNode and sexpression printing/tests

* Make short-form SyntaxNode printing use bare Symbols so that tests are
much nicer to look at...

6ac9e09b73adefeb4a2b31faf041dced33194ef1 authored almost 3 years ago by Chris Foster <[email protected]>
Hooks to connect the JuliaSyntax parser to the Julia runtime

ffa0d6aa101386826ef4516b7ac3af48d82ba357 authored almost 3 years ago by Chris Foster <[email protected]>
Fixes + tests for parsing unary ~ and dotted assignments

a87ded231ed175950640f50e0af3bfb7cf9e5645 authored almost 3 years ago by Chris Foster <[email protected]>
Use a vendored copy of Tokenize.jl

We need several significant changes to Tokenize, so bringing that
library in here for now.

6f5552878febf66b4e0c76d9ff4646cf69448dba authored almost 3 years ago by Chris Foster <[email protected]>