test00.spec.js 812 B

123456789101112131415161718192021222324252627282930
  1. import Lexers from './../grammar/';
  2. import {
  3. IVProgParser
  4. } from './../js/ast/ivprogParser';
  5. import * as Expressions from './../js/ast/expressions/';
  6. import * as Commands from './../js/ast/commands/';
  7. describe("Testing Syntax Analysis for default", () => {
  8. var lang = 'pt_br';
  9. var input;
  10. var asa;
  11. var lexer;
  12. it("it should produce a valid AST", () => {
  13. lexer = Lexers[lang];
  14. input = `programa {
  15. const real PI
  16. const inteiro a[5][5]
  17. }`;
  18. asa = {
  19. global: [new Commands.Declaration('PI', 'real', null, true),
  20. new Commands.ArrayDeclaration('a', 'int', new Expressions.IntLiteral(5), new Expressions.IntLiteral(5), null, true)],
  21. functions: []
  22. };
  23. const as = new IVProgParser(input, lexer);
  24. expect(as.parseTree()).toEqual(asa);
  25. });
  26. });