branch: externals/phps-mode commit 55953de2b4de96b980bafa72e8db317ccd25b97f Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Lexer now doesn't find keywords in function names --- phps-mode-lexer.el | 305 ++++++++++++++++++++++++------------------------ phps-mode-test-lexer.el | 4 +- 2 files changed, 157 insertions(+), 152 deletions(-) diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el index f13d8d0..49dda4c 100644 --- a/phps-mode-lexer.el +++ b/phps-mode-lexer.el @@ -143,6 +143,10 @@ "[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*" "Labels are used for names.") +(defvar phps-mode-lexer-NOT-LABEL + "[^a-zA-Z_\x80-\xff]" + "Characters not starting a label.") + (defvar phps-mode-lexer-WHITESPACE "[ \n\r\t]+" "Whitespace.") @@ -453,86 +457,86 @@ (= phps-mode-lexer-STATE phps-mode-lexer-ST_IN_SCRIPTING) (cond - ((looking-at "exit") - (phps-mode-lexer-RETURN_TOKEN 'T_EXIT (match-beginning 0) (match-end 0))) - ((looking-at "die") - (phps-mode-lexer-RETURN_TOKEN 'T_DIE (match-beginning 0) (match-end 0))) - ((looking-at "function") - (phps-mode-lexer-RETURN_TOKEN 'T_FUNCTION (match-beginning 0) (match-end 0))) - ((looking-at "const") - (phps-mode-lexer-RETURN_TOKEN 'T_CONST (match-beginning 0) (match-end 0))) - ((looking-at "return") - (phps-mode-lexer-RETURN_TOKEN 'T_RETURN (match-beginning 0) (match-end 0))) + ((looking-at (concat "exit" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_EXIT (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "die" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_DIE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "function" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_FUNCTION (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "const" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_CONST (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "return" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_RETURN (match-beginning 0) (1- (match-end 0)))) ((looking-at (concat "yield" phps-mode-lexer-WHITESPACE "from" "[^a-zA-Z0-9_\x80-\xff]")) (phps-mode-lexer-RETURN_TOKEN 'T_YIELD_FROM (match-beginning 0) (match-end 0))) - ((looking-at "yield") - (phps-mode-lexer-RETURN_TOKEN 'T_YIELD (match-beginning 0) (match-end 0))) - ((looking-at "try") - (phps-mode-lexer-RETURN_TOKEN 'T_TRY (match-beginning 0) (match-end 0))) - ((looking-at "catch") - (phps-mode-lexer-RETURN_TOKEN 'T_CATCH (match-beginning 0) (match-end 0))) - ((looking-at "finally") - (phps-mode-lexer-RETURN_TOKEN 'T_FINALLY (match-beginning 0) (match-end 0))) - ((looking-at "throw") - (phps-mode-lexer-RETURN_TOKEN 'T_THROW (match-beginning 0) (match-end 0))) - ((looking-at "if") - (phps-mode-lexer-RETURN_TOKEN 'T_IF (match-beginning 0) (match-end 0))) - ((looking-at "elseif") - (phps-mode-lexer-RETURN_TOKEN 'T_ELSEIF (match-beginning 0) (match-end 0))) - ((looking-at "endif") - (phps-mode-lexer-RETURN_TOKEN 'T_ENDIF (match-beginning 0) (match-end 0))) - ((looking-at "else") - (phps-mode-lexer-RETURN_TOKEN 'T_ELSE (match-beginning 0) (match-end 0))) - ((looking-at "while") - (phps-mode-lexer-RETURN_TOKEN 'T_WHILE (match-beginning 0) (match-end 0))) - ((looking-at "endwhile") - (phps-mode-lexer-RETURN_TOKEN 'T_ENDWHILE (match-beginning 0) (match-end 0))) - ((looking-at "do") - (phps-mode-lexer-RETURN_TOKEN 'T_DO (match-beginning 0) (match-end 0))) - ((looking-at "foreach") - (phps-mode-lexer-RETURN_TOKEN 'T_FOREACH (match-beginning 0) (match-end 0))) - ((looking-at "endforeach") - (phps-mode-lexer-RETURN_TOKEN 'T_ENDFOREACH (match-beginning 0) (match-end 0))) - ((looking-at "for") - (phps-mode-lexer-RETURN_TOKEN 'T_FOR (match-beginning 0) (match-end 0))) - ((looking-at "endfor") - (phps-mode-lexer-RETURN_TOKEN 'T_ENDFOR (match-beginning 0) (match-end 0))) - ((looking-at "declare") - (phps-mode-lexer-RETURN_TOKEN 'T_DECLARE (match-beginning 0) (match-end 0))) - ((looking-at "enddeclare") - (phps-mode-lexer-RETURN_TOKEN 'T_ENDDECLARE (match-beginning 0) (match-end 0))) - ((looking-at "instanceof") - (phps-mode-lexer-RETURN_TOKEN 'T_INSTANCEOF (match-beginning 0) (match-end 0))) - ((looking-at "as") - (phps-mode-lexer-RETURN_TOKEN 'T_AS (match-beginning 0) (match-end 0))) - ((looking-at "switch") - (phps-mode-lexer-RETURN_TOKEN 'T_SWITCH (match-beginning 0) (match-end 0))) - ((looking-at "endswitch") - (phps-mode-lexer-RETURN_TOKEN 'T_ENDSWITCH (match-beginning 0) (match-end 0))) - ((looking-at "case") - (phps-mode-lexer-RETURN_TOKEN 'T_CASE (match-beginning 0) (match-end 0))) - ((looking-at "default") - (phps-mode-lexer-RETURN_TOKEN 'T_DEFAULT (match-beginning 0) (match-end 0))) - ((looking-at "break") - (phps-mode-lexer-RETURN_TOKEN 'T_BREAK (match-beginning 0) (match-end 0))) - ((looking-at "continue") - (phps-mode-lexer-RETURN_TOKEN 'T_CONTINUE (match-beginning 0) (match-end 0))) - ((looking-at "goto") - (phps-mode-lexer-RETURN_TOKEN 'T_GOTO (match-beginning 0) (match-end 0))) - ((looking-at "echo") - (phps-mode-lexer-RETURN_TOKEN 'T_ECHO (match-beginning 0) (match-end 0))) - ((looking-at "print") - (phps-mode-lexer-RETURN_TOKEN 'T_PRINT (match-beginning 0) (match-end 0))) - ((looking-at "class") - (phps-mode-lexer-RETURN_TOKEN 'T_CLASS (match-beginning 0) (match-end 0))) - ((looking-at "interface") - (phps-mode-lexer-RETURN_TOKEN 'T_INTERFACE (match-beginning 0) (match-end 0))) - ((looking-at "trait") - (phps-mode-lexer-RETURN_TOKEN 'T_TRAIT (match-beginning 0) (match-end 0))) - ((looking-at "extends") - (phps-mode-lexer-RETURN_TOKEN 'T_EXTENDS (match-beginning 0) (match-end 0))) - ((looking-at "implements") - (phps-mode-lexer-RETURN_TOKEN 'T_IMPLEMENTS (match-beginning 0) (match-end 0))) + ((looking-at (concat "yield" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_YIELD (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "try" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_TRY (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "catch" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_CATCH (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "finally" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_FINALLY (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "throw" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_THROW (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "if" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_IF (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "elseif" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ELSEIF (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "endif" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ENDIF (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "else" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ELSE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "while" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_WHILE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "endwhile" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ENDWHILE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "do" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_DO (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "foreach" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_FOREACH (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "endforeach" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ENDFOREACH (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "for" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_FOR (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "endfor" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ENDFOR (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "declare" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_DECLARE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "enddeclare" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ENDDECLARE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "instanceof" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_INSTANCEOF (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "as" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_AS (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "switch" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_SWITCH (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "endswitch" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ENDSWITCH (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "case" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_CASE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "default" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_DEFAULT (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "break" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_BREAK (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "continue" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_CONTINUE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "goto" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_GOTO (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "echo" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ECHO (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "print" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_PRINT (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "class" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_CLASS (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "interface" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_INTERFACE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "trait" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_TRAIT (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "extends" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_EXTENDS (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "implements" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_IMPLEMENTS (match-beginning 0) (1- (match-end 0)))) ((looking-at "->") (phps-mode-lexer-yy_push_state phps-mode-lexer-ST_LOOKING_FOR_PROPERTY) @@ -583,12 +587,12 @@ (phps-mode-lexer-RETURN_TOKEN 'T_ELLIPSIS (match-beginning 0) (match-end 0))) ((looking-at "\\?\\?") (phps-mode-lexer-RETURN_TOKEN 'T_COALESCE (match-beginning 0) (match-end 0))) - ((looking-at "new") - (phps-mode-lexer-RETURN_TOKEN 'T_NEW (match-beginning 0) (match-end 0))) - ((looking-at "clone") - (phps-mode-lexer-RETURN_TOKEN 'T_CLONE (match-beginning 0) (match-end 0))) - ((looking-at "var") - (phps-mode-lexer-RETURN_TOKEN 'T_VAR (match-beginning 0) (match-end 0))) + ((looking-at (concat "new" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_NEW (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "clone" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_CLONE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "var" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_VAR (match-beginning 0) (1- (match-end 0)))) ((looking-at (concat "(" phps-mode-lexer-TABS_AND_SPACES "\\(integer\\|int\\)" phps-mode-lexer-TABS_AND_SPACES ")")) (phps-mode-lexer-RETURN_TOKEN 'T_INT_CAST (match-beginning 0) (match-end 0))) ((looking-at (concat "(" phps-mode-lexer-TABS_AND_SPACES "\\(real\\|double\\|float\\)" phps-mode-lexer-TABS_AND_SPACES ")")) @@ -603,53 +607,53 @@ (phps-mode-lexer-RETURN_TOKEN 'T_BOOL_CAST (match-beginning 0) (match-end 0))) ((looking-at (concat "(" phps-mode-lexer-TABS_AND_SPACES "unset" phps-mode-lexer-TABS_AND_SPACES ")")) (phps-mode-lexer-RETURN_TOKEN 'T_UNSET_CAST (match-beginning 0) (match-end 0))) - ((looking-at "eval") - (phps-mode-lexer-RETURN_TOKEN 'T_EVAL (match-beginning 0) (match-end 0))) - ((looking-at "include_once") - (phps-mode-lexer-RETURN_TOKEN 'T_INCLUDE_ONCE (match-beginning 0) (match-end 0))) - ((looking-at "include") - (phps-mode-lexer-RETURN_TOKEN 'T_INCLUDE (match-beginning 0) (match-end 0))) - ((looking-at "require_once") - (phps-mode-lexer-RETURN_TOKEN 'T_REQUIRE_ONCE (match-beginning 0) (match-end 0))) - ((looking-at "require") - (phps-mode-lexer-RETURN_TOKEN 'T_REQUIRE (match-beginning 0) (match-end 0))) - ((looking-at "namespace") + ((looking-at (concat "eval" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_EVAL (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "include_once" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_INCLUDE_ONCE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "include" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_INCLUDE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "require_once" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_REQUIRE_ONCE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "require" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_REQUIRE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "namespace" phps-mode-lexer-NOT-LABEL)) (setq phps-mode-lexer-declaring_namespace t) - (phps-mode-lexer-RETURN_TOKEN 'T_NAMESPACE (match-beginning 0) (match-end 0))) - ((looking-at "use") - (phps-mode-lexer-RETURN_TOKEN 'T_USE (match-beginning 0) (match-end 0))) - ((looking-at "insteadof") - (phps-mode-lexer-RETURN_TOKEN 'T_INSTEADOF (match-beginning 0) (match-end 0))) - ((looking-at "global") - (phps-mode-lexer-RETURN_TOKEN 'T_GLOBAL (match-beginning 0) (match-end 0))) - ((looking-at "isset") - (phps-mode-lexer-RETURN_TOKEN 'T_ISSET (match-beginning 0) (match-end 0))) - ((looking-at "empty") - (phps-mode-lexer-RETURN_TOKEN 'T_EMPTY (match-beginning 0) (match-end 0))) - ((looking-at "__halt_compiler") - (phps-mode-lexer-RETURN_TOKEN 'T_HALT_COMPILER (match-beginning 0) (match-end 0))) - ((looking-at "static") - (phps-mode-lexer-RETURN_TOKEN 'T_STATIC (match-beginning 0) (match-end 0))) - ((looking-at "abstract") - (phps-mode-lexer-RETURN_TOKEN 'T_ABSTRACT (match-beginning 0) (match-end 0))) - ((looking-at "final") - (phps-mode-lexer-RETURN_TOKEN 'T_FINAL (match-beginning 0) (match-end 0))) - ((looking-at "private") - (phps-mode-lexer-RETURN_TOKEN 'T_PRIVATE (match-beginning 0) (match-end 0))) - ((looking-at "protected") - (phps-mode-lexer-RETURN_TOKEN 'T_PROTECTED (match-beginning 0) (match-end 0))) - ((looking-at "public") - (phps-mode-lexer-RETURN_TOKEN 'T_PUBLIC (match-beginning 0) (match-end 0))) - ((looking-at "unset") - (phps-mode-lexer-RETURN_TOKEN 'T_UNSET (match-beginning 0) (match-end 0))) + (phps-mode-lexer-RETURN_TOKEN 'T_NAMESPACE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "use" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_USE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "insteadof" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_INSTEADOF (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "global" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_GLOBAL (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "isset" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ISSET (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "empty" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_EMPTY (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "__halt_compiler" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_HALT_COMPILER (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "static" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_STATIC (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "abstract" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ABSTRACT (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "final" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_FINAL (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "private" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_PRIVATE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "protected" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_PROTECTED (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "public" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_PUBLIC (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "unset" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_UNSET (match-beginning 0) (1- (match-end 0)))) ((looking-at "=>") (phps-mode-lexer-RETURN_TOKEN 'T_DOUBLE_ARROW (match-beginning 0) (match-end 0))) - ((looking-at "list") - (phps-mode-lexer-RETURN_TOKEN 'T_LIST (match-beginning 0) (match-end 0))) - ((looking-at "array") - (phps-mode-lexer-RETURN_TOKEN 'T_ARRAY (match-beginning 0) (match-end 0))) - ((looking-at "callable") - (phps-mode-lexer-RETURN_TOKEN 'T_CALLABLE (match-beginning 0) (match-end 0))) + ((looking-at (concat "list" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_LIST (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "array" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_ARRAY (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "callable" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_CALLABLE (match-beginning 0) (1- (match-end 0)))) ((looking-at "\\+\\+") (phps-mode-lexer-RETURN_TOKEN 'T_INC (match-beginning 0) (match-end 0))) ((looking-at "--") @@ -698,12 +702,12 @@ (phps-mode-lexer-RETURN_TOKEN 'T_BOOLEAN_OR (match-beginning 0) (match-end 0))) ((looking-at "&&") (phps-mode-lexer-RETURN_TOKEN 'T_BOOLEAN_AND (match-beginning 0) (match-end 0))) - ((looking-at "XOR") - (phps-mode-lexer-RETURN_TOKEN 'T_LOGICAL_XOR (match-beginning 0) (match-end 0))) - ((looking-at "OR") - (phps-mode-lexer-RETURN_TOKEN 'T_LOGICAL_OR (match-beginning 0) (match-end 0))) - ((looking-at "AND") - (phps-mode-lexer-RETURN_TOKEN 'T_LOGICAL_AND (match-beginning 0) (match-end 0))) + ((looking-at (concat "XOR" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_LOGICAL_XOR (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "OR" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_LOGICAL_OR (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "AND" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_LOGICAL_AND (match-beginning 0) (1- (match-end 0)))) ((looking-at "<<") (phps-mode-lexer-RETURN_TOKEN 'T_SL (match-beginning 0) (match-end 0))) ((looking-at ">>") @@ -759,22 +763,22 @@ (phps-mode-lexer-RETURN_TOKEN 'T_DNUMBER start end) (phps-mode-lexer-RETURN_TOKEN 'T_LNUMBER start end)))) - ((looking-at "__CLASS__") - (phps-mode-lexer-RETURN_TOKEN 'T_CLASS_C (match-beginning 0) (match-end 0))) - ((looking-at "__TRAIT__") - (phps-mode-lexer-RETURN_TOKEN 'T_TRAIT_C (match-beginning 0) (match-end 0))) - ((looking-at "__FUNCTION__") - (phps-mode-lexer-RETURN_TOKEN 'T_FUNC_C (match-beginning 0) (match-end 0))) - ((looking-at "__METHOD__") - (phps-mode-lexer-RETURN_TOKEN 'T_METHOD_C (match-beginning 0) (match-end 0))) - ((looking-at "__LINE__") - (phps-mode-lexer-RETURN_TOKEN 'T_LINE (match-beginning 0) (match-end 0))) - ((looking-at "__FILE__") - (phps-mode-lexer-RETURN_TOKEN 'T_FILE (match-beginning 0) (match-end 0))) - ((looking-at "__DIR__") - (phps-mode-lexer-RETURN_TOKEN 'T_DIR (match-beginning 0) (match-end 0))) - ((looking-at "__NAMESPACE__") - (phps-mode-lexer-RETURN_TOKEN 'T_NS_C (match-beginning 0) (match-end 0))) + ((looking-at (concat "__CLASS__" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_CLASS_C (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "__TRAIT__" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_TRAIT_C (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "__FUNCTION__" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_FUNC_C (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "__METHOD__" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_METHOD_C (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "__LINE__" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_LINE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "__FILE__" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_FILE (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "__DIR__" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_DIR (match-beginning 0) (1- (match-end 0)))) + ((looking-at (concat "__NAMESPACE__" phps-mode-lexer-NOT-LABEL)) + (phps-mode-lexer-RETURN_TOKEN 'T_NS_C (match-beginning 0) (1- (match-end 0)))) ((looking-at "\\(//\\|#\\)") (let* ((start (match-beginning 0)) @@ -910,6 +914,7 @@ (phps-mode-lexer-RETURN_TOKEN data start end)))) ((looking-at phps-mode-lexer-LABEL) + (message "Adding T_STRING from %s to %s" (match-beginning 0) (match-end 0)) (phps-mode-lexer-RETURN_TOKEN 'T_STRING (match-beginning 0) (match-end 0))) ((looking-at phps-mode-lexer-TOKENS) diff --git a/phps-mode-test-lexer.el b/phps-mode-test-lexer.el index f3e68e4..7c41d7e 100644 --- a/phps-mode-test-lexer.el +++ b/phps-mode-test-lexer.el @@ -161,10 +161,10 @@ '((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) (T_EXIT 12 . 16) (T_DIE 17 . 20) (T_FUNCTION 21 . 29) (T_RETURN 30 . 36) (T_YIELD_FROM 37 . 48) (T_YIELD 48 . 53) (T_TRY 54 . 57) (T_CATCH 58 . 63) (T_FINALLY 64 . 71) (T_THROW 72 . 77) (T_IF 78 . 80) (T_ELSEIF 81 . 87) (T_ENDIF 88 . 93) (T_ELSE 94 . 98) (T_WHILE 99 . 104) (T_ENDWHILE 105 . 113) (T_DO 114 . 116) (T_FOR 117 . 120) (T_ENDFOR 121 . 127) (T_FOREACH 128 . 135) (T_ENDFOREACH 136 . 146) (T_DECLARE 147 . 154) (T_ENDDECLA [...] (phps-mode-test-with-buffer - "<?php forger_array($arg1, $arg2)" + "<?php forgerarray($arg1, $arg2)" nil (should (equal phps-mode-lexer-tokens - '((T_OPEN_TAG 1 . 7) (T_STRING 7 . 19) ("(" 19 . 20) (T_VARIABLE 20 . 25) ("," 25 . 26) (T_VARIABLE 27 . 32) (")" 32 . 33))))) + '((T_OPEN_TAG 1 . 7) (T_STRING 7 . 18) ("(" 18 . 19) (T_VARIABLE 19 . 24) ("," 24 . 25) (T_VARIABLE 26 . 31) (")" 31 . 32))))) )