csharpfftfsharpintegrationinterpolationlinear-algebramathdifferentiationmatrixnumericsrandomregressionstatisticsmathnet
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
3.3 KiB
74 lines
3.3 KiB
(*------------------------------------------------------------------------
|
|
* (c) Microsoft Corporation. All rights reserved
|
|
*
|
|
* Helper functions for the F# lexer lex.mll
|
|
*-----------------------------------------------------------------------*)
|
|
|
|
#light
|
|
|
|
module Microsoft.FSharp.Compiler.Lexhelp
|
|
|
|
open Internal.Utilities
|
|
open Internal.Utilities.Text
|
|
open Internal.Utilities.Pervasives
|
|
open Microsoft.FSharp.Text
|
|
open Microsoft.FSharp.Compiler.ErrorLogger
|
|
open Microsoft.FSharp.Compiler.Ast
|
|
open Microsoft.FSharp.Compiler.AbstractIL
|
|
open Microsoft.FSharp.Compiler.AbstractIL.Internal
|
|
open Microsoft.FSharp.Compiler
|
|
|
|
[<Sealed>]
|
|
type LightSyntaxStatus =
|
|
new : initial:bool * warn : bool -> LightSyntaxStatus
|
|
member ExplicitlySet : bool
|
|
member Status : bool
|
|
member Status : bool with set
|
|
member WarnOnMultipleTokens : bool
|
|
|
|
[<Sealed>]
|
|
type LexResourceManager =
|
|
new : unit -> LexResourceManager
|
|
member InternString : s:string -> string
|
|
|
|
type lexargs =
|
|
{defines: string list;
|
|
ifdefStack: ifdefStack;
|
|
resourceManager: LexResourceManager;
|
|
getSourceDirectory: unit -> string;
|
|
lightSyntaxStatus: LightSyntaxStatus;
|
|
errorLogger: ErrorLogger}
|
|
val resetLexbufPos : string -> UnicodeLexing.Lexbuf -> unit
|
|
val mkLexargs : (unit -> string) * 'a * string list * LightSyntaxStatus * LexResourceManager * ifdefStack * ErrorLogger -> lexargs
|
|
val reusingLexbufForParsing : UnicodeLexing.Lexbuf * ConcreteSyntaxSink option -> (unit -> 'a) -> 'a
|
|
|
|
val internal set_pos : UnicodeLexing.Lexbuf -> Lexing.Position -> unit
|
|
val internal usingLexbufForParsing : UnicodeLexing.Lexbuf * string * ConcreteSyntaxSink option -> (UnicodeLexing.Lexbuf -> 'a) -> 'a
|
|
val internal default_string_finish : 'a -> 'b -> byte[] -> Parser.token
|
|
val internal call_string_finish : ('a -> 'b -> byte[] -> 'c) -> AbstractIL.Internal.Bytes.Bytebuf.t -> 'a -> 'b -> 'c
|
|
val internal add_string : AbstractIL.Internal.Bytes.Bytebuf.t -> string -> unit
|
|
val internal add_int_char : AbstractIL.Internal.Bytes.Bytebuf.t -> int -> unit
|
|
val internal add_unichar : AbstractIL.Internal.Bytes.Bytebuf.t -> int -> unit
|
|
val internal add_byte_char : AbstractIL.Internal.Bytes.Bytebuf.t -> char -> unit
|
|
val internal stringbuf_as_bytes : AbstractIL.Internal.Bytes.Bytebuf.t -> byte[]
|
|
val internal stringbuf_is_bytes : AbstractIL.Internal.Bytes.Bytebuf.t -> bool
|
|
val internal newline : Lexing.LexBuffer<'a> -> unit
|
|
val internal trigraph : char -> char -> char -> char
|
|
val internal digit : char -> int32
|
|
val internal hexdigit : char -> int32
|
|
val internal unicodegraph_short : string -> uint16
|
|
val internal hexgraph_short : string -> uint16
|
|
val internal unicodegraph_long : string -> uint16 option * uint16
|
|
val internal escape : char -> char
|
|
|
|
val inline internal skipToken : bool -> Parser.token -> (bool -> UnicodeLexing.Lexbuf -> Parser.token) -> UnicodeLexing.Lexbuf -> Parser.token
|
|
|
|
exception internal ReservedKeyword of string * Range.range
|
|
exception internal IndentationProblem of string * Range.range
|
|
|
|
module Keywords =
|
|
val internal KeywordOrIdentifierToken : lexargs -> UnicodeLexing.Lexbuf -> string -> Parser.token
|
|
val internal IdentifierToken : lexargs -> UnicodeLexing.Lexbuf -> string -> Parser.token
|
|
val internal QuoteIdentifierIfNeeded : string -> string
|
|
val internal permitFsharpKeywords : bool ref
|
|
val keywordNames : string list
|
|
|