class Rouge::Lexers::SAS

def self.proc_keywords

def self.proc_keywords 
  # Create a hash with keywords for common PROCs, keyed by PROC name
  @proc_keywords ||= {}
_keywords["SQL"] ||= Set.new %w(
      ALTER TABLE CONNECT CREATE INDEX VIEW DELETE DESCRIBE DISCONNECT DROP EXECUTE
      INSERT RESET SELECT UPDATE VALIDATE ADD CONSTRAINT DROP FOREIGN KEY PRIMARY
      MODIFY LIKE AS ORDER BY USING FROM INTO SET VALUES RESET DISTINCT UNIQUE
      WHERE GROUP HAVING LEFT RIGHT INNER JOIN ON
    )
  # from SAS 9.4 SQL Procedure User's Guide
_keywords["MEANS"] ||= Set.new %w(
      BY CLASS FREQ ID OUTPUT OUT TYPES VAR WAYS WEIGHT
      ATTRIB FORMAT LABEL WHERE
      DESCENDING NOTSORTED 
      NOTHREADS NOTRAP PCTLDEF SUMSIZE THREADS CLASSDATA COMPLETETYPES
      EXCLUSIVE MISSING FW MAXDEC NONOBS NOPRINT ORDER FORMATTED FREQ
      UNFORMATTED PRINT PRINTALLTYPES PRINTIDVARS STACKODSOUTPUT
      CHARTYPE DESCENDTYPES IDMIN
      ALPHA EXCLNPWGT QMARKERS QMETHOD QNTLDEF VARDEF
      CLM CSS CV KURTOSIS KURT LCLM MAX MEAN MIN MODE N
      NMISS RANGE SKEWNESS SKEW STDDEV STD STDERR SUM SUMWGT UCLM USS VAR
      MEDIAN P50 Q1 P25 Q3 P75 P1 P90 P5 P95 P10 P99 P20 P30 P40 P60 P70
      P80 QRANGE
      PROBT PRT T
      ASCENDING GROUPINTERNAL MLF PRELOADFMT
      MAXID AUTOLABEL AUTONAME KEEPLEN LEVELS NOINHERIT
    )
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
_keywords["DATASETS"] ||= Set.new %w(
      AGE APPEND ATTRIB AUDIT CHANGE CONTENTS COPY DELETE EXCHANGE
      EXCLUDE FORMAT IC CREATE DELETE REACTIVATE INDEX CENTILES INFORMAT
      INITIATE LABEL LOG MODIFY REBUILD RENAME REPAIR RESUME SAVE SELECT
      SUSPEND TERMINATE USER_VAR XATTR ADD OPTIONS REMOVE SET
    )
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
_keywords["SORT"] ||= Set.new %w(
      BY DESCENDING KEY ASCENDING ASC DESC DATECOPY FORCE OVERWRITE 
      PRESORTED SORTSIZE TAGSORT DUPOUT OUT UNIQUEOUT NODUPKEY NOUNIQUEKEY 
      NOTHREADS THREADS EQUALS NOEQUALS
      ATTRIB FORMAT LABEL WHERE
    )
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
_keywords["PRINT"] ||= Set.new %w(
      BY DESCENDING NOTSORTED PAGEBY SUMBY ID STYLE SUM VAR CONTENTS DATA
      GRANDTOTAL_LABEL HEADING LABEL SPLIT SUMLABEL NOSUMLABEL
      BLANKLINE COUNT DOUBLE N NOOBS OBS ROUND
      ROWS UNIFORM WIDTH
      ATTRIB FORMAT LABEL WHERE
    )
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
_keywords["APPEND"] ||= Set.new %w(
      BASE APPENDVER DATA ENCRYPTKEY FORCE GETSORT NOWARN
      ATTRIB FORMAT LABEL WHERE
    )
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
_keywords["TRANSPOSE"] ||= Set.new %w(
      DELIMITER LABEL LET NAME OUT PREFIX SUFFIX BY DESCENDING NOTSORTED
      COPY ID IDLABEL VAR INDB
      ATTRIB FORMAT LABEL WHERE
    )
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
_keywords["FREQ"] ||= Set.new %w(
      BY EXACT OUTPUT TABLES TEST WEIGHT
      COMPRESS DATA FORMCHAR NLEVELS NOPRINT ORDER PAGE FORMATTED FREQ 
      INTERNAL
      AGREE BARNARD BINOMIAL BIN CHISQ COMOR EQOR ZELEN FISHER JT KAPPA
      KENTB TAUB LRCHI MCNEM MEASURES MHCHI OR ODDSRATIO PCHI PCORR RELRISK
      RISKDIFF SCORR SMDCR SMDRC STUTC TAUC TREND WTKAP WTKAPPA
      OUT AJCHI ALL BDCHI CMH CMH1 CMH2 CMHCOR CMHGA CMHRMS COCHQ CONTGY
      CRAMV EQKAP EQWKP GAMMA GS GAILSIMON LAMCR LAMDAS LAMRC LGOR LGRRC1
      LGRRC2 MHOR MHRRC1 MHRRC2 N NMISS PHI PLCORR RDIF1 RDIF2 RISKDIFF1
      RISKDIFF2 RRC1 RELRISK1 RRC2 RELRISK2 RSK1 RISK1 RSK11 RISK11 RSK12
      RISK12 RSK21 RISK21 RSK22 RISK22 TSYMM BOWKER U UCR URC
      CELLCHI2 CUMCOL DEVIATION EXPECTED MISSPRINT PEARSONREF PRINTWKTS
      SCOROUT SPARSE STDRES TOTPCT
      CONTENTS CROSSLIST FORMAT LIST MAXLEVELS NOCOL NOCUM NOFREQ NOPERCENT
      NOPRINT NOROW NOSPARSE NOWARN PLOTS OUT OUTCUM OUTEXPECT OUTPCT
      ZEROS
    )
  # from Base SAS 9.4 Procedures Guide: Statistical Procedures, Fourth Edition
_keywords["CORR"] ||= Set.new %w(
      BY FREQ ID PARTIAL VAR WEIGHT WITH
      DATA OUTH OUTK OUTP OUTPLC OUTPLS OUTS
      EXCLNPWGHT FISHER HOEFFDING KENDALL NOMISS PEARSON POLYCHORIC
      POLYSERIAL ALPHA COV CSSCP SINGULAR SSCP VARDEF PLOTS MATRIX SCATTER
      BEST NOCORR NOPRINT NOPROB NOSIMPLE RANK
    )
  # from Base SAS 9.4 Procedures Guide: Statistical Procedures, Fourth Edition
_keywords["REPORT"] ||= Set.new %w(
      BREAK BY DESCENDING NOTSORTED COLUMN COMPUTE STYLE LINE ENDCOMP
      CALL DEFINE _ROW_ FREQ RBREAK WEIGHT
      ATTRIB FORMAT LABEL WHERE
      DATA NOALIAS NOCENTER NOCOMPLETECOLS NOCOMPLETEROWS NOTHREADS 
      NOWINDOWS OUT PCTLDEF THREADS WINDOWS COMPLETECOLS NOCOMPLETECOLS
      COMPLETEROWS NOCOMPLETEROWS CONTENTS SPANROWS COMMAND HELP PROMPT
      BOX BYPAGENO CENTER NOCENTER COLWIDTH FORMCHAR LS MISSING PANELS PS
      PSPACE SHOWALL SPACING WRAP EXCLNPWGT QMARKERS QMETHOD QNTLDEF VARDEF
      NAMED NOHEADER SPLIT HEADLINE HEADSKIP LIST NOEXEC OUTREPT PROFILE
      REPORT
      COLOR DOL DUL OL PAGE SKIP SUMMARIZE SUPPRESS UL
      BLINK COMMAND HIGHLIGHT RVSVIDEO MERGE REPLACE URL URLBP URLP
      AFTER BEFORE _PAGE_ LEFT RIGHT CHARACTER LENGTH
      EXCLUSIVE MISSING MLF ORDER DATA FORMATTED FREQ INTERNAL PRELOADFMT
      WIDTH
      ACROSS ANALYSIS COMPUTED DISPLAY GROUP ORDER
      CONTENTS FLOW ID NOPRINT NOZERO PAGE
      CSS CV MAX MEAN MIN MODE N NMISS PCTN PCTSUM RANGE STD STDERR SUM
      SUMWGT USS VAR
      MEDIAN P50 Q1 P25 Q3 P75 P1 P90 P5 P95 P10 P99 P20 P30 P40 P60 P70
      P80 QRANGE
      PROBT PRT T
    )
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
_keywords["METALIB"] ||= Set.new %w(
      OMR DBAUTH DBUSER DBPASSWORD EXCLUDE SELECT READ FOLDER FOLDERID
      IMPACT_LIMIT NOEXEC PREFIX REPORT UPDATE_RULE DELETE NOADD NODELDUP
      NOUPDATE
      LIBID LIBRARY LIBURI
      TYPE DETAIL SUMMARY
    )
  # from SAS 9.4 Language Interfaces to Metadata, Third Edition
_keywords["GCHART"] ||= Set.new %w(
      DATA ANNOTATE GOUT IMAGEMAP BLOCK HBAR HBAR3D VBAR VBAR3D PIE PIE3D
      DONUT STAR ANNO
      BY NOTE FORMAT LABEL WHERE
      BLOCKMAX CAXIS COUTLINE CTEXT LEGEND NOHEADING NOLEGEND PATTERNID
      GROUP MIDPOINT SUBGROUP WOUTLINE DESCRIPTION NAME DISCRETE LEVELS
      OLD MISSING HTML_LEGEND HTML URL FREQ G100 SUMVAR TYPE
      CAUTOREF CERROR CFRAME CLM CREF FRAME NOFRAME GSPACE IFRAME
      IMAGESTYLE TILE FIT LAUTOREF NOSYMBOL PATTERNID SHAPE SPACE
      SUBOUTSIDE WAUTOREF WIDTH WOUTLINE WREF
      ASCENDING AUTOREF CLIPREF DESCENDING FRONTREF GAXIS MAXIS MINOR
      NOAXIS NOBASEREF NOZERO RANGE AXIS REF CFREQ CFREQLABEL NONE CPERCENT
      CPERCENTLABEL ERRORBAR BARS BOTH TOP FREQLABEL INSIDE MEAN MEANLABEL
      NOSTATS OUTSIDE PERCENT PERCENTLABEL PERCENTSUM SUM
      CFILL COUTLINE DETAIL_RADIUS EXPLODE FILL SOLID X INVISIBLE NOHEADING
      RADIUS WOUTLINE DETAIL_THRESHOLD DETAIL_PERCENT DETAIL_SLICE
      DETAIL_VALUE DONUTPCT LABEL ACROSS DOWN GROUP NOGROUPHEADING SUBGROUP
      MATCHCOLOR OTHERCOLOR OTHERLABEL PERCENT ARROW PLABEL PPERCENT SLICE
      VALUE
      ANGLE ASCENDING CLOCKWISE DESCENDING JSTYLE
      NOCONNECT STARMAX STARMIN 
    )
  # from SAS GRAPH 9.4 Reference, Fourth Edition
_keywords["GPLOT"] ||= Set.new %w(
      DATA ANNOTATE GOUT IMAGEMAP UNIFORM BUBBLE BUBBLE2 PLOT PLOT2
      BCOLOR BFILL BFONT BLABEL BSCALE AREA RADIUS BSIZE DESCRIPTION NAME
      AUTOHREF CAUTOHREF CHREF HAXIS HMINOR HREF HREVERSE HZERO LAUTOHREF
      LHREF WAUTOHREF WHREF HTML URL
      CAXIS CFRAME CTEXT DATAORDER FRAME NOFRAME FRONTREF GRID IFRAME
      IMAGESTYLE TILE FIT NOAXIS
      AUTOVREF CAUTOVREF CVREF LAUTOVREF LVREF VAXIS VMINOR VREF VREVERSE
      VZERO WAUTOVREF WVREF
      CBASELINE COUTLINE
      AREAS GRID LEGEND NOLASTAREA NOLEGEND OVERLAY REGEQN SKIPMISS
    )
  # from SAS GRAPH 9.4 Reference, Fourth Edition
_keywords["REG"] ||= Set.new %w(
      MODEL BY FREQ ID VAR WEIGHT ADD CODE DELETE MTEST OUTPUT PAINT
      PLOT PRINT REFIT RESTRICT REWEIGHT STORE TEST
    )
   # from SAS/STAT 15.1 User's Guide
_keywords["SGPLOT"] ||= Set.new %w(
      STYLEATTRS BAND X Y UPPER LOWER BLOCK BUBBLE DENSITY DOT DROPLINE
      ELLIPSE ELLIPSEPARM FRINGE GRADLEGEND HBAR HBARBASIC HBARPARM
      HBOX HEATMAP HEATMAPPARM HIGHLOW HISTOGRAM HLINE INSET KEYLEGEND
      LINEPARM LOESS NEEDLE PBSPLINE POLYGON REFLINE REG SCATTER SERIES
      SPLINE STEP SYMBOLCHAR SYMBOLIMAGE TEXT VBAR VBARBASIC VBARPARM
      VBOX VECTOR VLINE WATERFALL XAXIS X2AXIS XAXISTABLE YAXIS Y2AXIS
      YAXISTABLE
    )
   # from ODS Graphics: Procedures Guide, Sixth Edition
  return @proc_keywords
end