Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 104x 104x 104x 104x 104x 104x 104x 104x 30x 30x 104x 25x 25x 104x 17x 17x 104x 15x 15x 104x 9x 9x 104x 7x 7x 104x 5x 5x 99x 99x 1x 1x | import {Comment} from "../abap/1_lexer/tokens"; import {Combi} from "../abap/2_statements/combi"; import {ExpressionNode} from "../abap/nodes"; import {IFile} from "../files/_ifile"; import {defaultVersion} from "../version"; import {CDSLexer} from "./cds_lexer"; import * as Expressions from "./expressions"; // todo: the names of the ABAP + CDS + DDL expressions might overlap, if overlapping the singleton will fail export class CDSParser { public parse(file: IFile | undefined) { if (file === undefined) { return undefined; } let tokens = CDSLexer.run(file); tokens = tokens.filter(t => !(t instanceof Comment)); // console.dir(tokens); let res = Combi.run(new Expressions.CDSDefineView(), tokens, defaultVersion); if (res === undefined || !(res[0] instanceof ExpressionNode)) { res = Combi.run(new Expressions.CDSDefineAbstract(), tokens, defaultVersion); } if (res === undefined || !(res[0] instanceof ExpressionNode)) { res = Combi.run(new Expressions.CDSDefineProjection(), tokens, defaultVersion); } if (res === undefined || !(res[0] instanceof ExpressionNode)) { res = Combi.run(new Expressions.CDSAnnotate(), tokens, defaultVersion); } if (res === undefined || !(res[0] instanceof ExpressionNode)) { res = Combi.run(new Expressions.CDSDefineCustom(), tokens, defaultVersion); } if (res === undefined || !(res[0] instanceof ExpressionNode)) { res = Combi.run(new Expressions.CDSDefineTableFunction(), tokens, defaultVersion); } if (res === undefined || !(res[0] instanceof ExpressionNode)) { res = Combi.run(new Expressions.CDSExtendView(), tokens, defaultVersion); } if (res === undefined || !(res[0] instanceof ExpressionNode)) { return undefined; } return res[0]; } } |