test21.spec.js 817 B

12345678910111213141516171819202122232425262728293031
  1. import Lexers from './../grammar/';
  2. import {Types} from './../js/ast/types';
  3. import { IVProgParser } from './../js/ast/ivprogParser';
  4. import { IVProgProcessor} from './../js/processor/ivprogProcessor'
  5. describe('A call to a function that returns a valid type', function () {
  6. const input = `programa {
  7. funcao inicio() {
  8. inteiro a = soma(1, 1)
  9. }
  10. funcao inteiro soma(inteiro a, inteiro b)
  11. {
  12. retorne a + b
  13. }
  14. }`;
  15. const lexer = Lexers['pt_br'];
  16. const result = 2;
  17. it(`should produce a valid state`, function (done) {
  18. const parser = new IVProgParser(input, lexer);
  19. const exec = new IVProgProcessor(parser.parseTree());
  20. exec.interpretAST().then(sto => {
  21. expect(sto.applyStore('a').value).toEqual(result);
  22. done();
  23. }).catch(err => done(err));
  24. });
  25. });