import { IVProgParser } from './../js/ast/ivprogParser'; import * as Expressions from './../js/ast/expressions/'; import * as Commands from './../js/ast/commands/'; import { LanguageService } from './../js/services/languageService'; import { Types } from './../js/typeSystem/types'; describe("Testing Syntax Analysis for default", () => { var input; const asa = { global: [new Commands.Declaration('PI', Types.REAL, new Expressions.IntLiteral(1), true), new Commands.ArrayDeclaration('a', Types.INTEGER, new Expressions.IntLiteral(5), new Expressions.IntLiteral(5), null, false)], functions: [] }; const lexer = LanguageService.getCurrentLexer(); it("it should produce a valid AST", () => { input = `programa { const real PI = 1 inteiro a[5][5] }`; const as = new IVProgParser(input, lexer); expect(as.parseTree()).not.toEqual(asa); }); });