class Rouge::Lexers::Stan

def self.reserved

def self.reserved
  @reserved ||= Set.new [
    # Reserved words from Stan language
    "for", "in", "while", "repeat", "until", "if", "then", "else", "true",
    "false", "target", "functions", "model", "data", "parameters",
    "quantities", "transformed", "generated",
    # Reserved names from Stan implementation
    "var", "fvar", "STAN_MAJOR", "STAN_MINOR", "STAN_PATCH",
    "STAN_MATH_MAJOR", "STAN_MATH_MINOR", "STAN_MATH_PATCH",
    # Reserved names from C++
    "alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand",
    "bitor", "bool", "break", "case", "catch", "char", "char16_t",
    "char32_t", "class", "compl", "const", "constexpr", "const_cast",
    "continue", "decltype", "default", "delete", "do", "double",
    "dynamic_cast", "else", "enum", "explicit", "export", "extern",
    "false", "float", "for", "friend", "goto", "if", "inline", "int",
    "long", "mutable", "namespace", "new", "noexcept", "not", "not_eq",
    "nullptr", "operator", "or", "or_eq", "private", "protected",
    "public", "register", "reinterpret_cast", "return", "short", "signed",
    "sizeof", "static", "static_assert", "static_cast", "struct",
    "switch", "template", "this", "thread_local", "throw", "true", "try",
    "typedef", "typeid", "typename", "union", "unsigned", "using",
    "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq"
  ]
end