GenLanguageDef
lexerの設定ファイルとなる型
hsdata GenLanguageDef s u m = LanguageDef {
commentStart :: String, -- コメント開始
commentEnd :: String, -- コメント終了
commentLine :: String, -- 1行コメントの開始
nestedComments :: Bool, -- わからん
identStart :: ParsecT s u m Char, -- identの始まり
identLetter :: ParsecT s u m Char, -- identの終わり
opStart :: ParsecT s u m Char,
opLetter :: ParsecT s u m Char,
reservedNames :: [String], -- 予約記号
reservedOpNames:: [String], -- 予約語
caseSensitive :: Bool
}
nestedComments
「ネストされたブロックコメントをサポートするかどうか」
「ネストされたコメント」が具体的に何を指しているのかがわからない
hshaskellStyle, javaStyle :: LanguageDef st
haskellStyle = emptyDef
{ commentStart = "{-"
, commentEnd = "-}"
, commentLine = "--"
, nestedComments = True
, identStart = letter
, identLetter = alphaNum <|> oneOf "_'"
, opStart = opLetter haskellStyle
, opLetter = oneOf ":!#$%&*+./<=>?@\\^|-~"
, reservedOpNames= []
, reservedNames = []
, caseSensitive = True
}
javaStyle = emptyDef
{ commentStart = "/*"
, commentEnd = "*/"
, commentLine = "//"
, nestedComments = True
, identStart = letter
, identLetter = alphaNum <|> oneOf "_'"
, reservedNames = []
, reservedOpNames= []
, caseSensitive = False
}
haskellStyleの
reservedOpNames
などは、
ここを見れば一覧できる
既にあるものを利用する
emptyDef
は最もシンプルなもの
haskellDef
や javaStyle
なんてものもある
たぶん他の場所にもある
