浏览代码

Fix negatio operator syntax error

Fix castString bug

Fix runner.html template file path
Lucas de Souza 5 年之前
父节点
当前提交
62d9309480
共有 4 个文件被更改,包括 8 次插入8 次删除
  1. 1 1
      js/ast/ivprogParser.js
  2. 3 3
      js/processor/lib/lang.js
  3. 1 0
      js/processor/semantic/semanticAnalyser.js
  4. 3 4
      templates/runner.html

+ 1 - 1
js/ast/ivprogParser.js

@@ -987,7 +987,7 @@ export class IVProgParser {
       this.pos++;
       const not = convertFromString('not');
       const exp1 = this.parseExpressionRel();
-      finalExp = new Expressions.UnaryApp(not, exp1);
+      const finalExp = new Expressions.UnaryApp(not, exp1);
       finalExp.sourceInfo = SourceInfo.createSourceInfo(opToken);
       return finalExp;
       

+ 3 - 3
js/processor/lib/lang.js

@@ -186,10 +186,10 @@ export function createCastBoolFun () {
 export function createCastStringFun () {
   const castStringFun = function (store, _) {
     const val = store.applyStore('str');
-    let result = convertToString(val)
+    let result = convertToString(val, val.type);
     const temp = new StoreObject(Types.STRING, result);
-    sto.mode = Modes.RETURN;
-    return Promise.resolve(sto.updateStore("$", temp));
+    store.mode = Modes.RETURN;
+    return Promise.resolve(store.updateStore("$", temp));
   }
   const block = new Commands.CommandBlock([], [new Commands.SysCall(castStringFun)]);
   const func = new Commands.Function('$castString', Types.STRING,

+ 1 - 0
js/processor/semantic/semanticAnalyser.js

@@ -146,6 +146,7 @@ export class SemanticAnalyser {
   }
 
   evaluateExpressionType (expression) {
+    // TODO: Throw operator error in case type == UNDEFINED
     if(expression instanceof UnaryApp) {
       const op = expression.op;
       const resultType = this.evaluateExpressionType(expression.left);

+ 3 - 4
templates/runner.html

@@ -4,7 +4,7 @@
 
   <link rel="stylesheet" type="text/css" href="css/ivprog-term.css">
 
-  <link rel="stylesheet" type="text/css" href="js/semantic/semantic.min.css">
+  <link rel="stylesheet" type="text/css" href="css/semantic.min.css">
   <style>
     .ivprog-io-output {
       border: 1px solid gainsboro;
@@ -25,8 +25,7 @@
     }
   </style>
   <title></title>
-  <script src="js/jquery-3.3.1.min.js"></script>
-  <script type="text/javascript" src="js/jquery.json-editor.min.js"></script>
+  <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
 </head>
 <body>
     <div style="padding-top: 50px;content: ''"></div>
@@ -68,7 +67,7 @@
   
   
 </body>
-
+<script type="text/javascript" src="js/jquery.json-editor.min.js"></script>
 <script>
   ( function () {
     ivprogCore.runner();