Commit Graph

31 Commits

Author SHA1 Message Date
Mic Bowman
a76a289d11 Adds support to ScriptModuleComms for region modules to export
constants to the script engine.
2012-07-31 10:45:37 -07:00
Mic Bowman
8b5298a62e Protect the scriptmodulecomms interface. 2012-03-15 13:37:43 -07:00
Mic Bowman
402ff75d78 Adds a new script command 'modInvoke' to invoke registered functions
from region modules. The LSL translator is extended to generate the
modInvoke format of commands for directly inlined function calls.

A region module can register a function Test() with the name "Test".
LSL code can call that function as "Test()". The compiler will translate
that invocation into modInvoke("Test", ...)
2012-03-15 13:16:02 -07:00
Justin Clark-Casey (justincc)
85198a45cb Fix off by one error in script error reporting. 2012-03-06 02:01:47 +00:00
Justin Clark-Casey (justincc)
038d1bf742 Add a regression test to compile and start a script. Remove Path.GetDirectoryName when getting assembly loading path in Compiler.CompileFromDotNetText().
The Path.GetDirectoryName call in Compiler.CompileFromDotNetText is unnecessary since AppDomain.CurrentDomain.BaseDirectory is always a directory.
Later path concatenation is already done by Path.Combine() which handles any trailing slash.
Removing Path.GetDirectoryName() will not affect the runtime but allows NUnit to work since it doesn't add a trailing slash to AppDomain.CurrentDomain.BaseDirectory.
2012-02-07 17:44:37 +00:00
Melanie
1876ce90af FINALLY! Script compile errors now appear in the script error pane,
not in a funky debug window.
2009-12-22 09:24:01 +00:00
Justin Clark-Casey (justincc)
8f0db68424 Fix http://opensimulator.org/mantis/view.php?id=3874 - parenthesis in for statements cause script compile failures
This fixes a problem in OpenSim where statements of the form

for ((i = 0); (i < 10); (++i)) { ... }

do not compile even though they are valid lsl.
2009-11-20 18:39:39 +00:00
Jeff Ames
a23d64dec1 Formatting cleanup. 2009-06-10 04:28:56 +00:00
Mike Mazur
cda6b24668 Skip lone ident statments or for-loop assignments
SL's LSL supports lone idents:

    integer x;
    x;

as well as lone idents in for-loop assignments:

    for (x; x < 10; x++) { ... }

while those are errors in C# (MONO at least). This patch skips lone
idents in such places.

Fixes Mantis #3042.
2009-06-07 10:22:55 +00:00
Mike Mazur
48bc2f3a42 Allow empty assignment in for-loop
For loops with no assignment are no longer syntax errors. For example,
this is now valid:

    for ( ; i < 10; i++) { ... }

Corresponding changes to lsl.{lexer,parser} in r99 in opensim-libs.

Fixes Mantis #2501. Fixes Mantis #2884.
2009-06-07 10:22:41 +00:00
Jeff Ames
840de6c036 Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. 2009-06-01 06:37:14 +00:00
Charles Krinke
ed7256ac0c Fixes Mantis #3187. Thank you kindly, DoranZemlja for a patch that:
Deals with the multiple warning side affect introduced earlier.
2009-02-25 04:29:02 +00:00
Charles Krinke
08c76989a7 Mantis#3187. Thank you kindly, DoranZemlja for a patch that:
Adds a warning for an LSL construct that exploits a
popular list memory saving hack.
2009-02-23 02:43:51 +00:00
Mike Mazur
a42499c947 Thanks DoranZemlja for a patch implementing non-shortcircuiting in
logical and and logical or in LSL. Fixes Mantis #3174.
2009-02-20 07:40:36 +00:00
Mike Mazur
9a33a4733e Thanks Tommi Laukkanen for a patch that allows the
CSCodeGeneratorTest.TestStringsWithEscapedQuotesAndComments unit test to
pass on Windows. Fixes Mantis #3104.
2009-02-09 00:59:02 +00:00
Melanie Thielker
9e4fc8e03a Mantis #2571
Thank you, idb, for a patch that fixes the jump function in LSL.
2008-11-06 23:10:49 +00:00
Mike Mazur
6e14d1005a Prefix LSL variables which are C# keywords with @ instead of _ when translating from LSL to C#. Thanks idb for the patch. Fix issue 2546. 2008-11-04 01:30:39 +00:00
Melanie Thielker
44852158f2 Mantis #2518
Thank you, idb, for a patch that fixes the conflicts of lsl identifiers
with c# keywords
2008-11-01 23:50:19 +00:00
Melanie Thielker
638cce09d1 Restore "friendly errors" to the XEngine 2008-10-07 21:59:56 +00:00
Melanie Thielker
85068dae60 Add friendly error messages to both engines. 2008-09-27 05:31:43 +00:00
Jeff Ames
3f79e6b3e7 Update svn properties, formatting cleanup. 2008-09-23 23:14:00 +00:00
Melanie Thielker
d95794d05c Refactor XEngine parser as per suggestions from mikem 2008-09-23 13:28:17 +00:00
Melanie Thielker
2fbebbb644 First batch of the unit test changes for the new constants semantics
in XEngine. This turned out to be a lot of work to catch up.
2008-09-02 06:02:14 +00:00
Melanie Thielker
e2a0a04beb Remove the ((bool)()) cast, since it can make c# barf 2008-09-02 04:15:06 +00:00
Melanie Thielker
146f469524 Add an explicit cast to bool for the if expression so that any base types
that slip in will not cause it to break
2008-09-02 00:03:16 +00:00
Melanie Thielker
a5d2674a43 This is an attempt to fix the handling of constants in LSL.
It wraps constants in new LSLType(x), so that lists with
constant values are processed correctly. Contains changes to
the lsl.parser.cs that are not (yet) reflected in opensim-libs,
since this experimental patch affects XEngine only. Also contains
nuts.
2008-09-01 23:33:12 +00:00
Mike Mazur
eef3864278 Fix issue 1860; exception thrown in the parser on if/if-else/for/while/do-while
statements with no body.
2008-07-31 01:27:33 +00:00
Mike Mazur
ba17b0df27 First version of position mapping between LSL <-> C# implemented. 2008-07-23 02:51:45 +00:00
Melanie Thielker
d85774c101 Patch #9142 (No mantis)
Add a config option to OpenSim.ini to select between script compilers
in the XEngine without recompile.
Set UseNewCompiler=true in OpenSim.ini and try it out.
Creates the ICodeConverter interface and adapts the new compiler to it.
2008-07-12 01:34:36 +00:00
Johan Berntsson
d41c1f40a8 Patch from Mike: errors from the LSL/C# compilers are now reported to the user in-world 2008-07-10 05:40:45 +00:00
Johan Berntsson
a73e3b4e3f another patch from Mike: the llscript compiler is now available in XEngine as well. Thanks Mike 2008-07-08 03:02:11 +00:00