TOML parsing(TOMLの構文解析)

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 TOMLの構文解析しようぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 勝手にしろだぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru.gif
「 JSONの仕様書が見やすかったから真似しましょうよ」

token type

20201017toml23a1.png

20201017toml20.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ lexical parser を作って 上記のようなトークンに 小分けしようぜ☆」

layer240

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 レイヤー番号 というものを振ってるが、変えたくなったら 勝手に変えるんで☆」

Document

20201010toml9.png

layer230

Document Element

20201010toml10.png

layer225

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 自分の中に 自分を持っているような再帰的構造を TOML では書けるので、複雑になってしまうのは仕方ないぜ☆
レイヤー225 としようぜ☆?」

InlineTable

20201010toml6.png

KeyValue

20201017toml21.png

RightValue

20201010toml8.png

Layer220

Array

20201010toml5.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Toml の配列は 同じ型の要素で統一しないといけないぜ☆
型を混ぜたければ 配列の皮で包んでやる過剰包装をすれば できるよな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 Array の中に Array を入れれる recursive(再帰)構造があるんで 複雑だが、
プログラミングの腕の見せ所だよな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 中身が無い配列も作れることを忘れていて 原因不明のバグを長引かせたが
開き括弧から 閉じかっこまで なんにも通らない線を 忘れないことは重要だぜ☆」

Layer210

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 独立性の高い要素を レイヤー210 としようぜ☆?」

Basic string

"TOML Example"

20201013toml12a2.png

Comment

# This is a TOML document.

20201010toml11.png

DataTime

#offset datetime
odt1 = 1979-05-27T07:32:00Z
odt2 = 1979-05-27T00:32:00-07:00
odt3 = 1979-05-27T00:32:00.999999-07:00

# local datetime
ldt1 = 1979-05-27T07:32:00
ldt2 = 1979-05-27T00:32:00.999999

# local date
ld1 = 1979-05-27

# local time
lt1 = 07:32:00
lt2 = 00:32:00.999999

20201021toml30.png

Escape sequence

\n
\r
\t
\\
\"

20201017toml22.png

Key

weight = 93.5 # weight is the key.

20201017toml18.png

Literal string

'C:\temp'

Literal value

+1.0

20201020toml27.png

Positional Numeral String

20201020toml29.png

<書きかけ>

ツイッターでシェア
みんなに共有、忘れないようにメモ

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント