パーサーとか構文解析とかその他もろもろ

このエントリーをはてなブックマークに追加
61デフォルトの名無しさん:2010/02/08(月) 10:38:54
グローバル変数万歳なところが嫌い
62デフォルトの名無しさん:2010/02/08(月) 18:24:10
>>60
もし手書きするのが再帰下降のトップダウンパーサなら
構文解析と字句解析はほぼ同時に行うから
字句解析処理だけ専用に作ったりはしなくない?
63デフォルトの名無しさん:2010/02/08(月) 18:34:19
コンテキストによって字句解析の方法を切り替えなければならないしことが多いし、大して楽にならないので手書きが多いような気がする。
64デフォルトの名無しさん:2010/02/08(月) 22:27:13
JavaにおいてAAAというトークンがあるとき、
AAAがクラス名であるか否かを判断するのって、
結局前に来てるトークンがclassだとか、
”{”がすぐ後ろに来るとか、Extendsがくっついてるとか、
そういう情報から特定してるんでしょうか?

何かもっと効率的に判断するための方法があるんでしょうか。
65デフォルトの名無しさん:2010/02/09(火) 01:39:12
Javaは普通にclassの後ろに来てるidentifier( [a-zA-Z_]([a-zA-Z0-9_])* だっけ?) がクラス名扱いになるんじゃないの?
よくわからないけど。Javaの文法ってそんなかんじじゃなかったっけ?
66デフォルトの名無しさん:2010/02/09(火) 01:52:11
あるトークンがクラス名である、と判断するのは、まず
トークン列がクラス定義(class 名前 ...)だったり
インスタンス生成(new 名前...)だったり
例外送出(throw 名前...)というのを判別するのが先。
その後でマッチした名前がクラス名の役割のものだと分かる。
67デフォルトの名無しさん:2010/02/09(火) 02:13:24
クラスって簡単に取れるけど
関数になると少し取りにくくなって
変数になるとさらに取りにくいよな
68デフォルトの名無しさん:2010/02/09(火) 02:27:25
・予約語に含まれる型
・宣言されたクラスの型

の後ろに来るidentiferが変数名かな?
ぱっと考えただけだから例外あると思うが。
6960:2010/02/09(火) 08:28:22
回答感謝、マルチレスで。
>>61 同意せざるをえない。今回はクラスに押し込める予定。
>>62 そんな高尚なブツは作れないです。
    キーワードの前後関係から文を解釈する原始的なものなので。
>>63 確かに。lexのスタート状態で何とかなるかな、程度に考えてる。

70デフォルトの名無しさん:2010/02/19(金) 18:01:13
Jparsec って日本語に対応してる?
71デフォルトの名無しさん:2010/02/24(水) 22:14:37
してる
72デフォルトの名無しさん:2010/02/26(金) 01:42:34
VBだと関数呼び出しなのか配列なのかとか
関数呼び出しなのかラベルなのか変数なのか最後までわかんないな
73デフォルトの名無しさん:2010/03/11(木) 11:54:15
よく文字列リテラルの中での改行を
char str[]= "hoge \
fuga\
bar";
みたいに\で区切る言語があるけど
\なんか打たなくても
最近の進歩した解析法で、これは自動認識するようになってたりしないの?
74デフォルトの名無しさん:2010/03/11(木) 11:56:11
ああ、\だとくっつけるだけか。まぁ\nとかいちいち書かなくてもよいように出来たりしないのかなっていう疑問です
75デフォルトの名無しさん:2010/03/11(木) 15:35:01
ヒアドキュメント
76デフォルトの名無しさん:2010/03/11(木) 19:13:31
ヒアドキュメントは構文解析サボってるだけとしか思えない
77デフォルトの名無しさん:2010/05/02(日) 09:08:32
str="""
ここをBNFサンドボックスにしていい?
駄目なら他に行きます。
""";
78デフォルトの名無しさん:2010/08/31(火) 15:04:09
アホの日本語訳誤植多いね。
79デフォルトの名無しさん:2010/08/31(火) 15:13:46
エイホのどの本?

「コンパイラ」なら普通「ドラゴンブック」と呼ぶ。
80デフォルトの名無しさん:2010/08/31(火) 16:17:24
ドラゴンブックということで・・・・・
81デフォルトの名無しさん:2010/08/31(火) 17:51:00
出版社によっては連絡すると正誤表のコピーを送ってくれる。
メール書くか電話してみ?
82デフォルトの名無しさん:2010/09/02(木) 12:11:23
英語のpdfみながらやってるんで・・・
83デフォルトの名無しさん:2010/09/08(水) 16:40:20
EBNFについてISO/IEC 14977:1996(E)を調べてたんだが
文字セットが7-bit character set (ISO/IEC 646:1991 International Reference Version)
なんという時代遅れ

この辺のメタ構文言語ってそれぞれが勝手に微妙に変えて作るし
W3Cしかり、GOのページにも別種が載ってるし、
RFCはABNFだっけ。最近はPEGもあるし

PEG以外で一個覚えるとしたらどれがいいんだ
84デフォルトの名無しさん:2010/09/10(金) 10:01:38
別に覚える必要などなかろう
85デフォルトの名無しさん:2010/09/10(金) 17:58:12
そんなこと言ってるから・・
とりあえずEBNF自身をパース出来るEBNFパーサを作ったけど
文字はすべて1文字ずつ|で区切って記述。
これでUnicode文字を表現するのは悪夢
??で独自拡張するのも微妙だし
Unicodeぐらいは組み込みで使えるやつはないのだろうか

今度はABNFについて調べる作業がはじまるお
86デフォルトの名無しさん:2010/09/11(土) 16:10:10
日記なら自分のブログにお書き下さい。
87デフォルトの名無しさん:2010/10/07(木) 13:29:44
オートマトンの遷移関数表の入力記号が255種類以上(1万くらい)ある場合
どんなデータ構造にしたらいいですか?
88デフォルトの名無しさん:2010/10/07(木) 16:39:19
1万エントリぐらいの振り分けってことだったら、関数ポインタの配列を使うかなぁ
89デフォルトの名無しさん:2010/10/09(土) 15:29:40
マジレスすると255はアスキーコードで一万くらいといったのはユニコードですよ(笑)
ユニコードの実質使う文字数が1万個くらいかなーとおもっただけで
正確には100個くらいかもしれません。
90デフォルトの名無しさん:2010/10/09(土) 15:31:20
何を言ってるんだ
91デフォルトの名無しさん:2010/10/09(土) 15:32:49
過疎ってるのにレス速いことに絶句
92デフォルトの名無しさん:2010/10/10(日) 01:39:31
Unicode は U+10FFFF までだから100万文字くらいあるぞ

100万bitの配列をもつのはいかにも非効率だから、
Unicodeコードポイントのレンジを表現できるデータ構造をつくって
intersectionやunionの演算をできるようにしておくのかねえ
93デフォルトの名無しさん:2010/10/20(水) 15:15:49
ドラゴンブックの解答ってないの?
94デフォルトの名無しさん:2010/11/12(金) 07:12:54
ドラゴンブックは2冊よみとおしたけど、からだにあわん。もっとげんだいてきなのないの?
95デフォルトの名無しさん:2010/11/12(金) 07:31:53
タイガーブック
96デフォルトの名無しさん:2010/11/12(金) 07:56:59
           __
        , ‐' ´   ``‐、             / ̄:三}
.     /,. -─‐- 、.   ヽ        /   ,.=j
 _,.:_'______ヽ、 .!       ./   _,ノ
  `‐、{ へ  '゙⌒ `!~ヽ. !     /{.  /
    `! し゚  ( ゚j `v‐冫   , '::::::::ヽ、/     そんなことよりyaccしようぜ!
.    {.l   '⌒      ゙ 6',!   / :::::::::::::::/ __
.     〈  < ´ ̄,フ  .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
.      ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠.   ヽ_}  ゙ヽ
        ,.r` "´  /:::::::::::::::::::ィ´  `ゝ  !、  /
     /       / :::::::::::::::: ; '´   /´\ /   r'\
.     i      ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
     {      {:::::::::::;:イ /   ‖i:::::::/:::::::::::::/  \
.      ヽ       ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
97デフォルトの名無しさん:2010/11/12(金) 10:18:34
98デフォルトの名無しさん:2010/12/06(月) 00:11:25
jparsec2にさわって見たけど情報がなさ過ぎるぜ
99デフォルトの名無しさん:2010/12/26(日) 00:43:17
こんなルールがあって、
Aのパース結果の型をどうするかって時
A = *( B | C )

オブジェクト指向だとBとCの共通の基底クラスを作って
その配列を結果とする、よりも良い解ってありますかね
100デフォルトの名無しさん:2011/01/15(土) 18:02:36
通常のBNF形式の文法を
PEGパーサでパースする際にパースされないパスを教えてくれるようなツールってないかな
["+"] / "-" って文法はPEGのパーサだと"-"にマッチしないから
101デフォルトの名無しさん:2011/01/17(月) 02:56:26
ここって最適化の話もOK?
Dominance frontier で分からないことがあるんだが。
102デフォルトの名無しさん:2011/01/17(月) 10:22:21
「コンパイラ・スクリプトエンジン」相談室14
http://hibari.2ch.net/test/read.cgi/tech/1258431145/

こちらへどうぞ
103デフォルトの名無しさん:2011/01/18(火) 00:39:56
>>102
ありがとう
104デフォルトの名無しさん:2011/03/02(水) 22:27:34.73
xtextは?これはつかえるの?
105ななし。:2011/07/27(水) 22:22:51.16
カ オ ス ラ ウ ン ジ ゆ る せ な ぁ い ー
106デフォルトの名無しさん:2011/08/19(金) 11:16:18.80
EclipseつかってるならXText最強だな
107デフォルトの名無しさん:2011/09/02(金) 10:04:15.66
いまのじだいはDSLだろ
108デフォルトの名無しさん:2011/09/26(月) 02:03:53.01
静的コード解析のスレはないんだね。
109デフォルトの名無しさん:2012/05/01(火) 07:27:16.34
このすれだろ
110デフォルトの名無しさん
その他もろもろ∋静的解析