======== vxrefbas ======== -------------------------------------------------------------- Variable cross-reference for tokenized Atari 8-bit BASIC files -------------------------------------------------------------- .. include:: manhdr.rst SYNOPSIS ======== vxrefbas **input-file** DESCRIPTION =========== **vxrefbas** reads an Atari 8-bit BASIC tokenized program and prints a list of variables (names and token numbers), each with a list of line numbers where the variable is referenced. String variable names end with *$*. Arrays end with *(*. Numeric (scalar) variable names don't have a special character. After the list of lines, the reference count is shown in parentheses. Variables that aren't used by the program are listed as *(no references)*. Each line number may be followed by an *=* and one or more markers, which show the type of variable access. **A** Variable is assigned on this line, with *LET* or "implied LET" (e.g. *A=1*). **F** Variable is used as the control variable of a *FOR* loop on this line. **N** Variable is used in a *NEXT* on this line. **D** The variable is dimensioned (*DIM* command) on this line. Only applies to string and array variables. **I** Variable was *INPUT* on this line. **R** Variable was *READ* on this line. OPTIONS ======= General Options --------------- **--help** Print usage message and exit. **--version** Print version number and exit. **-v** Verbose operation. When displaying a number in verbose mode, it will be prefixed with *$* if it's in hex, or no prefix for decimal. BUGS ==== This program:: 10 FILE=1:INPUT #FILE,LINE$ Results in this:: FILE/80: 10=AI (1) LINE$/81: 10=AI (1) 2 variables, 0 unreferenced. **vxrefbas** thinks *FILE* is being *INPUT* on line 10, which it isn't. The output for *FILE* should read *10=A (1)*. Also, this program:: 10 DIM A(1):A(0)=10 20 DIM B(A(0)) Results in this:: A(/80: 10=AD 20=D (2) B(/81: 20=D (1) 2 variables, 0 unreferenced. **vxrefbas** thinks *A(* is being DIMensioned on line 20, which it isn't. The output for *A(* should read *10=AD 20 (2)*. EXIT STATUS =========== 0 for success, 1 for failure. .. include:: manftr.rst