ebnf2.txt 566 B

123456789101112131415
  1. ifOne = ifBegin stmtsOne ["else" stmtsOne];
  2. ifBegin = "if" expr ":"
  3. actBegin = "act" expr ":"
  4. actOne = actBegin stmtsOne;
  5. stmtsOne = actOne | ifOne | assign { "&" assign } [actOne | ifOne]
  6. stmtsMultiNl = nl smtsMulti nl {stmtsMulti nl}
  7. actMulti = actBegin (stmtsOne | stmtsMultiNl "end");
  8. elif = ifBegin stmtsMultiNl ("end" | "else" (elif | stmtsMultiNl "end"));
  9. ifMulti = ifOne | elif = ifBegin (stmtsOne ["else" stmtsOne] | stmtsMultiNl ("end" | "else" (elif | stmtsMultiNl "end")))
  10. stmtsMulti = ifMulti | actMulti | assign { "&" assign } [ifMulti | actMulti]