2017-03-01から1ヶ月間の記事一覧

Google Maps javascript API V3入門マスターを読む

GoogleのAPIkeyは以前取得したものがあったのでそれを使用 例題のsample.html,map.jsを入力して、sample.htmlをブラウザーで読み込ましたが エラーがでて地図が表示されない。 デペロッパーツールを表示させると ApiNotActivatedMapErrorがでて地図が表示さ…

言語のしくみを読む

例題の05filler.strmを実行してみる オプションの-vをつけて実行してみると構文木を表示してくれる。 ./streem -v ../examples/05filter.strm 05filter.strmの中身 seq(100) | filter{x-> x % 2 == 0} | stdout 構文木を表示させたもの NODES: OP: op: | OP:…

言語のしくみを読む

パーサで解析されたスクリプトは構造体のリンクで表現されたノードで返される。 state.lvalにつながれたリンク。 node(node_value) type:NODE_STMTS void** data node(node_op) type:NODE_OP op:strm_string len:1 ptr:“|” lhs: node(node_values) type:NODE…

言語のしくみを読む

./strem ../examples/02hello.strmで実行 main.cのmain関数内のnode_parse_file(&state,argv[i])で止める node.c内のnode_parse_file(parse_state p,const char fname) fnameにはコマンドライン引数"../examples/02hello.strm"が入っている fnameで指示され…

言語のしくみを読む

node_run関数 strm_seq_init(),strm_socket_init()が準備を完了させたら 次に呼ぶのがexec_expr関数で、渡されたnodeをswitch文で分岐させながら taskを作ってキューに登録する。登録されたtaskはqueue.cのstrm_queue_exec関数が 実行を行っている。 キュー…

言語のしくみを読む

main関数からstrm_var_def関数を呼び出す 引数の"ARGV"はstrm_stringに保管されてる、av変数にはコマンドラインの 引数が入っているので"ARGV"の名前で保管される。 次はnode_run関数を呼ぶ //exec.c node_init関数内でstrm_var_def関数を使ってシンボルをハ…

言語のしくみを読む

main関数から読んでいく $ ./streem ../examples/02hello.strm main関数 オプション処理部はパスして node_parse_init(&state) //node.c state構造体の初期化 e_progはNULLなのでelse節以降を実行、引数を持っているので最後のelse節を実行 for(i = 1;i < ar…

言語のしくみを読む

Cの開発環境を整備 ソースの分量が増えてきたのでエディタだけで読むのが困難になってきたので Cの統合環境を入れることにした。 最初はeclise C/C++ Linuxを入れたが使い方がわからず。 次にNetBeans IDE 8.2 C/C++ Linuxを入れたところ比較的わかりやすく …

言語のしくみを読む

2-7AST(抽象構文木)に変換 今回はsrcフォルダーに大幅に追加がなされた。 早速makeしてみるが、node.cコンパイル中にy.tab.hがないとエラーが出ている。 Gitで次のtag(201507)に行ってみるとy.tab.hがあったので201506は無視して201507tag で実行。 binフォ…

言語のしくみを読む

2-6キャッシュとシンボル stringを生成するためのstruct sym_keyが新たに定義されている。 渡された文字列の特徴からハッシュ値を取り出している。 これがシンボル検索の高速化に寄与しているのかな? khash.hが新規に追加,string.cが大幅な書き換えとなって…