diff options
author | Rider Linden <rider@lindenlab.com> | 2015-07-01 08:47:50 -0700 |
---|---|---|
committer | Rider Linden <rider@lindenlab.com> | 2015-07-01 08:47:50 -0700 |
commit | 9f2302bdffde0c82a0cfab730a250aaee9b7059c (patch) | |
tree | 942b1e99701fa70993515d706bdedc836157ef30 /indra/lscript/lscript_compile/indra.y | |
parent | f25179f148415763e310b0dd7f91a37dcf4c58c0 (diff) | |
parent | 4aa64b99dbe6cafdccf0c25501feaef5ba3445c4 (diff) |
Merge
Diffstat (limited to 'indra/lscript/lscript_compile/indra.y')
-rwxr-xr-x | indra/lscript/lscript_compile/indra.y | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/indra/lscript/lscript_compile/indra.y b/indra/lscript/lscript_compile/indra.y index a0a034d21c..c451eee3d8 100755 --- a/indra/lscript/lscript_compile/indra.y +++ b/indra/lscript/lscript_compile/indra.y @@ -15,7 +15,6 @@ #pragma warning (disable : 4702) // warning C4702: unreachable code #pragma warning( disable : 4065 ) // warning: switch statement contains 'default' but no 'case' labels #endif - %} %union @@ -75,6 +74,8 @@ %token MONEY %token EMAIL %token RUN_TIME_PERMISSIONS +%token EXPERIENCE_PERMISSIONS +%token EXPERIENCE_PERMISSIONS_DENIED %token INVENTORY %token ATTACH %token DATASERVER @@ -180,6 +181,8 @@ %type <event> money %type <event> email %type <event> run_time_permissions +%type <event> experience_permissions +%type <event> experience_permissions_denied %type <event> inventory %type <event> attach %type <event> dataserver @@ -788,6 +791,16 @@ event $$ = new LLScriptEventHandler(gLine, gColumn, $1, $2); gAllocationManager->addAllocation($$); } + | experience_permissions compound_statement + { + $$ = new LLScriptEventHandler(gLine, gColumn, $1, $2); + gAllocationManager->addAllocation($$); + } + | experience_permissions_denied compound_statement + { + $$ = new LLScriptEventHandler(gLine, gColumn, $1, $2); + gAllocationManager->addAllocation($$); + } | inventory compound_statement { $$ = new LLScriptEventHandler(gLine, gColumn, $1, $2); @@ -1040,6 +1053,28 @@ run_time_permissions } ; +experience_permissions + : EXPERIENCE_PERMISSIONS '(' LLKEY IDENTIFIER ')' + { + LLScriptIdentifier *id1 = new LLScriptIdentifier(gLine, gColumn, $4); + gAllocationManager->addAllocation(id1); + $$ = new LLScriptEXPEvent(gLine, gColumn, id1); + gAllocationManager->addAllocation($$); + } + ; + +experience_permissions_denied + : EXPERIENCE_PERMISSIONS_DENIED '(' LLKEY IDENTIFIER ',' INTEGER IDENTIFIER ')' + { + LLScriptIdentifier *id1 = new LLScriptIdentifier(gLine, gColumn, $4); + gAllocationManager->addAllocation(id1); + LLScriptIdentifier *id2 = new LLScriptIdentifier(gLine, gColumn, $7); + gAllocationManager->addAllocation(id2); + $$ = new LLScriptEXPDeniedEvent(gLine, gColumn, id1, id2); + gAllocationManager->addAllocation($$); + } + ; + inventory : INVENTORY '(' INTEGER IDENTIFIER ')' { |