Entries from 2009-06-06 to 1 day

ネストしたincludeに対応するlexer

Cの#includeとか設定ファイルのincludeディレクティブ的なincludeに対応するlexerメモ。「*」指定などのglob対応。Parsec 3で。 tIncluded :: Stream String IO Char => ParsecT String u IO TokenType tIncluded = lexeme $ do try $ symbol "include" glob …

quoteされた文字列用lexer

quoteされた文字列(文字列リテラル)用のlexerメモ。Parsec 3で。 tQuoted :: Stream s m Char => ParsecT s u m TokenType tQuoted = lexeme $ Quoted <$> between (char '"') (char '"') (many quotedChar) where quotedChar = try escapedQ <|> C.satisf…