summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo <hugo.hornquist@gmail.com>2016-05-09 15:52:13 +0200
committerHugo <hugo.hornquist@gmail.com>2016-05-09 16:10:36 +0200
commit9c3637a69c186fb23fce6b253c866ddfe3a70d1e (patch)
tree53294e2c6a99d512fed053711730468056567f48
parentparser now handles numbers with more than one digit, inculding decimals and o... (diff)
downloadmath-parse-9c3637a69c186fb23fce6b253c866ddfe3a70d1e.tar.gz
math-parse-9c3637a69c186fb23fce6b253c866ddfe3a70d1e.tar.xz
removed everything but the parser, move project from racket to guile
-rw-r--r--full-eval.rkt7
-rw-r--r--gui.rkt83
-rw-r--r--math-parser.scm (renamed from full-parse.rkt)6
-rw-r--r--simple-eval.rkt7
-rw-r--r--simple-parse.rkt6
5 files changed, 1 insertions, 108 deletions
diff --git a/full-eval.rkt b/full-eval.rkt
deleted file mode 100644
index 1a82dff..0000000
--- a/full-eval.rkt
+++ /dev/null
@@ -1,7 +0,0 @@
-#lang racket
-
-(provide full-eval)
-
-(define (full-eval expr)
- (eval expr))
-
diff --git a/gui.rkt b/gui.rkt
deleted file mode 100644
index 98b4f77..0000000
--- a/gui.rkt
+++ /dev/null
@@ -1,83 +0,0 @@
-#lang racket/gui
-
-(provide show-window)
-
-(require racket/format)
-(require racket/class)
-(require (planet williams/table-panel:1:2/table-panel))
-;(require table-panel)
-
-(require "../useful/enumerate-interval.rkt")
-(require "simple-eval.rkt")
-(require "simple-parse.rkt")
-(require "full-eval.rkt")
-(require "full-parse.rkt")
-
-(define (show-window)
- (define frame (new frame% [label "Calculator"]))
-
- (define msg (new message%
- [parent frame]
- [label ""]))
-
- (define root-panel (new vertical-panel%
- [parent frame]
- [alignment '(left top)]))
-
- (define top-op-panel (new horizontal-panel%
- [parent root-panel]
- [alignment '(left top)]))
-
- (define center-panel (new horizontal-panel%
- [parent root-panel]
- [alignment '(left top)]))
-
- (define number-panel (new table-panel%
- [parent center-panel]
- [alignment '(left top)]))
-
- (define left-op-panel (new vertical-panel%
- [parent center-panel]
- [alignment '(left top)]))
-
- (define bottom-op-panel (new horizontal-panel%
- [parent root-panel]
- [alignment '(left top)]))
-
- (send number-panel set-dimensions 3 3)
-
-
- (define (setup-num-btn lbl par)
- (new button%
- [parent par]
- [label (~a lbl)]
- [callback
- (lambda (button event)
- (send msg
- set-label
- (string-append
- (send msg get-label)
- (send button get-label))))]))
-
- (map (lambda (x) (setup-num-btn x top-op-panel)) '("(" ")" "/"))
-
- (map
- (lambda (x) (setup-num-btn x number-panel))
- (enumerate-interval 1 9))
- (map
- (lambda (x) (setup-num-btn x left-op-panel))
- '(* - +))
- (map
- (lambda (x) (setup-num-btn x bottom-op-panel))
- '(0 "." ^ ))
-
-
- (new button%
- [parent bottom-op-panel]
- [label "="]
- [callback
- (lambda (button event)
- (send msg set-label (~a
- (full-eval (full-parse (send msg get-label))))))])
-
- (send frame show #t))
diff --git a/full-parse.rkt b/math-parser.scm
index a20583c..1048250 100644
--- a/full-parse.rkt
+++ b/math-parser.scm
@@ -1,10 +1,6 @@
-#lang racket
-
-(provide full-parse)
-
; parses a function written in mathematical notation to lisp notation
; currently handles (+ - * / ^). It does respect the order of operations
-(define (full-parse str)
+(define (parse-math str)
(define (get-general expr operator next-operation)
; adds a operation to the list of operations
diff --git a/simple-eval.rkt b/simple-eval.rkt
deleted file mode 100644
index 4cf6d4a..0000000
--- a/simple-eval.rkt
+++ /dev/null
@@ -1,7 +0,0 @@
-#lang racket
-
-(provide simple-eval)
-
-(define (simple-eval expr)
- 5)
-
diff --git a/simple-parse.rkt b/simple-parse.rkt
deleted file mode 100644
index b60f5ec..0000000
--- a/simple-parse.rkt
+++ /dev/null
@@ -1,6 +0,0 @@
-#lang racket
-
-(provide simple-parse)
-
-(define (simple-parse str)
- '(5))