2020-03-06 04:23:24 -05:00
|
|
|
lexer foo_lexer {
|
|
|
|
|
|
2020-06-25 12:32:23 +02:00
|
|
|
@trivia()
|
2024-06-20 11:22:42 +00:00
|
|
|
Whitespace <- p"[ \n\r\t]+"
|
2020-03-06 04:23:24 -05:00
|
|
|
|
|
|
|
|
family alphanumericals {
|
2024-06-20 11:22:42 +00:00
|
|
|
Def <- "def"
|
|
|
|
|
Var <- "var"
|
2020-03-06 04:23:24 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
family alphanumericals {
|
2024-06-20 11:22:42 +00:00
|
|
|
Error <- "error"
|
|
|
|
|
Example <- "example"
|
|
|
|
|
Null <- "null"
|
2024-06-04 12:38:25 +00:00
|
|
|
|
2024-06-20 11:22:42 +00:00
|
|
|
KwA <- "kwA"
|
|
|
|
|
KwB <- "kwB"
|
|
|
|
|
KwC <- "kwC"
|
|
|
|
|
KwD <- "kwD"
|
|
|
|
|
KwE <- "kwE"
|
|
|
|
|
KwF <- "kwF"
|
2020-03-06 04:23:24 -05:00
|
|
|
}
|
|
|
|
|
|
2020-03-12 17:30:55 +01:00
|
|
|
|
|
|
|
|
family punctuation {
|
2024-06-20 11:22:42 +00:00
|
|
|
Comma <- ","
|
|
|
|
|
Dot <- "."
|
|
|
|
|
Semicolon <- ";"
|
|
|
|
|
Colon <- ":"
|
|
|
|
|
LPar <- "("
|
|
|
|
|
RPar <- ")"
|
|
|
|
|
LBrace <- "{"
|
|
|
|
|
RBrace <- "}"
|
|
|
|
|
Equal <- or("=" | ":=")
|
|
|
|
|
Plus <- "+"
|
2020-03-12 17:30:55 +01:00
|
|
|
}
|
|
|
|
|
|
2024-06-20 11:22:42 +00:00
|
|
|
Minus <- "-"
|
|
|
|
|
LessThan <- "<"
|
|
|
|
|
LessThanOrEqual <- "<="
|
|
|
|
|
GreaterThan <- ">"
|
|
|
|
|
GreaterThanOrEqual <- ">="
|
2020-03-06 04:23:24 -05:00
|
|
|
|
2024-06-12 09:59:11 +00:00
|
|
|
@unparsing_spacing(with=alphanumericals)
|
2020-03-06 04:23:24 -05:00
|
|
|
family alphanumericals {
|
2024-06-20 11:22:42 +00:00
|
|
|
Number <- p"[0-9]+|0x[0-9a-f]+"
|
2020-06-25 12:32:23 +02:00
|
|
|
@symbol()
|
2024-06-20 11:22:42 +00:00
|
|
|
Identifier <- p"[a-zA-Z_][a-zA-Z0-9_]*"
|
2020-03-06 04:23:24 -05:00
|
|
|
}
|
|
|
|
|
|
2024-06-20 11:22:42 +00:00
|
|
|
String <- p"\"[^\"]*\""
|
2020-03-12 17:30:55 +01:00
|
|
|
|
|
|
|
|
family comments {
|
2024-06-12 11:36:09 +00:00
|
|
|
@with_unparsing_newline
|
2024-02-07 14:14:21 +00:00
|
|
|
@trivia(comment=true)
|
2024-06-20 11:22:42 +00:00
|
|
|
Comment <- p"#(.?)+"
|
2020-03-12 17:30:55 +01:00
|
|
|
}
|
|
|
|
|
|
2020-03-06 04:23:24 -05:00
|
|
|
}
|