「コンパイラ・スクリプトエンジン」相談室16 (649レス)
上下前次1-新
93: 2014/11/06(木)01:58 ID:Rw7wEfhr(1) AAS
閉じ括弧重ね書き文化は誰も止めなかったのかねえ))))))))))))))))))))
94: 2014/11/06(木)02:08 ID:rrEEAzVB(1) AAS
Cみたいな中括弧、改行、インデントを繰り返すのもイマイチ
95: 2014/11/07(金)19:44 ID:XxPyN8W7(1) AAS
整ってると思うがなあ
switch, caseだけはアレだが
96(1): 2014/11/07(金)20:31 ID:sXupdHKX(1) AAS
switchとcaseは同じインデントにしてbreakだけ字下げだよね?ね?
97: 2014/11/07(金)20:52 ID:4yd7iQ66(1) AAS
>>96 に一票
98: 2014/11/07(金)22:25 ID:fMVGCDH+(1) AAS
(,)は特別な意味持たせたいとかあるので難しいですね。
(a,)はタプルにしようか、タプルじゃないのかとか。(,a)はタプルとか。
99: 2014/11/09(日)11:22 ID:/PoG0aeo(1) AAS
Pythonの「1要素のタプル」はトリッキーだが面白いとは思った。
kなんとかの人が言ってるように、カッコなしでもそうなるのは罠だがw
100(1): 2014/11/09(日)12:10 ID:6nixZySy(1) AAS
lispだと(a)とaの違いかな
101(1): 2014/11/09(日)16:44 ID:7O7eobU9(1) AAS
>> 100
そんな感じ。名前のない構造体
102: 2014/11/09(日)20:23 ID:15ZMIIuR(1) AAS
いや名前ある、タプル
103(1): 2014/11/10(月)01:34 ID:zIX5GD/A(1) AAS
ここって正規表現エンジンの話もいいのかな
nfaとdfaのハイブリッドエンジンを実装したいんだけど
dfaの中にnfaがあったらどう処理するかとかどこまでdfaにしていいかとかさっぱり分からない
調べてもon-the-flyという単語ぐらいしか出てこなくて実装方法とかは見つからない
知ってる人いたら教えてほしい
104: 2014/11/10(月)07:33 ID:XDoaKxdi(1) AAS
schemeの自作コンパイラ作成の過程で、cps変換につまづいています。
よくネット上で「簡単な処理で実現できる」という感じで書いてあるのを良く見るのですが、
実際にやろうとするとなかなかできません。
具体的に何をやったらいいのでしょうか?
ちなみにlambdaでのcps変換はぎりぎり理解できてると思います。
105: 2014/11/10(月)09:06 ID:hP+YfTbo(1) AAS
Scheme使ってるならEoPLの最後のほうの章読んだらええで。
106(1): 2014/11/10(月)12:08 ID:s3EMdqhf(1) AAS
>>103
つ ドラゴンブック, lazy transiyiOn evaluation
古典実装だとoriginal egrep
107: 2014/11/10(月)17:06 ID:G4zfChd8(1) AAS
>>100
Lisp の (a) は (a . nil) だからちょっと違う。
>>101
構造体とかそういう別の名前を持ち出したりするとややこしくなるだけ。
108(1): 2014/11/11(火)02:10 ID:85SNGvMw(1) AAS
>>106
ありがとう
でも自分の望んでるのとは違うみたい
109(1): 2014/11/12(水)01:44 ID:DTrQhtqP(1) AAS
>>108
この延長線上にある話だと理解できてないか、
SFA(semi-deterministic finite automata)を勘違いしてon-the-flyだと思っている。
前者ならGNU Rxを読めばいい。
110: 2014/11/12(水)01:57 ID:/4vNcbkH(1/2) AAS
>>109
多分後者かもしれない
自分の考えてるのは(X)*aときたら
1 ==(X)==> 1
1 ==a==> 2
というdfaを作って次のノードへの遷移条件が文字じゃなくてnfaなら
それを優先して見てマッチしたらその先に行く方法を考えてた
それならnfaとdfaをうまく組みあわせられると思って
あとsfaは今初めて知った
sfaとかon-the-flyは調べてもちゃんとした説明が出てこなくて困る
111: 2014/11/12(水)01:59 ID:/4vNcbkH(2/2) AAS
あとnfaだけかdfaだけなら偶然持ってたドラゴンブックやネットの情報が十分にあって実装出来た
ハイブリッドにする方法が分からなくて途方に暮れてる
112: 2014/11/12(水)11:39 ID:b8dDlQST(1) AAS
SFAでググったらランク上位の日本語の記述がこれだった
外部リンク:www.slideshare.net
役に立つかは知らないけどマッチングの並列実行だってさ
113: 2014/11/15(土)04:11 ID:2wuAQ8Y6(1) AAS
DFAで出来ないこと、やると遅いことをNFAでやる。
DFAにならない正規表現の拡張や状態が爆発するn回繰り返しなど。
114: 片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/11/29(土)15:46 ID:AWiICJMh(1) AAS
Caperで、Haxe用のパーサーが作れるようになったらしいぞ!!!
外部リンク[html]:jonigata.github.io
115: 2014/11/29(土)19:24 ID:bjHueY84(1/2) AAS
ということはjavaとphpとC#に対応したということか
116: 2014/11/29(土)19:25 ID:bjHueY84(2/2) AAS
って元からしてんじゃん…
117(18): 2014/12/04(木)17:14 ID:hjxCxC4V(1/2) AAS
スレ立てるまでもない質問はここで 139匹目から来ました。
JavaCCで負の数と引き算を識別したいんですけど、どう定義したらいいでしょうか?
以下現状の一部抜粋(メソッド名についてはスルーしてください)
void enzan3() :
{}
{
enzan4()((<TASU>|<HIKU>)right=enzan4())*
}
void enzan4() :
{}
{
enzan5()((<KAKERU>|<WARU>)enzan5())*
}
void enzan5() :
{}
{
<MOZI>|[<HIKU>]<SUUZI>|"(" e=enzan3() ")"
}
118(1): 2014/12/04(木)18:52 ID:jHjIGczB(1) AAS
>>117
そのスレの997以降のはやってないの?
number=0..9
plus::=<expr> + <expr>
minus::=<expr> - <expr>
expr::=<number>|<plus>|<minus>
な感じになるだろうし
単項のマイナスはexprにかからない形式で-が出てきた時だし間違いようがなさそうに思うんだけど
119(1): 2014/12/04(木)20:49 ID:hjxCxC4V(2/2) AAS
あ。
そこの
>単項演算子と二項演算子の区別
についてはまだ調べてないです。
調べてみます。
二項演算子+,-の間に二項演算子*,/を含む式があって、
その中にカッコか数字か変数呼び出しなどがあるように定義するのではないのですか?
例えば
-1
1-2
-2*4
2/(-2+5)
などの書き方が使えるようになるといいなとか考えています。
>>118
::=って書き方は確かBNF記法でしたっけ?
その書き方についてぜんぜん知らないのでそれも調べてみます。
120(2): 2014/12/06(土)17:09 ID:evyQIgPT(1) AAS
みんなBNFとかやってるのか
char配列にして解析してるから常に最後が';'だと楽なんだよね
'{'で+1、'}'で-1、+-0の状態で';'がきたらその構文が完結する
int a;, class {}; switch{}; void hey(){}; if(true){}; for(){};
121(2): 2014/12/06(土)17:17 ID:djm9MkQZ(1) AAS
演算子の優先順位はどうしてんの?
122: 2014/12/06(土)17:30 ID:5oGFUyw+(1/2) AAS
べつに区切り文字が = だろうが : だろうが ::= だろうが BNF は BNF だ
上下前次1-新書関写板覧索設栞歴
あと 527 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.010s