Benutzer-Werkzeuge

Webseiten-Werkzeuge


ebnf:examples

EBNF Examples

Arithmetic Expressions

<ebnf> "Arithmetic Expressions" {
expression = term  { ("+" | "-") term} .
term       = factor  { ("*"|"/") factor} .
factor     = constant | variable | "("  expression  ")" .
variable   = "x" | "y" | "z" .
constant   = digit {digit} .
digit      = "0" | "1" | "..." | "9" .
} </ebnf>

syntax=%22Arithmetic+Expressions%22+%7B+expression+%3D+term+%7B+%28%22%2B%22+%7C+%22-%22%29+term%7D+.+term+%3D+factor+%7B+%28%22%2A%22%7C%22%2F%22%29+factor%7D+.+factor+%3D+constant+%7C+variable+%7C+%22%28%22+expression+%22%29%22+.+variable+%3D+%22x%22+%7C+%22y%22+%7C+%22z%22+.+constant+%3D+digit+%7Bdigit%7D+.+digit+%3D+%220%22+%7C+%221%22+%7C+%22...%22+%7C+%229%22+.+%7D

See: http://en.wikipedia.org/wiki/Syntax_diagram

Designator

<ebnf> "Designator" {
  Designator = (ident | "this" | "super") {"." ident | "[" Expr "]"}.
} </ebnf>

syntax=%22Designator%22+%7B+Designator+%3D+%28ident+%7C+%22this%22+%7C+%22super%22%29+%7B%22.%22+ident+%7C+%22%5B%22+Expr+%22%5D%22%7D.+%7D

See: http://dotnet.jku.at/applications/Visualizer/#Simple

Backus-Naur Form (BNF)

<ebnf> "Backus-Naur Form" {
  syntax         = rule [ syntax ] .
  rule           = opt-ws  identifier opt-ws "::=" opt-ws expression opt-ws EOL .
  expression     = list [ "|" expression ] .
  line-end       = opt-ws EOL | line-end line-end .
  list           = term [ WHITESPACE list ] .
  term           = literal | identifier .
  identifier     = "<" character {character} ">" .
  literal        = "'" {character} "'" | '"'  {character} '"' .
  opt-ws         = { WHITESPACE } .
  character      = lowercase-char | uppercase-char | digit | special-char .
  lowercase-char = "a" | "b" | "..." | "z" .
  uppercase-char = "A" | "B" | "..." | "Z" .
  digit          = "0" | "1" | "..." | "2" .
  special-char   = "-" | "_" .
} </ebnf>

syntax=%22Backus-Naur+Form%22+%7B+syntax+%3D+rule+%5B+syntax+%5D+.+rule+%3D+opt-ws+identifier+opt-ws+%22%3A%3A%3D%22+opt-ws+expression+opt-ws+EOL+.+expression+%3D+list+%5B+%22%7C%22+expression+%5D+.+line-end+%3D+opt-ws+EOL+%7C+line-end+line-end+.+list+%3D+term+%5B+WHITESPACE+list+%5D+.+term+%3D+literal+%7C+identifier+.+identifier+%3D+%22%3C%22+character+%7Bcharacter%7D+%22%3E%22+.+literal+%3D+%22%27%22+%7Bcharacter%7D+%22%27%22+%7C+%27%22%27+%7Bcharacter%7D+%27%22%27+.+opt-ws+%3D+%7B+WHITESPACE+%7D+.+character+%3D+lowercase-char+%7C+uppercase-char+%7C+digit+%7C+special-char+.+lowercase-char+%3D+%22a%22+%7C+%22b%22+%7C+%22...%22+%7C+%22z%22+.+uppercase-char+%3D+%22A%22+%7C+%22B%22+%7C+%22...%22+%7C+%22Z%22+.+digit+%3D+%220%22+%7C+%221%22+%7C+%22...%22+%7C+%222%22+.+special-char+%3D+%22-%22+%7C+%22_%22+.+%7D

Adapted from: http://en.wikipedia.org/wiki/Wirth_syntax_notation

ebnf/examples.txt · Zuletzt geändert: von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki