| 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(); +   } +} | 


