Files
OpenRA/spec/cpp.lua

79 lines
2.4 KiB
Lua

-- author: Paul Kulchenko
---------------------------------------------------------
local funccall = "([A-Za-z_][A-Za-z0-9_]*)%s*"
return {
exts = {"cpp", "c", "hpp", "h"},
lexer = wxstc.wxSTC_LEX_CPP,
apitype = "cpp",
linecomment = "//",
stylingbits = 5,
isfncall = function(str)
return string.find(str, funccall .. "%(")
end,
lexerstyleconvert = {
text = {wxstc.wxSTC_C_IDENTIFIER,},
lexerdef = {wxstc.wxSTC_C_DEFAULT,},
comment = {wxstc.wxSTC_C_COMMENT,
wxstc.wxSTC_C_COMMENTLINE,
wxstc.wxSTC_C_COMMENTDOC,},
stringtxt = {wxstc.wxSTC_C_STRING,
wxstc.wxSTC_C_CHARACTER,
wxstc.wxSTC_C_VERBATIM,},
stringeol = {wxstc.wxSTC_C_STRINGEOL,},
preprocessor= {wxstc.wxSTC_C_PREPROCESSOR,},
operator = {wxstc.wxSTC_C_OPERATOR,},
number = {wxstc.wxSTC_C_NUMBER,},
keywords0 = {wxstc.wxSTC_C_WORD,},
keywords1 = {wxstc.wxSTC_C_WORD2,},
},
keywords = {
[[ alignas alignof and and_eq asm auto bitand bitor break case catch
class compl const constexpr const_cast continue
decltype default delete do dynamic_cast else enum explicit export
extern for friend goto if inline mutable namespace new noexcept not
not_eq nullptr operator or or_eq private protected public register
reinterpret_cast return sizeof static static_assert static_cast
struct switch template this thread_local throw try typedef typeid
typename union using virtual volatile while xor xor_eq]],
[[ NULL bool char char16_t char32_t double false float int long
short signed true unsigned void wchar_t]]
},
}
--[==[ C-only keywords
[[ auto break case const continue default do else enum extern for goto if
register return sizeof static struct switch typedef union volatile while]],
[[ NULL char double float int long short signed unsigned void]]
--]==]
--[[
// Lexical states for SCLEX_CPP
%define wxSTC_C_DEFAULT
%define wxSTC_C_COMMENT
%define wxSTC_C_COMMENTLINE
%define wxSTC_C_COMMENTDOC
%define wxSTC_C_NUMBER
%define wxSTC_C_WORD
%define wxSTC_C_STRING
%define wxSTC_C_CHARACTER
%define wxSTC_C_UUID
%define wxSTC_C_PREPROCESSOR
%define wxSTC_C_OPERATOR
%define wxSTC_C_IDENTIFIER
%define wxSTC_C_STRINGEOL
%define wxSTC_C_VERBATIM
%define wxSTC_C_REGEX
%define wxSTC_C_COMMENTLINEDOC
%define wxSTC_C_WORD2
%define wxSTC_C_COMMENTDOCKEYWORD
%define wxSTC_C_COMMENTDOCKEYWORDERROR
%define wxSTC_C_GLOBALCLASS
]]