예제 #1
0
 private void WaddlePrintStmt(PrintStmtSyntax printStmt)
 {
     foreach (var printStmtArgument in printStmt.Arguments)
     {
         var exprType = WaddleExpression(printStmtArgument);
         if (exprType == TypeSymbol.Void)
         {
             throw new SemanticErrorException("Can not print void-value.");
         }
     }
 }
예제 #2
0
        public bool EnterPrintStmt(PrintStmtSyntax syntax, WaddleContext ctx)
        {
            foreach (var printStmtArgument in syntax.Arguments)
            {
                var exprType = printStmtArgument.Accept(TypeVisitor);
                if (exprType == TypeSymbol.Void)
                {
                    throw new SemanticErrorException("Can not print void-value.");
                }
            }

            return(true);
        }
예제 #3
0
 public virtual TResult Visit(PrintStmtSyntax syntax)
 {
     return(DefaultResult);
 }
예제 #4
0
 public void LeavePrintStmt(PrintStmtSyntax syntax, WaddleContext ctx)
 {
 }