View Javadoc
1   package net.sourceforge.jenesis4java;
2   
3   /*
4    * #%L
5    * Jenesis 4 Java Code Generator
6    * %%
7    * Copyright (C) 2000 - 2015 jenesis4java
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Lesser Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Lesser Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22   * #L%
23   */
24  
25  /**
26   * Copyright (C) 2008, 2010 Richard van Nieuwenhoven - ritchie [at] gmx [dot] at
27   * Copyright (C) 2000, 2001 Paul Cody Johnston - pcj@inxar.org <br>
28   * This file is part of Jenesis4java. Jenesis4java is free software: you can
29   * redistribute it and/or modify it under the terms of the GNU Lesser General
30   * Public License as published by the Free Software Foundation, either version 3
31   * of the License, or (at your option) any later version.<br>
32   * Jenesis4java is distributed in the hope that it will be useful, but WITHOUT
33   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
34   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
35   * details.<br>
36   * You should have received a copy of the GNU Lesser General Public License
37   * along with Jenesis4java. If not, see <http://www.gnu.org/licenses/>.
38   */
39  /**
40   * {@code Expression} subinterface for expressions which have a single operand.
41   */
42  public interface Unary extends Expression {
43  
44      /**
45       * Unary function type for a group of parentheses: {@code (expr)}.
46       */
47      int GROUP = 0;
48  
49      /**
50       * Unary function type for a logical complement: {@code (!true)}.
51       */
52      int NOT = 1;
53  
54      /**
55       * Unary function type for bitwise complement: {@code (~1)}.
56       */
57      int BITWISE_NOT = 2;
58  
59      /**
60       * Unary function type for arithmetic sign complement: {@code (-1)}.
61       */
62      int NEG = 3;
63  
64      /**
65       * Unary function type for arithmetic sign identity: {@code (+1)}.
66       */
67      int POS = 4;
68  
69      /**
70       * Unary function type for arithmetic ante-increment: {@code (++i)}.
71       */
72      int PREFIX_INCREMENT = 5;
73  
74      /**
75       * Unary function type for arithmetic ante-increment: {@code (++i)}.
76       * 
77       * @deprecated use {@link #PREFIX_INCREMENT} instead.
78       */
79      @Deprecated
80      int AI = PREFIX_INCREMENT;
81  
82      /**
83       * Unary function type for arithmetic post-increment: {@code (i++)}.
84       */
85      int POST_INCREMENT = 6;
86  
87      /**
88       * Unary function type for arithmetic post-increment: {@code (i++)}.
89       * 
90       * @deprecated use {@link #POST_INCREMENT} instead.
91       */
92      @Deprecated
93      int PI = POST_INCREMENT;
94  
95      /**
96       * Unary function type for arithmetic ante-decrement: {@code (--i)}.
97       */
98      int PREFIX_DECREMENT = 7;
99  
100     /**
101      * Unary function type for arithmetic ante-decrement: {@code (--i)}.
102      * 
103      * @deprecated use {@link #PREFIX_DECREMENT} instead.
104      */
105     @Deprecated
106     int AD = PREFIX_DECREMENT;
107 
108     /**
109      * Unary function type for arithmetic post-decrement: {@code (i--)}.
110      */
111     int POST_DECREMENT = 8;
112 
113     /**
114      * Unary function type for arithmetic post-decrement: {@code (i--)}.
115      * 
116      * @deprecated use {@link #POST_DECREMENT} instead.
117      */
118     @Deprecated
119     int PD = POST_DECREMENT;
120 
121     /**
122      * Getter method for the operand.
123      */
124     Expression getValue();
125 
126     /**
127      * Setter method for the operand.
128      */
129     Unary setValue(Expression e);
130 
131     /**
132      * Returns the type of this unary function as one of the constants in this
133      * interface.
134      */
135     int type();
136 }