135 Commits

Author SHA1 Message Date
Gabriel Ivăncescu
3750c5b066 vbscript: Don't create script dispatches for items with the SCRIPTITEM_GLOBALMEMBERS flag.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 19:38:37 +01:00
Gabriel Ivăncescu
ba8429e717 vbscript: Implement separate script dispatch objects for each named item.
Each named item should have its own associated script dispatch
object. Identifiers are added to this object, but code does look into the
global script object as well.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-18 20:28:56 +01:00
Gabriel Ivăncescu
729c9eab58 vbscript: Lookup the named item in compile_script.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-03 20:48:04 +01:00
Jacek Caban
c994118401 vbscript: Allow assignment left expression to be member expression.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 22:34:07 +01:00
Jacek Caban
e35564b36d vbscript: Support reporting error location to script host.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-23 09:26:33 +01:00
Jacek Caban
eb73571fe9 vbscript: Pass parser error location to compiler.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-23 09:26:31 +01:00
Jacek Caban
5436fc90f4 vbscript: Store source cookie and starting line in vbscode_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-23 09:26:24 +01:00
Jacek Caban
7a76856e2d vbscript: Store source location in instr_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-23 09:26:21 +01:00
Jacek Caban
70cd4153c5 vbscript: Alloc vbscode_t before parsing the script.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-23 09:26:17 +01:00
Gabriel Ivăncescu
2dfcb31cf3 vbscript: Remove unused field.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-10 20:59:19 +01:00
Gabriel Ivăncescu
6c2f99c84e vbscript: Reference count the vbscode_t.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-06 22:30:23 +01:00
Gabriel Ivăncescu
cdc5ac52fc vbscript: Move the global lists to the script dispatch object.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-06 22:30:23 +01:00
Gabriel Ivăncescu
b7eb693e7f vbscript: Append to the global lists when the code is executed, rather than compiled.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 22:58:00 +01:00
Gabriel Ivăncescu
9933c776c7 vbscript: Store the compiled functions list head into vbscode_t.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 22:58:00 +01:00
Gabriel Ivăncescu
8b30b86765 vbscript: Store the compiled classes list head into vbscode_t.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 22:58:00 +01:00
Gabriel Ivăncescu
e2eb099a94 vbscript: Implement script persistence.
Persistent code has to be re-executed if the script is uninitialized and
then reinitialized and restarted.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-08 18:27:30 +01:00
Gabriel Ivăncescu
71ce853032 vbscript: Avoid special casing the global function when compiling a function's variables.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-08 18:27:27 +01:00
Gabriel Ivăncescu
4699d36656 vbscript: Store global variables in an array.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-06 22:00:08 +01:00
Jacek Caban
3dea7bd7fc vbscript: Store global static arrays together with global variables.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-06 22:00:05 +01:00
Jacek Caban
509044296d vbscript: Fix parsing call expressions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=41119
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-05 16:17:27 +01:00
Jacek Caban
52bbac0a36 vbscript: Replace existing function for duplicated functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-04 22:43:01 +01:00
Jacek Caban
ea7a3953fc vbscript: Store global functions in an array.
Based on patch by Gabriel Ivăncescu.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-04 22:43:01 +01:00
Jacek Caban
5cb1631fe2 vbscript: Add interpreter support for redim statement.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-01 20:30:09 +01:00
Jacek Caban
e8b2f85bb1 vbscript: Add support for interpreting statements.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-29 23:30:47 +01:00
Jacek Caban
2d419b7d7b vbscript: Always pass arguments inside parentheses by value.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 20:12:38 +01:00
Jacek Caban
216f7146ef vbscript: Ignore parentheses in call expression.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 19:19:34 +01:00
Jacek Caban
25248362ea vbscript: Support non-member calls in compiler.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 19:19:34 +01:00
Jacek Caban
fab9c49a6a vbscript: Introduce separated struct for call expressions.
Instead of storing arguments in member expression struct.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 19:19:34 +01:00
Jacek Caban
581a8adf1f vbscript: Create class description for procedure object in compiler.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-17 22:48:02 +02:00
Jacek Caban
34674eff5b vbscript: Call OnScriptError for compile errors.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-04 22:11:20 +02:00
Gabriel Ivăncescu
7c9139dffb vbscript: Handle NULL code text in ParseScriptText and ParseProcedureText.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-23 19:44:18 +02:00
Gabriel Ivăncescu
8037b13078 vbscript: Add support for the SCRIPTTEXT_ISEXPRESSION flag in ParseScriptText.
To simplify the amount of special cases both in ParseScriptText and
ParseProcedureText, add a new pseudo statement and opcode to return the
expression and value at the top of the stack, respectively. Script texts
that have this flag will be parsed specially as a single expression with
such a statement at the end.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-17 18:49:47 +02:00
Jacek Caban
9b18772c0b vbscript: Rename OP_long expression to OP_int.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-22 21:56:15 +02:00
Jacek Caban
d01d629420 vbscript: Handle long/short distinction in interpreter.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-22 21:56:12 +02:00
Alexandre Julliard
3911e6696a vbscript: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-25 08:46:31 +02:00
Jacek Caban
7e10941083 vbscript: Added support for script context in ParseScriptText.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-19 12:35:11 +01:00
Jacek Caban
3873c93891 vbscript: Allow omitting optional function parameters in call expressions. 2015-01-28 21:30:10 +01:00
Jacek Caban
2de2e10d47 vbscript: Always initialize is_array value (valgrind). 2014-06-11 19:15:27 +02:00
Jacek Caban
7aaf597db1 vbscript: Fixed a leak. 2014-03-24 13:58:09 +01:00
Jacek Caban
fc0ef22a44 vbscript: Added support for exception unwinding. 2014-03-21 16:51:23 +01:00
Jacek Caban
82cace0f0e vbscipt: Added beginning support for arrays as class members. 2014-03-07 14:34:40 +01:00
Jacek Caban
fc713bfc12 vbscript: Added bytecode support for arrays. 2013-11-13 18:30:55 +01:00
Jacek Caban
f3e1f7002d vbscript: Store variables in declaration order. 2013-11-13 18:30:49 +01:00
Jacek Caban
cf51435541 vbscript: Added parser support for arrays. 2013-11-13 18:30:45 +01:00
Jacek Caban
9eed654e05 vbscript: Use DEFAULT_UNREACHABLE macro where appropriate. 2013-03-13 16:27:49 +01:00
Alexandre Julliard
72226ea8df vbscript: Return after assert(0) to silence warnings. 2013-03-06 14:09:58 +01:00
Piotr Caban
fb29bf7d2f vbscript: Rename vbsheap to heap_pool. 2013-02-15 16:26:30 +01:00
André Hentschel
1aa6236428 vbscript: Avoid memory leak in compile_select_statement (coverity). 2012-10-31 16:12:27 +01:00
Jacek Caban
290f563199 vbscript: Added support for HTML comments. 2012-10-18 19:21:24 +02:00
Jacek Caban
5a2b3e0de6 vbscript: Added support for do..loop statement without an expression. 2012-09-18 14:48:39 +02:00