C.Pas-stat-BNF(1)

download C.Pas-stat-BNF(1)

of 5

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]