Here is an example of ECMAScript syntax written in EBNF-like notation for illustrative purposes:
Example of EBNF-Like Syntax for ECMAScript
Program ::= StatementList
StatementList ::= Statement | StatementList Statement
Statement ::= VariableDeclaration | ExpressionStatement | IfStatement
VariableDeclaration ::= "var" Identifier ("=" Expression)? ";"
ExpressionStatement ::= Expression ";"
IfStatement ::= "if" "(" Expression ")" Statement ("else" Statement)?
Expression ::= Identifier | Literal | BinaryExpression
BinaryExpression ::= Expression Operator Expression
Operator ::= "+" | "-" | "*" | "/"
Identifier ::= /[a-zA-Z_][a-zA-Z0-9_]*/
Literal ::= StringLiteral | NumericLiteral | BooleanLiteral
StringLiteral ::= '"' [^"]* '"' | "'" [^']* "'"
NumericLiteral ::= /[0-9]+(\.[0-9]+)?/
BooleanLiteral ::= "true" | "false"