Changeset 3980 for applications/trunk/LFC/Earley/Earley.ref
- Timestamp:
- Oct 19, 2008, 12:45:34 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/trunk/LFC/Earley/Earley.ref
r3979 r3980 8 8 9 9 Check { 10 (e.grammar) (TYPE t.name) e.string,11 <Parse (e.grammar) (e.string) () (((TYPE START) (DOT (TYPE t.name)) ())) () ()> : e.sets (e.last) =12 <FindSuccessRule t.name e.last>;10 (e.grammar) (TYPE s.name) e.string, 11 <Parse (e.grammar) (e.string) () (((TYPE START) (DOT (TYPE s.name)) ())) () ()> : e.sets (e.last) = 12 <FindSuccessRule s.name e.last>; 13 13 } 14 14 15 15 FindSuccessRule { 16 t.name ((TYPE t.name e.info) e.prod (DOT) ()) e.rules = (e.info) (e.prod);17 t.name t.rule e.rules = <FindSuccessRule t.name e.rules>;18 t.name = "Parsing failed";16 s.name ((TYPE s.name e.info) e.prod (DOT) ()) e.rules = (e.info) (e.prod); 17 s.name t.rule e.rules = <FindSuccessRule s.name e.rules>; 18 s.name = "Parsing failed"; 19 19 } 20 20 … … 30 30 (e.grammar) (e.string) (e.step) e.sets (t.rule e.rules) (e.current) (e.next), t.rule : { 31 31 * Scanner 32 ((TYPE t.name e.info) e.1 (DOT s.char e.2) (e.n)), e.string : {32 ((TYPE s.name e.info) e.1 (DOT s.char e.2) (e.n)), e.string : { 33 33 s.char e.rest_chars = 34 34 <Parse (e.grammar) (e.string) (e.step) e.sets (e.rules) (e.current t.rule) 35 (e.next ((TYPE t.name e.info s.char) e.1 s.char (DOT e.2) (e.n)))>;35 (e.next ((TYPE s.name e.info s.char) e.1 s.char (DOT e.2) (e.n)))>; 36 36 e.string = 37 37 <Parse (e.grammar) (e.string) (e.step) e.sets (e.rules) (e.current t.rule) (e.next)>; 38 38 }; 39 39 * Predictor 40 (t.type e.1 (DOT (TYPE t.name) e.2) (e.n)),40 (t.type e.1 (DOT (TYPE s.name) e.2) (e.n)), 41 41 e.current t.rule : e.current2 = 42 42 <Parse (e.grammar) (e.string) (e.step) e.sets 43 (<AddPredictions (e.grammar) (e.rules) (e.current2) t.name (e.step)>) (e.current2) (e.next)>;43 (<AddPredictions (e.grammar) (e.rules) (e.current2) s.name (e.step)>) (e.current2) (e.next)>; 44 44 * Completer 45 ((TYPE t.name e.info) e.1 (DOT) (e.n)),45 ((TYPE s.name e.info) e.1 (DOT) (e.n)), 46 46 e.current t.rule : e.current2 = 47 47 <Parse (e.grammar) (e.string) (e.step) e.sets 48 (<AddCompletions (e.n) (e.sets) (e.rules) (e.current2) t.name e.info>) (e.current2) (e.next)>;48 (<AddCompletions (e.n) (e.sets) (e.rules) (e.current2) s.name e.info>) (e.current2) (e.next)>; 49 49 }; 50 50 } 51 51 52 52 AddPredictions { 53 ((PROD (TYPE t.name) e.prods) e.grammar) (e.rules) (e.current) t.name (e.step) =54 <AddPredictions (e.grammar) (<AddPredictions2 (e.prods) (e.rules) (e.current) t.name (e.step)>) (e.current) t.name (e.step)>;55 (t.prod e.grammar) (e.rules) (e.current) t.name (e.step) = <AddPredictions (e.grammar) (e.rules) (e.current) t.name (e.step)>;56 () (e.rules) (e.current) t.name (e.step) = e.rules;53 ((PROD (TYPE s.name) e.prods) e.grammar) (e.rules) (e.current) s.name (e.step) = 54 <AddPredictions (e.grammar) (<AddPredictions2 (e.prods) (e.rules) (e.current) s.name (e.step)>) (e.current) s.name (e.step)>; 55 (t.prod e.grammar) (e.rules) (e.current) s.name (e.step) = <AddPredictions (e.grammar) (e.rules) (e.current) s.name (e.step)>; 56 () (e.rules) (e.current) s.name (e.step) = e.rules; 57 57 } 58 58 59 59 AddPredictions2 { 60 ((e.prod) e.rest_prods) (e.rules) (e.current) t.name (e.step),61 ((TYPE t.name) (DOT e.prod) (e.step)) : t.prediction,60 ((e.prod) e.rest_prods) (e.rules) (e.current) s.name (e.step), 61 ((TYPE s.name) (DOT e.prod) (e.step)) : t.prediction, 62 62 <IsIn e.rules t.prediction> : { 63 True = <AddPredictions2 (e.rest_prods) (e.rules) (e.current) t.name (e.step)>;63 True = <AddPredictions2 (e.rest_prods) (e.rules) (e.current) s.name (e.step)>; 64 64 False, <IsIn e.current t.prediction> : { 65 True = <AddPredictions2 (e.rest_prods) (e.rules) (e.current) t.name (e.step)>;66 False = <AddPredictions2 (e.rest_prods) (e.rules t.prediction) (e.current) t.name (e.step)>;65 True = <AddPredictions2 (e.rest_prods) (e.rules) (e.current) s.name (e.step)>; 66 False = <AddPredictions2 (e.rest_prods) (e.rules t.prediction) (e.current) s.name (e.step)>; 67 67 }; 68 68 }; 69 () (e.rules) (e.current) t.name (e.step) = e.rules;69 () (e.rules) (e.current) s.name (e.step) = e.rules; 70 70 } 71 71 72 72 AddCompletions { 73 (I e.n) (t.set e.rest_sets) (e.rules) (e.current) t.name e.info = <AddCompletions (e.n) (e.rest_sets) (e.rules) (e.current) t.name e.info>;74 () ((e.set) e.rest_sets) (e.rules) (e.current) t.name e.info = <AddCompletions2 (e.set) (e.rules) (e.current) t.name e.info>;75 () () (e.rules) (e.current) t.name e.info = e.rules;73 (I e.n) (t.set e.rest_sets) (e.rules) (e.current) s.name e.info = <AddCompletions (e.n) (e.rest_sets) (e.rules) (e.current) s.name e.info>; 74 () ((e.set) e.rest_sets) (e.rules) (e.current) s.name e.info = <AddCompletions2 (e.set) (e.rules) (e.current) s.name e.info>; 75 () () (e.rules) (e.current) s.name e.info = e.rules; 76 76 } 77 77 78 78 AddCompletions2 { 79 (((TYPE t.name2 e.info2) e.1 (DOT (TYPE t.name) e.2) (e.step)) e.set) (e.rules) (e.current) t.name e.info,80 ((TYPE t.name2 e.info2 (e.info)) e.1 (TYPE t.name) (DOT e.2) (e.step)) : t.completion,79 (((TYPE s.name2 e.info2) e.1 (DOT (TYPE s.name) e.2) (e.step)) e.set) (e.rules) (e.current) s.name e.info, 80 ((TYPE s.name2 e.info2 (e.info)) e.1 (TYPE s.name) (DOT e.2) (e.step)) : t.completion, 81 81 <IsIn e.rules t.completion> : { 82 True = <AddCompletions2 (e.set) (e.rules) (e.current) t.name e.info>;82 True = <AddCompletions2 (e.set) (e.rules) (e.current) s.name e.info>; 83 83 False, <IsIn e.current t.completion> : { 84 True = <AddCompletions2 (e.set) (e.rules) (e.current) t.name e.info>;85 False = <AddCompletions2 (e.set) (e.rules t.completion) (e.current) t.name e.info>;84 True = <AddCompletions2 (e.set) (e.rules) (e.current) s.name e.info>; 85 False = <AddCompletions2 (e.set) (e.rules t.completion) (e.current) s.name e.info>; 86 86 }; 87 87 }; 88 (t.rule e.set) (e.rules) (e.current) t.name e.info = <AddCompletions2 (e.set) (e.rules) (e.current) t.name e.info>;89 () (e.rules) (e.current) t.name e.info = e.rules;88 (t.rule e.set) (e.rules) (e.current) s.name e.info = <AddCompletions2 (e.set) (e.rules) (e.current) s.name e.info>; 89 () (e.rules) (e.current) s.name e.info = e.rules; 90 90 } 91 91 … … 99 99 = <Prout 100 100 * E -> E '+' E | 'n' 101 <Check ((PROD (TYPE ('E')) ((TYPE ('E')) '+' (TYPE ('E'))) ('n'))) (TYPE ('E')) 'n+n'> '\n'102 <Check ((PROD (TYPE ('E')) ((TYPE ('E')) '+' (TYPE ('E')))) (PROD (TYPE ('E')) ('n'))) (TYPE ('E')) 'n+n+n'>>;101 <Check ((PROD (TYPE "E") ((TYPE "E") '+' (TYPE "E")) ('n'))) (TYPE "E") 'n+n'> '\n' 102 <Check ((PROD (TYPE "E") ((TYPE "E") '+' (TYPE "E"))) (PROD (TYPE "E") ('n'))) (TYPE "E") 'n+n+n'>>; 103 103 } 104 104
Note: See TracChangeset
for help on using the changeset viewer.