clase
play

CLASE Cursor Library for A Structured Editor T ool Demo Tristan - PowerPoint PPT Presentation

CLASE Cursor Library for A Structured Editor T ool Demo Tristan Allwood (tora@doc.ic.ac.uk) Susan Eisenbach (s.eisenbach@imperial.ac.uk) Zip! Photo from http://www.flickr.com/photos/sarmax/109561164/ Cursor Library for A Structured


  1. CLASE Cursor Library for A Structured Editor “T ool Demo” Tristan Allwood (tora@doc.ic.ac.uk) Susan Eisenbach (s.eisenbach@imperial.ac.uk) Zip! Photo from http://www.flickr.com/photos/sarmax/109561164/ Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  2. Polite Notice This talk will feature code snippets! Code a user has Code that is in Code that can be to write the CLASE autogenerated with library T.H. scripts “Blue User” “Green Library” “Generated Orange” http://www.flickr.com/photos/alkalinezoo http://www.flickr.com/photos/cambridgelib/ http://www.flickr.com/photos/webel/76 /2374201026/ 2343211287/ 665500/ Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  3. A Sample Language module Lam.Lam where data Lam = Lam Exp data Exp = Abs String Type Exp | App Exp Exp | Var Integer | NoExp data Type = Unit | Arr Type Type | NoType Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  4. A CLASE Cursor λ λ τ λ τ ( x : ? . x) >( y : . z : . (z y))< Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  5. A CLASE Cursor λ λ τ λ τ ( x : ? . x) >( y : . z : . (z y))< it Abs “y” Unit Abs “z” Unit App Var 0 Var 1 Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  6. A CLASE Cursor λ λ τ λ τ ( x : ? . x) >( y : . z : . (z y))< context it Abs “y” Lam' App' ² Unit Abs “z” Abs “x” Unit App NoType Var 0 Var 0 Var 1 Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  7. A CLASE Cursor data Cursor l x a = (Reify l a) => Cursor { it :: a, ctx :: Path l (Context l) a l, log :: Route l a x } λ λ τ λ τ ( x : ? . x) >( y : . z : . (z y))< context it Abs “y” Lam' App' ² Unit Abs “z” Abs “x” Unit App NoType Var 0 Var 0 Var 1 Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  8. Generating Boilerplate {-# LANGUAGE TemplateHaskell #-} module Lam.Gen where import Lam.Lam import Data.Cursor.CLASE.Gen.Adapters import Data.Cursor.CLASE.Gen.Language import Data.Cursor.CLASE.Gen.Persistence $(languageGen ["Lam", "Language"] ''Lam [''Lam, ''Exp, ''Type]) $(adapterGen ["Lam", "Adapters"] ''Lam [''Lam, ''Exp, ''Type] "Lam.Language") $(persistenceGen ["Lam", "Persistence"] ''Lam [''Lam, ''Exp, ''Type] "Lam.Language") main :: IO () main = return () Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  9. Generating Boilerplate {-# LANGUAGE TemplateHaskell #-} module Lam.Gen where import Lam.Lam import Data.Cursor.CLASE.Gen.Adapters import Data.Cursor.CLASE.Gen.Language import Data.Cursor.CLASE.Gen.Persistence $(languageGen ["Lam", "Language"] ''Lam [''Lam, ''Exp, ''Type]) $(adapterGen ["Lam", "Adapters"] ''Lam [''Lam, ''Exp, ''Type] "Lam.Language") $(persistenceGen ["Lam", "Persistence"] ''Lam [''Lam, ''Exp, ''Type] "Lam.Language") main :: IO () main = return () Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  10. Generating Boilerplate {-# LANGUAGE TemplateHaskell #-} module Lam.Gen where import Lam.Lam import Data.Cursor.CLASE.Gen.Adapters import Data.Cursor.CLASE.Gen.Language import Data.Cursor.CLASE.Gen.Persistence $(languageGen ["Lam", "Language"] ''Lam [''Lam, ''Exp, ''Type]) $(adapterGen ["Lam", "Adapters"] ''Lam [''Lam, ''Exp, ''Type] "Lam.Language") $(persistenceGen ["Lam", "Persistence"] ''Lam [''Lam, ''Exp, ''Type] "Lam.Language") main :: IO () main = return () Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

  11. Generating Boilerplate {-# LANGUAGE TemplateHaskell #-} module Lam.Gen where import Lam.Lam import Data.Cursor.CLASE.Gen.Adapters import Data.Cursor.CLASE.Gen.Language import Data.Cursor.CLASE.Gen.Persistence $(languageGen ["Lam", "Language"] ''Lam [''Lam, ''Exp, ''Type] ) $(adapterGen ["Lam", "Adapters"] ''Lam [''Lam, ''Exp, ''Type] "Lam.Language") $(persistenceGen ["Lam", "Persistence"] ''Lam [''Lam, ''Exp, ''Type] "Lam.Language") main :: IO () main = return () Cursor Library for A Structured Editor Tristan Allwood, Susan Eisenbach

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend