Abstract

Summary of the Extended Backus Naur Form (EBNF) syntax of the C language executable statements.

EBNF Syntax

<executable-statement>
::= <label-phrase> * <unlabeled-statement>
<compound-statement>
::= '{' <declaration-statement> * <executable-statement> * '}'
<do-statement>
::= 'do' <body-statement> 'while' '(' <control-expression> ')' ';'
<if-statement>
::= 'if' '(' <expression> ')' <statement>
<if-else-statement>
::= 'if' '(' <expression> ')' <statement> 'else' <statement>
<for-statement>
::= 'for' '(' <initialization-expression> ';' <control-expression> ';' <iteration-expression> ')' <body-statement>
<expression-statement>
::= <expression> ';'
<iteration-statement>
::= <do-statement>
  |  <for-statement>
  |  <while-statement>
<labeled-statement>
::= <label-phrase> <executable-statement>
<return-statement>
::= 'return' ';'
  |  'return' <expression> ';'
<selection-statement>
::= <if-statement>
  |  <if-else-statement>
  |  <switch-statement>
<simple-statement>
::= <expression-statement>
  |  <jump-statement>
<structured-statement>
::= <compound-statement>
  |  <selection-statement>
  |  <iteration-statement>
<switch-statement>
::= 'switch' '(' <dynamic-expression> ')' '{' <declaration> * <statement> * <case> * '}'
<unlabeled-statement>
::= <simple-statement>
  |  <structured-statement>
<while-statement>
::= 'while' '(' <expression> ')' <statement>

Remarks

Reference Links

Syntax Statement Syntax Diagrams <statement>
Syntax Statement BNF Summary <statement>

Other Languages

C Now C Statement EBNF Syntax
C++ Now C++ Statement EBNF Syntax
C# Now C# Statement EBNF Syntax
COBOL Now COBOL Statement EBNF Syntax
FORTRAN Now FORTRAN Statement EBNF Syntax
Java Now Java Statement EBNF Syntax
JavaScript Now JavaScript Statement EBNF Syntax
Pascal Now Pascal Statement EBNF Syntax
Perl Now Perl Statement EBNF Syntax
PHP Now PHP Statement EBNF Syntax