Skip to content

Commit d0ce8a2

Browse files
committed
parser: keep track of the number of all scanned tokens too, and show it with -stats
1 parent 8d51820 commit d0ce8a2

3 files changed

Lines changed: 7 additions & 2 deletions

File tree

vlib/v/ast/ast.v

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -983,6 +983,7 @@ pub struct File {
983983
pub:
984984
nr_lines int // number of source code lines in the file (including newlines and comments)
985985
nr_bytes int // number of processed source code bytes
986+
nr_tokens int // number of processed tokens in the source code of the file
986987
mod Module // the module of the source file (from `module xyz` at the top)
987988
global_scope &Scope = unsafe { nil }
988989
is_test bool // true for _test.v files

vlib/v/builder/rebuilding.v

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,22 +335,25 @@ pub fn (mut b Builder) rebuild(backend_cb FnBackend) {
335335
if b.pref.is_stats {
336336
compilation_time_micros := 1 + sw.elapsed().microseconds()
337337
scompilation_time_ms := util.bold('${f64(compilation_time_micros) / 1000.0:6.3f}')
338-
mut all_v_source_lines, mut all_v_source_bytes := 0, 0
338+
mut all_v_source_lines, mut all_v_source_bytes, mut all_v_source_tokens := 0, 0, 0
339339
for pf in b.parsed_files {
340340
all_v_source_lines += pf.nr_lines
341341
all_v_source_bytes += pf.nr_bytes
342+
all_v_source_tokens += pf.nr_tokens
342343
}
343344
mut sall_v_source_lines := all_v_source_lines.str()
344345
mut sall_v_source_bytes := all_v_source_bytes.str()
346+
mut sall_v_source_tokens := all_v_source_tokens.str()
345347
mut sall_v_types := b.table.type_symbols.len.str()
346348
mut sall_v_modules := b.table.modules.len.str()
347349
mut sall_v_files := b.parsed_files.len.str()
348350
sall_v_source_lines = util.bold('${sall_v_source_lines:10s}')
349351
sall_v_source_bytes = util.bold('${sall_v_source_bytes:10s}')
352+
sall_v_source_tokens = util.bold('${sall_v_source_tokens:10s}')
350353
sall_v_types = util.bold('${sall_v_types:5s}')
351354
sall_v_modules = util.bold('${sall_v_modules:5s}')
352355
sall_v_files = util.bold('${sall_v_files:5s}')
353-
println(' V source code size: ${sall_v_source_lines} lines, ${sall_v_source_bytes} bytes, ${sall_v_types} types, ${sall_v_modules} modules, ${sall_v_files} files')
356+
println(' V source code size: ${sall_v_source_lines} lines, ${sall_v_source_tokens} tokens, ${sall_v_source_bytes} bytes, ${sall_v_types} types, ${sall_v_modules} modules, ${sall_v_files} files')
354357
//
355358
mut slines := b.stats_lines.str()
356359
mut sbytes := b.stats_bytes.str()

vlib/v/parser/parser.v

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,7 @@ pub fn (mut p Parser) parse() &ast.File {
340340
is_translated: p.is_translated
341341
nr_lines: p.scanner.line_nr
342342
nr_bytes: p.scanner.text.len
343+
nr_tokens: p.scanner.all_tokens.len
343344
mod: module_decl
344345
imports: p.ast_imports
345346
imported_symbols: p.imported_symbols

0 commit comments

Comments
 (0)