topical media & game development

talk show tell print

mobile-query-three-www-vendor-CodeMirror2-mode-scheme-index.htm / htm



  <!doctype html>
  <html>
    <head>
      <title>CodeMirror: Scheme mode</title>
      <link rel="stylesheet" href="../../lib/codemirror.css">
      <script src="../../lib/codemirror.js"></script>
      <script src="scheme.js"></script>
      <style>.CodeMirror {background: #f8f8f8;}</style>
      <link rel="stylesheet" href="../../doc/docs.css">
    </head>
    <body>
      <h1>CodeMirror: Scheme mode</h1>
      <form><textarea id="code" name="code">
  ; See if the input starts with a given symbol.
  (define (match-symbol input pattern)
    (cond ((null? (remain input)) #f)
          ((eqv? (car (remain input)) pattern) (r-cdr input))
          (else #f)))
  
  ; Allow the input to start with one of a list of patterns.
  (define (match-or input pattern)
    (cond ((null? pattern) #f)
          ((match-pattern input (car pattern)))
          (else (match-or input (cdr pattern)))))
  
  ; Allow a sequence of patterns.
  (define (match-seq input pattern)
    (if (null? pattern)
        input
        (let ((match (match-pattern input (car pattern))))
          (if match (match-seq match (cdr pattern)) #f))))
  
  ; Match with the pattern but no problem if it does not match.
  (define (match-opt input pattern)
    (let ((match (match-pattern input (car pattern))))
      (if match match input)))
  
  ; Match anything (other than '()), until pattern is found. The rather
  ; clumsy form of requiring an ending pattern is needed to decide where
  ; the end of the match is. If none is given, this will match the rest
  ; of the sentence.
  (define (match-any input pattern)
    (cond ((null? (remain input)) #f)
          ((null? pattern) (f-cons (remain input) (clear-remain input)))
          (else
           (let ((accum-any (collector)))
             (define (match-pattern-any input pattern)
               (cond ((null? (remain input)) #f)
                     (else (accum-any (car (remain input)))
                           (cond ((match-pattern (r-cdr input) pattern))
                                 (else (match-pattern-any (r-cdr input) pattern))))))
             (let ((retval (match-pattern-any input (car pattern))))
               (if retval
                   (f-cons (accum-any) retval)
                   #f))))))
  </textarea></form>
      <script>
        var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
      </script>
  
      <p><strong>MIME types defined:</strong> <code>text/x-scheme</code>.</p>
  
    </body>
  </html>
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.