NOFRAMES
table of contents
A
STRUCTURAL PRESENTATION.
1
Types.
1.1
Atomic types.
1.2
Nonatomic types.
1.3
Added validations and user-defined types.
1.4
Context types.
1.5
Type checking.
1.5.1
The general case.
1.5.2
Forced type checking.
1.6
Type aliasing.
2
Basic tokens.
2.1
Identifiers.
2.2
Quoted characters.
2.3
Text.
2.4
Numerical items.
2.5
Comments.
3
Operations.
3.1
Supported operators.
3.2
Extension to nonatomic types.
3.3
Precedence hierarchy.
3.3
Formation of nonatomic objects.
3.4
Accessing elements of nonatomic objects.
3.5
Staticly accessing parts of nonatomic objects.
3.5.1
Nonempty slices.
3.5.2
Empty slices.
3.6
Dynamically accessing parts of non-atoms.
3.7
Manipulating nonatoms.
3.7.1
Getting information about nonatoms.
3.7.2
Adding elements to sequences.
3.7.3
Removing elements from sequences.
3.7.4
Permutations on nonatoms.
4
Condition evaluation.
4.1
Truth tables for <logical>s.
4.1.1
The "and" operator.
4.1.2
The "or" operator.
4.1.3
The "not" operator.
4.1.4
The = operator.
4.2
Short-circuit evaluation.
4.3
Example code: finding an name in an address book.
4.4
Side effects.
5
Variables.
5.1
Properties of a variable.
5.2
Scope of a variable.
5.3
Declaring a variable.
5.3.1
Type of a variable.
5.3.2
Type of a nonatom element.
5.3.3
Declarations.
5.3.4
Constants.
5.4
Variable id's.
5.4.1
The id metadata.
5.4.2
Manipulating existing variables.
5.4.3
Creating variables on the fly.
5.4.4
Deleting variables.
5.5
using a variable.
5.5.1
Variables and values.
5.5.2
Assignments.
5.6
Aliasing (an element of) a variable.
6
Included files and namespaces.
6.1
Namespaces.
6.2
Including and naming a file: a first approach.
6.2.1
The "include" statement.
6.2.2
Namespaces.
6.3
Unnamespaced symbols hierarchy.
6.3.1
Distance between abstract files.
6.3.2
The proximity rule.
6.3.3
The straightness rule.
6.3.4
The ascending rule.
6.4
The "import", "promote" and "demote" statements.
6.4.1
The "import" statement.
6.4.2
The "promote" statement.
6.4.3
The "demote" statement.
7
Scopes.
7.1
Named scopes.
7.2
Unnamed scopes.
7.3
The "use" statement.
8
Routines.
8.1
Defining a routine.
8.1.1
Routine types.
8.1.2
Forward declaration.
8.1.3
Calling a routine.
8.2
The "return" and "resume" statements.
8.2.1
Returning from a routine.
8.2.2
Resuming execution.
8.3
Formal parameters of a routine.
8.3.1
Passing mode.
8.3.2
Parameter types.
8.3.3
Example.
8.4
Variables in a routine.
8.5
Calling a routine.
8.5.1
The standard way.
8.5.2
A special use of desequencing.
8.6
Dynamic invocation of routines.
8.7
Routines and namespaces.
8.8
Routine metadata.
9
Code blocks.
9.1
Labelling blocks.
9.2
The "if" block
9.3
The "select" block.
9.3.1
The selector.
9.3.2
The "case" statement.
9.3.3
Instruction flow inside a "select" block.
9.3.4
The "otherwise" statement.
9.3.5
The "stop" statement.
9.4
Loops.
9.4.1
The "for" loop block.
9.4.2
The "while" loop.
9.4.3
The "wfor" loop.
9.5
Exiting blocks.
9.5.1
Exiting keywords.
9.5.2
Optional argument for "exit" and "exif".
9.6
Iteration control for loops.
9.6.1
The "next" statement.
9.6.2
The "retry" statement.
10
The built-in debugger.
10.1
Debugger screen.
10.1.1
General description of the debugger screen.
10.1.2
Available keystrokes.
10.1.3
Other commands.
10.2
Debugger commands.
10.2.1
Dynamic reakpoint.
10.2.2
The ? command.
10.2.3
The s command.
10.3
Status report.
11
Event trapping and exception handling.
11.1
Assigning a handler to an exception.
11.2
Events.
11.3
The "error" procedure.
11.4
The "resume_execute()" and "return_execute()" statements.
12
External OOP support.
12.1
Recognised constructs and their translations.
B
THEMATIC SUMMARY.
1
Arithmetics and maths.
2
Binary operations.
3
Array/sequence building.
4
Sequence/array/record access
5
Assignments.
6
Accessing variables.
7
Relational operators.
8
Declaring variables/types.
9
Including abstract files.
10
Instruction flow control.
11
Nonatomic types manipulations.
12
Dynamic code execution.
13
Defining a routine
14
Miscellaneous.
C
ALPHABETICAL REFERENCE.
Operators
A-C
D-G
H-N
O-R
S-Z
D
GLOSSARY
E
APPENDIX
1
Structure and contents of an OpenEuphoria source file.
1.1
Grammar for OpenEuphoria programs.
1.2
Source file layout.
2
List of
with
and
without
directives.
3
List of warnings issued by OpenEuphoria.