github.com/jancarloviray/community@v0.41.1-0.20170124221257-33a66c87cf2f/app/public/codemirror/mode/scheme/index.html (about)

     1  <!doctype html>
     2  
     3  <title>CodeMirror: Scheme mode</title>
     4  <meta charset="utf-8"/>
     5  <link rel=stylesheet href="../../doc/docs.css">
     6  
     7  <link rel="stylesheet" href="../../lib/codemirror.css">
     8  <script src="../../lib/codemirror.js"></script>
     9  <script src="scheme.js"></script>
    10  <style>.CodeMirror {background: #f8f8f8;}</style>
    11  <div id=nav>
    12    <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
    13  
    14    <ul>
    15      <li><a href="../../index.html">Home</a>
    16      <li><a href="../../doc/manual.html">Manual</a>
    17      <li><a href="https://github.com/codemirror/codemirror">Code</a>
    18    </ul>
    19    <ul>
    20      <li><a href="../index.html">Language modes</a>
    21      <li><a class=active href="#">Scheme</a>
    22    </ul>
    23  </div>
    24  
    25  <article>
    26  <h2>Scheme mode</h2>
    27  <form><textarea id="code" name="code">
    28  ; See if the input starts with a given symbol.
    29  (define (match-symbol input pattern)
    30    (cond ((null? (remain input)) #f)
    31  	((eqv? (car (remain input)) pattern) (r-cdr input))
    32  	(else #f)))
    33  
    34  ; Allow the input to start with one of a list of patterns.
    35  (define (match-or input pattern)
    36    (cond ((null? pattern) #f)
    37  	((match-pattern input (car pattern)))
    38  	(else (match-or input (cdr pattern)))))
    39  
    40  ; Allow a sequence of patterns.
    41  (define (match-seq input pattern)
    42    (if (null? pattern)
    43        input
    44        (let ((match (match-pattern input (car pattern))))
    45  	(if match (match-seq match (cdr pattern)) #f))))
    46  
    47  ; Match with the pattern but no problem if it does not match.
    48  (define (match-opt input pattern)
    49    (let ((match (match-pattern input (car pattern))))
    50      (if match match input)))
    51  
    52  ; Match anything (other than '()), until pattern is found. The rather
    53  ; clumsy form of requiring an ending pattern is needed to decide where
    54  ; the end of the match is. If none is given, this will match the rest
    55  ; of the sentence.
    56  (define (match-any input pattern)
    57    (cond ((null? (remain input)) #f)
    58  	((null? pattern) (f-cons (remain input) (clear-remain input)))
    59  	(else
    60  	 (let ((accum-any (collector)))
    61  	   (define (match-pattern-any input pattern)
    62  	     (cond ((null? (remain input)) #f)
    63  		   (else (accum-any (car (remain input)))
    64  			 (cond ((match-pattern (r-cdr input) pattern))
    65  			       (else (match-pattern-any (r-cdr input) pattern))))))
    66  	   (let ((retval (match-pattern-any input (car pattern))))
    67  	     (if retval
    68  		 (f-cons (accum-any) retval)
    69  		 #f))))))
    70  </textarea></form>
    71      <script>
    72        var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
    73      </script>
    74  
    75      <p><strong>MIME types defined:</strong> <code>text/x-scheme</code>.</p>
    76  
    77    </article>