Commit Graph

4350 Commits

Author SHA1 Message Date
Alessandro Coglio
5539ce11a6 [ABNF] Improve the grammar for operator calls.
Introduce the notion of postfix expression in the grammar, which will also go
well with some expected upcoming extensions to Leo.

This does not change the Leo language. It does not necessarily involve modifying
the parser. It merely reorganizes some rules slightly.
2022-06-18 15:45:33 -07:00
Alessandro Coglio
846c976c63 [ABNF] Add operator calls.
Since these are a method-like syntax for unary and binary operators (as in fact
these are represented as operators in the AST), the nomenclature 'operator call'
seems appropriate, at least for now. There is no need yet to introduce notions
of associated functions (and constants).

The rules explicitly distinguish between unary and binary ones, corresponding to
unary and binary operators. This lets us exclude right away calls with too many
arguments, and gives us a way to distinguish the two kinds.

A trailing comma is allowed at the end of the one argument of binary operator
calls, if one is really inclined to use it, just for syntactic consistency with
other calls (namely, function calls).
2022-06-13 13:24:05 -07:00
Collin Chin
e8bff31356
Merge pull request #1864 from AleoHQ/misc-bug-fixes
[Fix] Misc Bug Fixes
2022-06-10 12:24:24 -07:00
gluax
36440719fb resolve merge conflicts 2022-06-09 12:46:59 -07:00
gluax
540fdccffe Update abnf, and give docs over parser keywords 2022-06-09 12:45:52 -07:00
Collin Chin
38be98f947
Merge pull request #1860 from AleoHQ/clap
replaced structopt with clap
2022-06-08 16:02:55 -07:00
Collin Chin
60c8ef097b
Merge pull request #1859 from AleoHQ/dependabot/cargo/testnet3/indexmap-1.8.2
Bump indexmap from 1.8.1 to 1.8.2
2022-06-08 15:31:44 -07:00
gluax
f6990e75fc fixed some bugs 2022-06-08 06:46:54 -07:00
0rphon
0af9622cd9 replaced structopt with clap 2022-06-06 11:00:08 -07:00
dependabot[bot]
ef4fb36bd8
Bump indexmap from 1.8.1 to 1.8.2
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/bluss/indexmap/releases)
- [Changelog](https://github.com/bluss/indexmap/blob/1.8.2/RELEASES.rst)
- [Commits](https://github.com/bluss/indexmap/compare/1.8.1...1.8.2)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 10:17:58 +00:00
Collin Chin
18b71d225b
Merge pull request #1857 from AleoHQ/more-tyc-bug-fixes
[Fix] Type Checking Bugs
2022-06-03 12:09:12 -04:00
Collin Chin
2429b72312
Merge pull request #1856 from AleoHQ/abnf-string-type
[ABNF] Add string type.
2022-06-02 12:46:56 -04:00
Collin Chin
0c7736e319
Merge pull request #1854 from AleoHQ/no-tendrils
Remove remnant mentions of tendrils.
2022-06-02 12:46:39 -04:00
gluax
8ad69944c0 bug fixes 2022-06-02 09:39:49 -07:00
gluax
af0e0da6b7 add tests for known bugs 2022-06-02 09:37:55 -07:00
collin
d419e3b7d8 merge testnet3 2022-06-02 11:51:46 -04:00
Collin Chin
53e5dfbb02
Merge pull request #1853 from AleoHQ/abnf-in-out-exprs
[ABNF] Relax input and output expressions.
2022-06-02 11:45:50 -04:00
Collin Chin
6227419653
Merge pull request #1851 from AleoHQ/feature/core-lib
[Feature] core lib
2022-06-02 11:45:25 -04:00
collin
27c858a0fc merge testnet3 2022-06-02 11:33:11 -04:00
collin
85eb1adcce rename corelib -> core, update readme 2022-06-02 11:22:08 -04:00
Collin Chin
354610169f
Merge pull request #1850 from AleoHQ/issue-1841
Lexer: Improve error on `&` not followed by another `&`
2022-06-02 10:01:54 -04:00
Alessandro Coglio
354974726c [ABNF] Add string type. 2022-06-01 20:39:27 -07:00
Collin Chin
59ffe66363
Merge branch 'testnet3' into issue-1841 2022-06-01 22:51:44 -04:00
Collin Chin
5d85b26838
Merge pull request #1842 from AleoHQ/string-type
String type
2022-06-01 22:50:46 -04:00
gluax
9638a695aa fix more bugs, add type checking 2022-06-01 11:16:00 -07:00
collin
3b62e3cc97 fix bugs 2022-06-01 13:49:55 -04:00
gluax
ace7005ea7 fmt 2022-06-01 09:26:18 -07:00
gluax
220cb3e730 rename stdlib -> corelib 2022-06-01 09:09:38 -07:00
gluax
f34f63cea4 update abnf 2022-06-01 08:48:36 -07:00
Alessandro Coglio
ad43c50902 Remove remnant mentions on tendril.
Rename a function.

Rename two variables.

Update some comments.

Remove a README entry that is no longer there.
2022-05-31 22:24:17 -07:00
Alessandro Coglio
9e1dad2b2a [ABNF] Relax input and output expressions.
In input and output files, literals are actually insufficient to represent the
most negative values of the signed integer types.

Given that we are likely to need richer forms of input and output expressions
anyways, at this point it seems best to allow any expression at the grammatical
level, and add static semantic requirements on the allowed expressions. As done
with all the other requirements, these will be stated in the Leo Reference,
formalized in ACL2, and enforced in the Leo compiler.
2022-05-31 19:20:11 -07:00
gluax
c10eb63575 add failing expectation for an invalid input type 2022-05-31 10:36:35 -07:00
gluax
0ce4639a1b merge upstream, test builtin ident types 2022-05-31 10:34:57 -07:00
Collin Chin
c76dd47dd6
Merge pull request #1849 from AleoHQ/dependabot/cargo/testnet3/indexmap-1.8.2
Bump indexmap from 1.8.1 to 1.8.2
2022-05-31 12:17:35 -04:00
Collin Chin
e3eceef513
Merge pull request #1848 from AleoHQ/abnf-remove-unused-rule
[ABNF] Remove unused rule
2022-05-31 12:17:22 -04:00
Mazdak Farrokhzad
6399f873f5 improve error for '&' not followed by '&' 2022-05-31 16:28:01 +02:00
Mazdak Farrokhzad
c623165742 simplify Token::eat 2022-05-31 16:16:15 +02:00
gluax
1da03e728b add checks for ident types being allowed built in types 2022-05-30 11:29:00 -07:00
gluax
2db204b81e further changes to the visitor pattern to clean up code 2022-05-30 10:53:06 -07:00
dependabot[bot]
0604d462ed
Bump indexmap from 1.8.1 to 1.8.2
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/bluss/indexmap/releases)
- [Changelog](https://github.com/bluss/indexmap/blob/1.8.2/RELEASES.rst)
- [Commits](https://github.com/bluss/indexmap/compare/1.8.1...1.8.2)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 10:21:34 +00:00
Alessandro Coglio
66e84ba689 [ABNF] Minor README fixes and improvements. 2022-05-28 18:47:27 -07:00
Alessandro Coglio
2cdcdb479d [ABNF] Simplify .gitattribute file.
No need to reference a file that's no longer here.
2022-05-28 18:35:03 -07:00
Alessandro Coglio
b16f9ae31e [ABNF] Remove unused rule.
Since character literals were removed, the rule `not-single-quote-or-backslash`
is no longer needed.
2022-05-28 18:31:02 -07:00
collin
a230bd1477 remove char 2022-05-26 16:53:57 -04:00
collin
3de06095ed cargo fmt 2022-05-26 16:48:34 -04:00
collin
2327bca617 implement static string type 2022-05-26 16:43:18 -04:00
gluax
044b2a10a4 refa:ctored visitor pattern to better on an the AST 2022-05-26 13:29:51 -07:00
collin
4d7540501f add string type to tokenizer + lexer 2022-05-26 16:13:03 -04:00
collin
84c0a82008 add string type to tokenizer + lexer 2022-05-26 15:55:37 -04:00
Collin Chin
d43605538d
Merge pull request #1837 from AleoHQ/type-checking-bug-fixes
[Fix] Type checking bug fixes
2022-05-26 14:28:39 -04:00