Example #1
0
 private void _throw(NakoNodeThrow node)
 {
     //int errorVarNo = node.errorVarNo;
     //Write_r(node.exceptionNode);
     //addNewILCode(NakoILType.LD_LOCAL_REF, node.exceptionNode.value);
     //addNewILCode(NakoILType.ST_LOCAL, errorVarNo);
     //addNewILCode(NakoILType.LD_LOCAL_REF, errorVarNo);
     addNewILCode (NakoILType.THROW,node.exceptionNode.value);
 }
Example #2
0
 private bool _throw()
 {
     //○○で|のエラー発生
     TokenTry();
     bool is_value = _value();
     if (!Accept(NakoTokenType.THROW))
     {
         TokenBack();
         return false;
     }
     TokenFinally();
     NakoNodeThrow nt = new NakoNodeThrow ();
     nt.errorVarNo = localVar.GetIndex(NakoReservedWord.ERROR, true); // 変数「エラー値」の変数番号を取得
     NakoNodeVariable v = new NakoNodeVariable ();
     v.varType = NakoVarType.Object;
     if (is_value) {
         v.value = new InvalidOperationException ();//TODO:set exception from value
     } else {
         v.value = new Exception ();
     }
     nt.exceptionNode = v;
     parentNode.AddChild(nt);
     tok.MoveNext();
     return true;
 }