From 5b4ab7bb7010b099a127c57a9756f1c7d9f0ef54 Mon Sep 17 00:00:00 2001 From: sergey-raevskiy Date: Wed, 3 Sep 2014 17:37:47 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE=D1=81=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=B8=D0=B9=20Exception.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dwarf-cs/dwarf.core/lang/Lexer.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dwarf-cs/dwarf.core/lang/Lexer.cs b/dwarf-cs/dwarf.core/lang/Lexer.cs index de5d1d4..21b96ed 100644 --- a/dwarf-cs/dwarf.core/lang/Lexer.cs +++ b/dwarf-cs/dwarf.core/lang/Lexer.cs @@ -181,6 +181,7 @@ public IEnumerable Tokenize(string source) var state = 0; var pos = 0; + var tok = ""; // HACK source += (char) 0xffff; @@ -194,6 +195,7 @@ public IEnumerable Tokenize(string source) matcher.Reset(); } + tok = ""; state = 1; } @@ -214,6 +216,12 @@ public IEnumerable Tokenize(string source) break; } } + + if (token == null && source[pos] != 0xffff) + { + tok += source[pos]; + throw new Exception(String.Format("Unknown token: {0}", tok)); + } } if (token != null) @@ -223,6 +231,7 @@ public IEnumerable Tokenize(string source) } else { + tok += source[pos]; pos ++; } }