parser: number attributes (#9835)
parent
431d806dcf
commit
c026d8b6f3
|
@ -13,6 +13,7 @@ pub:
|
||||||
is_comptime_define bool // [if name]
|
is_comptime_define bool // [if name]
|
||||||
arg string // [name: arg]
|
arg string // [name: arg]
|
||||||
is_string_arg bool // [name: 'arg']
|
is_string_arg bool // [name: 'arg']
|
||||||
|
is_number_arg bool // [name: 123]
|
||||||
pos token.Position
|
pos token.Position
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1512,6 +1512,7 @@ fn (mut p Parser) parse_attr() ast.Attr {
|
||||||
mut arg := ''
|
mut arg := ''
|
||||||
is_string := p.tok.kind == .string
|
is_string := p.tok.kind == .string
|
||||||
mut is_string_arg := false
|
mut is_string_arg := false
|
||||||
|
mut is_number_arg := false
|
||||||
if is_string {
|
if is_string {
|
||||||
name = p.tok.lit
|
name = p.tok.lit
|
||||||
p.next()
|
p.next()
|
||||||
|
@ -1532,6 +1533,10 @@ fn (mut p Parser) parse_attr() ast.Attr {
|
||||||
// `name: arg`
|
// `name: arg`
|
||||||
if p.tok.kind == .name {
|
if p.tok.kind == .name {
|
||||||
arg = p.check_name()
|
arg = p.check_name()
|
||||||
|
} else if p.tok.kind == .number {
|
||||||
|
arg = p.tok.lit
|
||||||
|
is_number_arg = true
|
||||||
|
p.next()
|
||||||
} else if p.tok.kind == .string { // `name: 'arg'`
|
} else if p.tok.kind == .string { // `name: 'arg'`
|
||||||
arg = p.tok.lit
|
arg = p.tok.lit
|
||||||
is_string_arg = true
|
is_string_arg = true
|
||||||
|
@ -1545,6 +1550,7 @@ fn (mut p Parser) parse_attr() ast.Attr {
|
||||||
is_comptime_define: is_comptime_define
|
is_comptime_define: is_comptime_define
|
||||||
arg: arg
|
arg: arg
|
||||||
is_string_arg: is_string_arg
|
is_string_arg: is_string_arg
|
||||||
|
is_number_arg: is_number_arg
|
||||||
pos: apos.extend(p.tok.position())
|
pos: apos.extend(p.tok.position())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue