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