8 people like it.
Like the snippet!
Simple C# Parser
Simple prototype C# AST and parser using the FParsec parser combinator library. Parses a subset of C# 1.1 constructs.
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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
|
// Base type abbreviations
type Name = string
type VarName = Name
type TypeName = Name
type MemberName = Name
type LabelName = Name
type Value = obj
type Literal = Literal of Value
// Expressions
type ArgType = ValueArg | RefArg | OutArg
type Expr =
| Value of Literal
| Variable of VarName
| MethodInvoke of MemberName * Arg list
| PropertyGet of MemberName
| Cast of TypeName * Expr
| InfixOp of Expr * string * Expr
| PrefixOp of string * Expr
| PostfixOp of Expr * string
| TernaryOp of Expr * Expr * Expr
and Arg = Arg of ArgType * Expr
// Statements
type Define = Define of TypeName * VarName
type Init =
| Assign of Name * (* =,+=, etc. *) Expr
| Construct of TypeName * Name * Expr
type Condition = Expr
type Iterator = Expr
type Statement =
| Definition of Define
| Assignment of Init
| PropertySet of MemberName * Expr
| Action of Expr
//| Block/Scope of Statement list
| If of Expr * Block
| IfElse of Expr * Block * Block
| Switch of Expr * Case list
| For of Init list * Condition * Iterator list * Block
| ForEach of Define * Expr * Block
| While of Expr * Block
| DoWhile of Block * Expr
| Throw of Expr
| Try of Block
| Catch of TypeName * Block
| Finally of Block
| Lock of Expr * Block
| Using of Expr * Block
| Label of LabelName
| Goto of LabelName
| Break
| Continue
| Return of Expr
//| Directive of Name
and Case =
| Case of Literal * Block
| Default of Block
and Block = Statement list
// Modifiers
type Access = Public | Private | Protected | Internal
type Modifier = Static | Sealed | Override | Virtual | Abstract
// Members
type ReturnType = TypeName
type MemberInfo = MemberInfo of Access * Modifier option * ReturnType * Name
type IsReadOnly = bool
type ParamType = ByValue | ByRef | Out | Params
type Param = Param of ParamType * TypeName * VarName
type PreConstruct = PreConstruct of Name * Param list
type Member =
| Field of Access * Modifier option * IsReadOnly *
ReturnType * Name * Expr option
| Property of MemberInfo * Block option * Block option
| Method of MemberInfo * Param list * Block
| Constructor of Access * Modifier option * Name * Param list *
PreConstruct option * Block
// Types
type Members = Member list
type Implements = Name list
type EnumValue = EnumValue of Name * Value
type CSharpType =
| Class of Access * Modifier option * Name * Implements * Members
| Struct of Access * Name * Member list
| Interface of Access * Name * Implements * Member list
| Enum of Access * TypeName * EnumValue list
| Delegate of Access * Name * ReturnType * Param list
// Namespace scopes
type Import =
| Import of Name list
| Alias of Name * Name list
type NamespaceScope =
| Namespace of Import list * Name list * NamespaceScope list
| Types of Import list * CSharpType list
|
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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
|
open FParsec
// White space
let maxCount = System.Int32.MaxValue
let pcomment = pstring "//" >>. many1Satisfy ((<>) '\n')
let pspaces = spaces >>. many (spaces >>. pcomment >>. spaces)
let pmlcomment = pstring "/*" >>. skipCharsTillString "*/" true (maxCount)
let ws = pspaces >>. many (pspaces >>. pmlcomment >>. pspaces) |>> (fun _ -> ())
let ws1 = spaces1
let str_ws s = pstring s .>> ws
let str_ws1 s = pstring s .>> ws1
// Literals
type Lit = NumberLiteralOptions
let numberFormat = Lit.AllowMinusSign ||| Lit.AllowFraction ||| Lit.AllowExponent
let pnumber : Parser<Literal, unit> =
numberLiteral numberFormat "number"
|>> fun nl ->
if nl.IsInteger then Literal(int nl.String)
else Literal(float nl.String)
let ptrue = str_ws "true" |>> fun _ -> Literal(true)
let pfalse = str_ws "false" |>> fun _ -> Literal(false)
let pbool = ptrue <|> pfalse
let pstringliteral =
let normalChar = satisfy (fun c -> c <> '\\' && c <> '"')
let unescape c = match c with
| 'n' -> '\n'
| 'r' -> '\r'
| 't' -> '\t'
| c -> c
let escapedChar = pstring "\\" >>. (anyOf "\\nrt\"" |>> unescape)
between (pstring "\"") (pstring "\"")
(manyChars (normalChar <|> escapedChar))
|>> fun s -> Literal(s)
let pliteral = pnumber <|> pbool <|> pstringliteral
// Expressions
let pexpr, pexprimpl = createParserForwardedToRef ()
let reserved = ["for";"do"; "while";"if";"switch";"case";"default";"break" (*;...*)]
let pidentifierraw =
let isIdentifierFirstChar c = isLetter c || c = '_'
let isIdentifierChar c = isLetter c || isDigit c || c = '_'
many1Satisfy2L isIdentifierFirstChar isIdentifierChar "identifier"
let pidentifier =
pidentifierraw
>>= fun s ->
if reserved |> List.exists ((=) s) then fail "keyword"
else preturn s
let pidentifier_ws = pidentifier .>> ws
let pvar = pidentifier |>> fun x -> Variable(x)
let pargref = str_ws1 "ref" |>> fun _ -> RefArg
let pargout = str_ws1 "out" |>> fun _ -> OutArg
let pargtype = (opt pargref <|> opt pargout)
|>> function Some x -> x | None -> ValueArg
let parg = pargtype .>>. pexpr |>> fun (by,e) -> Arg(by,e)
let pinvoke =
pidentifier_ws .>>.
between (str_ws "(") (str_ws ")") (many parg)
|>> fun (name,args) -> MethodInvoke(name,args)
let pcast =
let ptypecast = between (str_ws "(") (str_ws ")") pidentifier_ws
ptypecast .>>. pexpr |>> fun (name,e) -> Cast(name,e)
let pvalue = (pliteral |>> fun x -> Value(x)) <|>
attempt pinvoke <|> attempt pvar <|> attempt pcast
type Assoc = Associativity
let opp = OperatorPrecedenceParser<Expr,unit,unit>()
pexprimpl := opp.ExpressionParser
let term = pvalue .>> ws <|> between (str_ws "(") (str_ws ")") pexpr
opp.TermParser <- term
let inops = ["+";"-";"*";"/";"%"
"&&"; "||"; ">>"; "<<"; "&"; "|"; "^"
"==";"!=";"<=";">=";"<";">";"??"
"."]
for op in inops do
opp.AddOperator(InfixOperator(op, ws, 1, Assoc.Left, fun x y -> InfixOp(x, op, y)))
let preops = ["-";"++";"--"]
for op in preops do
opp.AddOperator(PrefixOperator(op, ws, 1, true, fun x -> PrefixOp(op, x)))
opp.AddOperator(PrefixOperator("new", ws1, 1, true, fun x -> PrefixOp("new", x)))
let postops = ["++";"--"]
for op in postops do
opp.AddOperator(PostfixOperator(op, ws, 1, true, fun x -> PostfixOp(x, op)))
let pexpr' = between (str_ws "(") (str_ws ")") pexpr
// Statement blocks
let pstatement, pstatementimpl = createParserForwardedToRef()
let psinglestatement = pstatement |>> fun statement -> [statement]
let pstatementblock =
psinglestatement <|>
between (str_ws "{") (str_ws "}") (many pstatement)
// Assignement statements
let pdefine = pipe2 (pidentifier .>> ws1) (pidentifier)
(fun ty name -> Define(ty,name))
let pdefinition = pdefine |>> fun d -> Definition(d)
let passign = pipe3 pidentifier_ws (str_ws "=") pexpr
(fun var _ expr -> Assign(var,expr))
let pconstruct =
pipe4
(pidentifier .>> ws1)
pidentifier_ws
(str_ws "=")
pexpr
(fun ty name _ e -> Construct(ty, name, e))
let passignment = attempt passign <|> attempt pconstruct |>> fun c -> Assignment(c)
// Selection statements
let pif =
pipe2 (str_ws "if" >>. pexpr') pstatementblock
(fun e block -> If(e,block))
let pifelse =
pipe3 (str_ws "if" >>. pexpr') pstatementblock (str_ws "else" >>. pstatementblock)
(fun e t f -> IfElse(e,t,f))
let pcase = str_ws1 "case" >>. pliteral .>> str_ws ":"
let pcaseblock = pipe2 pcase (many pstatement) (fun case block -> Case(case,block))
let pdefault = str_ws "default" >>. str_ws ":"
let pdefaultblock = pdefault >>. (many pstatement) |>> fun block -> Default(block)
let pcases' = many pcaseblock .>>. opt pdefaultblock
|>> fun (cases,d) -> cases@(Option.toList d)
let pcases = between (str_ws "{") (str_ws "}") pcases'
let pswitch =
pipe2 (str_ws "switch" >>. pexpr') pcases
(fun e cases -> Switch(e, cases))
// Iteration statements
let pforargs =
let pinit = attempt passign <|> attempt pconstruct
pipe3
(sepBy pinit (str_ws ",") .>> str_ws ";")
(pexpr .>> str_ws ";")
(sepBy pexpr (str_ws ","))
(fun from until steps -> from, until, steps)
let pfor =
pipe2
(str_ws "for" >>. between (str_ws "(") (str_ws ")") pforargs)
pstatementblock
(fun (inits,until,iterators) block -> For(inits,until,iterators,block))
let pforeachargs =
pipe3 pdefine (str_ws1 "in") pexpr
(fun define _ collection -> define, collection)
let pforeach =
pipe2 (str_ws "foreach" >>. pforeachargs) pstatementblock
(fun (define,collection) block -> ForEach(define,collection,block))
let pwhile =
pipe2 (str_ws "while" >>. pexpr') pstatementblock
(fun e block -> While(e,block))
let pdowhile =
pipe2
(str_ws "do" >>. pstatementblock)
(str_ws "while" >>. pexpr')
(fun block e -> DoWhile(block, e))
// Jump statements
let preturn = str_ws1 "return" >>. pexpr |>> fun e -> Return(e)
let pbreak = str_ws "break" |>> fun _ -> Break
let pcontinue = str_ws "continue" |>> fun _ -> Continue
let pgoto = str_ws1 "goto" >>. pidentifier_ws |>> fun label -> Goto(label)
let plabel =
pidentifier_ws .>> str_ws ":"
|>> fun label -> Label(label)
// Exception statements
let pthrow = str_ws1 "throw" >>. pexpr |>> fun e -> Throw(e)
let ptry = str_ws "try" >>. pstatementblock |>> fun block -> Try(block)
let pfinally = str_ws "finally" >>. pstatementblock |>> fun block-> Finally(block)
let pexception = between (str_ws "(") (str_ws ")") pidentifier_ws
let pcatch = str_ws "catch" >>. pexception .>>. pstatementblock
|>> fun (ex,block) -> Catch(ex, block)
// Lock statement
let plock =
str_ws "lock" >>. pexpr' .>>. pstatementblock
|>> (fun (e,block) -> Lock(e,block))
// Statement implementation
let paction = pexpr |>> fun e -> Action(e)
pstatementimpl :=
attempt (preturn .>> str_ws ";") <|>
attempt (pbreak .>> str_ws ";") <|>
attempt (pcontinue .>> str_ws ";") <|>
attempt (pgoto .>> str_ws ";") <|>
attempt (pdefinition .>> str_ws ";") <|>
attempt (passignment .>> str_ws ";") <|>
attempt (paction .>> str_ws ";") <|>
attempt plabel <|>
attempt pifelse <|> attempt pif <|>
attempt pswitch <|>
attempt pfor <|> attempt pforeach <|>
attempt pwhile <|> attempt pdowhile <|>
attempt pthrow <|>
attempt ptry <|> attempt pcatch <|> attempt pfinally
attempt plock
// Access
let ppublic = str_ws1 "public" |>> fun _ -> Public
let pprivate = str_ws1 "private" |>> fun _ -> Private
let pprotected = str_ws1 "protected" |>> fun _ -> Protected
let pinternal = str_ws1 "internal" |>> fun _ -> Internal
let paccess =
opt (ppublic <|> pprivate <|> pprotected <|> pinternal)
|>> (fun access -> defaultArg access Internal)
// Modifiers
let psealed = str_ws1 "sealed" |>> fun _ -> Sealed
let pstatic = str_ws1 "static" |>> fun _ -> Static
let pmodifier = psealed <|> pstatic
// Parameters
let pref = str_ws "ref" |>> fun _ -> ByRef
let pout = str_ws1 "out" |>> fun _ -> Out
let pparams = str_ws1 "params" |>> fun _ -> Params
let pby = (opt pout <|> opt pref <|> opt pparams)
|>> function Some x -> x | None -> ByValue
let pparam =
pipe3 pby pidentifier_ws pidentifier_ws
(fun by ty name -> Param(by,ty,name))
let pparamlist= str_ws "(" >>. sepBy pparam (str_ws ",") .>> str_ws ")"
// Members
let pmemberinfo =
pipe4 paccess (opt pmodifier) pidentifier_ws pidentifier_ws
(fun access modifier ty name -> MemberInfo(access,modifier,ty,name))
let preadonly = str_ws1 "readonly"
let pfieldpreamble =
pipe3 paccess (opt pmodifier) (opt preadonly)
(fun access modifier ro -> (access, modifier, Option.isSome ro))
let pfield =
pipe4 pfieldpreamble pidentifier_ws pidentifier_ws (str_ws ";")
(fun (access,modifier,ro) rt name _ -> Field(access, modifier, ro, rt, name, None))
let pget = str_ws "get" >>. pstatementblock
let pset = str_ws "set" >>. pstatementblock
let ppropertyblock =
between (str_ws "{") (str_ws "}") ((opt pget) .>>. (opt pset))
let pproperty =
pipe2 pmemberinfo ppropertyblock
(fun mi (gblock,sblock) -> Property(mi,gblock,sblock))
let pmethod =
pipe3 pmemberinfo pparamlist pstatementblock
(fun mi ps block -> Method(mi,ps,block))
let pconstructor =
pipe5 paccess (opt pmodifier) pidentifier_ws pparamlist pstatementblock
(fun access modifier name ps block ->
Constructor(access, modifier, name, ps, None, block))
let pmember =
attempt pfield <|> attempt pmethod <|> attempt pproperty <|> attempt pconstructor
let pmembersblock = between (str_ws "{") (str_ws "}") (many pmember)
|>> (fun members -> members)
let penumblock =
between (str_ws "{") (str_ws "}") (sepBy pidentifier_ws (str_ws ","))
|>> fun names -> names |> List.mapi (fun i name -> EnumValue(name,i))
// Types
let pclasspreamble =
paccess .>>. (opt pmodifier) .>> (str_ws1 "class")
let pimplements =
opt (str_ws ":" >>. sepBy1 (pidentifier_ws) (str_ws ","))
|>> function Some xs -> xs | None -> []
let pclass =
pipe4 pclasspreamble pidentifier_ws pimplements pmembersblock
(fun (access,modifier) name implements block ->
Class(access, modifier, name, implements, block))
let pstruct =
pipe4 paccess (str_ws1 "struct") pidentifier_ws pmembersblock
(fun access _ name block -> Struct(access, name, block))
let pinterface =
pipe5 paccess (str_ws1 "interface") pidentifier_ws pimplements pmembersblock
(fun access _ name implements block ->
Interface(access, name, implements, block))
let penum =
pipe4 paccess (str_ws1 "enum") pidentifier_ws penumblock
(fun access _ name block -> Enum(access, name, block))
let pdelegate =
pipe5 paccess (str_ws1 "delegate") pidentifier_ws pidentifier_ws pparamlist
(fun access _ ty name ps -> Delegate(access, ty, name, ps))
let ptypedeclaration =
pclass <|> pstruct <|> pinterface <|> penum <|> pdelegate
// Scopes
let pnsscope, pscopeimpl = createParserForwardedToRef()
let pnsscopesblock = between (str_ws "{") (str_ws "}") (many pnsscope)
let pns = sepBy1 pidentifier_ws (str_ws ".")
let palias = str_ws1 "using" >>. pidentifier_ws >>. str_ws "=" .>>. pns
|>> fun (alias,name) -> Alias(alias,name)
let popen = str_ws1 "using" >>. pns |>> fun name -> Import(name)
let pimport = (attempt popen <|> attempt palias) .>> str_ws ";"
let pnsblock =
pipe3 (many pimport) (str_ws1 "namespace" >>. pns) pnsscopesblock
(fun imports name block ->
let types = Types([],[])
Namespace(imports,name,block))
let ptypes =
pipe2 (many pimport) (many1 ptypedeclaration)
(fun imports classes -> Types(imports, classes))
pscopeimpl := ws >>. (pnsblock <|> ptypes)
|
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:
|
let program = """
using System;
namespace CompanyName {
namespace ProjectName.FolderName {
/* My class */
class MyClass : IMarker {
float y;
// My foo
bool MyMethod(string arg) {
string s = (string) "hello"; // assign string lit
for(int i = 1; i<=100; i++) {
if (i % 15 == 0) Console.WriteLine("FizzBuzz");
}
switch(y) { case 0: break; case 1: y = 1; default: }
bool x;
x = true;
while(x) {
if (true) { x = false; } else if (false) { goto end; }
}
end:
return true;
}
bool MyProp {
get { }
set { y = value; }
}
}
struct MyStruct { }
interface IMarker { }
enum MyEnum { One, Two, Three }
}
}
"""
run pnsscope program
|
Multiple items
val string : value:'T -> string
Full name: Microsoft.FSharp.Core.Operators.string
--------------------
type string = System.String
Full name: Microsoft.FSharp.Core.string
type VarName = Name
Full name: Script.VarName
type Name = string
Full name: Script.Name
type TypeName = Name
Full name: Script.TypeName
type MemberName = Name
Full name: Script.MemberName
type LabelName = Name
Full name: Script.LabelName
type Value = obj
Full name: Script.Value
type obj = System.Object
Full name: Microsoft.FSharp.Core.obj
Multiple items
union case Literal.Literal: Value -> Literal
--------------------
type Literal = | Literal of Value
Full name: Script.Literal
--------------------
type LiteralAttribute =
inherit Attribute
new : unit -> LiteralAttribute
Full name: Microsoft.FSharp.Core.LiteralAttribute
--------------------
new : unit -> LiteralAttribute
type ArgType =
| ValueArg
| RefArg
| OutArg
Full name: Script.ArgType
union case ArgType.ValueArg: ArgType
union case ArgType.RefArg: ArgType
union case ArgType.OutArg: ArgType
type Expr =
| Value of Literal
| Variable of VarName
| MethodInvoke of MemberName * Arg list
| PropertyGet of MemberName
| Cast of TypeName * Expr
| InfixOp of Expr * string * Expr
| PrefixOp of string * Expr
| PostfixOp of Expr * string
| TernaryOp of Expr * Expr * Expr
Full name: Script.Expr
Multiple items
union case Expr.Value: Literal -> Expr
--------------------
type Value = obj
Full name: Script.Value
union case Expr.Variable: VarName -> Expr
union case Expr.MethodInvoke: MemberName * Arg list -> Expr
type Arg = | Arg of ArgType * Expr
Full name: Script.Arg
type 'T list = List<'T>
Full name: Microsoft.FSharp.Collections.list<_>
union case Expr.PropertyGet: MemberName -> Expr
union case Expr.Cast: TypeName * Expr -> Expr
union case Expr.InfixOp: Expr * string * Expr -> Expr
union case Expr.PrefixOp: string * Expr -> Expr
union case Expr.PostfixOp: Expr * string -> Expr
union case Expr.TernaryOp: Expr * Expr * Expr -> Expr
Multiple items
union case Arg.Arg: ArgType * Expr -> Arg
--------------------
type Arg = | Arg of ArgType * Expr
Full name: Script.Arg
Multiple items
union case Define.Define: TypeName * VarName -> Define
--------------------
type Define = | Define of TypeName * VarName
Full name: Script.Define
type Init =
| Assign of Name * Expr
| Construct of TypeName * Name * Expr
Full name: Script.Init
union case Init.Assign: Name * Expr -> Init
union case Init.Construct: TypeName * Name * Expr -> Init
type Condition = Expr
Full name: Script.Condition
type Iterator = Expr
Full name: Script.Iterator
type Statement =
| Definition of Define
| Assignment of Init
| PropertySet of MemberName * Expr
| Action of Expr
| If of Expr * Block
| IfElse of Expr * Block * Block
| Switch of Expr * Case list
| For of Init list * Condition * Iterator list * Block
| ForEach of Define * Expr * Block
| While of Expr * Block
...
Full name: Script.Statement
union case Statement.Definition: Define -> Statement
union case Statement.Assignment: Init -> Statement
union case Statement.PropertySet: MemberName * Expr -> Statement
union case Statement.Action: Expr -> Statement
union case Statement.If: Expr * Block -> Statement
type Block = Statement list
Full name: Script.Block
union case Statement.IfElse: Expr * Block * Block -> Statement
union case Statement.Switch: Expr * Case list -> Statement
type Case =
| Case of Literal * Block
| Default of Block
Full name: Script.Case
union case Statement.For: Init list * Condition * Iterator list * Block -> Statement
union case Statement.ForEach: Define * Expr * Block -> Statement
union case Statement.While: Expr * Block -> Statement
union case Statement.DoWhile: Block * Expr -> Statement
union case Statement.Throw: Expr -> Statement
union case Statement.Try: Block -> Statement
union case Statement.Catch: TypeName * Block -> Statement
union case Statement.Finally: Block -> Statement
union case Statement.Lock: Expr * Block -> Statement
union case Statement.Using: Expr * Block -> Statement
union case Statement.Label: LabelName -> Statement
union case Statement.Goto: LabelName -> Statement
union case Statement.Break: Statement
union case Statement.Continue: Statement
union case Statement.Return: Expr -> Statement
Multiple items
union case Case.Case: Literal * Block -> Case
--------------------
type Case =
| Case of Literal * Block
| Default of Block
Full name: Script.Case
union case Case.Default: Block -> Case
type Access =
| Public
| Private
| Protected
| Internal
Full name: Script.Access
union case Access.Public: Access
union case Access.Private: Access
union case Access.Protected: Access
union case Access.Internal: Access
type Modifier =
| Static
| Sealed
| Override
| Virtual
| Abstract
Full name: Script.Modifier
union case Modifier.Static: Modifier
Multiple items
union case Modifier.Sealed: Modifier
--------------------
type SealedAttribute =
inherit Attribute
new : unit -> SealedAttribute
new : value:bool -> SealedAttribute
member Value : bool
Full name: Microsoft.FSharp.Core.SealedAttribute
--------------------
new : unit -> SealedAttribute
new : value:bool -> SealedAttribute
union case Modifier.Override: Modifier
union case Modifier.Virtual: Modifier
union case Modifier.Abstract: Modifier
type ReturnType = TypeName
Full name: Script.ReturnType
Multiple items
union case MemberInfo.MemberInfo: Access * Modifier option * ReturnType * Name -> MemberInfo
--------------------
type MemberInfo = | MemberInfo of Access * Modifier option * ReturnType * Name
Full name: Script.MemberInfo
type 'T option = Option<'T>
Full name: Microsoft.FSharp.Core.option<_>
type IsReadOnly = bool
Full name: Script.IsReadOnly
type bool = System.Boolean
Full name: Microsoft.FSharp.Core.bool
type ParamType =
| ByValue
| ByRef
| Out
| Params
Full name: Script.ParamType
union case ParamType.ByValue: ParamType
union case ParamType.ByRef: ParamType
union case ParamType.Out: ParamType
union case ParamType.Params: ParamType
Multiple items
union case Param.Param: ParamType * TypeName * VarName -> Param
--------------------
type Param = | Param of ParamType * TypeName * VarName
Full name: Script.Param
Multiple items
union case PreConstruct.PreConstruct: Name * Param list -> PreConstruct
--------------------
type PreConstruct = | PreConstruct of Name * Param list
Full name: Script.PreConstruct
type Member =
| Field of Access * Modifier option * IsReadOnly * ReturnType * Name * Expr option
| Property of MemberInfo * Block option * Block option
| Method of MemberInfo * Param list * Block
| Constructor of Access * Modifier option * Name * Param list * PreConstruct option * Block
Full name: Script.Member
union case Member.Field: Access * Modifier option * IsReadOnly * ReturnType * Name * Expr option -> Member
union case Member.Property: MemberInfo * Block option * Block option -> Member
union case Member.Method: MemberInfo * Param list * Block -> Member
union case Member.Constructor: Access * Modifier option * Name * Param list * PreConstruct option * Block -> Member
type Members = Member list
Full name: Script.Members
type Implements = Name list
Full name: Script.Implements
Multiple items
union case EnumValue.EnumValue: Name * Value -> EnumValue
--------------------
type EnumValue = | EnumValue of Name * Value
Full name: Script.EnumValue
type CSharpType =
| Class of Access * Modifier option * Name * Implements * Members
| Struct of Access * Name * Member list
| Interface of Access * Name * Implements * Member list
| Enum of Access * TypeName * EnumValue list
| Delegate of Access * Name * ReturnType * Param list
Full name: Script.CSharpType
Multiple items
union case CSharpType.Class: Access * Modifier option * Name * Implements * Members -> CSharpType
--------------------
type ClassAttribute =
inherit Attribute
new : unit -> ClassAttribute
Full name: Microsoft.FSharp.Core.ClassAttribute
--------------------
new : unit -> ClassAttribute
Multiple items
union case CSharpType.Struct: Access * Name * Member list -> CSharpType
--------------------
type StructAttribute =
inherit Attribute
new : unit -> StructAttribute
Full name: Microsoft.FSharp.Core.StructAttribute
--------------------
new : unit -> StructAttribute
Multiple items
union case CSharpType.Interface: Access * Name * Implements * Member list -> CSharpType
--------------------
type InterfaceAttribute =
inherit Attribute
new : unit -> InterfaceAttribute
Full name: Microsoft.FSharp.Core.InterfaceAttribute
--------------------
new : unit -> InterfaceAttribute
union case CSharpType.Enum: Access * TypeName * EnumValue list -> CSharpType
union case CSharpType.Delegate: Access * Name * ReturnType * Param list -> CSharpType
Multiple items
union case Import.Import: Name list -> Import
--------------------
type Import =
| Import of Name list
| Alias of Name * Name list
Full name: Script.Import
union case Import.Alias: Name * Name list -> Import
type NamespaceScope =
| Namespace of Import list * Name list * NamespaceScope list
| Types of Import list * CSharpType list
Full name: Script.NamespaceScope
union case NamespaceScope.Namespace: Import list * Name list * NamespaceScope list -> NamespaceScope
union case NamespaceScope.Types: Import list * CSharpType list -> NamespaceScope
val maxCount : int
Full name: Script.maxCount
namespace System
type Int32 =
struct
member CompareTo : value:obj -> int + 1 overload
member Equals : obj:obj -> bool + 1 overload
member GetHashCode : unit -> int
member GetTypeCode : unit -> TypeCode
member ToString : unit -> string + 3 overloads
static val MaxValue : int
static val MinValue : int
static member Parse : s:string -> int + 3 overloads
static member TryParse : s:string * result:int -> bool + 1 overload
end
Full name: System.Int32
field int.MaxValue = 2147483647
val pcomment : obj
Full name: Script.pcomment
val pspaces : obj
Full name: Script.pspaces
val pmlcomment : obj
Full name: Script.pmlcomment
val ws : obj
Full name: Script.ws
val ws1 : 'a (requires member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.ws1
val str_ws : s:'a -> '_arg3 (requires member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ))
Full name: Script.str_ws
val s : 'a
val str_ws1 : s:'a -> '_arg3 (requires member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.str_ws1
type Lit = | NumberLiteralOptions
Full name: Script.Lit
union case Lit.NumberLiteralOptions: Lit
val numberFormat : 'a
Full name: Script.numberFormat
val pnumber : 'a (requires member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pnumber
type unit = Unit
Full name: Microsoft.FSharp.Core.unit
val nl : 'a
Multiple items
val int : value:'T -> int (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.int
--------------------
type int = int32
Full name: Microsoft.FSharp.Core.int
--------------------
type int<'Measure> = int
Full name: Microsoft.FSharp.Core.int<_>
module String
from Microsoft.FSharp.Core
Multiple items
val float : value:'T -> float (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.float
--------------------
type float = System.Double
Full name: Microsoft.FSharp.Core.float
--------------------
type float<'Measure> = float
Full name: Microsoft.FSharp.Core.float<_>
val ptrue : '_arg3 (requires member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.ptrue
val pfalse : '_arg3 (requires member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pfalse
val pbool : '_arg3 (requires member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pbool
val pstringliteral : '_arg9 (requires member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pstringliteral
val normalChar : 'a
val unescape : (char -> char)
val c : char
val escapedChar : '_arg3
val pliteral : '_arg3 (requires member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pliteral
val pexpr : 'a (requires member ( .>>. ) and member ( .>>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pexpr
val pexprimpl : 'a ref
Full name: Script.pexprimpl
val reserved : string list
Full name: Script.reserved
val pidentifierraw : 'a (requires member ( >>= ) and member ( .>> ) and member ( |>> ) and member ( .>>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pidentifierraw
val isIdentifierFirstChar : (char -> bool)
val isIdentifierChar : (char -> bool)
val pidentifier : '_arg3 (requires member ( .>> ) and member ( |>> ) and member ( .>>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pidentifier
val s : string
Multiple items
module List
from Microsoft.FSharp.Collections
--------------------
type List<'T> =
| ( [] )
| ( :: ) of Head: 'T * Tail: 'T list
interface IEnumerable
interface IEnumerable<'T>
member GetSlice : startIndex:int option * endIndex:int option -> 'T list
member Head : 'T
member IsEmpty : bool
member Item : index:int -> 'T with get
member Length : int
member Tail : 'T list
static member Cons : head:'T * tail:'T list -> 'T list
static member Empty : 'T list
Full name: Microsoft.FSharp.Collections.List<_>
val exists : predicate:('T -> bool) -> list:'T list -> bool
Full name: Microsoft.FSharp.Collections.List.exists
val pidentifier_ws : '_arg3 (requires member ( .>>. ) and member ( >>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pidentifier_ws
val pvar : '_arg3
Full name: Script.pvar
val x : VarName
val pargref : '_arg3
Full name: Script.pargref
val pargout : '_arg3
Full name: Script.pargout
val pargtype : '_arg3 (requires member ( .>>. ) and member ( .>>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.pargtype
union case Option.Some: Value: 'T -> Option<'T>
val x : ArgType
union case Option.None: Option<'T>
val parg : '_arg3
Full name: Script.parg
val by : ArgType
val e : Expr
val pinvoke : '_arg3
Full name: Script.pinvoke
val name : MemberName
val args : Arg list
val pcast : '_arg3
Full name: Script.pcast
val ptypecast : 'a (requires member ( .>>. ) and member ( .>>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
val name : TypeName
val pvalue : '_arg3 (requires member ( .>> ) and member ( <|> ))
Full name: Script.pvalue
val x : Literal
type Assoc = | Associativity
Full name: Script.Assoc
union case Assoc.Associativity: Assoc
val opp : 'a
Full name: Script.opp
val term : '_arg3
Full name: Script.term
val inops : string list
Full name: Script.inops
val op : string
val preops : string list
Full name: Script.preops
val postops : string list
Full name: Script.postops
val pexpr' : 'a (requires member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ))
Full name: Script.pexpr'
val pstatement : 'a (requires member ( |>> ) and member ( <|> ) and member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ))
Full name: Script.pstatement
val pstatementimpl : '_arg3 ref
Full name: Script.pstatementimpl
val psinglestatement : '_arg3 (requires member ( <|> ) and member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ))
Full name: Script.psinglestatement
val statement : 'a
val pstatementblock : '_arg3 (requires member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ))
Full name: Script.pstatementblock
val pdefine : 'a (requires member ( |>> ))
Full name: Script.pdefine
val pdefinition : '_arg3
Full name: Script.pdefinition
val d : Define
val passign : 'a
Full name: Script.passign
val pconstruct : 'a
Full name: Script.pconstruct
val passignment : '_arg3
Full name: Script.passignment
val c : Init
val pif : 'a
Full name: Script.pif
val pifelse : 'a
Full name: Script.pifelse
val pcase : '_arg3
Full name: Script.pcase
val pcaseblock : 'a
Full name: Script.pcaseblock
val pdefault : '_arg3 (requires member ( >>. ) and member ( |>> ))
Full name: Script.pdefault
val pdefaultblock : '_arg3
Full name: Script.pdefaultblock
val block : Block
val pcases' : '_arg3
Full name: Script.pcases'
val cases : 'a list
val d : 'a option
module Option
from Microsoft.FSharp.Core
val toList : option:'T option -> 'T list
Full name: Microsoft.FSharp.Core.Option.toList
val pcases : 'a
Full name: Script.pcases
val pswitch : 'a
Full name: Script.pswitch
val pforargs : 'a
Full name: Script.pforargs
val pinit : '_arg3
val pfor : 'a
Full name: Script.pfor
val pforeachargs : 'a
Full name: Script.pforeachargs
val pforeach : 'a
Full name: Script.pforeach
val pwhile : 'a
Full name: Script.pwhile
val pdowhile : 'a
Full name: Script.pdowhile
val preturn : '_arg3
Full name: Script.preturn
val pbreak : '_arg3
Full name: Script.pbreak
val pcontinue : '_arg3
Full name: Script.pcontinue
val pgoto : '_arg3
Full name: Script.pgoto
val label : LabelName
val plabel : '_arg3
Full name: Script.plabel
val pthrow : '_arg3
Full name: Script.pthrow
val ptry : '_arg3
Full name: Script.ptry
val pfinally : '_arg3
Full name: Script.pfinally
val pexception : 'a (requires member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( |>> ) and member ( >>. ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ))
Full name: Script.pexception
val pcatch : '_arg3
Full name: Script.pcatch
val ex : TypeName
val plock : '_arg3
Full name: Script.plock
val paction : '_arg3
Full name: Script.paction
val ppublic : '_arg3
Full name: Script.ppublic
val pprivate : '_arg3
Full name: Script.pprivate
val pprotected : '_arg3
Full name: Script.pprotected
val pinternal : '_arg3
Full name: Script.pinternal
val paccess : '_arg3 (requires member ( .>>. ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.paccess
val access : Access option
val defaultArg : arg:'T option -> defaultValue:'T -> 'T
Full name: Microsoft.FSharp.Core.Operators.defaultArg
val psealed : '_arg3 (requires member ( <|> ))
Full name: Script.psealed
val pstatic : '_arg3 (requires member ( <|> ))
Full name: Script.pstatic
val pmodifier : '_arg3
Full name: Script.pmodifier
val pref : '_arg3
Full name: Script.pref
val pout : '_arg3
Full name: Script.pout
val pparams : '_arg3
Full name: Script.pparams
val pby : '_arg3
Full name: Script.pby
val x : ParamType
val pparam : 'a
Full name: Script.pparam
val pparamlist : '_arg3
Full name: Script.pparamlist
val pmemberinfo : 'a
Full name: Script.pmemberinfo
val preadonly : '_arg3 (requires member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ))
Full name: Script.preadonly
val pfieldpreamble : 'a
Full name: Script.pfieldpreamble
val isSome : option:'T option -> bool
Full name: Microsoft.FSharp.Core.Option.isSome
val pfield : 'a
Full name: Script.pfield
val pget : '_arg6 (requires member ( |>> ))
Full name: Script.pget
val pset : '_arg6 (requires member ( |>> ))
Full name: Script.pset
val ppropertyblock : 'a
Full name: Script.ppropertyblock
val pproperty : 'a
Full name: Script.pproperty
val pmethod : 'a
Full name: Script.pmethod
val pconstructor : 'a
Full name: Script.pconstructor
val pmember : '_arg3
Full name: Script.pmember
val pmembersblock : '_arg3
Full name: Script.pmembersblock
val members : 'a
val penumblock : '_arg3
Full name: Script.penumblock
val names : Name list
val mapi : mapping:(int -> 'T -> 'U) -> list:'T list -> 'U list
Full name: Microsoft.FSharp.Collections.List.mapi
val i : int
val name : Name
val pclasspreamble : '_arg3
Full name: Script.pclasspreamble
val pimplements : '_arg3
Full name: Script.pimplements
val xs : 'a list
val pclass : 'a (requires member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( <|> ))
Full name: Script.pclass
val pstruct : 'a (requires member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( <|> ))
Full name: Script.pstruct
val pinterface : 'a (requires member ( <|> ) and member ( <|> ) and member ( <|> ))
Full name: Script.pinterface
val penum : 'a (requires member ( <|> ) and member ( <|> ))
Full name: Script.penum
val pdelegate : 'a (requires member ( <|> ))
Full name: Script.pdelegate
val ptypedeclaration : '_arg3
Full name: Script.ptypedeclaration
val pnsscope : 'a
Full name: Script.pnsscope
val pscopeimpl : '_arg3 ref
Full name: Script.pscopeimpl
val pnsscopesblock : 'a
Full name: Script.pnsscopesblock
val pns : 'a (requires member ( .>>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( |>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( .>> ) and member ( <|> ) and member ( .>> ) and member ( |>> ) and member ( |>> ) and member ( >>. ) and member ( |>> ) and member ( |>> ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( |>> ) and member ( >>. ) and member ( .>> ) and member ( >>. ) and member ( >>. ) and member ( .>> ) and member ( <|> ) and member ( <|> ) and member ( <|> ) and member ( >>. ) and member ( |>> ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( .>>. ) and member ( .>>. ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( |>> ) and member ( <|> ) and member ( |>> ))
Full name: Script.pns
val palias : '_arg3
Full name: Script.palias
val alias : Name
val name : Name list
val popen : '_arg3
Full name: Script.popen
val pimport : '_arg3
Full name: Script.pimport
val pnsblock : 'a (requires member ( <|> ) and member ( >>. ))
Full name: Script.pnsblock
val ptypes : 'a (requires member ( <|> ) and member ( >>. ))
Full name: Script.ptypes
val program : string
Full name: Script.program
More information