Commit Graph

16 Commits

Author SHA1 Message Date
adamnemecek
b85540007e
Cleanup (#2026) 2024-05-14 20:07:41 -07:00
Elizaveta Demina
9aea3e679b
Add assert expression (#1845) 2024-05-15 01:55:32 +00:00
Casey Rodarmor
1ea5e6ac31
Don't conflate recipes with the same name in different modules (#1825) 2024-01-08 13:26:33 -08:00
Baden Ashford
bba673fd79
Add env() function (#1613) 2023-06-13 12:49:46 +00:00
Erik Krieg
154930cc8a
Allow constructing absolute paths with / operator (#1320) 2022-09-11 07:48:02 +00:00
Casey Rodarmor
a46be41699
Add / operator (#1237) 2022-06-25 09:39:06 +00:00
Casey Rodarmor
01fae9b1e4
Do use super::*; instead of use crate::common::*; (#1239) 2022-06-19 04:56:31 +00:00
Casey Rodarmor
c87909c220
Fix a bunch of typos (#1204) 2022-05-29 02:07:53 +00:00
Casey Rodarmor
58a196f434
Make join accept two or more arguments (#1000) 2021-10-15 00:00:58 +00:00
Casey Rodarmor
9512eb403b
Don't skip variables in variable iterator (#991) 2021-10-09 05:04:13 +00:00
Casey Rodarmor
629c75ff04
Use stable rustfmt instead of nightly (#967) 2021-09-16 13:44:40 +00:00
Casey Rodarmor
19f7ad09a7
Add conditional expressions (#714)
Add conditional expressions of the form:

   foo := if lhs == rhs { then } else { otherwise }

`lhs`, `rhs`, `then`, and `otherwise` are all arbitrary expressions, and
can recursively include other conditionals. Conditionals short-circuit,
so the branch not taken isn't evaluated.

It is also possible to test for inequality with `==`.
2020-10-26 18:16:42 -07:00
Casey Rodarmor
3ec7dea4a3
Use unstable rustfmt configuration options (#592) 2020-02-10 20:07:06 -08:00
Casey Rodarmor
b2285ce0e0
Reform Parser (#509)
Just's first parser performed both parsing, i.e the transformation of a
token stream according to the language grammar, and a number of consistency
checks and analysis passes.

This made parsing and analysis quite complex, so this diff introduces a
new, much cleaner `Parser`, and moves existing analysis into a dedicated
`Analyzer`.
2019-11-07 10:55:15 -08:00
Casey Rodarmor
1cb90f4e65
Use pub(crate) instead of pub (#471)
Eventually, there will probably be a `crate` visibility specifier that
does the same thing as `pub(crate)`. This commit replaces `pub` with
`pub(crate)`, so when `crate` is available we can easily switch to it.
2019-09-21 15:35:03 -07:00
Casey Rodarmor
596ea34460
Replace regex-based lexer with character-at-a-time lexer (#406) 2019-04-15 22:40:02 -07:00