sistema_progs

Programas para customizar o meu entorno de traballo nos meus equipos persoais
Log | Files | Refs

core-syntax-ctx.def (6794B)


      1 # -*- mode: conf-space -*-
      2 #
      3 # ble-syntax:bash
      4 #
      5 #   This file contains definition of context values
      6 #
      7 #
      8 #   単語の文脈値の命名法
      9 #
     10 #   CTX_FOOX ... 単語 FOO が次に来ることを期待する
     11 #   CTX_FOOI ... 単語 FOO 中の解析状態であることを意味する
     12 #   CTX_FOOR ... 単語 FOO 中が変数代入であり、途中のチルダ展開が有効でパス名展開やブレース展開は不活性である
     13 #   CTX_FOOQ ... 単語 FOO 中が変数代入形式であり、途中のチルダ展開が有効である
     14 #
     15 
     16 CTX_UNSPECIFIED 0
     17 CTX_ARGX        3  # (コマンド) 次に引数が来る
     18 CTX_ARGX0       18 # (コマンド)   文法的には次に引数が来そうだがもう引数が来てはならない文脈。例えば ]] や )) の後。
     19 CTX_ARGI        4  # (コマンド) context,attr: in an argument
     20 CTX_ARGQ        61 # (コマンド)   v=1 v+=1 a[1]=1 a[1]+=1 の形式の引数の = 以降。: で区切ったチルダ展開が有効である。
     21 CTX_CMDX        1  # (コマンド) 次にコマンドが来る。
     22 CTX_CMDX0       82 # (コマンド)   文法的には次にコマンドが来そうだが実際はもう来てはならない文脈。例えば { :; } >a の直後 (redirection の時点で文法エラー)。
     23 CTX_CMDX1       17 # (コマンド)   次にコマンドが少なくとも一つ来なければならない。例えば ( や && や while の直後。
     24 CTX_CMDXT       49 # (コマンド)   time や ! の後。次にコマンドが少なくとも1つ来るか ; が来るか、行末が来る。
     25 CTX_CMDXC       26 # (コマンド)   次に複合コマンド ('(' '{' '((' '[[' for select case if while until) が来る。
     26 CTX_CMDXE       43 # (コマンド)   次に終端キーワード ('}' 'done' 'fi' 'esac') が来るかも知れないし、来ないかもしれない。
     27 CTX_CMDXD0      38 # (コマンド)   次に 'do', '{' または ';' が来る。"for (())" の直後 (旧 CTX_ARGX0F)。
     28 CTX_CMDXD       68 # (コマンド)   次に 'do', '{' が来る。"for a in 1 2 3" や "for (());" の直後。
     29 CTX_CMDXV       13 # (コマンド)   var=val の直後。次にコマンドが来るかも知れないし、来ないかもしれない。
     30 CTX_CMDI        2  # (コマンド) context,attr: in a command
     31 CTX_VRHS        11 # (コマンド) context,attr: var=rhs
     32 CTX_QUOT        5  # context,attr: in double quotations
     33 CTX_EXPR        8  # context,attr: in arithmetic expression
     34 ATTR_ERR        6  # attr: error
     35 ATTR_VAR        7  # attr: variable
     36 ATTR_QDEL       9  # attr: delimiters for quotation
     37 ATTR_QESC       81 # attr: \q
     38 ATTR_DEF        10 # attr: default (currently not used)
     39 ATTR_DEL        12 # attr: delimiters
     40 ATTR_HISTX      21 # 履歴展開 (!!$ など)
     41 ATTR_FUNCDEF    22 # 関数名 ( hoge() や function fuga など)
     42 CTX_PARAM       14 # (パラメータ展開) context,attr: inside of parameter expansion
     43 CTX_PWORD       15 # (パラメータ展開) context,attr: inside of parameter expansion
     44 CTX_PWORDE      73 # (パラメータ展開) ${!var@...} の ... に居る時
     45 CTX_PWORDR      72 # (パラメータ展開) ${var//before/after} の before に居る時
     46 CTX_RDRF        19 # (リダイレクト) リダイレクト対象のファイル。
     47 CTX_RDRD        20 # (リダイレクト) リダイレクト対象のファイルディスクリプタ。
     48 CTX_RDRD2       80 # (リダイレクト) >& NUMBER または >& FILENAME
     49 CTX_RDRS        27 # (リダイレクト) ヒアストリング
     50 CTX_VALX        23 # (値リスト) arr=(@)
     51 CTX_VALI        24 # (値リスト) arr=(a@b)
     52 CTX_VALR        65 # (値リスト) arr=([0]=a@b)
     53 CTX_VALQ        66 # (値リスト) arr=(a=b@c a[0]=b@c)
     54 ATTR_COMMENT    25 # コメント
     55 CTX_ARGVX       28 # (コマンド) declare の引数が来る
     56 CTX_ARGVI       29 # (コマンド) declare の引数の中
     57 CTX_ARGVR       62 # (コマンド) declare の引数の右辺
     58 CTX_CONDX       32
     59 CTX_CONDI       33
     60 CTX_CONDQ       67
     61 CTX_CASE        34 # case パターン 開始待ち ("(" を特別扱い)
     62 CTX_CPATX       76 # case パターン 単語待ち ("(" の後)
     63 CTX_CPATI       77 # case パターン 単語内部
     64 CTX_CPATQ       79 # case パターン 変数代入形式(チルダ展開の為に区別)
     65 CTX_CPATX0      78 # case パターン 単語終了後。"|" or ")" 待ち
     66 CTX_PATN        30 # glob 通常文字
     67 ATTR_GLOB       31 # glob 特別文字
     68 CTX_BRAX        54 # [...] (角括弧式)
     69 ATTR_BRACE      55 # {...} (ブレース展開)
     70 CTX_BRACE1      56 # ブレース展開の中を読み取る文脈 ("," が現れる前)
     71 CTX_BRACE2      57 # ブレース展開の中を読み取る文脈 ("," が現れた後)
     72 ATTR_TILDE      60 # チルダ展開
     73 
     74 # for var in ...
     75 CTX_FARGX1      16 # for の直後。直後が (( だったら CTX_CMDX と同じ扱い。(旧 CTX_CMDXF)
     76 CTX_FARGI1      35
     77 CTX_FARGX2      36 # in
     78 CTX_FARGI2      37
     79 CTX_FARGX3      58 # args...
     80 CTX_FARGI3      59
     81 CTX_FARGQ3      63
     82 
     83 # select name in ...
     84 CTX_SARGX1      48 # select の直後。for の処理 CTX_FARGI1 に合流する。
     85 
     86 # case arg in ...
     87 CTX_CARGX1      39
     88 CTX_CARGI1      40
     89 CTX_CARGQ1      64
     90 CTX_CARGX2      41
     91 CTX_CARGI2      42
     92 
     93 # time -p -- ...
     94 CTX_TARGX1      50
     95 CTX_TARGI1      51
     96 CTX_TARGX2      52
     97 CTX_TARGI2      53
     98 
     99 # Here documents
    100 CTX_RDRH        44 # (redirection) ヒアドキュメント単語読み取り <<  word
    101 CTX_RDRI        45 # (redirection) ヒアドキュメント単語読み取り <<- word
    102 CTX_HERE0       46 # ヒアドキュメント行頭
    103 CTX_HERE1       47 # ヒアドキュメント行頭以外
    104 
    105 # eval a=1 b=(1 2 3) declare c=1 d=(1 2 3)
    106 CTX_ARGEX       69
    107 CTX_ARGEI       70
    108 CTX_ARGER       71
    109 
    110 # coproc var
    111 CTX_COARGX      74
    112 CTX_COARGI      75
    113 
    114 #------------------------------------------------------------------------------
    115 # syntax highlight の為の属性
    116 
    117 ATTR_CMD_BOLD       101
    118 ATTR_CMD_BUILTIN    102
    119 ATTR_CMD_ALIAS      103
    120 ATTR_CMD_FUNCTION   104
    121 ATTR_CMD_FILE       105
    122 ATTR_KEYWORD        106
    123 ATTR_KEYWORD_BEGIN  118 # if, case, while, until, for, select, { など
    124 ATTR_KEYWORD_END    119 # fi, esac, done, } など
    125 ATTR_KEYWORD_MID    120 # then, elif, else, do など
    126 ATTR_CMD_JOBS       107
    127 ATTR_CMD_DIR        112
    128 ATTR_FILE_DIR       108
    129 ATTR_FILE_STICKY    124 # directory with sticky bit
    130 ATTR_FILE_LINK      109
    131 ATTR_FILE_ORPHAN    121
    132 ATTR_FILE_FILE      111
    133 ATTR_FILE_SETUID    122
    134 ATTR_FILE_SETGID    123
    135 ATTR_FILE_EXEC      110
    136 ATTR_FILE_FIFO      114
    137 ATTR_FILE_CHR       115
    138 ATTR_FILE_BLK       116
    139 ATTR_FILE_SOCK      117
    140 ATTR_FILE_WARN      113
    141 ATTR_FILE_URL       125
    142 ATTR_VAR_UNSET      126
    143 ATTR_VAR_EMPTY      127
    144 ATTR_VAR_NUMBER     128
    145 ATTR_VAR_EXPR       129
    146 ATTR_VAR_ARRAY      130
    147 ATTR_VAR_HASH       132
    148 ATTR_VAR_READONLY   131
    149 ATTR_VAR_TRANSFORM  133
    150 ATTR_VAR_EXPORT     134