-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathparsegraph.dot
More file actions
39 lines (32 loc) · 1.15 KB
/
Copy pathparsegraph.dot
File metadata and controls
39 lines (32 loc) · 1.15 KB
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
digraph G {
rankdir=TB
margin=0
nodesep=0.1
ranksep=0.4
node [shape=box, style=rounded, fontname=Helvetica, fontsize=12, height=0.4]
edge [arrowsize=0.8]
Program -> {Function, DataDeclaration, TypeSignature, TypeclassDeclaration, InstanceDeclaration}
Function -> {Name, Expr}
DataDeclaration -> {DataType, Name, Tag}
TypeSignature -> {Name, TypeHint}
TypeclassDeclaration -> {Name, TypeHint}
InstanceDeclaration -> {Name, TypeHint, Expr}
Expr -> {ExprVariable, ExprLiteral, ExprConstructor, ExprApplication, ExprLet, ExprLambda, ExprCase}
ExprVariable -> Name
ExprConstructor -> {Tag, Arity}
ExprApplication -> Expr
ExprLet -> Expr
ExprLambda -> Expr
ExprCase -> {CaseAlternative, Expr}
CaseAlternative -> {Pattern, Expr}
Pattern -> {PatternVar, PatternWildcard, PatternLiteral, PatternConstructor}
PatternVar -> Name
PatternLiteral -> Literal
PatternConstructor -> Tag
PatternConstructor -> Pattern
ExprLiteral -> Literal
Literal -> {LiteralInt, LiteralString, LiteralDouble}
TypeHint -> {TypeHintVar, TypeHintConstructor, TypeHintArrow, TypeHintConstraint}
TypeHintVar -> Name
TypeHintConstructor -> DataType
}