Difference between revisions of "PLC Project"
Line 22: | Line 22: | ||
* <code>;</code> - empty command. | * <code>;</code> - empty command. | ||
− | * <code>type variable, variable, ... ;</code> - declaration of variables, type can be one of: <code>int</code>, <code>float</code>, <code>bool</code>, <code>String</code> | + | * <code>type variable, variable, ... ;</code> - declaration of variables, all these variables have the same type <code>type</code>. It can be one of: <code>int</code>, <code>float</code>, <code>bool</code>, <code>String</code> |
* <code>expression ;</code> - it evaluates given expression, the resulting value of the expression is ignored. Note, there can be some side effects like an assignment to a variable. | * <code>expression ;</code> - it evaluates given expression, the resulting value of the expression is ignored. Note, there can be some side effects like an assignment to a variable. | ||
* <code>read variable, variable, ... ;</code> - it reads values from standard input and then these values are assigned to corresponding variables. Each of these input values is on a separate line and it is verified, that have an appropriate type. | * <code>read variable, variable, ... ;</code> - it reads values from standard input and then these values are assigned to corresponding variables. Each of these input values is on a separate line and it is verified, that have an appropriate type. |
Revision as of 13:31, 14 March 2022
Contents
Language Specification
Program's formatting
The program consists of a sequence of commands. Commands are written with free formatting. Comments, spaces, tabs, and line breaks serve only as delimiters and do not affect the meaning of the program. Comments are bounded by two slashes and the end of the line. Keywords are reserved. Identifiers and keywords are case sensitive.
Literals
There are following literals:
- integers -
int
- sequence of digits. - floating point numbers -
float
- sequence of digits containing a'.'
character. - booleans -
bool
- values:true
andfalse
. - strings -
string
- text given in quotation marks:"text"
. There are no escape sequences in our strings.
Variables
Variable's identifiers are composed from letters and digits, and it must start with a letter. Each variable must be declared before it is used. Repeated declaration of a variable with the same name is an error. Variables must have one of the following types: int
, float
, bool
or string
. After the variables are declared, they have initial values: 0
, 0.0
, ""
respectively false
.
Statements
Following statements are defined:
;
- empty command.type variable, variable, ... ;
- declaration of variables, all these variables have the same typetype
. It can be one of:int
,float
,bool
,String
expression ;
- it evaluates given expression, the resulting value of the expression is ignored. Note, there can be some side effects like an assignment to a variable.read variable, variable, ... ;
- it reads values from standard input and then these values are assigned to corresponding variables. Each of these input values is on a separate line and it is verified, that have an appropriate type.write expression, expression, ... ;
- it writes values of expressions to standard output. The"\n"
character is written after the value of the last expression.{ statement, statement, ... }
- block of statements.if (condition) statement [else statement]
- conditional statement - condition is an expression with a type:bool
. The else part of the statement is optional.while (condition) statement
- a cycle - condition must be abool
expression. This cycle repeats the given statement while the condition holds (it istrue
).