{kind = TOKEN_DIRECTIVE;    ; index = 1    ; length = 7    line = 1    ; column = 0    ; value ='foreign'; }
{kind = TOKEN_IDENTIFIER;   ; index = 9    ; length = 3    line = 1    ; column = 8    ; value ='mul'; }
{kind = TOKEN_DOUBLECOLON;  ; index = 13   ; length = 2    line = 1    ; column = 12   ; value ='::'; }
{kind = TOKEN_LEFTPAREN;    ; index = 16   ; length = 1    line = 1    ; column = 15   ; value ='('; }
{kind = TOKEN_IDENTIFIER;   ; index = 17   ; length = 6    line = 1    ; column = 16   ; value ='float2'; }
{kind = TOKEN_COMMA;        ; index = 23   ; length = 1    line = 1    ; column = 22   ; value =','; }
{kind = TOKEN_IDENTIFIER;   ; index = 25   ; length = 6    line = 1    ; column = 24   ; value ='float2'; }
{kind = TOKEN_RIGHTPAREN;   ; index = 31   ; length = 1    line = 1    ; column = 30   ; value =')'; }
{kind = TOKEN_ARROW;        ; index = 33   ; length = 2    line = 1    ; column = 32   ; value ='->'; }
{kind = TOKEN_IDENTIFIER;   ; index = 36   ; length = 6    line = 1    ; column = 35   ; value ='float2'; }
{kind = TOKEN_SEMICOLON;    ; index = 42   ; length = 1    line = 1    ; column = 41   ; value =';'; }
{kind = TOKEN_DIRECTIVE;    ; index = 46   ; length = 7    line = 2    ; column = 0    ; value ='foreign'; }
{kind = TOKEN_IDENTIFIER;   ; index = 54   ; length = 3    line = 2    ; column = 8    ; value ='mul'; }
{kind = TOKEN_DOUBLECOLON;  ; index = 58   ; length = 2    line = 2    ; column = 12   ; value ='::'; }
{kind = TOKEN_LEFTPAREN;    ; index = 61   ; length = 1    line = 2    ; column = 15   ; value ='('; }
{kind = TOKEN_IDENTIFIER;   ; index = 62   ; length = 6    line = 2    ; column = 16   ; value ='float3'; }
{kind = TOKEN_COMMA;        ; index = 68   ; length = 1    line = 2    ; column = 22   ; value =','; }
{kind = TOKEN_IDENTIFIER;   ; index = 70   ; length = 6    line = 2    ; column = 24   ; value ='float3'; }
{kind = TOKEN_RIGHTPAREN;   ; index = 76   ; length = 1    line = 2    ; column = 30   ; value =')'; }
{kind = TOKEN_ARROW;        ; index = 78   ; length = 2    line = 2    ; column = 32   ; value ='->'; }
{kind = TOKEN_IDENTIFIER;   ; index = 81   ; length = 6    line = 2    ; column = 35   ; value ='float3'; }
{kind = TOKEN_SEMICOLON;    ; index = 87   ; length = 1    line = 2    ; column = 41   ; value =';'; }
{kind = TOKEN_DIRECTIVE;    ; index = 91   ; length = 7    line = 3    ; column = 0    ; value ='foreign'; }
{kind = TOKEN_IDENTIFIER;   ; index = 99   ; length = 3    line = 3    ; column = 8    ; value ='mul'; }
{kind = TOKEN_DOUBLECOLON;  ; index = 103  ; length = 2    line = 3    ; column = 12   ; value ='::'; }
{kind = TOKEN_LEFTPAREN;    ; index = 106  ; length = 1    line = 3    ; column = 15   ; value ='('; }
{kind = TOKEN_IDENTIFIER;   ; index = 107  ; length = 6    line = 3    ; column = 16   ; value ='float4'; }
{kind = TOKEN_COMMA;        ; index = 113  ; length = 1    line = 3    ; column = 22   ; value =','; }
{kind = TOKEN_IDENTIFIER;   ; index = 115  ; length = 6    line = 3    ; column = 24   ; value ='float4'; }
{kind = TOKEN_RIGHTPAREN;   ; index = 121  ; length = 1    line = 3    ; column = 30   ; value =')'; }
{kind = TOKEN_ARROW;        ; index = 123  ; length = 2    line = 3    ; column = 32   ; value ='->'; }
{kind = TOKEN_IDENTIFIER;   ; index = 126  ; length = 6    line = 3    ; column = 35   ; value ='float4'; }
{kind = TOKEN_SEMICOLON;    ; index = 132  ; length = 1    line = 3    ; column = 41   ; value =';'; }
{kind = TOKEN_DIRECTIVE;    ; index = 136  ; length = 7    line = 4    ; column = 0    ; value ='foreign'; }
{kind = TOKEN_IDENTIFIER;   ; index = 144  ; length = 3    line = 4    ; column = 8    ; value ='mul'; }
{kind = TOKEN_DOUBLECOLON;  ; index = 148  ; length = 2    line = 4    ; column = 12   ; value ='::'; }
{kind = TOKEN_LEFTPAREN;    ; index = 151  ; length = 1    line = 4    ; column = 15   ; value ='('; }
{kind = TOKEN_IDENTIFIER;   ; index = 152  ; length = 8    line = 4    ; column = 16   ; value ='float4x4'; }
{kind = TOKEN_COMMA;        ; index = 160  ; length = 1    line = 4    ; column = 24   ; value =','; }
{kind = TOKEN_IDENTIFIER;   ; index = 162  ; length = 8    line = 4    ; column = 26   ; value ='float4x4'; }
{kind = TOKEN_RIGHTPAREN;   ; index = 170  ; length = 1    line = 4    ; column = 34   ; value =')'; }
{kind = TOKEN_ARROW;        ; index = 172  ; length = 2    line = 4    ; column = 36   ; value ='->'; }
{kind = TOKEN_IDENTIFIER;   ; index = 175  ; length = 8    line = 4    ; column = 39   ; value ='float4x4'; }
{kind = TOKEN_SEMICOLON;    ; index = 183  ; length = 1    line = 4    ; column = 47   ; value =';'; }
{kind = TOKEN_DIRECTIVE;    ; index = 189  ; length = 7    line = 6    ; column = 0    ; value ='foreign'; }
{kind = TOKEN_IDENTIFIER;   ; index = 197  ; length = 6    line = 6    ; column = 8    ; value ='float2'; }
{kind = TOKEN_DOUBLECOLON;  ; index = 204  ; length = 2    line = 6    ; column = 15   ; value ='::'; }
{kind = TOKEN_LEFTPAREN;    ; index = 207  ; length = 1    line = 6    ; column = 18   ; value ='('; }
{kind = TOKEN_IDENTIFIER;   ; index = 208  ; length = 5    line = 6    ; column = 19   ; value ='float'; }
{kind = TOKEN_COMMA;        ; index = 213  ; length = 1    line = 6    ; column = 24   ; value =','; }
{kind = TOKEN_IDENTIFIER;   ; index = 215  ; length = 5    line = 6    ; column = 26   ; value ='float'; }
{kind = TOKEN_RIGHTPAREN;   ; index = 220  ; length = 1    line = 6    ; column = 31   ; value =')'; }
{kind = TOKEN_ARROW;        ; index = 222  ; length = 2    line = 6    ; column = 33   ; value ='->'; }
{kind = TOKEN_IDENTIFIER;   ; index = 225  ; length = 6    line = 6    ; column = 36   ; value ='float2'; }
{kind = TOKEN_SEMICOLON;    ; index = 231  ; length = 1    line = 6    ; column = 42   ; value =';'; }
{kind = TOKEN_VERTEX;       ; index = 236  ; length = 6    line = 8    ; column = 0    ; value ='vertex'; }
{kind = TOKEN_IDENTIFIER;   ; index = 243  ; length = 4    line = 8    ; column = 7    ; value ='main'; }
{kind = TOKEN_DOUBLECOLON;  ; index = 248  ; length = 2    line = 8    ; column = 12   ; value ='::'; }
{kind = TOKEN_LEFTPAREN;    ; index = 251  ; length = 1    line = 8    ; column = 15   ; value ='('; }
{kind = TOKEN_RIGHTPAREN;   ; index = 252  ; length = 1    line = 8    ; column = 16   ; value =')'; }
{kind = TOKEN_LEFTBRACE;    ; index = 254  ; length = 1    line = 8    ; column = 18   ; value ='{'; }
{kind = TOKEN_IDENTIFIER;   ; index = 258  ; length = 2    line = 9    ; column = 0    ; value ='v1'; }
{kind = TOKEN_COLON;        ; index = 261  ; length = 1    line = 9    ; column = 3    ; value =':'; }
{kind = TOKEN_IDENTIFIER;   ; index = 263  ; length = 6    line = 9    ; column = 5    ; value ='float2'; }
{kind = TOKEN_ASSIGN;       ; index = 270  ; length = 1    line = 9    ; column = 12   ; value ='='; }
{kind = TOKEN_IDENTIFIER;   ; index = 272  ; length = 6    line = 9    ; column = 14   ; value ='float2'; }
{kind = TOKEN_LEFTPAREN;    ; index = 278  ; length = 1    line = 9    ; column = 20   ; value ='('; }
{kind = TOKEN_FLOATLITERAL; ; index = 279  ; length = 3    line = 9    ; column = 21   ; value ='1'; }
{kind = TOKEN_COMMA;        ; index = 282  ; length = 1    line = 9    ; column = 24   ; value =','; }
{kind = TOKEN_FLOATLITERAL; ; index = 284  ; length = 3    line = 9    ; column = 26   ; value ='1'; }
{kind = TOKEN_RIGHTPAREN;   ; index = 287  ; length = 1    line = 9    ; column = 29   ; value =')'; }
{kind = TOKEN_SEMICOLON;    ; index = 288  ; length = 1    line = 9    ; column = 30   ; value =';'; }
{kind = TOKEN_IDENTIFIER;   ; index = 292  ; length = 2    line = 10   ; column = 0    ; value ='v2'; }
{kind = TOKEN_COLON;        ; index = 295  ; length = 1    line = 10   ; column = 3    ; value =':'; }
{kind = TOKEN_IDENTIFIER;   ; index = 297  ; length = 6    line = 10   ; column = 5    ; value ='float2'; }
{kind = TOKEN_ASSIGN;       ; index = 304  ; length = 1    line = 10   ; column = 12   ; value ='='; }
{kind = TOKEN_IDENTIFIER;   ; index = 306  ; length = 6    line = 10   ; column = 14   ; value ='float2'; }
{kind = TOKEN_LEFTPAREN;    ; index = 312  ; length = 1    line = 10   ; column = 20   ; value ='('; }
{kind = TOKEN_FLOATLITERAL; ; index = 313  ; length = 3    line = 10   ; column = 21   ; value ='3'; }
{kind = TOKEN_COMMA;        ; index = 316  ; length = 1    line = 10   ; column = 24   ; value =','; }
{kind = TOKEN_FLOATLITERAL; ; index = 318  ; length = 3    line = 10   ; column = 26   ; value ='3'; }
{kind = TOKEN_RIGHTPAREN;   ; index = 321  ; length = 1    line = 10   ; column = 29   ; value =')'; }
{kind = TOKEN_SEMICOLON;    ; index = 322  ; length = 1    line = 10   ; column = 30   ; value =';'; }
{kind = TOKEN_IDENTIFIER;   ; index = 328  ; length = 2    line = 12   ; column = 0    ; value ='v3'; }
{kind = TOKEN_COLON;        ; index = 331  ; length = 1    line = 12   ; column = 3    ; value =':'; }
{kind = TOKEN_IDENTIFIER;   ; index = 333  ; length = 6    line = 12   ; column = 5    ; value ='float2'; }
{kind = TOKEN_ASSIGN;       ; index = 340  ; length = 1    line = 12   ; column = 12   ; value ='='; }
{kind = TOKEN_IDENTIFIER;   ; index = 342  ; length = 3    line = 12   ; column = 14   ; value ='mul'; }
{kind = TOKEN_LEFTPAREN;    ; index = 345  ; length = 1    line = 12   ; column = 17   ; value ='('; }
{kind = TOKEN_IDENTIFIER;   ; index = 346  ; length = 2    line = 12   ; column = 18   ; value ='v1'; }
{kind = TOKEN_COMMA;        ; index = 348  ; length = 1    line = 12   ; column = 20   ; value =','; }
{kind = TOKEN_IDENTIFIER;   ; index = 350  ; length = 2    line = 12   ; column = 22   ; value ='v2'; }
{kind = TOKEN_RIGHTPAREN;   ; index = 352  ; length = 1    line = 12   ; column = 24   ; value =')'; }
{kind = TOKEN_SEMICOLON;    ; index = 353  ; length = 1    line = 12   ; column = 25   ; value =';'; }
{kind = TOKEN_RIGHTBRACE;   ; index = 356  ; length = 1    line = 13   ; column = 0    ; value ='}'; }
{kind = TOKEN_EOF;          ; index = 359  ; length = 0    line = 14   ; column = 0    ; value =''; }
