SQLなら俺に訊け [無断転載禁止]©2ch.net (457レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
253
(1): デフォルトの名無しさん [sage] 2024/04/15(月) 12:57:20.78 ID:cLz3iDP/(2/2) AAS
>>251
251(2): デフォルトの名無しさん [sage] 2024/04/15(月) 12:03:59.29 ID:YG3lrvG/(1/3) AAS
>>250
やはり標準環境には無さそうな感じですか

LIKEはexprの一番簡単な例としてです
実際のところC系等の一般用途のプログラミング言語と比べてsqlのexpr文法って異常に複雑じゃありません?
外部リンク[html]:sqlite.org

ASTも印字して欲しいくらいだけど、自分でパーサ書いてみるのも勉強になりそうですね
評価の確認はおとなしくSQLiteに投げて、構文解析慣れてるようだし見本はこれ参考で十分だろう
外部リンク:sqlite.org

lemonって変わったパーサジェネレータ使ってるのけど、見た感じただのyacc変種なので出会ったトークン種別を単に印字させればよいだけ
255: デフォルトの名無しさん [sage] 2024/04/15(月) 14:00:04.64 ID:YG3lrvG/(2/3) AAS
>>252
252(1): デフォルトの名無しさん [sage] 2024/04/15(月) 12:45:09.95 ID:cLz3iDP/(1/2) AAS
普通の言語はstmtの構成要素としてexprが設けられるが、sqlでは逆にexprの中にstmtも入り得る異色の設計だから、exprサブセットのみの評価機は作れないね
まあstmtの評価は単にモックとして構文木を組んでみれば目的には適うし良い勉強になる

区切り文字をあまり使わないSQLは初学者には目に滑る構文だから特にそう
sqliteの構文図見直したらしっかりselect-stmtってありますねえ…

>>253
まさに求めてたやつです、どうも
各処理系のパーサも見較べるとBison向けでルール/アクションの羅列のpsqlの奴が一番わかり易かった
外部リンク[y]:github.com

psql用だけど拡張や高度な機能を気にする段階に無いので、ここから必要そうなのを拾い始めました
sqliteのパーサは中でゴチャゴチャ処理してるけど、psqlのパーサはparser/*.cへアクション内で呼ぶ関数がキレイに分離されていて、記述的命名から意味論まで分かるお手本のようなデザインですね
座右の文法リファレンスとして印刷してそのまま使えそうな出来栄え
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s