# HG changeset patch # User Vinicius Jose Latorre # Date 1078097227 0 # Node ID 7d439240423bcdff06240a475b0c003e5e89929e # Parent 15161d9793da0a3d08b030f4cf70b263e12844da Doc fix. diff -r 15161d9793da -r 7d439240423b lisp/progmodes/ebnf-iso.el --- a/lisp/progmodes/ebnf-iso.el Sun Feb 29 23:13:58 2004 +0000 +++ b/lisp/progmodes/ebnf-iso.el Sun Feb 29 23:27:07 2004 +0000 @@ -5,7 +5,7 @@ ;; Author: Vinicius Jose Latorre ;; Maintainer: Vinicius Jose Latorre -;; Time-stamp: <2004/02/22 14:24:55 vinicius> +;; Time-stamp: <2004/02/29 18:31:33 vinicius> ;; Keywords: wp, ebnf, PostScript ;; Version: 1.7 @@ -113,7 +113,8 @@ ;; ISO EBNF accepts the characters given by production above, ;; HORIZONTAL TAB (^I), VERTICAL TAB (^K), NEWLINE (^J or ^M) and FORM FEED ;; (^L), any other characters are illegal. But ebnf2ps accepts also the -;; european 8-bit accentuated characters (from \240 to \377) and underscore. +;; european 8-bit accentuated characters (from \240 to \377) and underscore +;; (_). ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff -r 15161d9793da -r 7d439240423b lisp/progmodes/ebnf-otz.el --- a/lisp/progmodes/ebnf-otz.el Sun Feb 29 23:13:58 2004 +0000 +++ b/lisp/progmodes/ebnf-otz.el Sun Feb 29 23:27:07 2004 +0000 @@ -5,7 +5,7 @@ ;; Author: Vinicius Jose Latorre ;; Maintainer: Vinicius Jose Latorre -;; Time-stamp: <2004/02/22 14:24:37 vinicius> +;; Time-stamp: <2004/02/29 18:40:14 vinicius> ;; Keywords: wp, ebnf, PostScript ;; Version: 1.0 @@ -38,6 +38,46 @@ ;; See ebnf2ps.el for documentation. ;; ;; +;; Optimizations +;; ------------- +;; +;; +;; *To be implemented*: +;; left recursion: +;; A = B | A C B | A C D. ==> A = B {C (B | D)}*. +;; +;; right recursion: +;; A = B | C A. ==> A = {C}* B. +;; A = B | D | C A | E A. ==> A = { C | E }* ( B | D ). +;; +;; optional: +;; A = B | C B. ==> A = [C] B. +;; A = B | B C. ==> A = B [C]. +;; A = D | B D | B C D. ==> A = [B [C]] D. +;; +;; +;; *Already implemented*: +;; left recursion: +;; A = B | A C. ==> A = B {C}*. +;; A = B | A B. ==> A = {B}+. +;; A = | A B. ==> A = {B}*. +;; A = B | A C B. ==> A = {B || C}+. +;; A = B | D | A C | A E. ==> A = ( B | D ) { C | E }*. +;; +;; optional: +;; A = B | . ==> A = [B]. +;; A = | B . ==> A = [B]. +;; +;; factoration: +;; A = B C | B D. ==> A = B (C | D). +;; A = C B | D B. ==> A = (C | D) B. +;; A = B C E | B D E. ==> A = B (C | D) E. +;; +;; none: +;; A = B | C | . ==> A = B | C | . +;; A = B | C A D. ==> A = B | C A D. +;; +;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Code: diff -r 15161d9793da -r 7d439240423b lisp/progmodes/ebnf-yac.el --- a/lisp/progmodes/ebnf-yac.el Sun Feb 29 23:13:58 2004 +0000 +++ b/lisp/progmodes/ebnf-yac.el Sun Feb 29 23:27:07 2004 +0000 @@ -5,7 +5,7 @@ ;; Author: Vinicius Jose Latorre ;; Maintainer: Vinicius Jose Latorre -;; Time-stamp: <2004/02/22 14:24:17 vinicius> +;; Time-stamp: <2004/02/29 20:23:29 vinicius> ;; Keywords: wp, ebnf, PostScript ;; Version: 1.2.1 @@ -68,7 +68,7 @@ ;; Name = "[A-Za-z][A-Za-z0-9_.]*". ;; ;; Comment = "/*" "any character, but the sequence \"*/\"" "*/" -;; | "//" "any character" "\\n". +;; | "//" "any character, but the newline \"\\n\"" "\\n". ;; ;; ;; In other words, a valid Name begins with a letter (upper or lower case)