JS: add API to Entity to fully specify all tick-based waiting parameters

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove the API for interrupting a Process

EventHandles solve this much more reliably, and allows Process to become package-private.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add an API for passing an EventHandle to simWait

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: track the video capture network using EventHandles

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: get the current tick from the eventManager, not the current Process

This gets us closer to being able to hide Process.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: normalize Entity to always use the current EventManager rather than a static copy

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: move the static EventManager reference to Simulation

This reference is only being used for the GUIFrame to control event execution state,
remove it from Entity to force EventManager.current() to be used in model code.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove comma from the list of token separators

This makes is way more convenient to build expressions on top.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
TEST: add parser test for unbalanced single-quote

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: change the parser to look forward through each record instead of using substring

This generates significantly less garbage due to not calling replace on each input
record.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Add square bracket quoted tokens to Expression Tokenizer

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Fix Reading past end of array bug in expression parser

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Expression parser now uses square bracket quoting for entities

Now all entity names must be surrounded by square brackets '[]'. This
allows any character (except square brackets) to be used in entity names.

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Convert expression system to class based value type

Now all values are ExpResult objects instead of explicit 'double's.

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Refactor expression parser operator detecting

This will be useful ternary operators are implemented.

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Add support for multiple character symbols in expression parser

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Add logical opertors to expression parser

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Added Condition (?:) operator to expression system

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove the event creation time from the Event struct

Nothing ever used this, remove it and it can be restored if a use is found.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>