lexソースの中に次のようなコードが出てるんですが、左側の正規表現の意味がわからなくて困っています。文字列の解釈のコードだと思います。
\はバックスラッシュだと思ってください。
\"[^"]*\" { yytext[yyleng - 1] = '\0';
yylval.str = strdup(&yytext[ 1]);
return(STRING);
}
(yaccのソースの中に&token <str> STRINGという記述が入っている)
文字列はダブルクォーテーション「"」で囲み、間に改行が入っても構わないそうです。
yytextは次の入力を処理するときに破壊されるので、ヒープ上に確保した領域に文字列を格納し、そのアドレスをyylval.strに渡す。初めと終わりの「"」は取り除く・・
のだそうです。おそらくstrdupの説明だと思うのですが、C言語のマニュアルには載ってなかったですね・・・。
No.3
- 回答日時:
> すでに読んではいるのですが、それによると^は行頭だった気がします。
読みが足りない。 []内のアタマにある'^'は意味が違います。
> それで、"を含まないっていうことを何で表しているのかが・・・
lex-scriptを書いた人が'文字列中には"を含むべからず'と決めたから。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで=より左の文字を一括で...
-
エクセルでアルファベットか数...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
文字列からタブコードを取り除...
-
エクセルで文字列をtxtファイル...
-
エクセルで文字列の最大値を抽...
-
VBの「As String * 128」とは?
-
エクセル 数値データを桁をそ...
-
Left関数とRight関数を合わせた...
-
textboxユーザーコントロールの...
-
ORCLEでの小数の表示方法の変更...
-
同一セル内に関数と文字列を同...
-
アクセスで特定の数字以外(複...
-
16進数を10進数に簡単に変換す...
-
Msgboxの×が押されたとき
-
VBA2005 16進を2桁で表示したい。
-
【Excel VBA】複数ある特定の文...
-
NULLの定義について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
Excelで指数表現しないようにす...
-
エクセルで文字列の最大値を抽...
-
エクセル 数値データを桁をそ...
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
sedなどで、特定の文字列の後の...
-
MS SQLServer のSQLで文字列の...
-
Left関数とRight関数を合わせた...
-
Msgboxの×が押されたとき
-
アクセスで特定の数字以外(複...
-
【Excel VBA】複数ある特定の文...
-
エクセルでセル内の文字列の最...
-
C#で年月を比較する
おすすめ情報