mirror of
https://github.com/vlang/v.git
synced 2025-09-14 15:02:33 +03:00
scanner.v: refactoring
This commit is contained in:
parent
8462e99bc5
commit
88758082d2
5 changed files with 176 additions and 153 deletions
|
@ -823,7 +823,7 @@ fn (p mut Parser) get_type() string {
|
|||
if p.tok == .lsbr {
|
||||
p.check(.lsbr)
|
||||
// [10]int
|
||||
if p.tok == .integer {
|
||||
if p.tok == .number {
|
||||
typ = '[$p.lit]'
|
||||
p.next()
|
||||
}
|
||||
|
@ -834,9 +834,9 @@ fn (p mut Parser) get_type() string {
|
|||
// [10][3]int
|
||||
if p.tok == .lsbr {
|
||||
p.next()
|
||||
if p.tok == .integer {
|
||||
if p.tok == .number {
|
||||
typ += '[$p.lit]'
|
||||
p.check(.integer)
|
||||
p.check(.number)
|
||||
}
|
||||
else {
|
||||
is_arr2 = true
|
||||
|
@ -2095,7 +2095,7 @@ fn (p mut Parser) term() string {
|
|||
p.next()
|
||||
p.gen(tok.str())// + ' /*op2*/ ')
|
||||
p.fgen(' ' + tok.str() + ' ')
|
||||
if is_div && p.tok == .integer && p.lit == '0' {
|
||||
if is_div && p.tok == .number && p.lit == '0' {
|
||||
p.error('division by zero')
|
||||
}
|
||||
if is_mod && (is_float_type(typ) || !is_number_type(typ)) {
|
||||
|
@ -2129,7 +2129,7 @@ fn (p mut Parser) factor() string {
|
|||
mut typ := ''
|
||||
tok := p.tok
|
||||
switch tok {
|
||||
case .integer:
|
||||
case .number:
|
||||
typ = 'int'
|
||||
// Check if float (`1.0`, `1e+3`) but not if is hexa
|
||||
if (p.lit.contains('.') || (p.lit.contains('e') || p.lit.contains('E'))) &&
|
||||
|
@ -2452,7 +2452,7 @@ fn (p mut Parser) map_init() string {
|
|||
fn (p mut Parser) array_init() string {
|
||||
p.is_alloc = true
|
||||
p.check(.lsbr)
|
||||
is_integer := p.tok == .integer
|
||||
is_integer := p.tok == .number
|
||||
lit := p.lit
|
||||
mut typ := ''
|
||||
new_arr_ph := p.cgen.add_placeholder()
|
||||
|
@ -3334,7 +3334,7 @@ fn (p mut Parser) return_st() {
|
|||
}
|
||||
else {
|
||||
// Don't allow `return val` in functions that don't return anything
|
||||
if false && p.tok == .name || p.tok == .integer {
|
||||
if false && p.tok == .name || p.tok == .number {
|
||||
p.error('function `$p.cur_fn.name` does not return a value')
|
||||
}
|
||||
|
||||
|
@ -3529,3 +3529,16 @@ fn (p mut Parser) fspace() {
|
|||
fn (p mut Parser) fgenln(s string) {
|
||||
p.scanner.fgenln(s)
|
||||
}
|
||||
|
||||
fn (p mut Parser) peek() Token {
|
||||
for {
|
||||
tok := p.scanner.peek()
|
||||
if tok != .nl {
|
||||
return tok
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn (p mut Parser) create_type_string(T Type, name string) {
|
||||
p.scanner.create_type_string(T, name)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue