main.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import {
  2. InputStream,
  3. CommonTokenStream
  4. } from 'antlr4/index';
  5. import * as Commands from './ast/commands';
  6. import { IVProgParser } from './ast/ivprogParser';
  7. import Lexers from '../grammar/';
  8. import { IVProgProcessor } from './processor/ivprogProcessor';
  9. const lang = 'pt_br';
  10. const ivprogLexer = Lexers[lang];
  11. const input = `programa {
  12. funcao inicio() {
  13. inteiro a[2] = {1,2}
  14. }
  15. }`;
  16. // const lexer = new ivprogLexer(new InputStream(input));
  17. // const stream = new CommonTokenStream(lexer);
  18. // stream.fill();
  19. // let i = 1;
  20. // let token = null;
  21. // while ((token = stream.LT(i)).type !== ivprogLexer.EOF && token.type !== ivprogLexer.WHITESPACE) {
  22. // console.log(`${token.type}-${token.text}`);
  23. // console.log('\n')
  24. // i++;
  25. // }
  26. const anaSin = new IVProgParser(input, ivprogLexer);
  27. const proc = new IVProgProcessor(anaSin.parseTree());
  28. proc.interpretAST().then( sto => {
  29. console.log(sto.applyStore('a'));
  30. }).catch(e => console.log(e));
  31. // try {
  32. // const data = anaSin.parseTree();
  33. // console.log(data);
  34. // var editor = new JsonEditor('#json-renderer', data);
  35. // $('#btn').click( () => {
  36. // const input = $('#input').val();
  37. // const analiser = new IVProgParser(input, ivprogLexer);
  38. // try {
  39. // const data = analiser.parseTree();
  40. // console.log(data);
  41. // editor.load(data);
  42. // } catch (error) {
  43. // alert(error);
  44. // }
  45. // });
  46. // } catch(a) {
  47. // console.log(a);
  48. // }