summary refs log tree commit diff stats
path: root/lib/base/devel/lex.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/base/devel/lex.nim')
-rw-r--r--lib/base/devel/lex.nim73
1 files changed, 0 insertions, 73 deletions
diff --git a/lib/base/devel/lex.nim b/lib/base/devel/lex.nim
deleted file mode 100644
index 34f0c32a8..000000000
--- a/lib/base/devel/lex.nim
+++ /dev/null
@@ -1,73 +0,0 @@
-# Lexer generator for Nimrod
-#   (c) 2008 Andreas Rumpf
-
-# Stress testing for the macro feature
-
-# the syntax that should be supported is:
-
-# template numpostfix = 
-#   '\'' & 'F'|'f'|'i'|'I' & "32"|"64"|"8"|"16"
-# template edigits = 
-#   'e'|'E' & +digits
-# tokens(
-#   tkIdent: +UniIdentStart & *UniIdentRest,
-#   tkHexNumber: '0' & ('x'|'X') & +hexDigits & ?( numpostfix ),
-#   tkOctNumber: '0' & ('c'|'C') & +octDigits & ?( numpostfix ),
-#   tkBinNumber: '0' & ('b'|'B') & +binDigits & ?( numpostfix ),
-#   tkIntNumber: +digits & ?( numpostfix ), 
-#   tkFloatNumber: +digits & ('.' & +digits & ?(edigits) | edigits) & ?(numpostfix),
-#   
-# )
-# actions(
-#   tkIdent: lookup
-# ) 
-# 
-
-#
-#  match inputstream
-#  of +('A'..'Z' | '_' | 'a'..'z') *('A'..'Z' | '_' | 'a'..'z' | '0'..'9') :
-#    
-#    x = inputstream[pos..length]
-#  of '0' 'x' +('0'..'9' | 'a'..'f' | '_' | 'A'..'F') : 
-#    y = ...
-
-const
-  AsciiLetter = {'A'..'Z', 'a'..'z'}
-  uniLetter = AsciiLetter + {'\128'..'\255'}
-  digits = {'0'..'9'}
-  hexDigits = {'0'..'9', 'a'..'f', 'A'..'F'}
-  octDigits = {'0'..'7'}
-  binDigits = {'0'..'1'}
-  AsciiIdentStart = AsciiLetter + {'_'} 
-  AsciiIdentRest = AsciiIdentStart + Digits
-  UniIdentStart = UniLetter + {'_'} 
-  UniIdentRest = UniIdentStart + Digits
-
-# --> if match(s, +AsciiIdentStart & *AsciiIdentRest): 
-
-#  Regular expressions in Nimrod itself!
-#  -------------------------------------
-#  
-#  'a' -- matches the character a
-#  'a'..'z'  -- range operator '-'
-#  'A' | 'B' -- alternative operator |
-#  * 'a' -- prefix * is needed
-#  + 'a' -- prefix + is needed
-#  ? 'a' -- prefix ? is needed
-#  *? prefix is needed
-#  +? prefix is needed
-#  letter  -- character classes with real names!
-#  letters
-#  white
-#  whites
-#  any   -- any character
-#  ()    -- are Nimrod syntax
-#  ! 'a'-'z'
-#  
-#  -- concatentation via proc call:
-#  
-#  re('A' 'Z' *word  )
-
-macro re(n: expr): expr = 
-  
-  result = newCall("magic_re", x)