Request ProcessingEach URL request is analyzed to extract information about the name of the requested resource and information about authentification and authorization. If the resource is placed in a directory configured to require special authorization, the authorization information is checked. Execution procedes to analyze instructions placed in the assosciated .icod file. A .icod file contains blocks of instructions. A block of instructions is a sequence of declarations and statements. Declarations are used to define variables to be used in statements. Every variable must be declared before being used in a statement, but otherwise declarations can be placed in front or between statements, in any order. Each declaration or statement must be semicolon terminated, and can span several lines. These syntactic rules are concisely expressed in BNF form. The following rules are used to express .icod files syntax:
To avoid confusion with similar characters that may appear in the program, keywords and operators belonging to the language are represented in bold. Elements presented in italic are syntactic parts composed of several other parts. Operator ::= separate a syntactic name (in italic, on the left side) from its definition (on the right side). Definitions (syntactic rules) such as A ::= B [,A] mean that A can be B or B,B or ... B,B,B (a series of B parts separated by a comma). This is named a recursive definition. Sometimes simple recursive definitions can be rewriten as A ::= B { ,B } which is easier to understand. Program ::= block block ::= instruction ; [block] instruction ::= declaration | statement The next pages detail lexical conventions, variable declarations, variable scope and executable statements. URL processing and Authentication and authorization is explained last, although this is taking place before actually starting the request processing, because it affects some of the global variables and they must be introduced first.
|
|
||||||||||
|
ISPG Manual
|