https://qiita.com/drafts/17bce50c6b4b1d602988
カテゴリー: プログラム
DeclVisitorが呼んでくれる関数のリスト
clangのDeclVisitorが呼んでくれる関数のリストがお手軽にほしかったので調べてみました。 以下のコマンドで出力することができます。 # DeclVisitor.hのマクロを参考にいたしました。 [crayo… 続きを読む DeclVisitorが呼んでくれる関数のリスト
gitとPrivateRipository(bitbucket)を作る
bitbucketでprivate ripositoryを作成しておく 作業ディレクトリでcloneする
1 2 3 4 5 |
$git clone https://bbbae@bitbucket.org/bbbae/private_repository_name $cd private_repository_name $git remote -v origin https://bbbae@bitbucket.org/bbbae/private_repository_name (fetch) origin https://bbbae@bitbucket.org/bbbae/private_repository_name (push) |
作業状態を確認 [crayon-62b69e17… 続きを読む gitとPrivateRipository(bitbucket)を作る
Private Ripository
bitbucketのプライベートリポジトリ bitbucketには個人のプライベートリポジトリを作成することができる。 技術的な動作確認等でサンプルでソースコードを書くこともあり、少しずつだけれど増えていって結構な量とな… 続きを読む Private Ripository
[Haskell]4つのWord8からWord32に変更する
入力で受け取ったByteStringを32bitの数値で扱いたい。 いろいろ方法がありそうだけど、自前で作成してみた。Cならばunionで4バイト領域にへunsigned charとunsigned longとしてアクセ… 続きを読む [Haskell]4つのWord8からWord32に変更する
重要なのは「分かっている」ということ
もうずいぶん前から、10年近くはなるんじゃないだろうか。いまに至るまでもずうっと考えていて、文章にはしていなかったこと。「関数プログラミング実践入門」という本にそのまま書いてあった。 …ここでの「分かっている… 続きを読む 重要なのは「分かっている」ということ
[haskell]リストの扱い参考サイト
とても参考になりました。ありがとう! Haskellのリスト操作関数リストアップ(一覧)
[haskell]Data.IniをつかってINIファイルを読み書き
Data.Iniを使ってINIファイルを読み書きできるようになりました。ただ、ちょっと不味かろう、使い勝手悪かろうというという後味。 Data.IniをつかってINIファイルを読み書き
[haskell]iniファイルとexception
ini形式のデータをパースして値を取得できるようにします。また、ファイルが無いときの例外キャッチをできるようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
{-# LANGUAGE ScopedTypeVariables #-} module Main where import qualified Data.HashMap as HM import qualified Data.Ini as Ini import qualified Data.Text as Tx import Control.Exception.Safe main::IO () main = do fi < - Ini.readIniFile "test.ini" `catch` (\(e::SomeException) -> do putStrLn $ displayException e return $ Ini.parseIni (Tx.pack "") ) case fi of Left fil -> putStrLn "" Right fir -> do putStrLn $ get (Tx.pack "あ") (Tx.pack "sessionId") fir putStrLn $ get (Tx.pack "い") (Tx.pack "sessionId") fir putStrLn $ getFromStr (Tx.pack "あ") return () where get::Tx.Text -> Tx.Text -> Ini.Ini -> String get section key ini = case Ini.lookupValue section key ini of Left l -> l Right r -> Tx.unpack r getFromStr::Tx.Text -> String getFromStr section = case Ini.parseIni (Tx.pack "[あ]\nhost=localhost\nport=6666\nsessionId=ない") of Left il -> il Right ir -> get section (Tx.pack "sessionId") ir |
[crayon-62b69e171… 続きを読む [haskell]iniファイルとexception
[haskell][BNFC]n3337 Raw-string
n3337のRaw-stringをBNFCで定義する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
{- Unicode: Unicode scalar value Basic Multilingual Plane(BMP) = U+0000 - U+FFFF(*) Supplementary Multilingual Plane = U+010000 - U+10FFFF *) Reserved U+D800 - U+DFFF for Surrogate Pair encode rule. => char r-char: Any member of the source character set, except a right parenthesis ) followed by the initial d-char-sequence (which may be empty) followd by a double quote. => (char - [")"]) d-char: Any member of the basic source character set except: space, the left parenthesis (, the right parenthesis ), the backslash \, and the control characters representing horizontal tab, vertical tab, form feed, and newline. => (basic source char - ["() \\\t\v\f\n"]) 2.3 Character sets The basic source character set onsists of 96 characters: the space character, the control characters representing horizontal tab, vertical tab, form feed, and new-line, plus the following 91 graphical characters: a-z, A-Z, 0-9 and _{} []#() <>%:; .?*+- /^&|~ !=,\" ' => ["\t\v\f\n0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_{}[]#()<>%:;.?*+-/^&|~!=,\\\"\'"] -} LTest. Test::= Raw_string; token Raw_string ({"u8"} | ["uUL"])? {"R\""} (["\t\n0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_{}[]#()<>%:;.?*+-/^&|~!=,\\\"\'"] - ["() \\\t\n"])* '(' (char - [")"])* ')' (["\t\n0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_{}[]#()<>%:;.?*+-/^&|~!=,\\\"\'"] - ["() \\\t\n"])* '"'; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
~$ ./TestRawStr u8R"2sS(あ)6wY" Parse Successful! [Abstract Syntax] LTest (Raw_string "u8R\"2sS(\12354)6wY\"") [Linearized tree] u8R"2sS(あ)6wY" ~$ ~$ ./TestRawStr R"^^(あああ)^^" Parse Successful! [Abstract Syntax] LTest (Raw_string "R\"^^(\12354\12354\12354)^^\"") [Linearized tree] R"^^(あああ)^^" ~$ |
うまくパースしてくれているようで… 続きを読む [haskell][BNFC]n3337 Raw-string