[gtksourceview] Highlight invalid hexademicals and octals in C



commit 8fdc4d44ffd64b0eee5f9c8b0a09a3a72ab73708
Author: Garrett Regier <garrettregier gmail com>
Date:   Thu May 24 16:10:02 2012 -0700

    Highlight invalid hexademicals and octals in C

 data/language-specs/c.lang |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)
---
diff --git a/data/language-specs/c.lang b/data/language-specs/c.lang
index 943ca5f..38ca3a5 100644
--- a/data/language-specs/c.lang
+++ b/data/language-specs/c.lang
@@ -51,6 +51,7 @@
     <style id="boolean"           _name="Boolean value"         map-to="def:boolean"/>
     <style id="standard-stream"   _name="Standard stream"       map-to="def:constant"/>
     <style id="signal-name"       _name="Signal name"           map-to="def:constant"/>
+    <style id="error"             _name="Error"                 map-to="def:error"/>
   </styles>
 
   <definitions>
@@ -158,6 +159,14 @@
       </match>
     </context>
 
+    <context id="invalid-hexadecimal" style-ref="error">
+      <match extended="true">
+        (?&lt;![\w\.])
+        0[xX][a-fA-F0-9]*[g-zG-Z][a-zA-Z0-9]*[uUlL]*
+        (?![\w\.])
+      </match>
+    </context>
+
     <context id="octal" style-ref="octal">
       <match extended="true">
         (?&lt;![\w\.])
@@ -166,10 +175,18 @@
       </match>
     </context>
 
+    <context id="invalid-octal" style-ref="error">
+      <match extended="true">
+        (?&lt;![\w\.])
+        0[0-7]*[89][0-9]*[uUlL]*
+        (?![\w\.])
+      </match>
+    </context>
+
     <context id="decimal" style-ref="decimal">
       <match extended="true">
         (?&lt;![\w\.])
-        [0-9]+[uUlL]*
+        [1-9][0-9]*[uUlL]*
         (?![\w\.])
       </match>
     </context>
@@ -296,7 +313,9 @@
         <context ref="char"/>
         <context ref="float"/>
         <context ref="hexadecimal"/>
+        <context ref="invalid-hexadecimal"/>
         <context ref="octal"/>
+        <context ref="invalid-octal"/>
         <context ref="decimal"/>
         <context ref="keywords"/>
         <context ref="operators"/>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]