C.Pas-stat-BNF(1)
Transcript of C.Pas-stat-BNF(1)
-
8/13/2019 C.Pas-stat-BNF(1)
1/5
1
BNF Statements Syntax Rules in C / Pascal/ Fortran
C statements:
statement expression-statement| compound-statement
| selection-statement| iteration-statement| jump-statement| function-call-statement
expression-statement expression;compound-statement {statement-list}statement-list empty
| statement statement-list
selection-statement if (expression) statement| if (expression) statement else statement| switch (expresion) cases
iteration-statement while ( expression ) statement| do statement-list while ( expression );| for (expression;expression; expression) statement
jump-statement break ;| continue;| return [expression];
function-call-statement function-name([parameters]);cases case constant-expression : statement
| default : statement
-
8/13/2019 C.Pas-stat-BNF(1)
2/5
2
Pascal Statements:
statement assignment-statement| compound-statement| selection-statement| iteration-statement
| jump-statement| procedure-call-statement| other-statement| empty
assignment-statement variable := expressioncompound-statement begin statement-listend
statement-list statement| statement-list ; statement
selection-statement if expressionthen statement
| if expressionthen statementelse statement| case expressionof case-list end
iteration-statement while expressiondo statement| repeat statement-listuntil expression| for varid := for-listdo statement
procedure-call-statement procid| procid ( expression-list )
jump-statement return
case-list constant-expression: statement| constant-expression: statement ; case-listfor-list expressionto expression
| expressiondownto expressionother-statement with record-variable-listdo statement
-
8/13/2019 C.Pas-stat-BNF(1)
3/5
3
FORTRAN Statements:
executable-statement assignment-statement| arithmetic-if-statement| logical-if-statement| block-if-statement
| do-statement| goto-statement| call-statement| return-statement| stop-statement| continue-statement| io-statement
assignment-statement variable-name = expression| array-element-name = expression
| string-name = expressionarithmetic-if-statement IF ( int-real-dp-expr ) label , label , labellogical-if-statement IF ( logical-expression ) executable-statementblock-if-statement IF ( logical-expression ) THEN
{statement}
[else-if-statement]{statement}END IF
| IF ( logical-expression ) THEN {statement}ELSE {statement}
END IF else-if-statement ELSE IF ( logical-expression ) THEN
{statement}[else-if-statement]{statement}
END IF | ELSE IF ( logical-expression ) THEN
{statement}ELSE {statement}END IF
-
8/13/2019 C.Pas-stat-BNF(1)
4/5
-
8/13/2019 C.Pas-stat-BNF(1)
5/5
5
format-identifier label| variable-name| array-name| character-expresion| *
format-statement FORMAT format-specification
format-specification ([fmt-specification])fmt-specification repeat-spec aux5
| aux5aux5 ( fmt-specification ) aux6
| I w aux6| I w . m aux6| A aux6| A w aux6
| L w aux6| aux7 aux6
aux6 aux8| , fmt-specificationaux7 F w . d
| E w . d| E w . d E e| D w . d| G w . d| G w . d E e
aux8 /| :| / fmt-specification| : fmt-specification| / , fmt-specification| : , fmt-specification
repeat-spec nonzero-unsigned-int-constantd unsigned-int-constant
e nonzero-unsigned-int-constantw nonzero-unsigned-int-constantfunction-reference function-name ( aux9 )
| function-name ( )aux9 ( expression | array-name|
procedure-name) [ , aux9]