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