EMMA Coverage Report (generated Sat Dec 08 18:30:31 GMT 2007)
[all classes][uk.co.zonetora.fj]

COVERAGE SUMMARY FOR SOURCE FILE [Main.java]

nameclass, %method, %block, %line, %
Main.java100% (2/2)80%  (4/5)96%  (77/80)95%  (19/20)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Main100% (1/1)67%  (2/3)96%  (71/74)94%  (17/18)
Main (): void 0%   (0/1)0%   (0/3)0%   (0/1)
main (String []): void 100% (1/1)100% (5/5)100% (2/2)
parseAndTypeCheck (String): String 100% (1/1)100% (66/66)100% (15/15)
     
class Main$1100% (1/1)100% (2/2)100% (6/6)100% (3/3)
Main$1 (): void 100% (1/1)100% (3/3)100% (2/2)
run (String): String 100% (1/1)100% (3/3)100% (1/1)

1package uk.co.zonetora.fj;
2 
3import java.io.IOException;
4import java.io.StringReader;
5import java.util.List;
6 
7import uk.co.zonetora.InputParser;
8import uk.co.zonetora.RunnableWithString;
9import uk.co.zonetora.fj.ast.lexer.Lexer;
10import uk.co.zonetora.fj.ast.node.Start;
11import uk.co.zonetora.fj.ast.parser.Parser;
12import uk.co.zonetora.fj.model.ClassDecl;
13import uk.co.zonetora.fj.passes.BuildModel;
14import uk.co.zonetora.fj.typecheck.ClassTable;
15 
16public class Main {
17 
18        
19        public static void main(String[] args) throws IOException {
20                InputParser.parse(new RunnableWithString() {
21                        public String run(String arg) {
22                                return parseAndTypeCheck(arg);
23                        }
24                });
25        }
26 
27 
28        public static String parseAndTypeCheck(String contents) {
29                VariablePushbackReader vpr = new VariablePushbackReader(new StringReader(contents));
30                Lexer lexer = new Lexer(vpr);
31                Parser p = new Parser(lexer);
32                try {
33                        Start start = p.parse();
34                        
35                        BuildModel bm = new BuildModel();
36                        start.apply(bm);
37                        List<ClassDecl> classes = bm.getClasses();
38                        
39                        ClassTable ct = new ClassTable();
40                        for(ClassDecl cd : classes) {
41                                ct.addClassDefinition(cd);
42                        }
43                        ct.validateClassTable();
44                        
45                } catch(Throwable t) {
46                        t.printStackTrace();
47                        return "Error:" + t.getMessage();
48                }
49                return null;
50                
51        }
52        
53}

[all classes][uk.co.zonetora.fj]
EMMA 2.0.5312 (C) Vladimir Roubtsov