home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / mac / vim55rt.sit / runtime / syntax / plsql.vim < prev    next >
Encoding:
Text File  |  1999-09-25  |  5.3 KB  |  136 lines  |  [TEXT/VIM!]

  1. " Vim syntax file
  2. " Language:    PL/SQL -- Oracle Procedural SQL
  3. " Maintainer:    C. Laurence Gonsalves <clgonsal@kami.com>
  4. " Last change:    1999 Jun 14
  5. " URL:        http://www.cryogen.com/clgonsal/vim/syntax/plsql.vim
  6.  
  7. " Remove any old syntax stuff hanging around
  8. syn clear
  9. syn case ignore
  10.  
  11. syn match   plsqlGarbage    "[^ \t()]"
  12. syn match   plsqlIdentifier    "[a-z][a-z0-9$_#]*"
  13. syn match   plsqlHostIdentifier    ":[a-z][a-z0-9$_#]*"
  14.  
  15. " symbols
  16. syn match   plsqlSymbol        "\(;\|,\|\.\)"
  17.  
  18. " operators
  19. syn match   plsqlOperator    "\(+\|-\|\*\|/\|=\|<\|>\|@\|\*\*\|!=\|\~=\)"
  20. syn match   plsqlOperator    "\(^=\|<=\|>=\|:=\|=>\|\.\.\|||\|<<\|>>\|\"\)"
  21.  
  22. " SQL keywords
  23. syn keyword plsqlSQLKeyword    ACCESS ADD ALL ALTER AND ANY AS ASC AUDIT
  24. syn keyword plsqlSQLKeyword    BETWEEN BY CHECK CLUSTER COLUMN COMMENT
  25. syn keyword plsqlSQLKeyword    COMPRESS CONNECT CREATE CURRENT
  26. syn keyword plsqlSQLKeyword    DEFAULT DELETE DESC DISTINCT DROP ELSE
  27. syn keyword plsqlSQLKeyword    EXCLUSIVE EXISTS FILE FROM GRANT
  28. syn keyword plsqlSQLKeyword    GROUP HAVING IDENTIFIED IMMEDIATE IN INCREMENT
  29. syn keyword plsqlSQLKeyword    INDEX INITIAL INSERT INTERSECT INTO IS
  30. syn keyword plsqlSQLKeyword    LEVEL LIKE LOCK MAXEXTENTS MODE NOAUDIT
  31. syn keyword plsqlSQLKeyword    NOCOMPRESS NOT NOWAIT OF OFFLINE
  32. syn keyword plsqlSQLKeyword    ON ONLINE OPTION OR ORDER PCTFREE PRIOR
  33. syn keyword plsqlSQLKeyword    PRIVILEGES PUBLIC RENAME RESOURCE REVOKE
  34. syn keyword plsqlSQLKeyword    ROW ROWLABEL ROWS SELECT SESSION SET
  35. syn keyword plsqlSQLKeyword    SHARE START SUCCESSFUL SYNONYM SYSDATE
  36. syn keyword plsqlSQLKeyword    THEN TO TRIGGER UID UNION UNIQUE UPDATE
  37. syn keyword plsqlSQLKeyword    USER VALIDATE VALUES VIEW
  38. syn keyword plsqlSQLKeyword    WHENEVER WHERE WITH
  39. syn keyword plsqlSQLKeyword    REPLACE
  40.  
  41. " PL/SQL's own keywords
  42. syn keyword plsqlKeyword    ABORT ACCEPT ARRAY ARRAYLEN ASSERT ASSIGN AT
  43. syn keyword plsqlKeyword    AUTHORIZATION AVG BASE_TABLE BEGIN BODY CASE
  44. syn keyword plsqlKeyword    CHAR_BASE CLOSE CLUSTERS COLAUTH COMMIT
  45. syn keyword plsqlKeyword    CONSTANT CRASH CURRVAL DATABASE DATA_BASE DBA
  46. syn keyword plsqlKeyword    DEBUGOFF DEBUGON DECLARE DEFINTION DELAY
  47. syn keyword plsqlKeyword    DIGITS DISPOSE DO ENTRY EXCEPTION
  48. syn keyword plsqlKeyword    EXCEPTION_INIT EXIT FETCH FORM FUNCTION
  49. syn keyword plsqlKeyword    GENERIC GOTO INDEXES INDICATOR INTERFACE
  50. syn keyword plsqlKeyword    LIMITED MAX MIN MINUS MISLABEL MOD
  51. syn keyword plsqlKeyword    NATURALN NEW NEXTVAL NUMBER_BASE OPEN OTHERS
  52. syn keyword plsqlKeyword    OUT PACKAGE PARTITION PLS_INTEGER POSITIVEN
  53. syn keyword plsqlKeyword    PRAGMA PRIVATE PROCEDURE RAISE RANGE REF
  54. syn keyword plsqlKeyword    RELEASE REMR RETURN REVERSE ROLLBACK ROWNUM
  55. syn keyword plsqlKeyword    ROWTYPE RUN SAVEPOINT SCHEMA SEPERATE SPACE
  56. syn keyword plsqlKeyword    SQL SQLCODE SQLERRM STATEMENT STDDEV SUBTYPE
  57. syn keyword plsqlKeyword    SUM TABAUTH TABLES TASK TERMINATE TYPE USE
  58. syn keyword plsqlKeyword    VARIANCE VIEWS WHEN WORK WRITE XOR
  59. syn match   plsqlKeyword    "\<END\>"
  60.  
  61. if exists("plsql_highlight_triggers")
  62.     syn keyword plsqlTrigger    INSERTING UPDATING DELETING
  63. endif
  64.  
  65. " Conditionals
  66. syn keyword plsqlConditional    ELSIF ELSE IF
  67. syn match   plsqlConditional    "\<END\s\+IF\>"
  68.  
  69. " loops
  70. syn keyword plsqlRepeat        FOR LOOP WHILE
  71. syn match   plsqlRepeat        "\<END\s\+LOOP\>"
  72.  
  73. " various types of comments
  74. syn match   plsqlComment    "--.*$"
  75. syn region  plsqlComment    start="/\*" end="\*/"
  76.  
  77. " to catch unterminated string literals
  78. syn match   plsqlStringError    "'.*$"
  79.  
  80. " various types of literals
  81. syn match   plsqlIntLiteral    "[+-]\=[0-9]\+"
  82. syn match   plsqlFloatLiteral    "[+-]\=\([0-9]*\.[0-9]\+\|[0-9]\+\.[0-9]\+\)\(e[+-]\=[0-9]\+\)\="
  83. syn match   plsqlCharLiteral    "'[^']'"
  84. syn match   plsqlStringLiteral    "'\([^']\|''\)*'"
  85. syn keyword plsqlBooleanLiteral    TRUE FALSE NULL
  86.  
  87. " the built-in types
  88. syn keyword plsqlStorage    BINARY_INTEGER BOOLEAN CHAR CURSOR DATE DECIMAL
  89. syn keyword plsqlStorage    FLOAT INTEGER LONG MLSLABEL NATURAL NUMBER
  90. syn keyword plsqlStorage    POSITIVE RAW REAL RECORD ROWID SMALLINT TABLE
  91. syn keyword plsqlStorage    VARCHAR VARCHAR2
  92.  
  93. " a type-attribute is really a type
  94. syn match   plsqlTypeAttribute    ":\=[a-z][a-z0-9$_#]*%\(TYPE\|ROWTYPE\)\>"
  95.  
  96. " all other attributes
  97. syn match   plsqlAttribute    "%\(NOTFOUND\|ROWCOUNT\|FOUND\|ISOPEN\)\>"
  98.  
  99. " this'll catch mis-matched close-parens
  100. syn region plsqlParen        transparent start='(' end=')' contains=ALLBUT,plsqlParenError
  101. syn match plsqlParenError    ")"
  102.  
  103. if !exists("did_plsql_syntax_inits")
  104.     let did_plsql_syntax_inits = 1
  105.  
  106.     " These are general categories that should maybe become standard
  107.     hi link Attribute        Macro
  108.     hi link Query        Function
  109.     hi link Event        Function
  110.  
  111.     hi link plsqlAttribute    Attribute
  112.     hi link plsqlBooleanLiteral    Boolean
  113.     hi link plsqlCharLiteral    Character
  114.     hi link plsqlComment    Comment
  115.     hi link plsqlConditional    Conditional
  116.     hi link plsqlFloatLiteral    Float
  117.     hi link plsqlGarbage    Error
  118.     hi link plsqlHostIdentifier    Label
  119.     hi link plsqlIdentifier    Normal
  120.     hi link plsqlIntLiteral    Number
  121.     hi link plsqlOperator    Operator
  122.     hi link plsqlParen        Normal
  123.     hi link plsqlParenError    Error
  124.     hi link plsqlKeyword    Keyword
  125.     hi link plsqlRepeat        Repeat
  126.     hi link plsqlStorage    StorageClass
  127.     hi link plsqlSQLKeyword    Query
  128.     hi link plsqlStringError    Error
  129.     hi link plsqlStringLiteral    String
  130.     hi link plsqlSymbol        Normal
  131.     hi link plsqlTrigger    Event
  132.     hi link plsqlTypeAttribute    StorageClass
  133. endif
  134.  
  135. let b:current_syntax = "plsql"
  136.