/usr/share/highlight/langDefs/php.lang is in highlight-common 3.18-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | Description="PHP"
Keywords={
{ Id=1,
List={"abstract", "and", "array", "as", "break", "case", "catch", "cfunction", "class", "clone", "const",
"continue", "declare", "default", "do", "else", "elseif", "enddeclare", "endfor", "endforeach", "endif",
"endswitch", "endwhile", "extends", "final", "for", "foreach", "function", "global", "goto", "if", "implements",
"interface", "instanceof", "namespace", "new", "old_function", "or", "private", "protected", "public", "static",
"switch", "throw", "try", "use", "var", "while", "xor", "__CLASS__", "__DIR__", "__FILE__", "__FUNCTION__",
"__METHOD__", "__NAMESPACE__", "die", "echo", "empty", "exit", "eval", "include", "include_once", "isset", "list",
"require", "require_once", "return", "print", "unset"},
},
{ Id=2,
List={"int", "integer", "real", "double", "float", "string", "array", "object"},
},
{ Id=3,
Regex=[[\$\w+]],
},
{ Id=4,
Regex=[[(\w+)\s*\(]],
},
}
-- hereDoc opening delimiter, see OnStateChange to handle end of string
Strings={
Delimiter=[["|'|<<<'?\w+'?]],
--Interpolation=[[ \$[\w\[\]\->]+ ]],
Interpolation=[[ [@\$%]\w+ ]]
}
IgnoreCase=true
Comments={
{ Block=false,
Delimiter= { [[\/\/|\#]] },
},
{ Block=true,
Nested=false,
Delimiter= { [[\/\*]],[[\*\/]],}
}
}
Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\:|\&|<|>|\!|\=|\/|\*|\|\+|\-|\.|\@]]
function OnStateChange(oldState, newState, token)
if (string.sub(token,1,1) =="$") and oldState==HL_STRING and newState==HL_KEYWORD then
return HL_INTERPOLATION
end
--recognize hereDoc multine strings
if oldState==HL_STANDARD and newState==HL_STRING and not string.find("\"'", token) then
hereDoc = string.match(token, "<<<'?(%a+)" )
end
if oldState==HL_STRING and token==hereDoc then
hereDoc = nil
return HL_STRING_END
end
return newState
end
|