Guest User

Parse tree for http://pastebin.com/TTbCKshW

a guest
Nov 3rd, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 5.25 KB | None | 0 0
  1. (infix CR
  2.  (infix ->
  3.   (infix else
  4.    (infix then
  5.     (prefix
  6.      // If-then-else statement
  7.      if
  8.      true)
  9.     TrueBody)
  10.    FalseBody)
  11.   (prefix
  12.    do
  13.    TrueBody
  14.   ))
  15.  (infix CR
  16.   (infix ->
  17.    (infix else
  18.     (infix then
  19.      (prefix
  20.       if
  21.       false)
  22.      TrueBody)
  23.     FalseBody)
  24.    (prefix
  25.     do
  26.     FalseBody
  27.  
  28.    ))
  29.   (infix CR
  30.    (infix ->
  31.     (infix then
  32.      (prefix
  33.       if
  34.       true)
  35.      TrueBody)
  36.     (prefix
  37.      do
  38.      TrueBody
  39.     ))
  40.    (infix CR
  41.     (infix ->
  42.      (infix then
  43.       (prefix
  44.        if
  45.        false)
  46.       TrueBody)
  47.      false
  48.  
  49.     )
  50.     (infix CR
  51.      (prefix
  52.       // Building lists, notably lists of arguments
  53.       data
  54.       (infix ,
  55.        x
  56.        y
  57.  
  58.       ))
  59.      (infix CR
  60.       (infix ->
  61.        (prefix
  62.         // Console / debugging operations
  63.         write
  64.         (infix ,
  65.          x
  66.          y))
  67.        (infix ;
  68.         (prefix
  69.          write
  70.          x)
  71.         (prefix
  72.          write
  73.          y
  74.         )))
  75.       (infix CR
  76.        (infix ->
  77.         (prefix
  78.          writeln
  79.          x)
  80.         (infix ;
  81.          (prefix
  82.           write
  83.           x)
  84.          writeln
  85.  
  86.         ))
  87.        (infix CR
  88.         (infix ->
  89.          (prefix
  90.           // Min and max functions
  91.           min
  92.           (infix ,
  93.            x
  94.            y))
  95.          (infix else
  96.           (infix then
  97.            (prefix
  98.             if
  99.             (infix <
  100.              x
  101.              (prefix
  102.               min
  103.               y)))
  104.            x)
  105.           (prefix
  106.            min
  107.            y
  108.           )))
  109.         (infix CR
  110.          (infix ->
  111.           (prefix
  112.            min
  113.            y)
  114.           y
  115.          )
  116.          (infix CR
  117.           (infix ->
  118.            (prefix
  119.             max
  120.             (infix ,
  121.              x
  122.              y))
  123.            (infix else
  124.             (infix then
  125.              (prefix
  126.               if
  127.               (infix >
  128.                x
  129.                (prefix
  130.                 max
  131.                 y)))
  132.              x)
  133.             (prefix
  134.              max
  135.              y
  136.             )))
  137.           (infix CR
  138.            (infix ->
  139.             (prefix
  140.              max
  141.              y)
  142.             y
  143.  
  144.            )
  145.            (infix CR
  146.             (infix ->
  147.              (infix in
  148.               (infix :
  149.                // Interval test
  150.                X
  151.                real)
  152.               (infix ..
  153.                (infix :
  154.                 A
  155.                 real)
  156.                (infix :
  157.                 B
  158.                 real)))
  159.              (infix and
  160.               (infix >=
  161.                X
  162.                A)
  163.               (infix <=
  164.                X
  165.                B
  166.  
  167.               )))
  168.             (infix CR
  169.              (infix ->
  170.               (postfix
  171.                // Factorial function
  172.                0
  173.                !)
  174.               1
  175.              )
  176.              (infix CR
  177.               (infix ->
  178.                (infix :
  179.                 N
  180.                 (postfix
  181.                  integer
  182.                  !))
  183.                (infix *
  184.                 N
  185.                 (postfix
  186.                  (block ( )
  187.                   (infix -
  188.                    N
  189.                    1))
  190.                  !)
  191.  
  192.                ))
  193.               (infix CR
  194.                (infix ->
  195.                 (prefix
  196.                  // Boolean to text conversion
  197.                  text
  198.                  true)
  199.                 "true"
  200.                )
  201.                (infix ->
  202.                 (prefix
  203.                  text
  204.                  false)
  205.                 "false"
  206.                ))))))))))))))))
  207. (infix CR
  208.  (infix ->
  209.   (prefix
  210.    // A custom notation to repeat a shape
  211.    (block [ ]
  212.     (infix ..
  213.      A
  214.      B))
  215.    Body)
  216.   (block  indent
  217.    (infix loop
  218.     (prefix
  219.      for
  220.      (infix in
  221.       I
  222.       (infix ..
  223.        A
  224.        B)))
  225.     (block  indent
  226.      (prefix
  227.       locally
  228.       (block  indent
  229.        (infix CR
  230.         (prefix
  231.          color_hsv
  232.          (infix ,
  233.           (infix *
  234.            20
  235.            I)
  236.           (infix ,
  237.            (postfix
  238.             90
  239.             %)
  240.            (infix ,
  241.             (postfix
  242.              70
  243.              %)
  244.             (postfix
  245.              40
  246.              %)
  247.            ))))
  248.         (infix CR
  249.          (prefix
  250.           rotate_z
  251.           (infix *
  252.            17
  253.            I
  254.           ))
  255.          Body
  256.  
  257.         ))))))))
  258.  (infix CR
  259.   (prefix
  260.    // Tao3D can use indentation-based blocks
  261.    (block [ ]
  262.     (infix ..
  263.      1
  264.      5))
  265.    (block  indent
  266.     (infix CR
  267.      (prefix
  268.       ellipse
  269.       (infix ,
  270.        100
  271.        (infix ,
  272.         0
  273.         (infix ,
  274.          140
  275.          30
  276.         ))))
  277.      (infix CR
  278.       (prefix
  279.        translate_x
  280.        (prefix
  281.         -
  282.         180
  283.        ))
  284.       (infix CR
  285.        (prefix
  286.         font
  287.         (infix ,
  288.          "Arial"
  289.          40
  290.         ))
  291.        (prefix
  292.         text
  293.         "Hello"
  294.  
  295.        ))))))
  296.   (prefix
  297.    // Or {} blocks if you prefer...
  298.    (block [ ]
  299.     (infix ..
  300.      3
  301.      20))
  302.    (block { }
  303.     (prefix
  304.      rectangle
  305.      (infix ,
  306.       50
  307.       (infix ,
  308.        20
  309.        (infix ,
  310.         30
  311.         25)))))
  312.   )))
Add Comment
Please, Sign In to add comment