Lexical structure is the set of fundamental rules that govern the behavior of a programming language. This chapter describes the lexical structure of Caché Basic.
a.foo = 10
A.foo = 20
PrintLn "a = " & a.foo
PrintLn "A = " & A.foo
Statement, function and operator names are not case-sensitive in Basic:
Variable names are case-sensitive:
a = 10
A = 20
PrintLn "a = " & a
PrintLn "A = " & A
Object identifiers (class, method, and property names) are not case-sensitive, but must be locally unique as if they were case-sensitive (in other words, you cannot have a Person
and a PERSON
person = OpenId Sample.Person(1)
' PrintLn person.name ' Error
White Space and Line Continuation
Basic ignores spaces and tabs that appear between tokens. A token is either a function name, variable name, number, or a keyword. White space cannot appear within
A newline indicates the end of a Basic code statement. The underscore character (_) is the line continuation indicator. To continue a statement on the next line, end the first line with a space character followed by an underscore. The underscore must
be the last character of the line; a space or comment is not permitted after the line continuation character.
Comments in Basic are line oriented and start with either the Rem
statement or the apostrophe ('). The comment is always until the end of the line and everything within the comment is ignored:
Literals appear within the program and represent a data value. A literal can be a constant (vbMonday
The following example prints a variety of literals :
PrintLn "This is a String" 'String literal
PrintLn 1234 ' Integer literal
PrintLn 123.4 ' Numeric literal
Identifiers and Variables
An identifier is a name and can be used to name variables, functions, classes, and so on.
A variable is a named storage location that can contain data that can be modified during program execution. Each variable has a name that uniquely identifies it within its level of scope. There are three types of variables: local variables, process-private global variables, and global variables. For detailed definitions of these three types of variables, refer to the Variables
chapter of Using Caché ObjectScript
Variable names are case-sensitive. Variable names may be of any length, but must be unique within the first 31 characters (exclusive of prefix characters). Variables can have multiple levels of subscripts. For details on variable naming conventions in Caché Basic, refer to the Variables
chapter of this manual.
Within Caché Basic code you can define a label as follows:
' some code
' some more code
A label is a valid identifier followed by a colon (:). Label names are case-sensitive. A label name can begin with either a letter or a percent (%) character; the other characters in the label name must be letters or numbers. A label can be of any length, but only the first 31 characters are meaningful. A label can have the same name as a variable or a reserved word, though this is not recommended.
A label must be the first item on a program line. A label does not have to begin at column 1, although this is generally recommended. You can specify more than one label on the same program line, separating these labels with a blank space.
Following all labels on a program line, you can specify one or more commands on the same line; multiple commands on the same program line are separated by a colon character. Following all labels and commands on a program line, you can specify a comment. For example, the following is a valid line of Caché Basic code:
label1: label2: Set x="text" : Println x ' my comment
Within Caché Basic there are a number of reserved words that cannot be used as local variable names or function names.