File: Issue93.fs.folded

package info (click to toggle)
scite 5.5.8-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 20,176 kB
  • sloc: cpp: 175,852; ansic: 21,482; python: 7,014; makefile: 934; sh: 257; perl: 252; ruby: 217; sql: 194; php: 63; vhdl: 51; erlang: 47; objc: 22; modula3: 21; cobol: 18; lisp: 18; asm: 17; fortran: 12; ml: 11; xml: 7; tcl: 6
file content (47 lines) | stat: -rw-r--r-- 1,648 bytes parent folder | download | duplicates (2)
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
 2 400 401 + (*
 0 401 401 |     (**  nested comment 1 **)
 2 401 402 +     (*
 0 402 402 |         nested comment 2
 2 402 403 +         (*
 0 403 403 |             nested comment 3
 2 403 404 +             (*
 0 404 404 |                 nested comment 4
 2 404 405 +                 (*
 0 405 405 |                     nested comment 5
 0 405 404 |                 *)
 0 404 403 |             *)
 0 403 402 |         *)
 0 402 401 |     *)
 0 401 400 | *)
 2 400 401 + // declare a namespace
 0 401 400 | // for the module
 0 400 400   namespace Issue93
 1 400 400   
 0 400 400   module NestedComments =
 2 400 401 +     open FSharp.Quotations
 0 401 400 |     open FSharp.Quotations.Patterns
 2 400 401 +     // print the arguments
 0 401 400 |     // of an evaluated expression
 2 400 401 +     (* Example:
 2 401 402 +         (*
 0 402 402 |             printArgs <@ 1 + 2 @> ;;
 0 402 402 |             // 1
 0 402 402 |             // 2
 0 402 401 |         *)
 0 401 400 |     *)
 0 400 400       let printArgs expr =
 0 400 400           let getVal = function Value (v, _) -> downcast v | _ -> null
 0 400 400           match expr with
 0 400 400           | Call (_, _, args) ->
 0 400 400               List.map getVal args |> List.iter (printfn "%A")
 0 400 400           | _ ->
 0 400 400               printfn "not an evaluated expression"
 2 400 401 +     (* Example:
 2 401 402 +         (*
 0 402 402 |             let constExpr = <@ true @> ;;
 0 402 402 |             printArgs constExpr ;;
 0 402 401 |         *)
 0 401 400 |     *)
 2 400 401 +     // Prints:
 0 401 400 |     // "not an evaluated expression"
 0 400   0