Compare commits

...

3 Commits

Author SHA1 Message Date
Greg Shuflin
93d0a2cd7d Clippy fix in eval 2021-10-21 12:38:12 -07:00
Greg Shuflin
9b5c3629c0 Update schala-lang to edition 2021 2021-10-21 12:37:29 -07:00
Greg Shuflin
b5484e67ee Update to edition 2021
Except there's some issues with parser macros preventing it for
schala-language
2021-10-21 12:33:56 -07:00
6 changed files with 12 additions and 14 deletions

View File

@ -2,8 +2,7 @@
name = "schala-lang"
version = "0.1.0"
authors = ["greg <greg.shuflin@protonmail.com>"]
edition = "2018"
resolver = "2"
edition = "2021"
[dependencies]
itertools = "0.10"

View File

@ -186,7 +186,7 @@ impl<'a> State<'a> {
for stmt in stmts {
ret = self.statement(stmt)?;
}
Ok(ret.unwrap_or(Node::Expr(Expr::unit())))
Ok(ret.unwrap_or_else(|| Node::Expr(Expr::unit())))
}
fn expression(&mut self, node: Node) -> EvalResult<Node> {

View File

@ -1,6 +1,6 @@
#![feature(trace_macros)]
//#![feature(unrestricted_attribute_tokens)]
#![feature(box_patterns, box_syntax)]
#![feature(box_patterns, box_syntax, iter_intersperse)]
//! `schala-lang` is where the Schala programming language is actually implemented.
//! It defines the `Schala` type, which contains the state for a Schala REPL, and implements

View File

@ -308,13 +308,13 @@ macro_rules! expect {
}
macro_rules! delimited {
($self:expr, $start:pat, $parse_fn:ident, $( $delim:pat )|+, $end:pat, nonstrict) => {
delimited!($self, $start, $parse_fn, $( $delim )|*, $end, false)
($self:expr, $start:pat, $parse_fn:ident, $delim:pat, $end:pat, nonstrict) => {
delimited!($self, $start, $parse_fn, $delim, $end, false)
};
($self:expr, $start:pat, $parse_fn:ident, $( $delim:pat )|+, $end:pat) => {
delimited!($self, $start, $parse_fn, $( $delim )|*, $end, true)
($self:expr, $start:pat, $parse_fn:ident, $delim:pat, $end:pat) => {
delimited!($self, $start, $parse_fn, $delim, $end, true)
};
($self:expr, $start:pat, $parse_fn:ident, $( $delim:pat )|+, $end:pat, $strictness:expr) => {
($self:expr, $start:pat, $parse_fn:ident, $delim:pat, $end:pat, $strictness:expr) => {
{
expect!($self, $start);
let mut acc = vec![];
@ -326,13 +326,13 @@ macro_rules! delimited {
}
if !$strictness {
match peek.get_kind() {
$( $delim )|* => { $self.token_handler.next(); continue },
$delim => { $self.token_handler.next(); continue },
_ => ()
}
}
acc.push($self.$parse_fn()?);
match $self.token_handler.peek().get_kind() {
$( $delim )|* => { $self.token_handler.next(); continue },
$delim => { $self.token_handler.next(); continue },
_ if $strictness => break,
_ => continue,
};

View File

@ -2,8 +2,7 @@
name = "schala-repl"
version = "0.1.0"
authors = ["greg <greg.shuflin@protonmail.com>"]
edition = "2018"
resolver = "2"
edition = "2021"
[dependencies]
llvm-sys = "70.0.2"

View File

@ -1,4 +1,4 @@
#![feature(box_patterns, box_syntax, proc_macro_hygiene, decl_macro)]
#![feature(box_patterns, box_syntax, proc_macro_hygiene, decl_macro, iter_intersperse)]
#![feature(plugin)]
#[macro_use]