aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-01-16 01:55:58 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-01-16 01:55:58 +0100
commit9ac63a9ae5eeb4c7f5ba35f54f870a705a012906 (patch)
tree9e4d0f3210150a63e85e6babe5f6a98b16d578f0 /src
parent8df637ea9540bfc583f3ef6b64f0c8cf7973e351 (diff)
downloadsylt-9ac63a9ae5eeb4c7f5ba35f54f870a705a012906.tar.gz
remove macro tokens!
Diffstat (limited to 'src')
-rw-r--r--src/compiler.rs26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/compiler.rs b/src/compiler.rs
index a8bd6ff..d3f442e 100644
--- a/src/compiler.rs
+++ b/src/compiler.rs
@@ -659,20 +659,14 @@ impl Compiler {
fn statement(&mut self, block: &mut Block) {
self.clear_panic();
- macro_rules! tokens {
- ($( $token:pat ),*) => {
- ($( $token , )* ..)
- };
- }
-
match self.peek_four() {
- tokens!(Token::Print) => {
+ (Token::Print, ..) => {
self.eat();
self.expression(block);
block.add(Op::Print, self.line());
},
- tokens!(Token::Identifier(name), Token::Colon) => {
+ (Token::Identifier(name), Token::Colon, ..) => {
self.eat();
self.eat();
if let Ok(typ) = self.parse_type() {
@@ -683,42 +677,42 @@ impl Compiler {
}
}
- tokens!(Token::Identifier(name), Token::ColonEqual) => {
+ (Token::Identifier(name), Token::ColonEqual, ..) => {
self.eat();
self.eat();
self.definition_statement(&name, Type::UnknownType, block);
}
- tokens!(Token::Identifier(name), Token::Equal) => {
+ (Token::Identifier(name), Token::Equal, ..) => {
self.eat();
self.eat();
self.assign(&name, block);
}
- tokens!(Token::If) => {
+ (Token::If, ..) => {
self.if_statment(block);
}
- tokens!(Token::For) => {
+ (Token::For, ..) => {
self.for_loop(block);
}
- tokens!(Token::Ret) => {
+ (Token::Ret, ..) => {
self.eat();
self.expression(block);
block.add(Op::Return, self.line());
}
- tokens!(Token::Unreachable) => {
+ (Token::Unreachable, ..) => {
self.eat();
block.add(Op::Unreachable, self.line());
}
- tokens!(Token::LeftBrace) => {
+ (Token::LeftBrace, ..) => {
self.scope(block);
}
- tokens!(Token::Newline) => {}
+ (Token::Newline, ..) => {}
_ => {
self.expression(block);