| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-07-05 14:17:51 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-07-05 14:17:51 +0200 |
| commit | 4dffb5be5c2b2e8872fb74a5e06b9cd861a70c22 (patch) | |
| tree | 9102fdc4da5a6f36bd67bc501f126a2ae177d246 | |
| parent | 8483de1b5b9b686d9d148700a7c06c3c935266f8 (diff) | |
Adds Constants.
| -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(); + } +} |


