Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. class Table(var rows: List[Row] = Nil) {
  2. def add(r: Row) = { rows = r :: rows }
  3. }
  4. class Row(var cells: List[Cell] = Nil) {
  5. def add(c: Cell) = { cells = c :: cells }
  6. }
  7. case class Cell(content: String)
  8.  
  9. object test {
  10. def table(init: implicit Table => Unit) = {
  11. implicit val t = new Table()
  12. init
  13. t
  14. }
  15.  
  16. def row(init: implicit Row => Unit)(implicit t: Table) = {
  17. implicit val r = new Row()
  18. init
  19. t.add(r)
  20. }
  21.  
  22. def cell(str: String)(implicit r: Row) =
  23. r.add(Cell(str))
  24.  
  25. val doc = table {
  26. row {
  27. cell("test")
  28. }
  29.  
  30. table {
  31. row {
  32. cell("test2")
  33. }
  34. }
  35. }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement