aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers/TextTokenizer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ProtocolBuffers/TextTokenizer.cs')
-rw-r--r--src/ProtocolBuffers/TextTokenizer.cs14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/ProtocolBuffers/TextTokenizer.cs b/src/ProtocolBuffers/TextTokenizer.cs
index 8d639990..d25a5874 100644
--- a/src/ProtocolBuffers/TextTokenizer.cs
+++ b/src/ProtocolBuffers/TextTokenizer.cs
@@ -69,9 +69,15 @@ namespace Google.ProtocolBuffers {
/// </summary>
private int previousColumn = 0;
+#if SILVERLIGHT
+ private const RegexOptions CompiledRegexWhereAvailable = RegexOptions.None;
+#else
+ private const RegexOptions CompiledRegexWhereAvailable = RegexOptions.Compiled;
+#endif
+
// Note: atomic groups used to mimic possessive quantifiers in Java in both of these regexes
private static readonly Regex WhitespaceAndCommentPattern = new Regex("\\G(?>(\\s|(#.*$))+)",
- RegexOptions.Compiled | RegexOptions.Multiline);
+ CompiledRegexWhereAvailable | RegexOptions.Multiline);
private static readonly Regex TokenPattern = new Regex(
"\\G[a-zA-Z_](?>[0-9a-zA-Z_+-]*)|" + // an identifier
"\\G[0-9+-](?>[0-9a-zA-Z_.+-]*)|" + // a number
@@ -79,9 +85,9 @@ namespace Google.ProtocolBuffers {
"\\G\'(?>([^\"\\\n\\\\]|\\\\.)*)(\'|\\\\?$)", // a single-quoted string
RegexOptions.Compiled | RegexOptions.Multiline);
- private static readonly Regex DoubleInfinity = new Regex("^-?inf(inity)?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
- private static readonly Regex FloatInfinity = new Regex("^-?inf(inity)?f?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
- private static readonly Regex FloatNan = new Regex("^nanf?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
+ private static readonly Regex DoubleInfinity = new Regex("^-?inf(inity)?$", CompiledRegexWhereAvailable | RegexOptions.IgnoreCase);
+ private static readonly Regex FloatInfinity = new Regex("^-?inf(inity)?f?$", CompiledRegexWhereAvailable | RegexOptions.IgnoreCase);
+ private static readonly Regex FloatNan = new Regex("^nanf?$", CompiledRegexWhereAvailable | RegexOptions.IgnoreCase);
/** Construct a tokenizer that parses tokens from the given text. */
public TextTokenizer(string text) {