aboutsummaryrefslogtreecommitdiffstats
path: root/graphics/flasm/files/patch-assembler.y
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/flasm/files/patch-assembler.y')
-rw-r--r--graphics/flasm/files/patch-assembler.y257
1 files changed, 257 insertions, 0 deletions
diff --git a/graphics/flasm/files/patch-assembler.y b/graphics/flasm/files/patch-assembler.y
new file mode 100644
index 000000000000..476d16639901
--- /dev/null
+++ b/graphics/flasm/files/patch-assembler.y
@@ -0,0 +1,257 @@
+http://sourceforge.net/tracker/index.php?func=detail&aid=2615264&group_id=33473&atid=408391
+diff -up assembler.y.midrule assembler.y
+--- assembler.y.midrule 2008-12-20 22:44:50.000000000 +0100
++++ assembler.y 2008-12-20 22:54:03.000000000 +0100
+@@ -605,24 +605,24 @@ finally_opt
+
+ trycatchfinally
+ : TRY name_opt {
+- $$ = writeByte(SWFACTION_TRY);
++ $<num>$ = writeByte(SWFACTION_TRY);
+ /* action length */
+- $$ += writeShort(strlen($2)+8);
++ $<num>$ += writeShort(strlen($2)+8);
+ /* zero flag */
+- $$ += writeByte(0);
++ $<num>$ += writeByte(0);
+ /* zero try length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ /* zero catch length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ /* zero finally length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ /* error variable name */
+- $$ += writeString($2);
++ $<num>$ += writeString($2);
+ }
+
+- statements_opt { $$ = $<num>3 + $4; patchLength($$ - 6, $4); }
+- catch_opt { $$ = $<num>5 + $6; patchLength($$ - 8, $6); }
+- finally_opt { $$ = $<num>7 + $8; patchLength($$ - 10, $8); }
++ statements_opt { $<num>$ = $<num>3 + $4; patchLength($<num>$ - 6, $4); }
++ catch_opt { $<num>$ = $<num>5 + $6; patchLength($<num>$ - 8, $6); }
++ finally_opt { $<num>$ = $<num>7 + $8; patchLength($<num>$ - 10, $8); }
+ END {
+ byte flag = 0;
+ $$ = $<num>9;
+@@ -634,24 +634,24 @@ trycatchfinally
+ }
+
+ | TRY register {
+- $$ = writeByte(SWFACTION_TRY);
++ $<num>$ = writeByte(SWFACTION_TRY);
+ /* action length */
+- $$ += writeShort(8);
++ $<num>$ += writeShort(8);
+ /* zero flag */
+- $$ += writeByte(0);
++ $<num>$ += writeByte(0);
+ /* zero try length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ /* zero catch length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ /* zero finally length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ /* error register number */
+- $$ += writeByte((byte) $2);
++ $<num>$ += writeByte((byte) $2);
+ }
+
+- statements_opt { $$ = $<num>3 + $4; patchLength($$ - 6, $4); }
+- catch_opt { $$ = $<num>5 + $6; patchLength($$ - 8, $6); }
+- finally_opt { $$ = $<num>7 + $8; patchLength($$ - 10, $8); }
++ statements_opt { $<num>$ = $<num>3 + $4; patchLength($<num>$ - 6, $4); }
++ catch_opt { $<num>$ = $<num>5 + $6; patchLength($<num>$ - 8, $6); }
++ finally_opt { $<num>$ = $<num>7 + $8; patchLength($<num>$ - 10, $8); }
+ END {
+ byte flag = 4;
+ $$ = $<num>9;
+@@ -707,25 +707,25 @@ name_opt
+
+ function
+ : FUNCTION name_opt {
+- $$ = writeByte(SWFACTION_DEFINEFUNCTION);
++ $<num>$ = writeByte(SWFACTION_DEFINEFUNCTION);
+ /* zero block length */
+- $$ += writeShort(0);
+- $$ += writeString($2);
++ $<num>$ += writeShort(0);
++ $<num>$ += writeString($2);
+ }
+
+ '(' function_args ')' {
+ unsigned int i;
+ numArgs = $5;
+
+- $$ = $<num>3 + writeShort(numArgs);
++ $<num>$ = $<num>3 + writeShort(numArgs);
+
+ for(i = 0; i < numArgs; ++i)
+- $$ += writeString(func_args[i]);
++ $<num>$ += writeString(func_args[i]);
+
+ /* zero function length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ /* patch block length */
+- patchLength($$-3, $$-3);
++ patchLength($<num>$-3, $<num>$-3);
+ }
+
+ statements_opt END {
+@@ -837,25 +837,25 @@ autoregarglist
+
+ function2
+ : FUNCTION2 name_opt {
+- $$ = writeByte(SWFACTION_DEFINEFUNCTION2);
++ $<num>$ = writeByte(SWFACTION_DEFINEFUNCTION2);
+ /* zero block length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ /* function name */
+- $$ += writeString($2);
++ $<num>$ += writeString($2);
+ curFunc++;
+ memset(regfunc_args[curFunc], 0, sizeof (regfunc_args[curFunc]));
+ numArgs = 0;
+ /* zero num of function arguments */
+- $$ += writeShort(numArgs);
++ $<num>$ += writeShort(numArgs);
+ /* allocate zero registers */
+ numRegisters[curFunc] = 0;
+- $$ += writeByte(numRegisters[curFunc]);
++ $<num>$ += writeByte(numRegisters[curFunc]);
+ /* zero automatic register flags */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ }
+
+ '(' regarglist ')' {
+- $$ = $<num>3 + $5;
++ $<num>$ = $<num>3 + $5;
+ /* patch num of function arguments */
+ patchLength($5 + 3, numArgs);
+ autoregFlags = 0;
+@@ -866,9 +866,9 @@ function2
+ byte curautoreg = 1;
+ unsigned int i;
+
+- $$ = $<num>7;
++ $<num>$ = $<num>7;
+ /* zero body length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+
+ /* make sure auto registers are allocated in the right order */
+ for (i = 0; i < MAX_AUTO_REGS; i++) {
+@@ -883,9 +883,9 @@ function2
+ }
+
+ /* patch automatic register flags */
+- patchLength($$ - $<num>3, autoregFlags);
++ patchLength($<num>$ - $<num>3, autoregFlags);
+ /* patch block length */
+- patchLength($$ - 3, $$ - 3);
++ patchLength($<num>$ - 3, $<num>$ - 3);
+ }
+
+ statements_opt END {
+@@ -905,11 +905,11 @@ function2
+
+ with
+ : WITH {
+- $$ = writeByte(SWFACTION_WITH);
++ $<num>$ = writeByte(SWFACTION_WITH);
+ /* length of with action */
+- $$ += writeShort(2);
++ $<num>$ += writeShort(2);
+ /* length of with block - will be patched */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ }
+
+ statements_opt END {
+@@ -921,9 +921,9 @@ with
+
+ settarget
+ : SETTARGET STRING {
+- $$ = writeByte(SWFACTION_SETTARGET);
+- $$ += writeShort(strlen($2)+1);
+- $$ += writeString($2);
++ $<num>$ = writeByte(SWFACTION_SETTARGET);
++ $<num>$ += writeShort(strlen($2)+1);
++ $<num>$ += writeString($2);
+ }
+
+ statements_opt END {
+@@ -934,7 +934,7 @@ settarget
+ ;
+
+ settargetexpression
+- : SETTARGETEXPR { $$ = writeByte(SWFACTION_SETTARGETEXPRESSION); }
++ : SETTARGETEXPR { $<num>$ = writeByte(SWFACTION_SETTARGETEXPRESSION); }
+ statements_opt END {
+ $$ = $3 + writeByte(SWFACTION_SETTARGET);
+ $$ += $<num>2 + writeShort(1);
+@@ -946,9 +946,9 @@ ifframeloadedexpression
+ : IFFRAMELOADEDEXPR {
+ if (frameloadedStart>-1)
+ yyerror("IfFrameLoaded actions can't be nested");
+- $$ = writeByte(SWFACTION_IFFRAMELOADEDEXPRESSION);
+- $$ += writeShort(1);
+- $$ += writeByte(0);
++ $<num>$ = writeByte(SWFACTION_IFFRAMELOADEDEXPRESSION);
++ $<num>$ += writeShort(1);
++ $<num>$ += writeByte(0);
+ frameloadedStart = numActions;
+ }
+
+@@ -963,10 +963,10 @@ ifframeloaded
+ : IFFRAMELOADED INTEGER {
+ if (frameloadedStart>-1)
+ yyerror("IfFrameLoaded actions can't be nested");
+- $$ = writeByte(SWFACTION_IFFRAMELOADED);
+- $$ += writeShort(3);
+- $$ += writeShort($2);
+- $$ += writeByte(0);
++ $<num>$ = writeByte(SWFACTION_IFFRAMELOADED);
++ $<num>$ += writeShort(3);
++ $<num>$ += writeShort($2);
++ $<num>$ += writeByte(0);
+ frameloadedStart = numActions;
+ }
+
+@@ -1199,9 +1199,9 @@ opcode
+ constant_list_opt { $$ = writeConstants(); }
+
+ | PUSH {
+- $$ = writeByte(SWFACTION_PUSHDATA);
++ $<num>$ = writeByte(SWFACTION_PUSHDATA);
+ /* length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ }
+
+ push_list {
+@@ -1212,10 +1212,10 @@ opcode
+ | SWFACTION HEX {
+ if (xtoi($2)>0xff)
+ yyerror("Action code out of range");
+- $$ = writeByte((char)xtoi($2));
++ $<num>$ = writeByte((char)xtoi($2));
+ if (xtoi($2)>=0x80)
+ /* length */
+- $$ += writeShort(0);
++ $<num>$ += writeShort(0);
+ }
+
+ hexlist_opt {
+
+
+