Submit Search
Scalalr
0 likes
370 views
I
ichikaz3
Scalalr
Software
Read more
1 of 25
Download now
Download to read offline
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
More Related Content
PDF
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ra Zon
PPTX
Scalaで学ぶ関数型言語超入門
yujiro_t
PDF
Scala勉強会_2014_11_18
Shuya Tsukamoto
KEY
Scalaはじめました!
Asami Abe
PDF
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
PDF
ScalaでBacklogの通知bot作ったで
Asami Abe
PPTX
Java使いにとっての関数
amkt922
PDF
Scala.js触ってみた
Asami Abe
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ra Zon
Scalaで学ぶ関数型言語超入門
yujiro_t
Scala勉強会_2014_11_18
Shuya Tsukamoto
Scalaはじめました!
Asami Abe
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
ScalaでBacklogの通知bot作ったで
Asami Abe
Java使いにとっての関数
amkt922
Scala.js触ってみた
Asami Abe
What's hot
(7)
PDF
Scala基礎勉強会 懇親会LT
pocketberserker
PDF
Lets scala
smdkk
KEY
Beginners Scala in FAN 20121009
Taisuke Shiratori
PDF
ADVENTAR の Bot を作る with Haskell
Nobutada Matsubara
PDF
頑張りすぎないScala
takezoe
PPTX
SQLドリルの話(仮)
Yuuki Tan-nai
PDF
[Scalamatsuri2016]あ、社内コミュニティ
hirotakanosato
Scala基礎勉強会 懇親会LT
pocketberserker
Lets scala
smdkk
Beginners Scala in FAN 20121009
Taisuke Shiratori
ADVENTAR の Bot を作る with Haskell
Nobutada Matsubara
頑張りすぎないScala
takezoe
SQLドリルの話(仮)
Yuuki Tan-nai
[Scalamatsuri2016]あ、社内コミュニティ
hirotakanosato
Ad
Similar to Scalalr
(10)
PDF
第1回名古屋Android勉強会Lt用資料
tantack
PDF
Javascript as an Embedded DSL - Expression Problemの解法例
Yasuyuki Maeda
PDF
ScalaでAndroidアプリ開発
papamitra
PDF
An engineer uses monads
Kousuke Ruichi
PDF
Scala超入門 - 2014/12/13 Scala関西勉強会
Asami Abe
PPT
Power of Scala
Kota Mizushima
PDF
Scalaの文字列処理 Day 2 リテラル・補間子・特殊な文字
ynupc
PDF
MoteMote Compiler Plugin
yoshiaki iwanaga
PDF
Dslからのコードジェネレーションで楽々play開発
Yoshiteru Takeshita
PPTX
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
第1回名古屋Android勉強会Lt用資料
tantack
Javascript as an Embedded DSL - Expression Problemの解法例
Yasuyuki Maeda
ScalaでAndroidアプリ開発
papamitra
An engineer uses monads
Kousuke Ruichi
Scala超入門 - 2014/12/13 Scala関西勉強会
Asami Abe
Power of Scala
Kota Mizushima
Scalaの文字列処理 Day 2 リテラル・補間子・特殊な文字
ynupc
MoteMote Compiler Plugin
yoshiaki iwanaga
Dslからのコードジェネレーションで楽々play開発
Yoshiteru Takeshita
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
Ad
Scalalr
1.
Scalalr: Scala上でいい感じの見た目の DSLを作るためのライブラリ
2.
• Twitter: @phenan •
Github: phenan • 今日の話: 面白いライブラリを作ったので紹介します
3.
こんな感じでDSLを定義する
4.
JValue のDSL
5.
こうかいて これをよびたい JValue のDSL
6.
こうかいて これをよびたい カンマくぎり JValue のDSL
7.
JValue のDSL JSONのObjectの かきかた Objectのそれぞれの プロパティ
8.
こんな感じで使える!
9.
こんな感じで使える! これ
10.
これ こんな感じで使える!
11.
これ こんな感じで使える! これ
12.
括弧がいっぱいある
13.
括弧は言語の境界を表す JSON DSLに Scala value をわたしている
14.
括弧は言語の境界を表す Scalaに JSON DSLを わたしている 1ライナーのDSLなら()はいらない
15.
注目してほしい点
16.
Scala でこんなの書けたっけ?
17.
Scala でこんなの書けたっけ? [a, b]
?
18.
Scala でこんなの書けたっけ? [a, b]
? : のあとは タイプでは?
19.
Scala でこんなの書けたっけ? [a, b]
? : のあとは タイプでは? {a, b} ?
20.
コンパイラ拡張?
21.
いいえ、 素のScalaです
22.
Font Ligature 実は…
23.
Font Ligature ValidなScalaコード
24.
Scalalr • 専用フォントScaligの利用を前提としたコードを生成する • DSLの見た目を自由に変えられるよ!やったね! •
コンパイルに時間がかかるのがちょっとした問題 * 100要素のJSONの配列のコンパイルに3時間以上かかった • 地味に打つのが面倒なのでエディタサポートも開発したい • https://github.com/phenan/scalalr
25.
技術的詳細 • @dsl はアノテーションマクロ •
implicit parameter を悪用してコンパイル時 LALR 構文解析 • 型 → 非終端記号 (文法を表現するやつ) • 任意の部分式を括弧で括ったScala式で置き換え可能にするために ちょっと複雑なことをしている • この手法を応用して字句解析を変更可能にすることもできる (はず) • アンカンファレンスで話してみたい (けどスライドは用意してない)
Download