class Rouge::Lexers::BBCBASIC

def self.constant

def self.constant
  @constant ||= %w(
    FALSE TRUE
  )
end

def self.function

def self.function
  @function ||= %w(
    ABS ACS ADVAL ASC ASN ATN BEATS BEAT BGET# CHR\$ COS COUNT DEG DIM
    EOF# ERL ERR EVAL EXP EXT# FN GET\$# GET\$ GET HIMEM INKEY\$ INKEY
    INSTR INT LEFT\$ LEN LN LOG LOMEM MID\$ OPENIN OPENOUT OPENUP PAGE
    POINT POS PTR# RAD REPORT\$ RIGHT\$ RND SGN SIN SQR STR\$ STRING\$ SUM
    SUMLEN TAN TEMPO TIME\$ TIME TOP USR VAL VPOS
  )
end

def self.operator

def self.operator
  @operator ||= %w(
    << <= <> < >= >>> >> > [-!$()*+/=?^|] AND DIV EOR MOD NOT OR
  )
end

def self.punctuation

def self.punctuation
  @punctuation ||= %w(
    [,;'~] SPC TAB
  )
end

def self.statement

def self.statement
  @statement ||= %w(
    BEATS BPUT# CALL CASE CHAIN CLEAR CLG CLOSE# CLS COLOR COLOUR DATA
    ELSE ENDCASE ENDIF ENDPROC ENDWHILE END ENVELOPE FOR GCOL GOSUB GOTO
    IF INSTALL LET LIBRARY MODE NEXT OFF OF ON ORIGIN OSCI OTHERWISE
    OVERLAY PLOT PRINT# PRINT PROC QUIT READ REPEAT REPORT RETURN SOUND
    STEP STEREO STOP SWAP SYS THEN TINT TO VDU VOICES VOICE UNTIL WAIT
    WHEN WHILE WIDTH
  )
end