;;; ebnf-otz.el --- syntactic chart OpTimiZer
-;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+;; Free Sofware Foundation, Inc.
-;; Author: Vinicius Jose Latorre <vinicius@cpqd.com.br>
-;; Maintainer: Vinicius Jose Latorre <vinicius@cpqd.com.br>
+;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
+;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
+;; Time-stamp: <2004/02/29 18:40:14 vinicius>
;; Keywords: wp, ebnf, PostScript
-;; Time-stamp: <2003-02-10 10:46:51 jbarranquero>
;; Version: 1.0
;; This file is part of GNU Emacs.
;; 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:
(provide 'ebnf-otz)
+;;; arch-tag: 7ef2249d-9e8b-4bc1-999f-95d784690636
;;; ebnf-otz.el ends here