📄 simonsexample.ly
字号:
> {> module Parser (parse) where> import Type> import Lexer> }> %token > backslash { Builtin "\\" }> var { Ident $$ }> rightarrow { Builtin "->" }> caseT { Builtin "case" }> letT { Builtin "let" }> ofT { Builtin "of" }> inT { Builtin "in" }> letnT { Builtin "letn" }> leftcurly { LeftCurly }> rightcurly { RightCurly }> equals { Builtin "=" }> colon { Builtin ":" }> cons { Constructor $$ }> leftbracket { LeftBracket }> rightbracket { RightBracket }> semicolon { SemiColon }> percent { Percent }> %name parse> %tokentype { Token }> %%> expr > : backslash var binders rightarrow expr> { foldr Lambda $5 ($2: reverse $3) }> | caseT var ofT leftcurly patterns rightcurly> { Case $2 (reverse $5) }> | letT var equals var expr inT expr> { LetApp ($2,$4,$5) $7 }> | letT var equals expr inT expr> { Let ($2,$4) $6 }> | letnT var equals expr inT expr> { LetN ($2,$4) $6 }> > | labelref colon expr { Label $1 $3 }> | simpleexpr { $1 }> simpleexpr> : cons simpleexprs { Cons $1 (reverse $2) }> | simpleexpr0 { $1 }> > simpleexprs> : simpleexprs simpleexpr0 { $2 : $1 }> | { [] }> > simpleexpr0> : var { Var $1 }> | labelref { LabelRef $1 }> | leftbracket expr rightbracket { $2 }> > patterns> : patterns pattern { $2 : $1 }> | pattern { [ $1 ] }> > pattern : cons binders rightarrow expr semicolon> { ($1, reverse $2, $4) }> > binders : binders var { $2 : $1 }> | { [ ] }> > labelref> : percent var { $2 }> {> happyError :: Int -> a> happyError x = error ("Error at LINE " ++ show x)> }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -