| summaryrefslogtreecommitdiff |
diff options
| -rw-r--r-- | src/core/src/tonkadur/fate/v1/lang/Constant.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/core/src/tonkadur/fate/v1/lang/Constant.java b/src/core/src/tonkadur/fate/v1/lang/Constant.java new file mode 100644 index 0000000..7123b26 --- /dev/null +++ b/src/core/src/tonkadur/fate/v1/lang/Constant.java @@ -0,0 +1,93 @@ +package tonkadur.fate.v1.lang; + +import tonkadur.parser.Origin; + +import tonkadur.fate.v1.lang.meta.ValueNode; + +public class Constant extends ValueNode +{ + /***************************************************************************/ + /**** MEMBERS **************************************************************/ + /***************************************************************************/ + protected final String as_string; + + /***************************************************************************/ + /**** PROTECTED ************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + protected Constant + ( + final Origin origin, + final Type result_type, + final String as_string + ) + { + super(origin, result_type); + + this.as_string = as_string; + } + + /***************************************************************************/ + /**** PUBLIC ***************************************************************/ + /***************************************************************************/ + /**** Constructors *********************************************************/ + public Constant build (final Origin origin, final String as_string) + { + try + { + Integer.valueOf(as_string); + + return new Constant(origin, Type.INT, as_string); + } + catch (final NumberFormatException nfe) + { + /* That's fine, we're just testing... */ + } + + try + { + Float.valueOf(as_string); + + return new Constant(origin, Type.FLOAT, as_string); + } + catch (final NumberFormatException nfe) + { + /* That's fine, we're just testing... */ + } + + try + { + Boolean.valueOf(as_string); + + return new Constant(origin, Type.BOOLEAN, as_string); + } + catch (final NumberFormatException nfe) + { + /* That's fine, we're just testing... */ + } + + return new Constant(origin, Type.STRING, as_string); + } + + /**** Accessors ************************************************************/ + public String get_value_as_string () + { + return as_string; + } + + /**** Misc. ****************************************************************/ + @Override + public String toString () + { + final StringBuilder sb = new StringBuilder(); + + sb.append(origin.toString()); + sb.append("("); + sb.append(type.get_name()); + sb.append(" Constant "); + sb.append(as_string); + sb.append(")"); + + return sb.toString(); + } +} |


