EMMA Coverage Report (generated Tue Aug 23 05:57:12 CDT 2011)
[all classes][felix.parser]

COVERAGE SUMMARY FOR SOURCE FILE [FelixInputParser.java]

nameclass, %method, %block, %line, %
FelixInputParser.java100% (1/1)75%  (6/8)53%  (125/235)49%  (36/73)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class FelixInputParser100% (1/1)75%  (6/8)53%  (125/235)49%  (36/73)
parseEvidenceString (String, long): void 0%   (0/1)0%   (0/51)0%   (0/17)
parseProgramFileFromString (String): void 0%   (0/1)0%   (0/35)0%   (0/10)
parseProgramFile (String): void 100% (1/1)73%  (16/22)57%  (4/7)
parseQueryFile (String): void 100% (1/1)73%  (16/22)57%  (4/7)
parseQueryCommaList (String): void 100% (1/1)83%  (29/35)70%  (7/10)
getTokens (String): CommonTokenStream 100% (1/1)86%  (36/42)92%  (11/12)
FelixInputParser (FelixQuery): void 100% (1/1)100% (6/6)100% (3/3)
parseEvidenceFile (String): void 100% (1/1)100% (22/22)100% (7/7)

1package felix.parser;
2 
3import java.io.FileInputStream;
4import java.io.InputStream;
5import java.util.zip.GZIPInputStream;
6 
7import org.antlr.runtime.ANTLRInputStream;
8import org.antlr.runtime.ANTLRStringStream;
9import org.antlr.runtime.CharStream;
10import org.antlr.runtime.CommonTokenStream;
11 
12import felix.dstruct.FelixQuery;
13 
14import tuffy.util.ExceptionMan;
15 
16/**
17 * Class that parses program/evidence files. 
18 * @author Ce Zhang
19 *
20 */
21public class FelixInputParser {
22        
23        FelixQuery mln;
24        
25        /**
26         * The constructor.
27         * @param amln
28         */
29        public FelixInputParser(FelixQuery amln){
30                mln = amln;
31        }
32        
33        /**
34         * Parses given program file.
35         * @param fprog
36         */
37        public void parseProgramFile(String fprog){
38                FELIXParser parser = new FELIXParser(getTokens(fprog));
39                parser.ml = this.mln;
40                try {
41                        parser.definitions();
42                } catch (Exception e) {
43                        mln.closeFiles();
44                        ExceptionMan.handle(e);
45                }
46        }
47 
48        /**
49         * Parses given evidence file.
50         * @param fevid
51         */
52        public void parseEvidenceFile(String fevid){
53                FELIXParser parser = new FELIXParser(getTokens(fevid));
54                parser.ml = this.mln;
55                try {
56                        parser.evidenceList();
57                } catch (Exception e) {
58                        mln.closeFiles();
59                        ExceptionMan.handle(e);
60                }
61        }
62 
63        /**
64         * Parses given evidence string.
65         * @param chunk
66         * @param lineOffset
67         */
68        public void parseEvidenceString(String chunk, long lineOffset){
69                ANTLRStringStream input = new ANTLRStringStream(chunk);
70                FELIXLexer lexer = new FELIXLexer(input);
71                CommonTokenStream tokens = new CommonTokenStream(lexer);
72                FELIXParser parser = new FELIXParser(tokens);
73                parser.lineOffset = lineOffset;
74                parser.ml = this.mln;
75                try {
76                        parser.evidenceList();
77                        parser.reset();
78                        tokens.reset();
79                        lexer.reset();
80                        input.reset();
81                        parser.ml = null;
82                        parser = null;
83                } catch (Exception e) {
84                        mln.closeFiles();
85                        ExceptionMan.handle(e);
86                }
87        }
88 
89        /**
90         * Parses query file.
91         * @param fquery
92         */
93        public void parseQueryFile(String fquery){
94                FELIXParser parser = new FELIXParser(getTokens(fquery));
95                parser.ml = this.mln;
96                try {
97                        parser.queryList();
98                } catch (Exception e) {
99                        mln.closeFiles();
100                        ExceptionMan.handle(e);
101                }
102        }
103        
104        /**
105         * Parses query atom list.
106         * @param queryAtoms
107         */
108        public void parseQueryCommaList(String queryAtoms){
109                CharStream input = new ANTLRStringStream(queryAtoms);
110                FELIXLexer lexer = new FELIXLexer(input);
111                CommonTokenStream tokens = new CommonTokenStream(lexer);
112                FELIXParser parser = new FELIXParser(tokens);
113                parser.ml = this.mln;
114                try {
115                        parser.queryCommaList();
116                } catch (Exception e) {
117                        mln.closeFiles();
118                        ExceptionMan.handle(e);
119                }
120        }
121        
122        /**
123         * Parses program file(s) from given string.
124         * @param strProgs
125         */
126        public void parseProgramFileFromString(String strProgs){
127                CharStream input = new ANTLRStringStream(strProgs);
128                FELIXLexer lexer = new FELIXLexer(input);
129                CommonTokenStream tokens = new CommonTokenStream(lexer);
130                FELIXParser parser = new FELIXParser(tokens);
131                parser.ml = this.mln;
132                try {
133                        parser.definitions();
134                } catch (Exception e) {
135                        mln.closeFiles();
136                        ExceptionMan.handle(e);
137                }
138        }
139 
140        /**
141         * Returns token stream for given file.
142         * @param fname
143         * @return
144         */
145        private CommonTokenStream getTokens(String fname){
146                try {
147                        InputStream is;
148                        FileInputStream fis = new FileInputStream(fname);
149                        if(fname.toLowerCase().endsWith(".gz")){
150                                is = new GZIPInputStream(fis);
151                        }else{
152                                is = fis;
153                        }
154                        ANTLRInputStream input = new ANTLRInputStream(is);
155                        FELIXLexer lexer = new FELIXLexer(input);
156                        CommonTokenStream tokens = new CommonTokenStream(lexer);
157                        is.close();
158                        return tokens;
159                } catch (Exception e) {
160                        ExceptionMan.handle(e);
161                }
162                return null;
163        }
164 
165}

[all classes][felix.parser]
EMMA 2.0.5312 EclEmma Fix 2 (C) Vladimir Roubtsov