GenLanguageDef
lexerの設定ファイルとなる型
code:hs
data 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
「ネストされたブロックコメントをサポートするかどうか」
「ネストされたコメント」が具体的に何を指しているのかがわからない
code:hs
haskellStyle, 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なんてものもある
たぶん他の場所にもあるmrsekut.icon