コード例 #1
0
ファイル: ExpressionBuilder.cs プロジェクト: team55/1script
 private void PushOperator(Token token)
 {
     _operators.Push(token);
     if (IsLogicalOperator(token))
     {
         var jmpIdx = _compiler.AddCommand(TokenToOperationCode(token), -1);
         LogicalJumps.Push(jmpIdx);
     }
 }
コード例 #2
0
ファイル: ExpressionBuilder.cs プロジェクト: team55/1script
            private void AddCommandForToken(Token current)
            {
                if (IsLogicalOperator(current))
                {
#if DEBUG
                    System.Diagnostics.Debug.Assert(HasPendingLogicalJumps());
#endif
                    _compiler.AddCommand(OperationCode.MakeBool, 0);
                    var idx = LogicalJumps.Pop();
                    _compiler.CorrectCommandArgument(idx, _compiler._module.Code.Count);
                }
                else
                {
                    _compiler.AddCommand(TokenToOperationCode(current), 0);
                }
            }