notepad-plus-plus/lexilla/test/examples/fsharp/Issue93.fs.folded

47 lines
1.6 KiB
Plaintext

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"
1 400 400