Skip to content
Snippets Groups Projects
Commit be0eb6b9 authored by Arthur B's avatar Arthur B
Browse files

Version without camel case syntax

parent 1473c0da
Branches
No related merge requests found
......@@ -3,9 +3,91 @@ use logos::Logos;
#[derive(Logos, Debug, PartialEq)]
pub enum C1Token {
// TODO: Define variants and their token/regex
#[token("bool")]
KW_BOOLEAN,
#[token("do")]
KW_DO,
#[token("else")]
KW_ELSE,
#[token("float")]
KW_FLOAT,
#[token("for")]
KW_FOR,
#[token("if")]
KW_IF,
#[token("int")]
KW_INT,
#[token("printf")]
KW_PRINTF,
#[token("return")]
KW_RETURN,
#[token("void")]
KW_VOID,
#[token("while")]
KW_WHILE,
#[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]")]
DIGIT,
#[regex(r#"[0-9]+"#)]
INTEGER,
#[regex(r#"[0-9]+\.[0-9]+|\.[0-9]+"#)]
FLOAT,
#[regex("[a-zA-Z]")]
LETTER,*/
//termvar
#[regex(r#"[0-9]+"#)]
CONST_INT,
#[regex(r#"([0-9]+\.[0-9]+|\.[0-9]+)([eE]([-+])?[0-9]+)?|[0-9]+[eE]([-+])?[0-9]+"#)]
CONST_FLOAT,
#[regex("true|false")]
CONST_BOOLEAN,
#[regex("\"[^\n\"]*\"")]
CONST_STRING,
#[regex(r#"[a-zA-Z]+([0-9]|[a-zA-Z])*"#)]
ID,
// Logos requires one token variant to handle errors,
// it can be named anything you wish.
#[error]
#[regex(r#"//[^\n]*\n"#, logos::skip)]
#[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