# Non-terminal symbol `StatementType`

rule(s) | occurrences

#### Description

A `StatementType` is the main language unit, an element of the sequence of statements that make up an OSF V1 program. It can be one of the following: A Pragma statement: Extra-language commands for user interaction conveniences. A Sort declaration statement:) To declare how sorts are related in the concept taxonomy. An OSF Expression evaluation statement: To enter an expression to evaluate and print the result. An Empty statement: This has no effect: it is simply skipped. Error statement: To enable error recovery à la yacc. This rule is needed to enable error recovery à la yacc. This is what makes `Statement` a unit of parsing for OSF V1: in case of syntax error, OSF V1's parser ignores everything past the last successfully parsed `Statement` and up to the next end-of-statement marker: a period ('`.`'- also known as the terminal symbol `EOS`).

Defining rules for nonterminal symbol `StatementType`:

`StatementType` |  |
|  | `Pragma` `PragmaArguments_opt`
|  | `SortDeclarationStatement`
|  | `OsfExpression`
|  | `error`

Occurrences of symbol `StatementType` in body of other rules:

`Statement` |  | `StatementType` `EndOfStatement`

Copyright © 2013 by Hassan Aït-Kaci; All Rights Reserved.