1 package rero.client.functions; 2 3 import sleep.engine.*; 4 import sleep.runtime.*; 5 import sleep.interfaces.*; 6 import sleep.bridges.BridgeUtilities; 7 8 import rero.util.*; 9 import rero.client.*; 10 import rero.config.*; 11 import java.util.*; 12 import java.text.*; 13 14 public class TokenOperators extends Feature implements Loadable 15 { 16 public void init() 17 { 18 getCapabilities().getScriptCore().addBridge(this); 19 } 20 21 public boolean scriptLoaded(ScriptInstance script) 22 { 23 script.getScriptEnvironment().getEnvironment().put("&tokenize", new tokenize()); 24 script.getScriptEnvironment().getEnvironment().put("&getToken", new getToken()); 25 script.getScriptEnvironment().getEnvironment().put("&getTokenFrom", new getTokenFrom()); 26 script.getScriptEnvironment().getEnvironment().put("&getTokenTo", new getTokenTo()); 27 script.getScriptEnvironment().getEnvironment().put("&getTokenRange", new getTokenRange()); 28 29 script.getScriptEnvironment().getEnvironment().put("&getAllTokens", new getAllTokens()); 30 31 script.getScriptEnvironment().getEnvironment().put("&getTotalTokens", new getTotalTokens()); 32 script.getScriptEnvironment().getEnvironment().put("&findToken", new findToken()); 33 34 script.getScriptEnvironment().getEnvironment().put("istoken", new isToken()); 35 36 return true; 37 } 38 39 public boolean scriptUnloaded(ScriptInstance script) 40 { 41 return true; 42 } 43 44 private static TokenizedString extractTokens(Stack locals) 45 { 46 return (TokenizedString)BridgeUtilities.getObject(locals); 47 } 48 49 private static class tokenize implements Function 50 { 51 public Scalar evaluate(String f, ScriptInstance si, Stack locals) 52 { 53 String text = BridgeUtilities.getString(locals, ""); 54 String delim = BridgeUtilities.getString(locals, " "); 55 56 return SleepUtils.getScalar(new TokenizedString(text, delim)); 57 } 58 } 59 60 private static class getToken implements Function 61 { 62 public Scalar evaluate(String f, ScriptInstance si, Stack locals) 63 { 64 TokenizedString temp = extractTokens(locals); 65 int x = BridgeUtilities.getInt(locals, 0); 66 67 return SleepUtils.getScalar(temp.getToken(x)); 68 } 69 } 70 71 private static class getTokenFrom implements Function 72 { 73 public Scalar evaluate(String f, ScriptInstance si, Stack locals) 74 { 75 TokenizedString temp = extractTokens(locals); 76 int x = BridgeUtilities.getInt(locals, 0); 77 78 return SleepUtils.getScalar(temp.getTokenFrom(x)); 79 } 80 } 81 82 private static class getTokenTo implements Function 83 { 84 public Scalar evaluate(String f, ScriptInstance si, Stack locals) 85 { 86 TokenizedString temp = extractTokens(locals); 87 int x = BridgeUtilities.getInt(locals, 0); 88 89 return SleepUtils.getScalar(temp.getTokenTo(x)); 90 } 91 } 92 93 private static class getTokenRange implements Function 94 { 95 public Scalar evaluate(String f, ScriptInstance si, Stack locals) 96 { 97 TokenizedString temp = extractTokens(locals); 98 int x = BridgeUtilities.getInt(locals, 0); 99 int y = BridgeUtilities.getInt(locals, 0); 100 101 return SleepUtils.getScalar(temp.getTokenRange(x, y)); 102 } 103 } 104 105 private static class getTotalTokens implements Function 106 { 107 public Scalar evaluate(String f, ScriptInstance si, Stack locals) 108 { 109 TokenizedString temp = extractTokens(locals); 110 return SleepUtils.getScalar(temp.getTotalTokens()); 111 } 112 } 113 114 private static class findToken implements Function 115 { 116 public Scalar evaluate(String f, ScriptInstance si, Stack locals) 117 { 118 TokenizedString temp = extractTokens(locals); 119 String findme = BridgeUtilities.getString(locals, ""); 120 121 return SleepUtils.getScalar(temp.findToken(findme)); 122 } 123 } 124 125 private static class getAllTokens implements Function 126 { 127 public Scalar evaluate(String f, ScriptInstance si, Stack locals) 128 { 129 TokenizedString temp = extractTokens(locals); 130 Scalar rv = SleepUtils.getArrayScalar(); 131 132 for (int x = 0; x < temp.getTotalTokens(); x++) 133 { 134 rv.getArray().push(SleepUtils.getScalar(temp.getToken(x))); 135 } 136 137 return rv; 138 } 139 } 140 141 private static class isToken implements Predicate 142 { 143 public boolean decide(String f, ScriptInstance si, Stack locals) 144 { 145 TokenizedString right = extractTokens(locals); 146 String left = BridgeUtilities.getString(locals, ""); 147 148 return right.isToken(left); 149 } 150 } 151 } 152 | Popular Tags |