diff --git a/src/asm/matcher/mod.rs b/src/asm/matcher/mod.rs index 747d610a..8db4cab8 100644 --- a/src/asm/matcher/mod.rs +++ b/src/asm/matcher/mod.rs @@ -586,7 +586,8 @@ fn match_with_rule<'src>( asm::RulePatternPart::Whitespace => { - if walker.next_token().kind != syntax::TokenKind::Whitespace + if !walker.is_over() && + walker.next_token().kind != syntax::TokenKind::Whitespace { return vec![]; } diff --git a/tests/issue216/ok.asm b/tests/issue216/ok.asm new file mode 100644 index 00000000..7587a38e --- /dev/null +++ b/tests/issue216/ok.asm @@ -0,0 +1,16 @@ +#subruledef acc { + a => 0xaa + b => 0xbb +} + +#subruledef paropts { + {} => 0x00 + FOO => 0x01 +} + +#ruledef { + abs {reg: acc} {p: paropts} => 0xee @ reg @ p +} + +abs a FOO ; = 0xeeaa01 +abs a ; = 0xeeaa00 \ No newline at end of file