module C-Keywords
exports
  lexical syntax
    "auto"     -> Keyword
    "double"   -> Keyword
    "int"      -> Keyword
    "struct"   -> Keyword
    "break"    -> Keyword
    "else"     -> Keyword
    "long"     -> Keyword
    "switch"   -> Keyword
    "case"     -> Keyword
    "enum"     -> Keyword
    "register" -> Keyword
    "typedef"  -> Keyword
    "char"     -> Keyword
    "extern"   -> Keyword
    "return"   -> Keyword
    "exit"     -> Keyword
    "union"    -> Keyword
    "const"    -> Keyword
    "float"    -> Keyword
    "short"    -> Keyword
    "unsigned" -> Keyword
    "continue" -> Keyword
    "for"      -> Keyword
    "signed"   -> Keyword
    "void"     -> Keyword
    "default"  -> Keyword
    "goto"     -> Keyword
    "sizeof"   -> Keyword
    "volatile" -> Keyword
    "do"       -> Keyword
    "if"       -> Keyword
    "static"   -> Keyword
    "while"    -> Keyword

  lexical restrictions

    "auto"
    "double"   
    "int"      
    "struct"   
    "break"    
    "else"     
    "long"     
    "switch"   
    "case"     
    "enum"     
    "register" 
    "typedef"  
    "char"     
    "extern"   
    "return"   
    "exit"     
    "union"    
    "const"    
    "float"    
    "short"    
    "unsigned" 
    "continue" 
    "for"      
    "signed"   
    "void"     
    "default"  
    "goto"     
    "sizeof"   
    "volatile" 
    "do"       
    "if"       
    "static"   
    "while"    -/- [a-zA-Z\_0-9]

    
