Class: CodeRay::Scanners::Scheme
- Defined in:
- lib/coderay/scanners/scheme.rb
Overview
Scheme scanner for CodeRay (by closure). Thanks to murphy for putting CodeRay into public.
Constant Summary collapse
- CORE_FORMS =
%w[ lambda let let* letrec syntax-case define-syntax let-syntax letrec-syntax begin define quote if or and cond case do delay quasiquote set! cons force call-with-current-continuation call/cc ]
- IDENT_KIND =
CaseIgnoringWordList.new(:ident). add(CORE_FORMS, :reserved)
- IDENTIFIER =
IDENTIFIER_INITIAL = /[a-z!@$%&*/:<=>?~_^]/i IDENTIFIER_SUBSEQUENT = /#IDENTIFIER_INITIAL|d|.|+|-/ IDENTIFIER = /#IDENTIFIER_INITIAL#IDENTIFIER_SUBSEQUENT*|+|-|.3/
/[a-zA-Z!@$%&*\/:<=>?~_^][\w!@$%&*\/:<=>?~^.+\-]*|[+-]|\.\.\./
- DIGIT =
/\d/
- DIGIT10 =
DIGIT
- DIGIT16 =
/[0-9a-f]/i
- DIGIT8 =
/[0-7]/
- DIGIT2 =
/[01]/
- RADIX16 =
/\#x/i
- RADIX8 =
/\#o/i
- RADIX2 =
/\#b/i
- RADIX10 =
/\#d/i
- EXACTNESS =
/#i|#e/i
- SIGN =
/[\+-]?/
- EXP_MARK =
/[esfdl]/i
- EXP =
/#{EXP_MARK}#{SIGN}#{DIGIT}+/
- SUFFIX =
/#{EXP}?/
- PREFIX10 =
/#{RADIX10}?#{EXACTNESS}?|#{EXACTNESS}?#{RADIX10}?/
- PREFIX16 =
/#{RADIX16}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX16}/
- PREFIX8 =
/#{RADIX8}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX8}/
- PREFIX2 =
/#{RADIX2}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX2}/
- UINT10 =
/#{DIGIT10}+#*/
- UINT16 =
/#{DIGIT16}+#*/
- UINT8 =
/#{DIGIT8}+#*/
- UINT2 =
/#{DIGIT2}+#*/
- DECIMAL =
/#{DIGIT10}+#+\.#*#{SUFFIX}|#{DIGIT10}+\.#{DIGIT10}*#*#{SUFFIX}|\.#{DIGIT10}+#*#{SUFFIX}|#{UINT10}#{EXP}/
- UREAL10 =
/#{UINT10}\/#{UINT10}|#{DECIMAL}|#{UINT10}/
- UREAL16 =
/#{UINT16}\/#{UINT16}|#{UINT16}/
- UREAL8 =
/#{UINT8}\/#{UINT8}|#{UINT8}/
- UREAL2 =
/#{UINT2}\/#{UINT2}|#{UINT2}/
- REAL10 =
/#{SIGN}#{UREAL10}/
- REAL16 =
/#{SIGN}#{UREAL16}/
- REAL8 =
/#{SIGN}#{UREAL8}/
- REAL2 =
/#{SIGN}#{UREAL2}/
- IMAG10 =
/i|#{UREAL10}i/
- IMAG16 =
/i|#{UREAL16}i/
- IMAG8 =
/i|#{UREAL8}i/
- IMAG2 =
/i|#{UREAL2}i/
- COMPLEX10 =
/#{REAL10}@#{REAL10}|#{REAL10}\+#{IMAG10}|#{REAL10}-#{IMAG10}|\+#{IMAG10}|-#{IMAG10}|#{REAL10}/
- COMPLEX16 =
/#{REAL16}@#{REAL16}|#{REAL16}\+#{IMAG16}|#{REAL16}-#{IMAG16}|\+#{IMAG16}|-#{IMAG16}|#{REAL16}/
- COMPLEX8 =
/#{REAL8}@#{REAL8}|#{REAL8}\+#{IMAG8}|#{REAL8}-#{IMAG8}|\+#{IMAG8}|-#{IMAG8}|#{REAL8}/
- COMPLEX2 =
/#{REAL2}@#{REAL2}|#{REAL2}\+#{IMAG2}|#{REAL2}-#{IMAG2}|\+#{IMAG2}|-#{IMAG2}|#{REAL2}/
- NUM10 =
/#{PREFIX10}?#{COMPLEX10}/
- NUM16 =
/#{PREFIX16}#{COMPLEX16}/
- NUM8 =
/#{PREFIX8}#{COMPLEX8}/
- NUM2 =
/#{PREFIX2}#{COMPLEX2}/
- NUM =
/#{NUM10}|#{NUM16}|#{NUM8}|#{NUM2}/
Constants inherited from Scanner
CodeRay::Scanners::Scanner::DEFAULT_OPTIONS, CodeRay::Scanners::Scanner::KINDS_NOT_LOC, CodeRay::Scanners::Scanner::ScanError
Method Summary
Methods inherited from Scanner
#column, #each, file_extension, #initialize, #line, #marshal_dump, #marshal_load, normify, #reset, streamable?, #streaming?, #string=, #tokenize, #tokens
Methods included from Plugin
#helper, #included, #plugin_host, #plugin_id, #register_for, #title
Constructor Details
This class inherits a constructor from CodeRay::Scanners::Scanner