diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL')
-rw-r--r-- | OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs | 28 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs | 40 |
2 files changed, 31 insertions, 37 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs index 883ed5e..2e0d1a3 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs | |||
@@ -107,19 +107,25 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
107 | LanguageMapping.Add(enumCompileType.lsl.ToString(), enumCompileType.lsl); | 107 | LanguageMapping.Add(enumCompileType.lsl.ToString(), enumCompileType.lsl); |
108 | 108 | ||
109 | // Allowed compilers | 109 | // Allowed compilers |
110 | string allowedCompilers = m_scriptEngine.ScriptConfigSource.GetString("AllowedCompilers", "lsl;cs;vb"); | 110 | string allowComp = m_scriptEngine.ScriptConfigSource.GetString("AllowedCompilers", "lsl;cs;vb"); |
111 | AllowedCompilers.Clear(); | 111 | AllowedCompilers.Clear(); |
112 | foreach (string strl in allowedCompilers.Split(';')) | 112 | |
113 | #if DEBUG | ||
114 | m_scriptEngine.Log.Debug(m_scriptEngine.ScriptEngineName, "Allowed languages: " + allowComp); | ||
115 | #endif | ||
116 | |||
117 | |||
118 | foreach (string strl in allowComp.Split(';')) | ||
113 | { | 119 | { |
114 | string strlan = strl.Trim(" \t".ToCharArray()).ToLower(); | 120 | string strlan = strl.Trim(" \t".ToCharArray()).ToLower(); |
115 | if (!LanguageMapping.ContainsKey(strlan)) | 121 | if (!LanguageMapping.ContainsKey(strlan)) |
116 | { | 122 | { |
117 | m_scriptEngine.Log.Error(m_scriptEngine.ScriptEngineName, "Config error. Compiler is unable to recongnize language type \"" + strl + "\" specified in \"AllowedCompilers\"."); | 123 | m_scriptEngine.Log.Error(m_scriptEngine.ScriptEngineName, "Config error. Compiler is unable to recongnize language type \"" + strlan + "\" specified in \"AllowedCompilers\"."); |
118 | } | 124 | } |
119 | else | 125 | else |
120 | { | 126 | { |
121 | #if DEBUG | 127 | #if DEBUG |
122 | m_scriptEngine.Log.Debug(m_scriptEngine.ScriptEngineName, "Config OK. Compiler recongnized language type \"" + strl + "\" specified in \"AllowedCompilers\"."); | 128 | m_scriptEngine.Log.Debug(m_scriptEngine.ScriptEngineName, "Config OK. Compiler recongnized language type \"" + strlan + "\" specified in \"AllowedCompilers\"."); |
123 | #endif | 129 | #endif |
124 | } | 130 | } |
125 | AllowedCompilers.Add(strlan, true); | 131 | AllowedCompilers.Add(strlan, true); |
@@ -228,19 +234,25 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
228 | if (Script.StartsWith("//c#", true, CultureInfo.InvariantCulture)) | 234 | if (Script.StartsWith("//c#", true, CultureInfo.InvariantCulture)) |
229 | l = enumCompileType.cs; | 235 | l = enumCompileType.cs; |
230 | if (Script.StartsWith("//vb", true, CultureInfo.InvariantCulture)) | 236 | if (Script.StartsWith("//vb", true, CultureInfo.InvariantCulture)) |
237 | { | ||
231 | l = enumCompileType.vb; | 238 | l = enumCompileType.vb; |
239 | // We need to remove //vb, it won't compile with that | ||
240 | |||
241 | Script = Script.Substring(4, Script.Length - 4); | ||
242 | } | ||
232 | if (Script.StartsWith("//lsl", true, CultureInfo.InvariantCulture)) | 243 | if (Script.StartsWith("//lsl", true, CultureInfo.InvariantCulture)) |
233 | l = enumCompileType.lsl; | 244 | l = enumCompileType.lsl; |
234 | 245 | ||
246 | |||
235 | if (!AllowedCompilers.ContainsKey(l.ToString())) | 247 | if (!AllowedCompilers.ContainsKey(l.ToString())) |
236 | { | 248 | { |
237 | // Not allowed to compile to this language! | 249 | // Not allowed to compile to this language! |
238 | string errtext = String.Empty; | 250 | string errtext = String.Empty; |
239 | errtext += "The compiler for language \"" + l.ToString() + "\" is not in list of allowed compilers. Script will not be executed!"; | 251 | errtext += "The compiler for language \"" + l.ToString() + "\" is not in list of allowed compilers. Script will not be executed!"; |
240 | throw new Exception(errtext); | 252 | //throw new Exception(errtext); |
241 | } | 253 | } |
242 | 254 | ||
243 | string compileScript; | 255 | string compileScript = Script; |
244 | 256 | ||
245 | if (l == enumCompileType.lsl) | 257 | if (l == enumCompileType.lsl) |
246 | { | 258 | { |
@@ -257,7 +269,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
257 | String.Empty + "namespace SecondLife { " + | 269 | String.Empty + "namespace SecondLife { " + |
258 | String.Empty + "public class Script : OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { " + | 270 | String.Empty + "public class Script : OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { " + |
259 | @"public Script() { } " + | 271 | @"public Script() { } " + |
260 | Script + | 272 | compileScript + |
261 | "} }\r\n"; | 273 | "} }\r\n"; |
262 | break; | 274 | break; |
263 | case enumCompileType.vb: | 275 | case enumCompileType.vb: |
@@ -266,7 +278,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
266 | String.Empty + "NameSpace SecondLife { " + | 278 | String.Empty + "NameSpace SecondLife { " + |
267 | String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.Common.LSL_BaseClass: " + | 279 | String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.Common.LSL_BaseClass: " + |
268 | @"Public Sub New(): End Sub: " + | 280 | @"Public Sub New(): End Sub: " + |
269 | Script + | 281 | compileScript + |
270 | ":End Class :End Namespace\r\n"; | 282 | ":End Class :End Namespace\r\n"; |
271 | break; | 283 | break; |
272 | } | 284 | } |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs index b35d562..314f3f0 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs | |||
@@ -289,36 +289,18 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
289 | 289 | ||
290 | // Add namespace, class name and inheritance | 290 | // Add namespace, class name and inheritance |
291 | 291 | ||
292 | Return = String.Empty + | 292 | Return = String.Empty;// + |
293 | "using OpenSim.Region.ScriptEngine.Common; using System.Collections.Generic;"; | 293 | //"using OpenSim.Region.ScriptEngine.Common; using System.Collections.Generic;"; |
294 | //"using System; " + | 294 | |
295 | //"using System.Collections.Generic; " + | 295 | |
296 | //"using System.Text; " + | 296 | //Return += String.Empty + |
297 | //"using OpenSim.Region.ScriptEngine.Common; " + | 297 | // "namespace SecondLife { "; |
298 | //"using integer = System.Int32; " + | 298 | //Return += String.Empty + |
299 | //"using key = System.String; "; | 299 | // //"[Serializable] " + |
300 | 300 | // "public class Script : OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { "; | |
301 | //// Make a Using out of DataTypes | 301 | //Return += @"public Script() { } "; |
302 | //// Using integer = System.Int32; | ||
303 | //string _val; | ||
304 | //foreach (string key in DataTypes.Keys) | ||
305 | //{ | ||
306 | // DataTypes.TryGetValue(key, out _val); | ||
307 | // if (key != _val) | ||
308 | // { | ||
309 | // Return += "using " + key + " = " + _val + "; "; | ||
310 | // } | ||
311 | //} | ||
312 | |||
313 | |||
314 | Return += String.Empty + | ||
315 | "namespace SecondLife { "; | ||
316 | Return += String.Empty + | ||
317 | //"[Serializable] " + | ||
318 | "public class Script : OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { "; | ||
319 | Return += @"public Script() { } "; | ||
320 | Return += Script; | 302 | Return += Script; |
321 | Return += "} }\r\n"; | 303 | //Return += "} }\r\n"; |
322 | 304 | ||
323 | 305 | ||
324 | quotes.Clear(); | 306 | quotes.Clear(); |