Allowing expressions in a couple places that used to be literal numbers
This commit is contained in:
@@ -5,14 +5,11 @@ name_char = { ASCII_ALPHA_LOWER | ASCII_ALPHA_UPPER | "_" | "$" }
|
||||
name = @{ name_char ~ (name_char | ASCII_DIGIT)* }
|
||||
|
||||
dec_number = @{ ASCII_NONZERO_DIGIT ~ ASCII_DIGIT* }
|
||||
// Literal numbers use this rule, but in exprs it's the prefix operator. The difference
|
||||
// is that some things (const initialization) only accept literal numbers.
|
||||
neg_number = ${ "-" ~ dec_number }
|
||||
hex_number = ${ "0x" ~ ASCII_HEX_DIGIT+ }
|
||||
bin_number = ${ "0b" ~ ASCII_BIN_DIGIT+ }
|
||||
oct_number = ${ "0o" ~ ASCII_OCT_DIGIT+ }
|
||||
dec_zero = @{ "0" }
|
||||
number = { dec_number | hex_number | bin_number | oct_number | dec_zero | neg_number }
|
||||
number = { dec_number | hex_number | bin_number | oct_number | dec_zero }
|
||||
|
||||
escape = @{ "\\" ~ ("t" | "r" | "n" | "0" | "\\" | "\"") }
|
||||
string_inner = ${ !("\"" | "\\") ~ ANY | escape }
|
||||
@@ -90,8 +87,8 @@ repeat_loop = { "repeat" ~ "(" ~ expr ~ ")" ~ name? ~ block }
|
||||
var_decl = { "var" ~ name ~ varinfo ~ ("=" ~ expr)? }
|
||||
global = { "global" ~ name ~ varinfo ~ ";" }
|
||||
typename = { ":" ~ name }
|
||||
size = { "[" ~ number ~ "]" }
|
||||
const_decl = { "const" ~ name ~ "=" ~ (number | string) ~ ";" }
|
||||
size = { "[" ~ expr ~ "]" }
|
||||
const_decl = { "const" ~ name ~ "=" ~ (expr | string) ~ ";" }
|
||||
|
||||
struct_decl = { "struct" ~ name ~ "{" ~ members ~ "}" }
|
||||
member = { name ~ varinfo }
|
||||
|
||||
Reference in New Issue
Block a user