class Rouge::Lexers::IecST

def self.keywords

def self.keywords
  blocks = %w(
    PROGRAM CONFIGURATION INITIAL_STEP INTERFACE FUNCTION_BLOCK FUNCTION ACTION TRANSITION
    TYPE STRUCT STEP NAMESPACE LIBRARY CHANNEL FOLDER RESOURCE
    VAR_ACCESS VAR_CONFIG VAR_EXTERNAL VAR_GLOBAL VAR_INPUT VAR_IN_OUT VAR_OUTPUT VAR_TEMP VAR
    CONST METHOD PROPERTY
    CASE FOR IF REPEAT WHILE
  )
  @keywords ||= Set.new %w(
    AT BEGIN BY CONSTANT CONTINUE DO ELSE ELSIF EXIT EXTENDS FROM GET GOTO IMPLEMENTS JMP
    NON_RETAIN OF PRIVATE PROTECTED PUBLIC RETAIN RETURN SET TASK THEN TO UNTIL USING WITH
    __CATCH __ENDTRY __FINALLY __TRY
  ) + blocks + blocks.map {|kw| "END_" + kw}
end