[Scummvm-git-logs] scummvm master -> 5a5c6935cab33871043430cca82a4eeac48630d6

sev- sev at scummvm.org
Thu May 14 22:43:49 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
5a5c6935ca DIRECTOR: LINGO: Process continuation symbol in strings


Commit: 5a5c6935cab33871043430cca82a4eeac48630d6
    https://github.com/scummvm/scummvm/commit/5a5c6935cab33871043430cca82a4eeac48630d6
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-05-15T00:42:36+02:00

Commit Message:
DIRECTOR: LINGO: Process continuation symbol in strings

Changed paths:
    engines/director/lingo/lingo-lex.cpp
    engines/director/lingo/lingo-lex.l


diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 3e228b489e..3a6b7d2d16 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -373,43 +373,43 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[314] =
+static yyconst flex_int16_t yy_accept[315] =
     {   0,
         0,    0,   74,   72,    4,   70,   70,   72,   72,   72,
        69,   69,   69,   68,   69,   65,   69,   66,   66,   66,
        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
        66,   66,   66,   66,   72,    3,    3,   66,    4,   70,
-        0,    0,    0,   71,    5,   64,    2,   67,   68,   63,
-       61,   62,   66,   66,   66,   66,   66,   66,   66,   66,
-       66,   66,   66,   66,   12,   24,   66,   66,   66,   66,
-       66,   66,   66,   66,   34,   35,   66,   37,   66,   66,
-       66,   66,   66,   66,   66,   66,   66,   54,   66,   66,
-       66,    1,    3,    3,    0,   66,    5,    2,   67,   66,
-
-        7,   66,   66,   66,   66,   66,   15,   66,   66,   20,
-       66,   66,   66,   66,   66,   66,   66,   30,   66,   66,
-       33,   66,   66,   66,   66,   43,   66,   45,   66,   66,
-       66,   66,   66,   66,   66,   66,    0,   66,   66,   66,
-        9,   66,   11,   14,    0,   17,   66,    0,    0,   66,
-       66,   23,   25,   26,   27,   66,   66,   66,   32,   36,
-       39,   66,   66,   66,   66,   66,   47,    0,   53,   58,
-       66,   56,   60,    0,   66,    6,   66,   66,    0,   15,
-       66,    0,   20,   66,   66,   28,   66,   31,    0,   66,
-       66,   66,   66,   66,   66,   52,   52,   52,   59,   66,
-
-        0,   66,    8,   66,    0,   15,   18,    0,    0,   66,
-       66,   66,    0,   66,   66,   66,   44,   55,   46,    0,
-        0,   52,   52,   57,    0,   66,   66,   13,    0,   66,
-       66,    0,   29,    0,   66,   66,   66,    0,    0,    0,
-        0,   52,   52,    0,   16,   10,   19,   21,   66,   29,
-       29,    0,   66,   41,   42,    0,    0,    0,   52,   52,
-       16,   66,   29,    0,   40,    0,    0,    0,    0,   52,
-       22,   38,   51,   50,   51,    0,    0,    0,    0,   52,
-       50,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   51,   50,   50,   51,    0,
-
-       49,   50,   50,    0,   50,    0,   50,    0,    0,    0,
-        0,   48,    0
+        0,    0,    0,   71,    0,    5,   64,    2,   67,   68,
+       63,   61,   62,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   12,   24,   66,   66,   66,
+       66,   66,   66,   66,   66,   34,   35,   66,   37,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   54,   66,
+       66,   66,    1,    3,    3,    0,   66,    5,    2,   67,
+
+       66,    7,   66,   66,   66,   66,   66,   15,   66,   66,
+       20,   66,   66,   66,   66,   66,   66,   66,   30,   66,
+       66,   33,   66,   66,   66,   66,   43,   66,   45,   66,
+       66,   66,   66,   66,   66,   66,   66,    0,   66,   66,
+       66,    9,   66,   11,   14,    0,   17,   66,    0,    0,
+       66,   66,   23,   25,   26,   27,   66,   66,   66,   32,
+       36,   39,   66,   66,   66,   66,   66,   47,    0,   53,
+       58,   66,   56,   60,    0,   66,    6,   66,   66,    0,
+       15,   66,    0,   20,   66,   66,   28,   66,   31,    0,
+       66,   66,   66,   66,   66,   66,   52,   52,   52,   59,
+
+       66,    0,   66,    8,   66,    0,   15,   18,    0,    0,
+       66,   66,   66,    0,   66,   66,   66,   44,   55,   46,
+        0,    0,   52,   52,   57,    0,   66,   66,   13,    0,
+       66,   66,    0,   29,    0,   66,   66,   66,    0,    0,
+        0,    0,   52,   52,    0,   16,   10,   19,   21,   66,
+       29,   29,    0,   66,   41,   42,    0,    0,    0,   52,
+       52,   16,   66,   29,    0,   40,    0,    0,    0,    0,
+       52,   22,   38,   51,   50,   51,    0,    0,    0,    0,
+       52,   50,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   51,   50,   50,   51,
+
+        0,   49,   50,   50,    0,   50,    0,   50,    0,    0,
+        0,    0,   48,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -455,87 +455,89 @@ static yyconst flex_int32_t yy_meta[64] =
         5,    5,    1
     } ;
 
-static yyconst flex_int16_t yy_base[331] =
+static yyconst flex_int16_t yy_base[332] =
     {   0,
-        0,   62,  169,  834,   66,  834,  834,   70,  124,    0,
-      834,  119,  115,   53,   61,  834,  109,   57,   57,   57,
-       53,   61,    0,   62,   85,   68,  106,   95,  112,  118,
-       59,  118,  141,  130,   91,  188,  193,   79,  197,  834,
-      201,   97,  112,  834,    0,  834,    0,   84,  144,  834,
-      834,  834,    0,  104,  126,  162,  168,  159,  170,  179,
-      193,  189,  187,   80,    0,  185,  199,  193,  193,  205,
-      192,  211,  189,  195,    0,    0,  212,    0,  226,  232,
-      202,  227,  227,  231,  237,  238,  245,    0,  247,  237,
-      242,  834,  296,  300,  252,  263,    0,    0,   78,  262,
-
-        0,  257,  257,  257,  279,  274,  130,  275,  293,  311,
-      281,  296,  292,  302,  290,  293,  303,    0,  303,  296,
-        0,  308,  300,  314,  323,    0,  313,    0,  315,  323,
-      329,  364,  332,  338,  343,  350,  352,  340,  343,  344,
-        0,  355,    0,  172,  223,    0,  363,  350,  353,  368,
-      355,    0,    0,    0,    0,  359,  360,  379,    0,    0,
-      406,  376,  381,  386,  358,  373,    0,  412,    0,    0,
-      397,  394,    0,  387,  392,    0,  407,  404,  429,    0,
-      405,  416,  271,  406,  403,    0,  417,    0,  444,  429,
-      410,  418,  417,  435,  427,  465,  474,  483,    0,  440,
-
-      441,  445,    0,  452,  443,    0,    0,  454,  494,  467,
-      466,  493,  465,  482,  468,  473,    0,    0,    0,  512,
-      493,  519,  526,    0,  480,  483,  501,  834,  488,  498,
-      504,  546,    0,  521,  518,  511,  510,  553,  543,  539,
-      539,  566,  568,  520,    0,    0,  834,    0,  532,    0,
-        0,  546,  552,    0,    0,  546,  585,  553,  589,  591,
-      834,  559,    0,  574,    0,  577,  603,  586,  609,  615,
-        0,  834,  834,    0,  834,  611,  616,  622,  630,  632,
-        0,  616,  643,  647,  654,  658,  599,  604,  659,  669,
-      682,  671,  608,  670,  681,  688,  629,  645,  693,  704,
-
-      834,  705,  711,  712,  718,  696,  723,  656,  697,  727,
-      728,  834,  834,  763,  765,  768,  771,  777,  782,  787,
-      789,  794,  799,  802,  805,  810,  815,  817,  822,  827
+        0,   62,  128,  847,   66,  847,  847,   70,   59,    0,
+      847,  115,  108,   64,   63,  847,   84,   58,   45,   58,
+       56,   62,    0,   65,   91,   68,   86,  105,  120,  109,
+       60,  126,  149,  138,   93,  196,  201,  113,  205,  847,
+      209,   98,   77,  847,  178,    0,  847,    0,   81,  133,
+      847,  847,  847,    0,   98,  133,  139,  148,  140,  156,
+      163,  195,  195,  187,  219,    0,  192,  201,  198,  198,
+      210,  197,  216,  194,  199,    0,    0,  213,    0,  220,
+      236,  228,  232,  231,  235,  228,  243,  250,    0,  252,
+      242,  247,  847,  301,  305,  257,  268,    0,    0,   72,
+
+      270,    0,  264,  264,  278,  284,  271,  233,  280,  282,
+      316,  286,  301,  297,  307,  295,  298,  308,    0,  308,
+      306,    0,  313,  305,  319,  327,    0,  324,    0,  334,
+      329,  339,  369,  341,  345,  351,  356,  358,  345,  348,
+      350,    0,  368,    0,  278,  385,    0,  369,  356,  361,
+      375,  362,    0,    0,    0,    0,  366,  367,  383,    0,
+        0,  410,  381,  386,  391,  379,  384,    0,  420,    0,
+        0,  403,  401,    0,  389,  399,    0,  412,  409,  435,
+        0,  411,  418,  437,  414,  411,    0,  425,    0,  451,
+      435,  432,  431,  430,  434,  432,  466,  472,  488,    0,
+
+      451,  451,  451,    0,  462,  453,    0,    0,  464,  503,
+      475,  474,  507,  469,  483,  472,  476,    0,    0,    0,
+      527,  497,  532,  534,    0,  490,  488,  495,  847,  490,
+      495,  524,  550,    0,  531,  532,  523,  519,  561,  542,
+      546,  544,  568,  585,  535,    0,    0,  847,    0,  541,
+        0,    0,  548,  555,    0,    0,  552,  599,  561,  605,
+      611,  847,  561,    0,  575,    0,  579,  606,  585,  617,
+      621,    0,  847,  847,    0,  847,  631,  637,  633,  638,
+      639,    0,  620,  655,  657,  662,  663,  600,  612,  670,
+      675,  680,  679,  649,  694,  701,  706,  665,  664,  716,
+
+      717,  847,  721,  725,  729,  731,  710,  736,  685,  707,
+      737,  741,  847,  847,  776,  778,  781,  784,  790,  795,
+      800,  802,  807,  812,  815,  818,  823,  828,  830,  835,
+      840
     } ;
 
-static yyconst flex_int16_t yy_def[331] =
+static yyconst flex_int16_t yy_def[332] =
     {   0,
-      313,    1,  313,  313,  313,  313,  313,  313,  314,  315,
-      313,  313,  313,  313,  313,  313,  313,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  313,  313,  313,  316,  313,  313,
-      313,  313,  314,  313,  317,  313,  318,  313,  313,  313,
-      313,  313,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  313,  313,  313,  313,  316,  317,  318,  313,  316,
-
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  313,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  313,  316,  316,  316,
-      316,  316,  316,  316,  319,  316,  316,  313,  313,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  320,  316,  316,
-      316,  316,  316,  313,  316,  316,  316,  316,  313,  321,
-      316,  313,  313,  316,  316,  316,  316,  316,  313,  316,
-      316,  316,  316,  316,  316,  320,  320,  320,  316,  316,
-
-      313,  316,  316,  316,  313,  321,  316,  313,  313,  316,
-      316,  322,  313,  316,  316,  316,  316,  316,  316,  313,
-      313,  320,  320,  316,  313,  316,  316,  313,  313,  316,
-      316,  323,  324,  313,  316,  316,  316,  313,  313,  313,
-      313,  320,  320,  313,  316,  316,  313,  316,  316,  325,
-      324,  313,  316,  316,  316,  313,  313,  313,  320,  320,
-      313,  316,  325,  313,  316,  313,  326,  313,  327,  320,
-      316,  313,  313,  328,  313,  327,  327,  327,  327,  320,
-      328,  313,  327,  327,  327,  313,  313,  313,  327,  326,
-      327,  313,  313,  313,  313,  327,  328,  328,  327,  313,
-
-      313,  328,  328,  329,  330,  313,  330,  313,  313,  313,
-      313,  313,    0,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313
+      314,    1,  314,  314,  314,  314,  314,  314,  315,  316,
+      314,  314,  314,  314,  314,  314,  314,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  314,  314,  314,  317,  314,  314,
+      314,  314,  315,  314,  315,  318,  314,  319,  314,  314,
+      314,  314,  314,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  314,  314,  314,  314,  317,  318,  319,  314,
+
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      314,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  314,  317,  317,
+      317,  317,  317,  317,  317,  320,  317,  317,  314,  314,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  321,  317,
+      317,  317,  317,  317,  314,  317,  317,  317,  317,  314,
+      322,  317,  314,  314,  317,  317,  317,  317,  317,  314,
+      317,  317,  317,  317,  317,  317,  321,  321,  321,  317,
+
+      317,  314,  317,  317,  317,  314,  322,  317,  314,  314,
+      317,  317,  323,  314,  317,  317,  317,  317,  317,  317,
+      314,  314,  321,  321,  317,  314,  317,  317,  314,  314,
+      317,  317,  324,  325,  314,  317,  317,  317,  314,  314,
+      314,  314,  321,  321,  314,  317,  317,  314,  317,  317,
+      326,  325,  314,  317,  317,  317,  314,  314,  314,  321,
+      321,  314,  317,  326,  314,  317,  314,  327,  314,  328,
+      321,  317,  314,  314,  329,  314,  328,  328,  328,  328,
+      321,  329,  314,  328,  328,  328,  314,  314,  314,  328,
+      327,  328,  314,  314,  314,  314,  328,  329,  329,  328,
+
+      314,  314,  329,  329,  330,  331,  314,  331,  314,  314,
+      314,  314,  314,    0,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314
     } ;
 
-static yyconst flex_int16_t yy_nxt[898] =
+static yyconst flex_int16_t yy_nxt[911] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   11,
        13,    4,   14,   15,   16,   17,   18,   19,   20,   21,
@@ -543,102 +545,103 @@ static yyconst flex_int16_t yy_nxt[898] =
        30,   31,   32,   33,   23,   23,   34,   23,   23,   23,
        18,   19,   20,   21,   22,   23,   24,   23,   25,   26,
        27,   28,   29,   30,   31,   32,   33,   23,   23,   34,
-       23,   23,   35,   36,   48,   49,   37,   39,   40,   40,
-       41,   41,   40,   40,   41,   50,   51,   56,   54,   82,
-       57,  110,   59,   38,  110,   55,   58,   60,   63,   61,
-       99,   64,   68,   92,   92,   96,   99,   69,   62,   92,
-
-       92,   56,   54,   82,   57,   59,   65,   38,   55,   58,
-       60,   63,   61,   66,   64,   73,   68,   44,   67,   96,
-       69,   62,   70,   52,   74,   47,   71,   46,   42,   44,
-       65,  145,   42,   75,  145,   72,   66,  100,   83,   73,
-       76,   67,   77,   78,   79,  101,   70,   74,   84,   80,
-       71,   85,   81,   89,   90,   48,   49,   75,   72,   91,
-      100,   86,   83,   76,   87,   77,   78,   79,  313,  101,
-       88,   84,   80,  179,   85,   81,  179,   89,   90,  313,
-      313,  313,   91,  102,  103,   86,  313,  104,   87,   93,
-       40,   40,   94,   88,   94,   40,   40,   94,   39,   40,
-
-       40,   41,   41,   40,   40,   41,  105,  102,  103,   95,
-      104,  106,  107,  108,   95,  313,  109,  111,  112,  113,
-      313,  114,  115,  116,  145,  117,  120,  145,  121,  105,
-      118,  313,  122,   95,  106,  126,  107,  108,   95,  109,
-      111,  112,  123,  113,  114,  115,  119,  116,  117,  120,
-       42,  121,  124,  130,  118,   42,  122,  127,  126,   42,
-      128,  125,  129,   42,  131,  132,  123,  133,  137,  119,
-      135,  134,  209,  136,  313,  209,  124,  130,  313,  313,
-      127,  138,  139,  128,  125,  129,  140,  131,  141,  132,
-      142,  133,  137,  135,  144,  134,  136,   93,   40,   40,
-
-       94,   94,   40,   40,   94,  138,  139,  143,  146,  140,
-      147,  141,  110,  142,  150,  110,  151,   95,  144,  153,
-      155,   95,  154,  313,  156,  152,  157,  158,  313,  159,
-      143,  146,  148,  164,  147,  313,  160,  150,  161,  165,
-      151,   95,  153,  155,  149,   95,  154,  156,  152,  162,
-      157,  158,  159,  163,  166,  167,  148,  164,   42,  160,
-      170,  161,   42,  165,  171,  168,  172,  149,  168,  173,
-      174,  178,  162,  175,  176,  177,  163,  166,  167,  181,
-      313,  182,  183,  170,  184,  313,  185,  171,  186,  187,
-      172,  194,  169,  173,  174,  178,  175,  176,  177,  188,
-
-      191,  192,  193,  181,  182,  183,  195,  189,  184,  185,
-      189,  186,  187,  168,  194,  169,  168,  199,  200,  313,
-      201,  202,  190,  188,  191,  192,  193,  203,  204,  195,
-      179,  207,  208,  179,  210,  211,  212,  313,  197,  215,
-      198,  199,  200,  201,  202,  189,  190,  214,  189,  216,
-      217,  203,  204,  205,  207,  218,  208,  210,  211,  219,
-      212,  197,  215,  198,  228,  213,  220,  313,  224,  220,
-      225,  214,  216,  217,  221,  220,  226,  205,  220,  218,
-      227,  229,  219,  221,  220,  230,  231,  220,  228,  213,
-      222,  224,  221,  225,  232,  209,  234,  232,  209,  226,
-
-      235,  313,  236,  227,  229,   53,  237,  313,  247,  230,
-      231,  244,  239,  238,  222,  148,  238,  223,  248,  234,
-      220,  245,  249,  220,  235,  236,  241,  220,  221,  237,
-      220,  239,  247,  246,  244,  221,  239,  252,  253,  148,
-      223,  240,  248,  254,  245,  241,  249,  232,  255,  241,
-      232,  242,  313,  243,  238,  239,  246,  238,  261,  256,
-      257,  252,  253,  258,  240,  262,  254,  220,  241,  220,
-      220,  255,  220,  264,  242,  221,  243,  221,  265,  266,
-      268,  261,  240,  256,  257,  260,  267,  258,  262,  267,
-      269,  271,  220,  269,  272,  220,  264,  273,  221,  259,
-
-      221,  265,  266,  268,  267,  240,  275,  267,  313,  260,
-      238,  270,  282,  238,  271,  282,  220,  282,  272,  220,
-      282,  273,  259,  282,  221,  295,  282,  294,  277,  300,
-      275,  282,  283,  286,  282,  270,  286,  313,  278,  313,
-      287,  221,  279,  284,  282,  288,  280,  282,  290,  295,
-      294,  290,  277,  300,  285,  282,  283,  302,  282,  292,
-      282,  278,  292,  282,  287,  279,  303,  284,  288,  280,
-      267,  301,  292,  267,  301,  292,  289,  239,  285,  296,
-      302,  291,  301,  282,  310,  301,  282,  293,  313,  282,
-      303,  241,  282,  297,  282,  313,  313,  282,  298,  289,
-
-      293,  239,  299,  296,  291,  304,  301,  310,  304,  301,
-      293,  313,  301,  304,  241,  301,  304,  297,  311,  306,
-      308,  298,  306,  293,  306,  309,  299,  306,  312,  312,
-      281,  312,  312,  313,  313,  281,  313,  313,  313,  313,
-      313,  313,  311,  313,  308,  313,  313,  313,  309,  313,
-      313,  274,  313,  313,  313,  313,  313,  281,  313,  313,
-      313,  313,  281,   43,   43,  313,   43,   43,   43,   45,
-       45,   53,   53,   53,   97,   97,   97,   98,   98,  313,
-       98,   98,   98,  180,  313,  313,  180,  180,  196,  313,
-      313,  196,  206,  206,  206,  233,  313,  233,  233,  233,
-
-      250,  313,  313,  250,  250,  251,  251,  251,  263,  263,
-      263,  274,  313,  313,  274,  274,  276,  313,  313,  276,
-      281,  281,  281,  305,  313,  313,  305,  305,  307,  313,
-      307,  307,  307,    3,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313
-
+       23,   23,   35,   36,   44,   57,   37,   39,   40,   40,
+       41,   41,   40,   40,   41,   49,   50,   51,   52,   55,
+       83,   58,   44,   38,  100,   60,   56,   59,   61,   57,
+       62,   64,   69,  100,   65,   93,   93,   70,   53,   63,
+
+       93,   93,   71,   55,   83,   58,   72,   38,   60,   56,
+       59,   61,   66,   62,   64,   73,   69,   65,   48,   67,
+       70,   45,   63,   47,   68,   74,   71,  314,   42,   97,
+       72,  101,   42,  314,   75,   80,   66,  314,   73,   45,
+       81,   76,   67,   82,   49,   50,   84,   68,   77,   74,
+       78,   79,  102,   97,  101,  314,   85,   75,   80,   86,
+      103,   90,   91,   81,  104,   76,   82,   92,  105,   87,
+       84,   77,   88,   78,   79,  314,  102,  314,   89,   85,
+       43,   43,   86,   44,  103,   90,   91,  314,  104,  314,
+       92,  105,  106,   87,  314,  107,   88,   94,   40,   40,
+
+       95,   89,   95,   40,   40,   95,   39,   40,   40,   41,
+       41,   40,   40,   41,  108,  106,  110,   96,  107,  109,
+      111,  114,   96,  111,  112,  113,  115,  116,  117,  314,
+      118,  121,  122,  123,  146,  119,  124,  146,  108,  110,
+       45,   96,  314,  109,  131,  114,   96,  112,  113,  115,
+      116,  120,  117,  118,  121,  122,  125,  123,   42,  119,
+      124,  127,  128,   42,  129,  126,  130,   42,  131,  132,
+      133,   42,  134,  138,  120,  136,  135,  314,  137,  180,
+      125,  314,  180,  314,  127,  128,  139,  129,  126,  130,
+      140,  145,  132,  141,  133,  142,  134,  138,  136,  148,
+
+      135,  137,   94,   40,   40,   95,   95,   40,   40,   95,
+      139,  143,  144,  147,  140,  145,  141,  111,  142,  151,
+      111,  152,   96,  148,  154,  156,   96,  155,  314,  157,
+      153,  158,  159,  314,  143,  144,  147,  149,  314,  160,
+      314,  161,  151,  162,  165,  152,   96,  154,  156,  150,
+       96,  155,  157,  153,  163,  158,  159,  164,  166,  314,
+      167,  149,  160,   42,  161,  168,  162,   42,  165,  171,
+      169,  172,  150,  169,  173,  174,  175,  163,  176,  177,
+      164,  178,  166,  167,  179,  182,  146,  183,  168,  146,
+      184,  185,  171,  186,  172,  187,  188,  170,  173,  174,
+
+      175,  176,  177,  189,  178,  192,  193,  194,  179,  182,
+      183,  190,  195,  184,  190,  185,  186,  196,  187,  188,
+      170,  169,  202,  200,  169,  201,  191,  189,  203,  192,
+      193,  194,  204,  205,  209,  195,  180,  208,  210,  180,
+      196,  210,  211,  212,  213,  202,  198,  200,  199,  201,
+      191,  203,  190,  215,  219,  190,  204,  205,  209,  206,
+      208,  216,  217,  218,  220,  211,  212,  221,  213,  198,
+      221,  199,  214,  221,  229,  222,  221,  215,  219,  225,
+      226,  222,  227,  206,  216,  217,  218,  220,  223,  221,
+      228,  230,  221,  231,  232,  314,  214,  222,  229,  314,
+
+      235,  236,  225,  226,  210,  227,  237,  210,  233,  238,
+      248,  233,  223,  228,  230,  249,  240,  231,  232,   54,
+      314,  245,  224,  235,  149,  236,  246,  247,  239,  237,
+      242,  239,  238,  221,  248,  221,  221,  314,  221,  249,
+      240,  222,  250,  222,  245,  224,  240,  253,  149,  246,
+      247,  233,  254,  242,  233,  255,  241,  256,  257,  314,
+      242,  244,  239,  314,  243,  239,  250,  258,  259,  221,
+      240,  253,  221,  262,  263,  265,  254,  222,  255,  241,
+      256,  266,  257,  242,  244,  267,  221,  243,  269,  221,
+      241,  258,  259,  272,  222,  273,  262,  263,  265,  274,
+
+      268,  260,  261,  268,  266,  276,  270,  268,  267,  270,
+      268,  269,  221,  241,  222,  221,  272,  314,  239,  273,
+      222,  239,  221,  274,  260,  221,  261,  314,  295,  276,
+      222,  271,  283,  296,  283,  283,  278,  283,  283,  283,
+      287,  283,  283,  287,  288,  314,  279,  314,  222,  289,
+      280,  295,  281,  284,  285,  271,  283,  296,  291,  283,
+      278,  291,  286,  283,  293,  314,  283,  293,  288,  279,
+      301,  283,  289,  280,  283,  281,  268,  284,  285,  268,
+      293,  283,  240,  293,  283,  304,  286,  314,  290,  292,
+      297,  314,  294,  303,  301,  302,  242,  314,  302,  298,
+
+      300,  314,  302,  314,  299,  302,  240,  283,  294,  304,
+      283,  290,  292,  311,  297,  294,  303,  283,  305,  242,
+      283,  305,  302,  298,  300,  302,  302,  299,  312,  302,
+      305,  294,  307,  305,  309,  307,  311,  307,  313,  310,
+      307,  313,  313,  282,  314,  313,  314,  314,  282,  314,
+      314,  314,  312,  314,  314,  314,  314,  314,  309,  314,
+      314,  314,  310,  314,  314,  314,  314,  314,  275,  314,
+      282,  314,  314,  314,  314,  282,   43,   43,  314,   43,
+       43,   43,   46,   46,   54,   54,   54,   98,   98,   98,
+       99,   99,  314,   99,   99,   99,  181,  314,  314,  181,
+
+      181,  197,  314,  314,  197,  207,  207,  207,  234,  314,
+      234,  234,  234,  251,  314,  314,  251,  251,  252,  252,
+      252,  264,  264,  264,  275,  314,  314,  275,  275,  277,
+      314,  314,  277,  282,  282,  282,  306,  314,  314,  306,
+      306,  308,  314,  308,  308,  308,    3,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314
     } ;
 
-static yyconst flex_int16_t yy_chk[898] =
+static yyconst flex_int16_t yy_chk[911] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -646,99 +649,100 @@ static yyconst flex_int16_t yy_chk[898] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    2,   14,   14,    2,    5,    5,    5,
-        5,    8,    8,    8,    8,   15,   15,   19,   18,   31,
-       20,   64,   21,    2,   64,   18,   20,   22,   24,   22,
-       99,   24,   26,   35,   35,   38,   48,   26,   22,   42,
-
-       42,   19,   18,   31,   20,   21,   25,    2,   18,   20,
-       22,   24,   22,   25,   24,   28,   26,   43,   25,   38,
-       26,   22,   27,   17,   28,   13,   27,   12,    5,    9,
-       25,  107,    8,   29,  107,   27,   25,   54,   32,   28,
-       29,   25,   29,   29,   30,   55,   27,   28,   32,   30,
-       27,   32,   30,   34,   34,   49,   49,   29,   27,   34,
-       54,   33,   32,   29,   33,   29,   29,   30,    3,   55,
-       33,   32,   30,  144,   32,   30,  144,   34,   34,    0,
-        0,    0,   34,   56,   57,   33,    0,   58,   33,   36,
-       36,   36,   36,   33,   37,   37,   37,   37,   39,   39,
-
-       39,   39,   41,   41,   41,   41,   59,   56,   57,   36,
-       58,   60,   61,   62,   37,    0,   63,   66,   66,   67,
-        0,   68,   69,   70,  145,   71,   73,  145,   74,   59,
-       72,    0,   77,   36,   60,   81,   61,   62,   37,   63,
-       66,   66,   79,   67,   68,   69,   72,   70,   71,   73,
-       36,   74,   80,   85,   72,   37,   77,   82,   81,   39,
-       83,   80,   84,   41,   86,   87,   79,   89,   95,   72,
-       90,   89,  183,   91,    0,  183,   80,   85,    0,    0,
-       82,   96,  100,   83,   80,   84,  102,   86,  103,   87,
-      104,   89,   95,   90,  106,   89,   91,   93,   93,   93,
-
-       93,   94,   94,   94,   94,   96,  100,  105,  108,  102,
-      109,  103,  110,  104,  111,  110,  112,   93,  106,  113,
-      115,   94,  114,    0,  116,  112,  117,  119,    0,  120,
-      105,  108,  110,  127,  109,    0,  122,  111,  123,  129,
-      112,   93,  113,  115,  110,   94,  114,  116,  112,  124,
-      117,  119,  120,  125,  130,  131,  110,  127,   93,  122,
-      133,  123,   94,  129,  134,  132,  135,  110,  132,  136,
-      137,  142,  124,  138,  139,  140,  125,  130,  131,  147,
-        0,  148,  149,  133,  150,    0,  151,  134,  156,  157,
-      135,  165,  132,  136,  137,  142,  138,  139,  140,  158,
-
-      162,  163,  164,  147,  148,  149,  166,  161,  150,  151,
-      161,  156,  157,  168,  165,  132,  168,  171,  172,    0,
-      174,  175,  161,  158,  162,  163,  164,  177,  178,  166,
-      179,  181,  182,  179,  184,  185,  187,    0,  168,  191,
-      168,  171,  172,  174,  175,  189,  161,  190,  189,  192,
-      193,  177,  178,  179,  181,  194,  182,  184,  185,  195,
-      187,  168,  191,  168,  205,  189,  196,    0,  200,  196,
-      201,  190,  192,  193,  196,  197,  202,  179,  197,  194,
-      204,  208,  195,  197,  198,  210,  211,  198,  205,  189,
-      197,  200,  198,  201,  212,  209,  213,  212,  209,  202,
-
-      214,    0,  215,  204,  208,  212,  216,    0,  229,  210,
-      211,  225,  221,  220,  197,  209,  220,  198,  230,  213,
-      222,  226,  231,  222,  214,  215,  221,  223,  222,  216,
-      223,  220,  229,  227,  225,  223,  221,  234,  235,  209,
-      198,  220,  230,  236,  226,  220,  231,  232,  237,  221,
-      232,  222,    0,  223,  238,  220,  227,  238,  244,  239,
-      240,  234,  235,  241,  220,  249,  236,  242,  220,  243,
-      242,  237,  243,  252,  222,  242,  223,  243,  253,  256,
-      258,  244,  238,  239,  240,  243,  257,  241,  249,  257,
-      259,  262,  260,  259,  264,  260,  252,  266,  259,  242,
-
-      260,  253,  256,  258,  267,  238,  268,  267,    0,  243,
-      269,  260,  276,  269,  262,  276,  270,  277,  264,  270,
-      277,  266,  242,  278,  270,  288,  278,  287,  269,  293,
-      268,  279,  277,  280,  279,  260,  280,    0,  269,    0,
-      282,  280,  269,  278,  283,  282,  270,  283,  284,  288,
-      287,  284,  269,  293,  279,  285,  277,  297,  285,  286,
-      289,  269,  286,  289,  282,  269,  298,  278,  282,  270,
-      290,  294,  292,  290,  294,  292,  283,  286,  279,  289,
-      297,  285,  295,  291,  308,  295,  291,  286,    0,  296,
-      298,  286,  296,  290,  299,    0,    0,  299,  290,  283,
-
-      292,  286,  291,  289,  285,  300,  302,  308,  300,  302,
-      286,    0,  303,  304,  286,  303,  304,  290,  309,  305,
-      306,  290,  305,  292,  307,  306,  291,  307,  310,  311,
-      305,  310,  311,    0,    0,  307,    0,    0,    0,    0,
-        0,    0,  309,    0,  306,    0,    0,    0,  306,    0,
-        0,  304,    0,    0,    0,    0,    0,  305,    0,    0,
-        0,    0,  307,  314,  314,    0,  314,  314,  314,  315,
-      315,  316,  316,  316,  317,  317,  317,  318,  318,    0,
-      318,  318,  318,  319,    0,    0,  319,  319,  320,    0,
-        0,  320,  321,  321,  321,  322,    0,  322,  322,  322,
-
-      323,    0,    0,  323,  323,  324,  324,  324,  325,  325,
-      325,  326,    0,    0,  326,  326,  327,    0,    0,  327,
-      328,  328,  328,  329,    0,    0,  329,  329,  330,    0,
-      330,  330,  330,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313
-
+        1,    1,    1,    2,    9,   19,    2,    5,    5,    5,
+        5,    8,    8,    8,    8,   14,   14,   15,   15,   18,
+       31,   20,   43,    2,  100,   21,   18,   20,   22,   19,
+       22,   24,   26,   49,   24,   35,   35,   26,   17,   22,
+
+       42,   42,   27,   18,   31,   20,   27,    2,   21,   18,
+       20,   22,   25,   22,   24,   27,   26,   24,   13,   25,
+       26,    9,   22,   12,   25,   28,   27,    3,    5,   38,
+       27,   55,    8,    0,   28,   30,   25,    0,   27,   43,
+       30,   29,   25,   30,   50,   50,   32,   25,   29,   28,
+       29,   29,   56,   38,   55,    0,   32,   28,   30,   32,
+       57,   34,   34,   30,   58,   29,   30,   34,   59,   33,
+       32,   29,   33,   29,   29,    0,   56,    0,   33,   32,
+       45,   45,   32,   45,   57,   34,   34,    0,   58,    0,
+       34,   59,   60,   33,    0,   61,   33,   36,   36,   36,
+
+       36,   33,   37,   37,   37,   37,   39,   39,   39,   39,
+       41,   41,   41,   41,   62,   60,   64,   36,   61,   63,
+       65,   68,   37,   65,   67,   67,   69,   70,   71,    0,
+       72,   74,   75,   78,  108,   73,   80,  108,   62,   64,
+       45,   36,    0,   63,   86,   68,   37,   67,   67,   69,
+       70,   73,   71,   72,   74,   75,   81,   78,   36,   73,
+       80,   82,   83,   37,   84,   81,   85,   39,   86,   87,
+       88,   41,   90,   96,   73,   91,   90,    0,   92,  145,
+       81,    0,  145,    0,   82,   83,   97,   84,   81,   85,
+      101,  107,   87,  103,   88,  104,   90,   96,   91,  110,
+
+       90,   92,   94,   94,   94,   94,   95,   95,   95,   95,
+       97,  105,  106,  109,  101,  107,  103,  111,  104,  112,
+      111,  113,   94,  110,  114,  116,   95,  115,    0,  117,
+      113,  118,  120,    0,  105,  106,  109,  111,    0,  121,
+        0,  123,  112,  124,  128,  113,   94,  114,  116,  111,
+       95,  115,  117,  113,  125,  118,  120,  126,  130,    0,
+      131,  111,  121,   94,  123,  132,  124,   95,  128,  134,
+      133,  135,  111,  133,  136,  137,  138,  125,  139,  140,
+      126,  141,  130,  131,  143,  148,  146,  149,  132,  146,
+      150,  151,  134,  152,  135,  157,  158,  133,  136,  137,
+
+      138,  139,  140,  159,  141,  163,  164,  165,  143,  148,
+      149,  162,  166,  150,  162,  151,  152,  167,  157,  158,
+      133,  169,  175,  172,  169,  173,  162,  159,  176,  163,
+      164,  165,  178,  179,  183,  166,  180,  182,  184,  180,
+      167,  184,  185,  186,  188,  175,  169,  172,  169,  173,
+      162,  176,  190,  191,  195,  190,  178,  179,  183,  180,
+      182,  192,  193,  194,  196,  185,  186,  197,  188,  169,
+      197,  169,  190,  198,  206,  197,  198,  191,  195,  201,
+      202,  198,  203,  180,  192,  193,  194,  196,  198,  199,
+      205,  209,  199,  211,  212,    0,  190,  199,  206,    0,
+
+      214,  215,  201,  202,  210,  203,  216,  210,  213,  217,
+      230,  213,  198,  205,  209,  231,  222,  211,  212,  213,
+        0,  226,  199,  214,  210,  215,  227,  228,  221,  216,
+      222,  221,  217,  223,  230,  224,  223,    0,  224,  231,
+      222,  223,  232,  224,  226,  199,  221,  235,  210,  227,
+      228,  233,  236,  222,  233,  237,  221,  238,  240,    0,
+      221,  224,  239,    0,  223,  239,  232,  241,  242,  243,
+      221,  235,  243,  245,  250,  253,  236,  243,  237,  221,
+      238,  254,  240,  221,  224,  257,  244,  223,  259,  244,
+      239,  241,  242,  263,  244,  265,  245,  250,  253,  267,
+
+      258,  243,  244,  258,  254,  269,  260,  268,  257,  260,
+      268,  259,  261,  239,  260,  261,  263,    0,  270,  265,
+      261,  270,  271,  267,  243,  271,  244,    0,  288,  269,
+      271,  261,  277,  289,  279,  277,  270,  279,  278,  280,
+      281,  278,  280,  281,  283,    0,  270,    0,  281,  283,
+      270,  288,  271,  278,  279,  261,  284,  289,  285,  284,
+      270,  285,  280,  286,  287,    0,  286,  287,  283,  270,
+      294,  290,  283,  270,  290,  271,  291,  278,  279,  291,
+      293,  292,  287,  293,  292,  299,  280,    0,  284,  286,
+      290,    0,  287,  298,  294,  295,  287,    0,  295,  291,
+
+      292,    0,  296,    0,  291,  296,  287,  297,  293,  299,
+      297,  284,  286,  309,  290,  287,  298,  300,  301,  287,
+      300,  301,  303,  291,  292,  303,  304,  291,  310,  304,
+      305,  293,  306,  305,  307,  306,  309,  308,  311,  307,
+      308,  311,  312,  306,    0,  312,    0,    0,  308,    0,
+        0,    0,  310,    0,    0,    0,    0,    0,  307,    0,
+        0,    0,  307,    0,    0,    0,    0,    0,  305,    0,
+      306,    0,    0,    0,    0,  308,  315,  315,    0,  315,
+      315,  315,  316,  316,  317,  317,  317,  318,  318,  318,
+      319,  319,    0,  319,  319,  319,  320,    0,    0,  320,
+
+      320,  321,    0,    0,  321,  322,  322,  322,  323,    0,
+      323,  323,  323,  324,    0,    0,  324,  324,  325,  325,
+      325,  326,  326,  326,  327,    0,    0,  327,  327,  328,
+        0,    0,  328,  329,  329,  329,  330,    0,    0,  330,
+      330,  331,    0,  331,  331,  331,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -830,7 +834,23 @@ static int checkImmediate(int token) {
 	return token;
 }
 
-#line 834 "engines/director/lingo/lingo-lex.cpp"
+static Common::String *cleanupString(const char *s) {
+	Common::String *res = new Common::String;
+
+	while (*s) {
+		if (*s == '\xC2') {
+			s++;
+			s++;
+			continue;
+		}
+		*res += *s;
+		s++;
+	}
+
+	return res;
+}
+
+#line 854 "engines/director/lingo/lingo-lex.cpp"
 
 #define INITIAL 0
 
@@ -1015,10 +1035,10 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 92 "engines/director/lingo/lingo-lex.l"
+#line 108 "engines/director/lingo/lingo-lex.l"
 
 
-#line 1022 "engines/director/lingo/lingo-lex.cpp"
+#line 1042 "engines/director/lingo/lingo-lex.cpp"
 
 	if ( !(yy_init) )
 		{
@@ -1072,13 +1092,13 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 314 )
+				if ( yy_current_state >= 315 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_current_state != 313 );
+		while ( yy_current_state != 314 );
 		yy_cp = (yy_last_accepting_cpos);
 		yy_current_state = (yy_last_accepting_state);
 
@@ -1101,77 +1121,77 @@ do_action:	/* This label is used only to access EOF actions. */
 case 1:
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 94 "engines/director/lingo/lingo-lex.l"
+#line 110 "engines/director/lingo/lingo-lex.l"
 { count(); }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 95 "engines/director/lingo/lingo-lex.l"
+#line 111 "engines/director/lingo/lingo-lex.l"
 
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 96 "engines/director/lingo/lingo-lex.l"
+#line 112 "engines/director/lingo/lingo-lex.l"
 { count(); }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 97 "engines/director/lingo/lingo-lex.l"
+#line 113 "engines/director/lingo/lingo-lex.l"
 { count(); return ' '; }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 99 "engines/director/lingo/lingo-lex.l"
+#line 115 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.s = new Common::String(yytext + 1); return SYMBOL; }	// D3, skip '#'
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 101 "engines/director/lingo/lingo-lex.l"
+#line 117 "engines/director/lingo/lingo-lex.l"
 { count(); return tAFTER; }		// D3
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 102 "engines/director/lingo/lingo-lex.l"
+#line 118 "engines/director/lingo/lingo-lex.l"
 { count(); return tAND; }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 103 "engines/director/lingo/lingo-lex.l"
+#line 119 "engines/director/lingo/lingo-lex.l"
 { count(); return tBEFORE; }	// D3
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 104 "engines/director/lingo/lingo-lex.l"
+#line 120 "engines/director/lingo/lingo-lex.l"
 { count(); return tCHAR; }		// D3
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 105 "engines/director/lingo/lingo-lex.l"
+#line 121 "engines/director/lingo/lingo-lex.l"
 { count(); return tCONTAINS; }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 106 "engines/director/lingo/lingo-lex.l"
+#line 122 "engines/director/lingo/lingo-lex.l"
 { count(); return tDOWN; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 107 "engines/director/lingo/lingo-lex.l"
+#line 123 "engines/director/lingo/lingo-lex.l"
 { count(); return tIF; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 108 "engines/director/lingo/lingo-lex.l"
+#line 124 "engines/director/lingo/lingo-lex.l"
 { count(); return tELSIF; }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 109 "engines/director/lingo/lingo-lex.l"
+#line 125 "engines/director/lingo/lingo-lex.l"
 { count(); return tELSE; }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 110 "engines/director/lingo/lingo-lex.l"
+#line 126 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1193,72 +1213,72 @@ YY_RULE_SETUP
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 128 "engines/director/lingo/lingo-lex.l"
+#line 144 "engines/director/lingo/lingo-lex.l"
 { count(); return tFACTORY; }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 129 "engines/director/lingo/lingo-lex.l"
+#line 145 "engines/director/lingo/lingo-lex.l"
 { count(); return tEXIT; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 130 "engines/director/lingo/lingo-lex.l"
+#line 146 "engines/director/lingo/lingo-lex.l"
 { count(); return tGLOBAL; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 131 "engines/director/lingo/lingo-lex.l"
+#line 147 "engines/director/lingo/lingo-lex.l"
 { count(); return tGO; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 132 "engines/director/lingo/lingo-lex.l"
+#line 148 "engines/director/lingo/lingo-lex.l"
 { count(); return tGO; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 133 "engines/director/lingo/lingo-lex.l"
+#line 149 "engines/director/lingo/lingo-lex.l"
 { count(); return tINSTANCE; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 134 "engines/director/lingo/lingo-lex.l"
+#line 150 "engines/director/lingo/lingo-lex.l"
 { count(); return tINTERSECTS; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 135 "engines/director/lingo/lingo-lex.l"
+#line 151 "engines/director/lingo/lingo-lex.l"
 { count(); return tINTO; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 136 "engines/director/lingo/lingo-lex.l"
+#line 152 "engines/director/lingo/lingo-lex.l"
 { count(); return tIN; }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 137 "engines/director/lingo/lingo-lex.l"
+#line 153 "engines/director/lingo/lingo-lex.l"
 { count(); return tITEM; }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 138 "engines/director/lingo/lingo-lex.l"
+#line 154 "engines/director/lingo/lingo-lex.l"
 { count(); return tLINE; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 139 "engines/director/lingo/lingo-lex.l"
+#line 155 "engines/director/lingo/lingo-lex.l"
 { count(); return checkImmediate(tLOOP); }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 140 "engines/director/lingo/lingo-lex.l"
+#line 156 "engines/director/lingo/lingo-lex.l"
 { count(); return tMACRO; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 141 "engines/director/lingo/lingo-lex.l"
+#line 157 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1273,97 +1293,97 @@ YY_RULE_SETUP
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 152 "engines/director/lingo/lingo-lex.l"
+#line 168 "engines/director/lingo/lingo-lex.l"
 { count(); return tMOD; }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 153 "engines/director/lingo/lingo-lex.l"
+#line 169 "engines/director/lingo/lingo-lex.l"
 { count(); return tMOVIE; }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 154 "engines/director/lingo/lingo-lex.l"
+#line 170 "engines/director/lingo/lingo-lex.l"
 { count(); return tNEXT; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 155 "engines/director/lingo/lingo-lex.l"
+#line 171 "engines/director/lingo/lingo-lex.l"
 { count(); return tNOT; }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 156 "engines/director/lingo/lingo-lex.l"
+#line 172 "engines/director/lingo/lingo-lex.l"
 { count(); return tOF; }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 157 "engines/director/lingo/lingo-lex.l"
+#line 173 "engines/director/lingo/lingo-lex.l"
 { count(); return tON; }		// D3
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 158 "engines/director/lingo/lingo-lex.l"
+#line 174 "engines/director/lingo/lingo-lex.l"
 { count(); return tOPEN; }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 159 "engines/director/lingo/lingo-lex.l"
+#line 175 "engines/director/lingo/lingo-lex.l"
 { count(); return tOR; }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 160 "engines/director/lingo/lingo-lex.l"
+#line 176 "engines/director/lingo/lingo-lex.l"
 { count(); return tPLAY; }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 161 "engines/director/lingo/lingo-lex.l"
+#line 177 "engines/director/lingo/lingo-lex.l"
 { count(); return tPLAY; }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 162 "engines/director/lingo/lingo-lex.l"
+#line 178 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.s = new Common::String(yytext); return tPLAYACCEL; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 163 "engines/director/lingo/lingo-lex.l"
+#line 179 "engines/director/lingo/lingo-lex.l"
 { count(); return tPREVIOUS; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 164 "engines/director/lingo/lingo-lex.l"
+#line 180 "engines/director/lingo/lingo-lex.l"
 { count(); return tPROPERTY; }	// D4
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 165 "engines/director/lingo/lingo-lex.l"
+#line 181 "engines/director/lingo/lingo-lex.l"
 { count(); return tPUT; }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 166 "engines/director/lingo/lingo-lex.l"
+#line 182 "engines/director/lingo/lingo-lex.l"
 { count(); return checkImmediate(tREPEAT); }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 167 "engines/director/lingo/lingo-lex.l"
+#line 183 "engines/director/lingo/lingo-lex.l"
 { count(); return tSET; }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 168 "engines/director/lingo/lingo-lex.l"
+#line 184 "engines/director/lingo/lingo-lex.l"
 { count(); return tSTARTS; }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 169 "engines/director/lingo/lingo-lex.l"
+#line 185 "engines/director/lingo/lingo-lex.l"
 { count(); return tTELL; }
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 170 "engines/director/lingo/lingo-lex.l"
+#line 186 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1402,7 +1422,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 205 "engines/director/lingo/lingo-lex.l"
+#line 221 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1428,7 +1448,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 227 "engines/director/lingo/lingo-lex.l"
+#line 243 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1495,7 +1515,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 290 "engines/director/lingo/lingo-lex.l"
+#line 306 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1533,7 +1553,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 324 "engines/director/lingo/lingo-lex.l"
+#line 340 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1564,72 +1584,72 @@ YY_RULE_SETUP
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 351 "engines/director/lingo/lingo-lex.l"
+#line 367 "engines/director/lingo/lingo-lex.l"
 { count(); return tTHEN; }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 352 "engines/director/lingo/lingo-lex.l"
+#line 368 "engines/director/lingo/lingo-lex.l"
 { count(); return tTO; }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 353 "engines/director/lingo/lingo-lex.l"
+#line 369 "engines/director/lingo/lingo-lex.l"
 { count(); return tSPRITE; }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 354 "engines/director/lingo/lingo-lex.l"
+#line 370 "engines/director/lingo/lingo-lex.l"
 { count(); return tWITH; }
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 355 "engines/director/lingo/lingo-lex.l"
+#line 371 "engines/director/lingo/lingo-lex.l"
 { count(); return tWITHIN; }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 356 "engines/director/lingo/lingo-lex.l"
+#line 372 "engines/director/lingo/lingo-lex.l"
 { count(); return tWHEN; }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 357 "engines/director/lingo/lingo-lex.l"
+#line 373 "engines/director/lingo/lingo-lex.l"
 { count(); return tWHILE; }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 358 "engines/director/lingo/lingo-lex.l"
+#line 374 "engines/director/lingo/lingo-lex.l"
 { count(); return tWORD; }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 360 "engines/director/lingo/lingo-lex.l"
+#line 376 "engines/director/lingo/lingo-lex.l"
 { count(); return tNEQ; }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 361 "engines/director/lingo/lingo-lex.l"
+#line 377 "engines/director/lingo/lingo-lex.l"
 { count(); return tGE; }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 362 "engines/director/lingo/lingo-lex.l"
+#line 378 "engines/director/lingo/lingo-lex.l"
 { count(); return tLE; }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 363 "engines/director/lingo/lingo-lex.l"
+#line 379 "engines/director/lingo/lingo-lex.l"
 { count(); return tCONCAT; }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 364 "engines/director/lingo/lingo-lex.l"
+#line 380 "engines/director/lingo/lingo-lex.l"
 { count(); return tEQ; }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 366 "engines/director/lingo/lingo-lex.l"
+#line 382 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 		yylval.s = new Common::String(yytext);
@@ -1667,41 +1687,42 @@ YY_RULE_SETUP
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 400 "engines/director/lingo/lingo-lex.l"
+#line 416 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.f = atof(yytext); return FLOAT; }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 401 "engines/director/lingo/lingo-lex.l"
+#line 417 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 402 "engines/director/lingo/lingo-lex.l"
+#line 418 "engines/director/lingo/lingo-lex.l"
 { count(); return *yytext; }
 	YY_BREAK
 case 70:
 /* rule 70 can match eol */
 YY_RULE_SETUP
-#line 403 "engines/director/lingo/lingo-lex.l"
+#line 419 "engines/director/lingo/lingo-lex.l"
 { count(); return '\n'; }
 	YY_BREAK
 case 71:
+/* rule 71 can match eol */
 YY_RULE_SETUP
-#line 404 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
+#line 420 "engines/director/lingo/lingo-lex.l"
+{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 405 "engines/director/lingo/lingo-lex.l"
+#line 421 "engines/director/lingo/lingo-lex.l"
 { count(); }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 407 "engines/director/lingo/lingo-lex.l"
+#line 423 "engines/director/lingo/lingo-lex.l"
 ECHO;
 	YY_BREAK
-#line 1705 "engines/director/lingo/lingo-lex.cpp"
+#line 1726 "engines/director/lingo/lingo-lex.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1995,7 +2016,7 @@ static int yy_get_next_buffer (void)
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 314 )
+			if ( yy_current_state >= 315 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2023,11 +2044,11 @@ static int yy_get_next_buffer (void)
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 314 )
+		if ( yy_current_state >= 315 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 313);
+	yy_is_jam = (yy_current_state == 314);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2698,7 +2719,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 407 "engines/director/lingo/lingo-lex.l"
+#line 423 "engines/director/lingo/lingo-lex.l"
 
 
 
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 5be2ad1798..53b8e351bc 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -79,12 +79,28 @@ static int checkImmediate(int token) {
 	return token;
 }
 
+static Common::String *cleanupString(const char *s) {
+	Common::String *res = new Common::String;
+
+	while (*s) {
+		if (*s == '\xC2') {
+			s++;
+			s++;
+			continue;
+		}
+		*res += *s;
+		s++;
+	}
+
+	return res;
+}
+
 %}
 
 identifier [_[:alpha:]][_[:alnum:]]*
 constfloat [[:digit:]]+\.[[:digit:]]*
 constinteger [[:digit:]]+
-conststring \"[^\"\r\n]*\"
+conststring \"([^\"\r\n]|\xC2[\r\n])*\"
 operator [-+*/%^:,()><&\[\]]
 newline [ \t]*[\n\r]
 whitespace [ \t]
@@ -401,7 +417,7 @@ word			{ count(); return tWORD; }
 {constinteger}	{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
 {operator}		{ count(); return *yytext; }
 {newline}		{ count(); return '\n'; }
-{conststring}	{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
+{conststring}	{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
 .				{ count(); }
 
 %%




More information about the Scummvm-git-logs mailing list