Skip to content
Snippets Groups Projects
Commit cd3c04ff authored by Julian Scherzer's avatar Julian Scherzer
Browse files

Replace c1.rs

parent 6920c691
Branches main
No related merge requests found
......@@ -2,10 +2,84 @@ use logos::Logos;
#[derive(Logos, Debug, PartialEq)]
pub enum C1Token {
// TODO: Define variants and their token/regex
#[token("bool")]
KwBoolean,
#[token("do")]
KwDo,
#[token("else")]
KwElse,
#[token("float")]
KwFloat,
#[token("for")]
KwFor,
#[token("if")]
KwIf,
#[token("int")]
KwInt,
#[token("printf")]
KwPrintf,
#[token("return")]
KwReturn,
#[token("void")]
KwVoid,
#[token("while")]
KwWhile,
#[token("+")]
Plus,
#[token("-")]
Minus,
#[token("*")]
Asterisk,
#[token("/")]
Slash,
#[token("=")]
Assign,
#[token("==")]
Eq,
#[token("!=")]
Neq,
#[token("<")]
Lss,
#[token(">")]
Grt,
#[token("<=")]
Leq,
#[token(">=")]
Geq,
#[token("&&")]
And,
#[token("||")]
Or,
#[token(",")]
Comma,
#[token(";")]
Semicolon,
#[token("(")]
LParen,
#[token(")")]
RParen,
#[token("{")]
LBrace,
#[token("}")]
RBrace,
#[regex("[0-9]+", priority=2)]
ConstInt,
#[regex("(([0-9]+)?[.])?[0-9]+([eE]([-+])?[0-9]+)?|[0-9]+[eE]([-+])?[0-9]+", priority=1)]
ConstFloat,
#[regex("true|false")]
ConstBoolean,
#[regex("([a-zA-Z])+([0-9]|[a-zA-Z])*")]
Id,
#[regex("\"[^\n\"]*\"")]
ConstString,
//[regex(r"[ \t\n\f]+", logos::skip)]
//#[regex(r"//.*",logos::skip)]
// Logos requires one token variant to handle errors,
// it can be named anything you wish.
#[error]
#[regex(r"/\*[^\*]*\*/",logos::skip)]
#[regex(r"[ \t\n\f]+|//.*",logos::skip)]
Error,
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment