summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-12-29 02:54:35 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-12-29 02:54:35 +0100
commit22b3bf35e5e120bcfb6df317d11805fd5e83f53e (patch)
tree7b69906be66a1c3969729734e9e02abe40703358
parentc2a3d1d2778c53738cad8e647b70edc98da84b59 (diff)
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/TextEffect.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/World.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java7
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/Newline.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/Paragraph.java12
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/TextWithEffect.java12
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java18
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java10
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/Display.java8
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/EventOption.java (renamed from src/core/src/tonkadur/fate/v1/lang/instruction/PlayerInput.java)14
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java6
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/PromptInteger.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/PromptString.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/instruction/TextOption.java (renamed from src/core/src/tonkadur/fate/v1/lang/instruction/PlayerOption.java)16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java36
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java37
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/TextNode.java (renamed from src/core/src/tonkadur/fate/v1/lang/meta/RichTextNode.java)6
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/Type.java6
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateLexer.g48
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateParser.g478
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java37
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java19
-rw-r--r--src/core/src/tonkadur/wyrd/v1/lang/computation/ExtraComputation.java74
-rw-r--r--src/json-export/src/tonkadur/jsonexport/ComputationCompiler.java33
-rw-r--r--src/json-export/src/tonkadur/jsonexport/InstructionCompiler.java18
27 files changed, 347 insertions, 128 deletions
diff --git a/src/core/src/tonkadur/fate/v1/lang/TextEffect.java b/src/core/src/tonkadur/fate/v1/lang/TextEffect.java
index 2ac4000..930218f 100644
--- a/src/core/src/tonkadur/fate/v1/lang/TextEffect.java
+++ b/src/core/src/tonkadur/fate/v1/lang/TextEffect.java
@@ -60,7 +60,9 @@ public class TextEffect extends DeclaredEntity
final String name
)
{
- super(origin, signature, name);
+ super(origin, name);
+
+ this.signature = signature;
}
/**** Accessors ************************************************************/
diff --git a/src/core/src/tonkadur/fate/v1/lang/World.java b/src/core/src/tonkadur/fate/v1/lang/World.java
index f6caa7c..34b2364 100644
--- a/src/core/src/tonkadur/fate/v1/lang/World.java
+++ b/src/core/src/tonkadur/fate/v1/lang/World.java
@@ -318,7 +318,7 @@ public class World
//type_collection.add(Type.LIST);
//type_collection.add(Type.SET);
type_collection.add(Type.STRING);
- type_collection.add(Type.RICH_TEXT);
+ type_collection.add(Type.TEXT);
}
catch (final Throwable t)
{
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java b/src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java
index d46d20f..5f5b572 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/ExtraComputationInstance.java
@@ -4,9 +4,12 @@ import java.util.List;
import tonkadur.parser.Context;
import tonkadur.parser.Origin;
+import tonkadur.parser.ParsingError;
import tonkadur.fate.v1.lang.meta.Computation;
+import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.ExtraComputation;
+import tonkadur.fate.v1.lang.meta.RecurrentChecks;
public class ExtraComputationInstance extends Computation
{
@@ -24,7 +27,7 @@ public class ExtraComputationInstance extends Computation
final List<Computation> parameters
)
{
- super(origin, computation.get_result_type());
+ super(origin, computation.get_returned_type());
this.computation = computation;
this.parameters = parameters;
@@ -34,7 +37,7 @@ public class ExtraComputationInstance extends Computation
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public ExtraComputationInstance build
+ public static ExtraComputationInstance build
(
final Origin origin,
final ExtraComputation computation,
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/Newline.java b/src/core/src/tonkadur/fate/v1/lang/computation/Newline.java
index 9a5b880..b05021d 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/Newline.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/Newline.java
@@ -3,9 +3,9 @@ package tonkadur.fate.v1.lang.computation;
import tonkadur.parser.Origin;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
-import tonkadur.fate.v1.lang.meta.RichTextNode;
+import tonkadur.fate.v1.lang.meta.TextNode;
-public class Newline extends RichTextNode
+public class Newline extends TextNode
{
/***************************************************************************/
/**** PUBLIC ***************************************************************/
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/Paragraph.java b/src/core/src/tonkadur/fate/v1/lang/computation/Paragraph.java
index 62c72f3..26b08b4 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/Paragraph.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/Paragraph.java
@@ -5,14 +5,14 @@ import java.util.List;
import tonkadur.parser.Origin;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
-import tonkadur.fate.v1.lang.meta.RichTextNode;
+import tonkadur.fate.v1.lang.meta.TextNode;
-public class Paragraph extends RichTextNode
+public class Paragraph extends TextNode
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
/***************************************************************************/
- protected final List<RichTextNode> content;
+ protected final List<TextNode> content;
/***************************************************************************/
/**** PROTECTED ************************************************************/
@@ -26,7 +26,7 @@ public class Paragraph extends RichTextNode
public Paragraph
(
final Origin origin,
- final List<RichTextNode> content
+ final List<TextNode> content
)
{
super(origin);
@@ -42,7 +42,7 @@ public class Paragraph extends RichTextNode
cv.visit_paragraph(this);
}
- public List<RichTextNode> get_content ()
+ public List<TextNode> get_content ()
{
return content;
}
@@ -55,7 +55,7 @@ public class Paragraph extends RichTextNode
sb.append("(Paragraph ");
- for (final RichTextNode text: content)
+ for (final TextNode text: content)
{
sb.append(content.toString());
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/TextWithEffect.java b/src/core/src/tonkadur/fate/v1/lang/computation/TextWithEffect.java
index 9829d37..17fda37 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/TextWithEffect.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/TextWithEffect.java
@@ -8,18 +8,18 @@ import tonkadur.parser.ParsingError;
import tonkadur.fate.v1.lang.TextEffect;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
-import tonkadur.fate.v1.lang.meta.RichTextNode;
+import tonkadur.fate.v1.lang.meta.TextNode;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.RecurrentChecks;
-public class TextWithEffect extends RichTextNode
+public class TextWithEffect extends TextNode
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
/***************************************************************************/
protected final TextEffect effect;
protected final List<Computation> parameters;
- protected final RichTextNode text;
+ protected final TextNode text;
/***************************************************************************/
/**** PROTECTED ************************************************************/
@@ -30,7 +30,7 @@ public class TextWithEffect extends RichTextNode
final Origin origin,
final TextEffect effect,
final List<Computation> parameters,
- final RichTextNode text
+ final TextNode text
)
{
super(origin);
@@ -49,7 +49,7 @@ public class TextWithEffect extends RichTextNode
final Origin origin,
final TextEffect effect,
final List<Computation> parameters,
- final RichTextNode text
+ final TextNode text
)
throws ParsingError
{
@@ -81,7 +81,7 @@ public class TextWithEffect extends RichTextNode
return parameters;
}
- public RichTextNode get_text ()
+ public TextNode get_text ()
{
return text;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java b/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java
index b21024b..e81f8cd 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/ValueToText.java
@@ -8,10 +8,10 @@ import tonkadur.fate.v1.error.IncomparableTypeException;
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
-import tonkadur.fate.v1.lang.meta.RichTextNode;
+import tonkadur.fate.v1.lang.meta.TextNode;
import tonkadur.fate.v1.lang.meta.Computation;
-public class ValueToRichText extends RichTextNode
+public class ValueToText extends TextNode
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -22,7 +22,7 @@ public class ValueToRichText extends RichTextNode
/**** PROTECTED ************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- protected ValueToRichText (final Computation value)
+ protected ValueToText (final Computation value)
{
super(value.get_origin());
@@ -33,7 +33,7 @@ public class ValueToRichText extends RichTextNode
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public static ValueToRichText build (final Computation value)
+ public static ValueToText build (final Computation value)
throws
IncompatibleTypeException,
IncomparableTypeException
@@ -45,14 +45,14 @@ public class ValueToRichText extends RichTextNode
if
(
value_base_type.equals(Type.STRING)
- || value_base_type.equals(Type.RICH_TEXT)
+ || value_base_type.equals(Type.TEXT)
)
{
- return new ValueToRichText(value);
+ return new ValueToText(value);
}
return
- new ValueToRichText
+ new ValueToText
(
Cast.build
(
@@ -69,7 +69,7 @@ public class ValueToRichText extends RichTextNode
public void get_visited_by (final ComputationVisitor cv)
throws Throwable
{
- cv.visit_value_to_rich_text(this);
+ cv.visit_value_to_text(this);
}
public Computation get_value ()
@@ -83,7 +83,7 @@ public class ValueToRichText extends RichTextNode
{
final StringBuilder sb = new StringBuilder();
- sb.append("(ValueToRichText ");
+ sb.append("(ValueToText ");
sb.append(value.toString());
sb.append(")");
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java b/src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java
index d487d38..4a6e7bc 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/Assert.java
@@ -5,7 +5,7 @@ import tonkadur.parser.ParsingError;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
-import tonkadur.fate.v1.lang.meta.RichTextNode;
+import tonkadur.fate.v1.lang.meta.TextNode;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.RecurrentChecks;
@@ -17,7 +17,7 @@ public class Assert extends Instruction
/**** MEMBERS **************************************************************/
/***************************************************************************/
protected final Computation condition;
- protected final RichTextNode message;
+ protected final TextNode message;
/***************************************************************************/
/**** PROTECTED ************************************************************/
@@ -27,7 +27,7 @@ public class Assert extends Instruction
(
final Origin origin,
final Computation condition,
- final RichTextNode message
+ final TextNode message
)
{
super(origin);
@@ -44,7 +44,7 @@ public class Assert extends Instruction
(
final Origin origin,
final Computation condition,
- final RichTextNode message
+ final TextNode message
)
throws ParsingError
{
@@ -66,7 +66,7 @@ public class Assert extends Instruction
return condition;
}
- public RichTextNode get_message ()
+ public TextNode get_message ()
{
return message;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/Display.java b/src/core/src/tonkadur/fate/v1/lang/instruction/Display.java
index 5e95601..5e85d79 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/Display.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/Display.java
@@ -10,14 +10,14 @@ import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
-import tonkadur.fate.v1.lang.meta.RichTextNode;
+import tonkadur.fate.v1.lang.meta.TextNode;
public class Display extends Instruction
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
/***************************************************************************/
- protected final RichTextNode content;
+ protected final TextNode content;
/***************************************************************************/
/**** PROTECTED ************************************************************/
@@ -26,7 +26,7 @@ public class Display extends Instruction
public Display
(
final Origin origin,
- final RichTextNode content
+ final TextNode content
)
{
super(origin);
@@ -47,7 +47,7 @@ public class Display extends Instruction
iv.visit_display(this);
}
- public RichTextNode get_content ()
+ public TextNode get_content ()
{
return content;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/PlayerInput.java b/src/core/src/tonkadur/fate/v1/lang/instruction/EventOption.java
index 3daef53..8cfc0a9 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/PlayerInput.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/EventOption.java
@@ -15,7 +15,7 @@ import tonkadur.fate.v1.lang.meta.Instruction;
import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.RecurrentChecks;
-public class PlayerInput extends Instruction
+public class EventOption extends Instruction
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -28,7 +28,7 @@ public class PlayerInput extends Instruction
/**** PROTECTED ************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- protected PlayerInput
+ protected EventOption
(
final Origin origin,
final Event input_event,
@@ -47,7 +47,7 @@ public class PlayerInput extends Instruction
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public PlayerInput
+ public EventOption
(
final Origin origin,
final Event input_event,
@@ -61,7 +61,7 @@ public class PlayerInput extends Instruction
this.effects = effects;
}
- public static PlayerInput build
+ public static EventOption build
(
final Origin origin,
final Event event,
@@ -77,7 +77,7 @@ public class PlayerInput extends Instruction
event.get_signature()
);
- return new PlayerInput(origin, event, parameters, effects);
+ return new EventOption(origin, event, parameters, effects);
}
/**** Accessors ************************************************************/
@@ -85,7 +85,7 @@ public class PlayerInput extends Instruction
public void get_visited_by (final InstructionVisitor iv)
throws Throwable
{
- iv.visit_player_input(this);
+ iv.visit_event_option(this);
}
public Event get_input_event ()
@@ -109,7 +109,7 @@ public class PlayerInput extends Instruction
{
final StringBuilder sb = new StringBuilder();
- sb.append("(PlayerInput (");
+ sb.append("(EventOption (");
sb.append(System.lineSeparator());
sb.append(input_event.toString());
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java b/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java
index f333509..f13e05a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/ExtraInstructionInstance.java
@@ -4,9 +4,13 @@ import java.util.List;
import tonkadur.parser.Context;
import tonkadur.parser.Origin;
+import tonkadur.parser.ParsingError;
+import tonkadur.fate.v1.lang.meta.Computation;
import tonkadur.fate.v1.lang.meta.Instruction;
+import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.ExtraInstruction;
+import tonkadur.fate.v1.lang.meta.RecurrentChecks;
public class ExtraInstructionInstance extends Instruction
{
@@ -34,7 +38,7 @@ public class ExtraInstructionInstance extends Instruction
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public ExtraInstructionInstance build
+ public static ExtraInstructionInstance build
(
final Origin origin,
final ExtraInstruction instruction,
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/PromptInteger.java b/src/core/src/tonkadur/fate/v1/lang/instruction/PromptInteger.java
index 8c76365..9ddf4fb 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/PromptInteger.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/PromptInteger.java
@@ -58,7 +58,7 @@ public class PromptInteger extends Instruction
{
RecurrentChecks.assert_can_be_used_as(min, Type.INT);
RecurrentChecks.assert_can_be_used_as(max, Type.INT);
- RecurrentChecks.assert_can_be_used_as(label, Type.RICH_TEXT);
+ RecurrentChecks.assert_can_be_used_as(label, Type.TEXT);
RecurrentChecks.assert_can_be_used_as
(
target,
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/PromptString.java b/src/core/src/tonkadur/fate/v1/lang/instruction/PromptString.java
index a0a8a42..23f1d35 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/PromptString.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/PromptString.java
@@ -58,7 +58,7 @@ public class PromptString extends Instruction
{
RecurrentChecks.assert_can_be_used_as(min, Type.INT);
RecurrentChecks.assert_can_be_used_as(max, Type.INT);
- RecurrentChecks.assert_can_be_used_as(label, Type.RICH_TEXT);
+ RecurrentChecks.assert_can_be_used_as(label, Type.TEXT);
RecurrentChecks.assert_can_be_used_as
(
target,
diff --git a/src/core/src/tonkadur/fate/v1/lang/instruction/PlayerOption.java b/src/core/src/tonkadur/fate/v1/lang/instruction/TextOption.java
index d6db1e4..9a1774d 100644
--- a/src/core/src/tonkadur/fate/v1/lang/instruction/PlayerOption.java
+++ b/src/core/src/tonkadur/fate/v1/lang/instruction/TextOption.java
@@ -8,24 +8,24 @@ import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.InstructionVisitor;
import tonkadur.fate.v1.lang.meta.Instruction;
-import tonkadur.fate.v1.lang.meta.RichTextNode;
+import tonkadur.fate.v1.lang.meta.TextNode;
-public class PlayerOption extends Instruction
+public class TextOption extends Instruction
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
/***************************************************************************/
- protected final RichTextNode text;
+ protected final TextNode text;
protected final List<Instruction> effects;
/***************************************************************************/
/**** PUBLIC ***************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public PlayerOption
+ public TextOption
(
final Origin origin,
- final RichTextNode text,
+ final TextNode text,
final List<Instruction> effects
)
{
@@ -41,10 +41,10 @@ public class PlayerOption extends Instruction
public void get_visited_by (final InstructionVisitor iv)
throws Throwable
{
- iv.visit_player_option(this);
+ iv.visit_text_option(this);
}
- public RichTextNode get_text ()
+ public TextNode get_text ()
{
return text;
}
@@ -60,7 +60,7 @@ public class PlayerOption extends Instruction
{
final StringBuilder sb = new StringBuilder();
- sb.append("(PlayerOption (");
+ sb.append("(TextOption (");
sb.append(System.lineSeparator());
sb.append(text.toString());
sb.append(")");
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java b/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
index 5d0821e..8e57746 100644
--- a/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
@@ -94,7 +94,7 @@ public interface ComputationVisitor
public void visit_text_with_effect (final TextWithEffect n)
throws Throwable;
- public void visit_value_to_rich_text (final ValueToRichText n)
+ public void visit_value_to_text (final ValueToText n)
throws Throwable;
public void visit_variable_reference (final VariableReference n)
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java b/src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java
index 703e079..6cefa54 100644
--- a/src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/ExtraComputation.java
@@ -1,16 +1,52 @@
package tonkadur.fate.v1.lang.meta;
+import java.util.ArrayList;
import java.util.List;
import tonkadur.parser.Context;
import tonkadur.parser.Origin;
+import tonkadur.parser.ParsingError;
import tonkadur.fate.v1.lang.World;
import tonkadur.fate.v1.lang.type.Type;
+import tonkadur.fate.v1.lang.computation.ExtraComputationInstance;
+
public class ExtraComputation extends DeclaredEntity
{
+ protected static final ExtraComputation ANY;
+
+ static
+ {
+ ANY =
+ new ExtraComputation
+ (
+ Origin.BASE_LANGUAGE,
+ Type.ANY,
+ /*
+ * Use of a space necessary to avoid conflicting with a user created
+ * type.
+ */
+ "undetermined extra_computation",
+ new ArrayList<Type>()
+ );
+ }
+
+ public static ExtraComputation value_on_missing ()
+ {
+ return ANY;
+ }
+
+ @Override
+ public /* static */ String get_type_name ()
+ {
+ return "ExtraComputation";
+ }
+
+ /***************************************************************************/
+ /**** MEMBERS **************************************************************/
+ /***************************************************************************/
protected final Type returned_type;
protected final List<Type> signature;
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java b/src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java
index 10a8f05..cd056dd 100644
--- a/src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/ExtraInstruction.java
@@ -1,16 +1,51 @@
package tonkadur.fate.v1.lang.meta;
+import java.util.ArrayList;
import java.util.List;
import tonkadur.parser.Context;
import tonkadur.parser.Origin;
+import tonkadur.parser.ParsingError;
import tonkadur.fate.v1.lang.World;
import tonkadur.fate.v1.lang.type.Type;
+import tonkadur.fate.v1.lang.instruction.ExtraInstructionInstance;
+
public class ExtraInstruction extends DeclaredEntity
{
+ protected static final ExtraInstruction ANY;
+
+ static
+ {
+ ANY =
+ new ExtraInstruction
+ (
+ Origin.BASE_LANGUAGE,
+ /*
+ * Use of a space necessary to avoid conflicting with a user created
+ * type.
+ */
+ "undetermined extra_instruction",
+ new ArrayList<Type>()
+ );
+ }
+
+ public static ExtraInstruction value_on_missing ()
+ {
+ return ANY;
+ }
+
+ @Override
+ public /* static */ String get_type_name ()
+ {
+ return "ExtraInstruction";
+ }
+
+ /***************************************************************************/
+ /**** MEMBERS **************************************************************/
+ /***************************************************************************/
protected final List<Type> signature;
/***************************************************************************/
@@ -52,7 +87,7 @@ public class ExtraInstruction extends DeclaredEntity
final World world,
final Context context,
final Origin origin,
- final List<Instruction> parameters
+ final List<Computation> parameters
)
throws ParsingError
{
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java b/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java
index 6426cfb..922fbc1 100644
--- a/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/InstructionVisitor.java
@@ -122,10 +122,10 @@ public interface InstructionVisitor
public void visit_player_choice (final PlayerChoice n)
throws Throwable;
- public void visit_player_option (final PlayerOption n)
+ public void visit_text_option (final TextOption n)
throws Throwable;
- public void visit_player_input (final PlayerInput n)
+ public void visit_event_option (final EventOption n)
throws Throwable;
public void visit_remove_all_of_element (final RemoveAllOfElement n)
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/RichTextNode.java b/src/core/src/tonkadur/fate/v1/lang/meta/TextNode.java
index 1afd6fe..eec40bb 100644
--- a/src/core/src/tonkadur/fate/v1/lang/meta/RichTextNode.java
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/TextNode.java
@@ -5,15 +5,15 @@ import tonkadur.parser.Origin;
import tonkadur.fate.v1.lang.type.Type;
-public abstract class RichTextNode extends Computation
+public abstract class TextNode extends Computation
{
/***************************************************************************/
/**** PROTECTED ************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- protected RichTextNode (final Origin origin)
+ protected TextNode (final Origin origin)
{
- super(origin, Type.RICH_TEXT);
+ super(origin, Type.TEXT);
}
/***************************************************************************/
diff --git a/src/core/src/tonkadur/fate/v1/lang/type/Type.java b/src/core/src/tonkadur/fate/v1/lang/type/Type.java
index ce93e9e..850afeb 100644
--- a/src/core/src/tonkadur/fate/v1/lang/type/Type.java
+++ b/src/core/src/tonkadur/fate/v1/lang/type/Type.java
@@ -28,7 +28,7 @@ public class Type extends DeclaredEntity
public static final Type LAMBDA;
public static final Type LIST;
public static final Type REF;
- public static final Type RICH_TEXT;
+ public static final Type TEXT;
public static final Type SEQUENCE;
public static final Type SET;
public static final Type STRING;
@@ -57,7 +57,7 @@ public class Type extends DeclaredEntity
LAMBDA = new Type(base, null, "lambda");
LIST = new Type(base, null, "list");
REF = new Type(base, null, "ref");
- RICH_TEXT = new Type(base, null, "text");
+ TEXT = new Type(base, null, "text");
SEQUENCE = new Type(base, null, "sequence");
SET = new Type(base, null, "set");
STRING = new Type(base, null, "string");
@@ -72,7 +72,7 @@ public class Type extends DeclaredEntity
ALL_TYPES.add(LAMBDA);
ALL_TYPES.add(LIST);
ALL_TYPES.add(REF);
- ALL_TYPES.add(RICH_TEXT);
+ ALL_TYPES.add(TEXT);
ALL_TYPES.add(SEQUENCE);
ALL_TYPES.add(SET);
ALL_TYPES.add(STRING);
diff --git a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
index cd96bb4..b333202 100644
--- a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
+++ b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
@@ -41,7 +41,7 @@ DECLARE_DICT_TYPE_KW: L_PAREN
('declare'|'define'|'def')US('dict'|('struct''ure'?))(US'type')? SEP+;
DECLARE_EXTRA_INSTRUCTION_KW: L_PAREN ('declare'|'define'|'def')US'extra'US'instruction' SEP+;
DECLARE_EXTRA_COMPUTATION_KW: L_PAREN ('declare'|'define'|'def')US'extra'US'computation' SEP+;
-DECLARE_INPUT_EVENT_TYPE_KW: L_PAREN ('declare'|'define'|'def')(US'input')?US'event'(US'type')? SEP+;
+DECLARE_EVENT_TYPE_KW: L_PAREN ('declare'|'define'|'def')(US'input')?US'event'(US'type')? SEP+;
DECLARE_TEXT_EFFECT_KW: L_PAREN ('declare'|'define'|'def')US'text'US'effect' SEP+;
DECLARE_VARIABLE_KW: L_PAREN 'global' SEP+;
LOCAL_KW: L_PAREN 'local' SEP+;
@@ -111,7 +111,7 @@ NEW_KW: L_PAREN ('new'|'reserve'|'create') SEP+;
NOT_KW: L_PAREN ('not'|'~'|'!') SEP+;
ONE_IN_KW: L_PAREN ('exactly'US)?'one'(US'in')? SEP+;
OR_KW: L_PAREN ('or'|'\\/') SEP+;
-RICH_TEXT_KW: L_PAREN (('rich'US)?'text') SEP+;
+TEXT_KW: L_PAREN 'text' SEP+;
PARTITION_KW: L_PAREN 'partition' SEP+;
IMP_PARTITION_KW: L_PAREN 'partition!' SEP+;
INDEXED_PARTITION_KW: L_PAREN 'indexed'US'partition' SEP+;
@@ -125,8 +125,8 @@ IMP_PUSH_LEFT_KW: L_PAREN 'push'US'left!' SEP+;
PUSH_RIGHT_KW: L_PAREN 'push'US'right' SEP+;
IMP_PUSH_RIGHT_KW: L_PAREN 'push'US'right!' SEP+;
PLAYER_CHOICE_KW: L_PAREN ('choice'|'user'US'choice'|'player'US'choice') SEP+;
-PLAYER_OPTION_KW: L_PAREN ('option'|'user'US'option'|'player'US'option') SEP+;
-PLAYER_EVENT_KW: L_PAREN ('event'|'user'US'event'|'player'US'event') SEP+;
+TEXT_OPTION_KW: L_PAREN ('option'|'user'US'option'|'player'US'option') SEP+;
+EVENT_OPTION_KW: L_PAREN ('event'|'user'US'event'|'player'US'event') SEP+;
PLUS_KW: L_PAREN ('plus'|'+') SEP+;
POWER_KW: L_PAREN ('power'|'^'|'**'|'pow') SEP+;
RANGE_KW: L_PAREN 'range' SEP+;
diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
index 612d77d..519a01c 100644
--- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
+++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
@@ -363,7 +363,7 @@ first_level_fate_instr:
($DECLARE_EXTRA_INSTRUCTION_KW.getCharPositionInLine())
);
- new_event =
+ extra_instruction =
new ExtraInstruction
(
start_origin,
@@ -386,7 +386,7 @@ first_level_fate_instr:
($DECLARE_EXTRA_INSTRUCTION_KW.getCharPositionInLine())
);
- new_event =
+ extra_instruction =
new ExtraInstruction
(
start_origin,
@@ -445,50 +445,50 @@ first_level_fate_instr:
WORLD.extra_computations().add(extra_computation);
}
- | DECLARE_INPUT_EVENT_TYPE_KW new_reference_name WS* R_PAREN
+ | DECLARE_EVENT_TYPE_KW new_reference_name WS* R_PAREN
{
final Origin start_origin;
- final InputEvent new_event;
+ final Event new_event;
start_origin =
CONTEXT.get_origin_at
(
- ($DECLARE_INPUT_EVENT_TYPE_KW.getLine()),
- ($DECLARE_INPUT_EVENT_TYPE_KW.getCharPositionInLine())
+ ($DECLARE_EVENT_TYPE_KW.getLine()),
+ ($DECLARE_EVENT_TYPE_KW.getCharPositionInLine())
);
new_event =
- new InputEvent
+ new Event
(
start_origin,
new ArrayList<Type>(),
($new_reference_name.result)
);
- WORLD.input_events().add(new_event);
+ WORLD.events().add(new_event);
}
- | DECLARE_INPUT_EVENT_TYPE_KW new_reference_name WS+ type_list WS* R_PAREN
+ | DECLARE_EVENT_TYPE_KW new_reference_name WS+ type_list WS* R_PAREN
{
final Origin start_origin;
- final InputEvent new_event;
+ final Event new_event;
start_origin =
CONTEXT.get_origin_at
(
- ($DECLARE_INPUT_EVENT_TYPE_KW.getLine()),
- ($DECLARE_INPUT_EVENT_TYPE_KW.getCharPositionInLine())
+ ($DECLARE_EVENT_TYPE_KW.getLine()),
+ ($DECLARE_EVENT_TYPE_KW.getCharPositionInLine())
);
new_event =
- new InputEvent
+ new Event
(
start_origin,
($type_list.result),
($new_reference_name.result)
);
- WORLD.input_events().add(new_event);
+ WORLD.events().add(new_event);
}
@@ -549,6 +549,7 @@ first_level_fate_instr:
CONTEXT.pop();
}
+ /*
| EXTENSION_FIRST_LEVEL_KW WORD WS+ general_fate_sequence WS* R_PAREN
{
final Origin origin;
@@ -575,6 +576,7 @@ first_level_fate_instr:
instr.build(WORLD, CONTEXT, origin, ($general_fate_sequence.result));
}
}
+ */
;
catch [final Throwable e]
{
@@ -2203,7 +2205,7 @@ returns [List<Instruction> result]
player_choice
returns [Instruction result]
:
- PLAYER_OPTION_KW
+ TEXT_OPTION_KW
L_PAREN WS* paragraph WS* R_PAREN WS+
{
HIERARCHICAL_VARIABLES.push(new ArrayList());
@@ -2219,19 +2221,19 @@ returns [Instruction result]
R_PAREN
{
$result =
- new PlayerOption
+ new TextOption
(
CONTEXT.get_origin_at
(
- ($PLAYER_OPTION_KW.getLine()),
- ($PLAYER_OPTION_KW.getCharPositionInLine())
+ ($TEXT_OPTION_KW.getLine()),
+ ($TEXT_OPTION_KW.getCharPositionInLine())
),
($paragraph.result),
($general_fate_sequence.result)
);
}
- | PLAYER_EVENT_KW
+ | EVENT_OPTION_KW
L_PAREN WS* WORD WS* R_PAREN WS+
{
HIERARCHICAL_VARIABLES.push(new ArrayList());
@@ -2247,7 +2249,7 @@ returns [Instruction result]
R_PAREN
{
final Origin origin;
- final InputEvent event;
+ final Event event;
origin =
CONTEXT.get_origin_at
@@ -2256,10 +2258,10 @@ returns [Instruction result]
($L_PAREN.getCharPositionInLine())
);
- event = WORLD.input_events().get(origin, ($WORD.text));
+ event = WORLD.events().get(origin, ($WORD.text));
$result =
- new PlayerInput
+ new EventOption
(
origin,
event,
@@ -2267,7 +2269,7 @@ returns [Instruction result]
);
}
- | PLAYER_EVENT_KW
+ | EVENT_OPTION_KW
L_PAREN WS* WORD WS+ value_list WS* R_PAREN WS+
{
HIERARCHICAL_VARIABLES.push(new ArrayList());
@@ -2283,7 +2285,7 @@ returns [Instruction result]
R_PAREN
{
final Origin origin;
- final InputEvent event;
+ final Event event;
origin =
CONTEXT.get_origin_at
@@ -2292,10 +2294,10 @@ returns [Instruction result]
($L_PAREN.getCharPositionInLine())
);
- event = WORLD.input_events().get(origin, ($WORD.text));
+ event = WORLD.events().get(origin, ($WORD.text));
$result =
- PlayerInput.build
+ EventOption.build
(
origin,
event,
@@ -2570,10 +2572,10 @@ catch [final Throwable e]
}
paragraph
-returns [RichTextNode result]
+returns [TextNode result]
@init
{
- final List<RichTextNode> content = new ArrayList();
+ final List<TextNode> content = new ArrayList();
}
:
first=text
@@ -2587,7 +2589,7 @@ returns [RichTextNode result]
{
content.add
(
- ValueToRichText.build
+ ValueToText.build
(
Constant.build_string
(
@@ -2635,10 +2637,10 @@ catch [final Throwable e]
}
text
-returns [RichTextNode result]:
+returns [TextNode result]:
sentence
{
- $result = ValueToRichText.build(($sentence.result));
+ $result = ValueToText.build(($sentence.result));
}
| ENABLE_TEXT_EFFECT_KW WORD WS+ paragraph WS* R_PAREN
@@ -2720,7 +2722,7 @@ returns [RichTextNode result]:
| non_text_value
{
- $result = ValueToRichText.build(($non_text_value.result));
+ $result = ValueToText.build(($non_text_value.result));
}
;
catch [final Throwable e]
@@ -3703,7 +3705,7 @@ returns [Computation result]
$result = ($sentence.result);
}
- | RICH_TEXT_KW paragraph WS* R_PAREN
+ | TEXT_KW paragraph WS* R_PAREN
{
$result = ($paragraph.result);
}
@@ -4187,7 +4189,7 @@ returns [Computation result]
| EXTRA_COMPUTATION_KW WORD WS+ value_list WS* R_PAREN
{
final Origin origin;
- final ExtensionComputation extra_computation;
+ final ExtraComputation extra_computation;
origin =
CONTEXT.get_origin_at
@@ -4199,7 +4201,7 @@ returns [Computation result]
extra_computation = WORLD.extra_computations().get(origin, ($WORD.text));
$result =
- extra_computation.build
+ extra_computation.instantiate
(
WORLD,
CONTEXT,
@@ -4211,7 +4213,7 @@ returns [Computation result]
| EXTRA_COMPUTATION_KW WORD WS* R_PAREN
{
final Origin origin;
- final ExtensionComputation extra_computation;
+ final ExtraComputation extra_computation;
origin =
CONTEXT.get_origin_at
@@ -4223,12 +4225,12 @@ returns [Computation result]
extra_computation = WORLD.extra_computations().get(origin, ($WORD.text));
$result =
- extra_computation.build
+ extra_computation.instantiate
(
WORLD,
CONTEXT,
origin,
- ($value_list.result)
+ new ArrayList<Computation>()
);
}
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
index ad3abc3..70d3ed1 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
@@ -1308,6 +1308,43 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
}
@Override
+ public void visit_extra_computation
+ (
+ final tonkadur.fate.v1.lang.computation.ExtraComputationInstance n
+ )
+ throws Throwable
+ {
+ final List<Computation> parameters;
+
+ parameters = new ArrayList<Computation>();
+
+ for (final tonkadur.fate.v1.lang.meta.Computation p: n.get_parameters())
+ {
+ final ComputationCompiler cc;
+
+ cc = new ComputationCompiler(compiler);
+
+ p.get_visited_by(cc);
+
+ assimilate(cc);
+
+ parameters.add(cc.get_computation());
+ }
+
+ result_as_computation =
+ new ExtraComputation
+ (
+ TypeCompiler.compile
+ (
+ compiler,
+ n.get_computation_type().get_returned_type()
+ ),
+ n.get_computation_type().get_name(),
+ parameters
+ );
+ }
+
+ @Override
public void visit_is_empty
(
final tonkadur.fate.v1.lang.computation.IsEmpty n
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
index f1c28fc..8597920 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
@@ -2636,7 +2636,8 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
(
new ExtraInstruction
(
- n.get_instruction().get_name(), parameters
+ n.get_instruction_type().get_name(),
+ parameters
)
);
@@ -2837,16 +2838,16 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
}
@Override
- public void visit_player_option
+ public void visit_text_option
(
- final tonkadur.fate.v1.lang.instruction.PlayerOption n
+ final tonkadur.fate.v1.lang.instruction.TextOption n
)
throws Throwable
{
/*
- * Fate: (player_choice label i0)
+ * Fate: (text_option label i0)
*
- * Wyrd (add_choice label i0)
+ * Wyrd (add_text_option label i0)
*/
final List<Instruction> to_next, labels_only;
final ComputationCompiler cc;
@@ -2974,16 +2975,16 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
}
@Override
- public void visit_player_input
+ public void visit_event_option
(
- final tonkadur.fate.v1.lang.instruction.PlayerInput n
+ final tonkadur.fate.v1.lang.instruction.EventOption n
)
throws Throwable
{
/*
- * Fate: (player_choice label i0)
+ * Fate: (event_option label i0)
*
- * Wyrd (add_choice label i0)
+ * Wyrd (add_event_option label i0)
*/
final List<Instruction> to_next, labels_only;
final List<ComputationCompiler> params_cc;
diff --git a/src/core/src/tonkadur/wyrd/v1/lang/computation/ExtraComputation.java b/src/core/src/tonkadur/wyrd/v1/lang/computation/ExtraComputation.java
new file mode 100644
index 0000000..99b694f
--- /dev/null
+++ b/src/core/src/tonkadur/wyrd/v1/lang/computation/ExtraComputation.java
@@ -0,0 +1,74 @@
+package tonkadur.wyrd.v1.lang.computation;
+
+import java.util.List;
+
+import tonkadur.wyrd.v1.lang.type.Type;
+
+import tonkadur.wyrd.v1.lang.meta.Computation;
+import tonkadur.wyrd.v1.lang.meta.ComputationVisitor;
+
+public class ExtraComputation extends Computation
+{
+ /***************************************************************************/
+ /**** MEMBERS **************************************************************/
+ /***************************************************************************/
+ protected final String name;
+ protected final List<Computation> parameters;
+
+ /***************************************************************************/
+ /**** PUBLIC ***************************************************************/
+ /***************************************************************************/
+ /**** Constructors *********************************************************/
+ public ExtraComputation
+ (
+ final Type type,
+ final String name,
+ final List<Computation> parameters
+ )
+ {
+ super(type);
+
+ this.name = name;
+ this.parameters = parameters;
+ }
+
+ /**** Accessors ************************************************************/
+ public String get_name ()
+ {
+ return name;
+ }
+
+ public List<Computation> get_parameters ()
+ {
+ return parameters;
+ }
+
+ @Override
+ public void get_visited_by (final ComputationVisitor cv)
+ throws Throwable
+ {
+ cv.visit_extra_computation(this);
+ }
+
+ /**** Misc. ****************************************************************/
+ @Override
+ public String toString ()
+ {
+ final StringBuilder sb;
+
+ sb = new StringBuilder();
+
+ sb.append("(ExtraComputation ");
+ sb.append(name);
+
+ for (final Computation param: parameters)
+ {
+ sb.append(" ");
+ sb.append(param.toString());
+ }
+
+ sb.append(")");
+
+ return sb.toString();
+ }
+}
diff --git a/src/json-export/src/tonkadur/jsonexport/ComputationCompiler.java b/src/json-export/src/tonkadur/jsonexport/ComputationCompiler.java
index 132e658..4db47a9 100644
--- a/src/json-export/src/tonkadur/jsonexport/ComputationCompiler.java
+++ b/src/json-export/src/tonkadur/jsonexport/ComputationCompiler.java
@@ -12,7 +12,7 @@ public class ComputationCompiler implements ComputationVisitor
{
protected JSONObject result;
- public void visit_add_rich_text_effect (final AddRichTextEffect n)
+ public void visit_add_text_effect (final AddTextEffect n)
throws Throwable
{
final JSONArray params, content;
@@ -44,7 +44,7 @@ public class ComputationCompiler implements ComputationVisitor
result = new JSONObject();
- result.put("category", "add_rich_text_effect");
+ result.put("category", "add_text_effect");
result.put("effect", n.get_effect_name());
result.put("parameters", params);
result.put("content", content);
@@ -185,7 +185,7 @@ public class ComputationCompiler implements ComputationVisitor
result.put("extra", param_cc.get_result());
}
- public void visit_rich_text (final RichText n)
+ public void visit_text (final Text n)
throws Throwable
{
final JSONArray content;
@@ -205,7 +205,7 @@ public class ComputationCompiler implements ComputationVisitor
result = new JSONObject();
- result.put("category", "rich_text");
+ result.put("category", "text");
result.put("content", content);
}
@@ -224,6 +224,31 @@ public class ComputationCompiler implements ComputationVisitor
result.put("reference", cc.get_result());
}
+ public void visit_extra_computation (final ExtraComputation n)
+ throws Throwable
+ {
+ final JSONArray params;
+
+ params = new JSONArray();
+
+ for (final Computation c: n.get_parameters())
+ {
+ final ComputationCompiler cc;
+
+ cc = new ComputationCompiler();
+
+ c.get_visited_by(cc);
+
+ params.add(cc.get_result());
+ }
+
+ result = new JSONObject();
+
+ result.put("category", "extra_computation");
+ result.put("name", n.get_name());
+ result.put("parameters", params);
+ }
+
public void visit_value_of (final ValueOf n)
throws Throwable
{
diff --git a/src/json-export/src/tonkadur/jsonexport/InstructionCompiler.java b/src/json-export/src/tonkadur/jsonexport/InstructionCompiler.java
index 86b2a56..d33901d 100644
--- a/src/json-export/src/tonkadur/jsonexport/InstructionCompiler.java
+++ b/src/json-export/src/tonkadur/jsonexport/InstructionCompiler.java
@@ -12,7 +12,7 @@ public class InstructionCompiler implements InstructionVisitor
{
protected JSONObject result;
- public void visit_add_choice (final AddChoice n)
+ public void visit_add_text_option (final AddTextOption n)
throws Throwable
{
final ComputationCompiler label_cc;
@@ -23,11 +23,11 @@ public class InstructionCompiler implements InstructionVisitor
result = new JSONObject();
- result.put("category", "add_choice");
+ result.put("category", "add_text_option");
result.put("label", label_cc.get_result());
}
- public void visit_add_event_input (final AddEventInput n)
+ public void visit_add_event_option (final AddEventOption n)
throws Throwable
{
final JSONArray params;
@@ -47,7 +47,7 @@ public class InstructionCompiler implements InstructionVisitor
result = new JSONObject();
- result.put("category", "add_event_input");
+ result.put("category", "add_event_option");
result.put("event", n.get_name());
result.put("parameters", params);
}
@@ -93,7 +93,7 @@ public class InstructionCompiler implements InstructionVisitor
result.put("category", "end");
}
- public void visit_event_call (final EventCall n)
+ public void visit_extra_instruction (final ExtraInstruction n)
throws Throwable
{
final JSONArray params;
@@ -113,8 +113,8 @@ public class InstructionCompiler implements InstructionVisitor
result = new JSONObject();
- result.put("category", "event_call");
- result.put("event", n.get_name());
+ result.put("category", "extra_instruction");
+ result.put("name", n.get_name());
result.put("parameters", params);
}
@@ -133,12 +133,12 @@ public class InstructionCompiler implements InstructionVisitor
result.put("reference", cc.get_result());
}
- public void visit_resolve_choices (final ResolveChoices n)
+ public void visit_resolve_choice (final ResolveChoice n)
throws Throwable
{
result = new JSONObject();
- result.put("category", "resolve_choices");
+ result.put("category", "resolve_choice");
}
public void visit_set_pc (final SetPC n)