#define c() {countlines(yytext, yyleng);}
+//Boolean {c();return m(KW_BOOLEAN);}
+//int {c();return m(KW_INT);}
+//uint {c();return m(KW_UINT);}
+//Number {c();return m(KW_NUMBER);}
%}
%s REGEXPOK
[&][&] {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
[|][|] {c();BEGIN(REGEXPOK);return m(T_OROR);}
[!][=] {c();BEGIN(REGEXPOK);return m(T_NE);}
+[!][=][=] {c();BEGIN(REGEXPOK);return m(T_NEE);}
[=][=][=] {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
[=][=] {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
[>][=] {c();return m(T_GE);}
function {c();return m(KW_FUNCTION);}
package {c();return m(KW_PACKAGE);}
private {c();return m(KW_PRIVATE);}
-Boolean {c();return m(KW_BOOLEAN);}
dynamic {c();return m(KW_DYNAMIC);}
extends {c();return m(KW_EXTENDS);}
delete {c();return m(KW_DELETE);}
native {c();return m(KW_NATIVE);}
static {c();return m(KW_STATIC);}
import {c();return m(KW_IMPORT);}
-Number {c();return m(KW_NUMBER);}
while {c();return m(KW_WHILE);}
class {c();return m(KW_CLASS);}
const {c();return m(KW_CONST);}
false {c();return m(KW_FALSE);}
break {c();return m(KW_BREAK);}
true {c();return m(KW_TRUE);}
-uint {c();return m(KW_UINT);}
null {c();return m(KW_NULL);}
else {c();return m(KW_ELSE);}
use {c();return m(KW_USE);}
-int {c();return m(KW_INT);}
new {c();return m(KW_NEW);}
get {c();return m(KW_GET);}
for {c();return m(KW_FOR);}