ばかげた質問で申し訳ありません。
次のような SQL スキーマがあります (たとえば)。
create table test_table (
id integer not null,
title text,
primary key ("id")
);
create table test_table2 (
id integer not null,
subtitle text,
some_wierd_count integer not null,
primary key ("id")
);
このスキーマから、いくつかの情報のみが必要です。主キー、インデックス、「not null」は気にしません。テーブル名、フィールド名、タイプのみ。
私は次の醜いコードを書きましたが、それは機能しません:
私が思ったように、このコードはこのタイプを埋める必要があります:
data Schema = Schema { schemaTables :: [Table] } deriving (Show)
data Table = Table {
tableName :: String
, tableFields :: [Field]
} deriving (Show)
data Field = Field {
fieldName :: String
, fieldType :: String
} deriving (Show)
しかし、テーブル式の作成内のフィールドセクションを適切に解析する方法がわかりません。フィールド宣言の終わりを検出するにはどうすればよいですか?