Advertisement
Guest User

Untitled

a guest
Jan 9th, 2015
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.90 KB | None | 0 0
  1. type IToken =
  2.     interface
  3.         abstract member row : int32
  4.         abstract member col : int32
  5.     end
  6.  
  7. type Token =
  8.     | Keyword       of name:string *    row:int32 * col:int32
  9.     | Identifier    of name:string *    row:int32 * col:int32
  10.     | Op            of name:string *    row:int32 * col:int32
  11.     | Float         of value:float *    row:int32 * col:int32
  12.     | Int           of value:int64 *    row:int32 * col:int32
  13.     | LParen        of                  row:int32 * col:int32
  14.     | RParen        of                  row:int32 * col:int32
  15.     | LBracket      of                  row:int32 * col:int32
  16.     | RBracket      of                  row:int32 * col:int32
  17.     | Dot           of                  row:int32 * col:int32
  18.     | Comma         of                  row:int32 * col:int32
  19.     | NewLine       of indent:int32 *   row:int32 * col:int32
  20.     interface IToken with
  21.         member s.row =
  22.             match s with
  23.             | Keyword    (_,r,_) -> r
  24.             | Identifier (_,r,_) -> r
  25.             | Op         (_,r,_) -> r
  26.             | Float      (_,r,_) -> r
  27.             | Int        (_,r,_) -> r
  28.             | LParen     (r,_)   -> r
  29.             | RParen     (r,_)   -> r
  30.             | LBracket   (r,_)   -> r
  31.             | RBracket   (r,_)   -> r
  32.             | Dot        (r,_)   -> r
  33.             | Comma      (r,_)   -> r
  34.             | NewLine    (_,r,_) -> r
  35.         member s.col =
  36.             match s with
  37.             | Keyword    (_,_,c) -> c
  38.             | Identifier (_,_,c) -> c
  39.             | Op         (_,_,c) -> c
  40.             | Float      (_,_,c) -> c
  41.             | Int        (_,_,c) -> c
  42.             | LParen     (_,c)   -> c
  43.             | RParen     (_,c)   -> c
  44.             | LBracket   (_,c)   -> c
  45.             | RBracket   (_,c)   -> c
  46.             | Dot        (_,c)   -> c
  47.             | Comma      (_,c)   -> c
  48.             | NewLine    (_,_,c) -> c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement