From 5e246adccf986af9dd032d6e8645ddd5d2a577d4 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Fri, 24 Feb 2017 04:15:20 -0500 Subject: Work on unary operators Specifically, the coercive operator for allowing mixing floats and ints --- dice-lang/src/bjc/dicelang/v2/DiceLangEngine.java | 25 +++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'dice-lang/src/bjc/dicelang/v2/DiceLangEngine.java') diff --git a/dice-lang/src/bjc/dicelang/v2/DiceLangEngine.java b/dice-lang/src/bjc/dicelang/v2/DiceLangEngine.java index d90ce9d..220fd3f 100644 --- a/dice-lang/src/bjc/dicelang/v2/DiceLangEngine.java +++ b/dice-lang/src/bjc/dicelang/v2/DiceLangEngine.java @@ -100,17 +100,18 @@ public class DiceLangEngine { litTokens = new FunctionalMap<>(); - litTokens.put("+", ADD); - litTokens.put("-", SUBTRACT); - litTokens.put("*", MULTIPLY); - litTokens.put("/", DIVIDE); - litTokens.put("//", IDIVIDE); - litTokens.put("dg", DICEGROUP); - litTokens.put("dc", DICECONCAT); - litTokens.put("dl", DICELIST); - litTokens.put("=>", LET); - litTokens.put(":=", BIND); - litTokens.put(",", GROUPSEP); + litTokens.put("+", ADD); + litTokens.put("-", SUBTRACT); + litTokens.put("*", MULTIPLY); + litTokens.put("/", DIVIDE); + litTokens.put("//", IDIVIDE); + litTokens.put("dg", DICEGROUP); + litTokens.put("dc", DICECONCAT); + litTokens.put("dl", DICELIST); + litTokens.put("=>", LET); + litTokens.put(":=", BIND); + litTokens.put(",", GROUPSEP); + litTokens.put("crc", COERCE); nextLiteral = 1; @@ -378,6 +379,8 @@ public class DiceLangEngine { IList readyTokens = shuntedTokens.flatMap(tk -> { if(tk.type == Token.Type.TOKGROUP) { return tk.tokenValues; + } else if(tk.type == Token.Type.TAGOP || tk.type == Token.Type.TAGOPR) { + return tk.tokenValues; } else { return new FunctionalList<>(tk); } -- cgit v1.2.3