public override Yarn.Type VisitExpNot(YarnSpinnerParser.ExpNotContext context) { ParserRuleContext[] terms = new[] { context.expression() }; // ! supports only bool types return(CheckOperation(context, terms, "!", Yarn.Type.Bool)); }
// (not NOT !)expression public override int VisitExpNot(YarnSpinnerParser.ExpNotContext context) { Visit(context.expression()); // TODO: temp operator call compiler.Emit(ByteCode.CallFunc, TokenType.Not.ToString()); return(0); }
public override Yarn.IType VisitExpNot(YarnSpinnerParser.ExpNotContext context) { ParserRuleContext[] terms = new[] { context.expression() }; var @operator = CodeGenerationVisitor.TokensToOperators[context.op.Type]; // ! supports only bool types Yarn.IType type = CheckOperation(context, terms, @operator, context.op.Text); context.Type = type; return(BuiltinTypes.Boolean); }
// (not NOT !)expression public override int VisitExpNot(YarnSpinnerParser.ExpNotContext context) { Visit(context.expression()); // TODO: temp operator call // Indicate that we are pushing one parameter compiler.Emit(OpCode.PushFloat, new Operand(1)); compiler.Emit(OpCode.CallFunc, new Operand(TokenType.Not.ToString())); return(0); }
// (not NOT !)expression public override int VisitExpNot(YarnSpinnerParser.ExpNotContext context) { this.GenerateCodeForOperation(Operator.Not, context.op, context.Type, context.expression()); return(0); }