Initial implementation (hopefully) done
This commit is contained in:
+13
-13
@@ -1,5 +1,5 @@
|
||||
(defpackage :cl-quantum/parse
|
||||
(:use :cl :cl-quantum)
|
||||
(:use :cl :cl-quantum/state)
|
||||
(:export #:parse-real
|
||||
#:parse-complex
|
||||
#:parse-state
|
||||
@@ -7,10 +7,10 @@
|
||||
|
||||
(in-package :cl-quantum/parse)
|
||||
|
||||
(defconstant +parse-real-regexp+
|
||||
(ppcre:create-scanner
|
||||
"^(\\s*([-+]?[0-9]+)(?:/([0-9]+)|\\.?([0-9]*)(?:[eE]([-+]?[0-9]+))?)\\s*)"
|
||||
:extended-mode t)
|
||||
(define-constant +parse-real-regexp+
|
||||
(ppcre:create-scanner
|
||||
"^(\\s*([-+]?[0-9]+)(?:/([0-9]+)|\\.?([0-9]*)(?:[eE]([-+]?[0-9]+))?)\\s*)"
|
||||
:extended-mode t)
|
||||
"The regexp scanner used in `parse-real'.")
|
||||
|
||||
(defun parse-real (string &key (start 0) end junk-allowed)
|
||||
@@ -44,10 +44,10 @@ stopped. That is, the index of the first un-parsed character."
|
||||
(list 0 0)
|
||||
(error "Malformed number: ~s" (subseq string start end))))))
|
||||
|
||||
(defconstant +parse-complex-regexp+
|
||||
(ppcre:create-scanner
|
||||
"^\\s*([-+])?\\s*([-+]?)([0-9/.]+(?:[eE][-+]?[0-9]+)?)?(i)?"
|
||||
:extended-mode t)
|
||||
(define-constatnt +parse-complex-regexp+
|
||||
(ppcre:create-scanner
|
||||
"^\\s*([-+])?\\s*([-+]?)([0-9/.]+(?:[eE][-+]?[0-9]+)?)?(i)?"
|
||||
:extended-mode t)
|
||||
"The regexp scanner used in `parse-complex'.")
|
||||
|
||||
(defun parse-complex (string &key (start 0) end junk-allowed)
|
||||
@@ -83,10 +83,10 @@ which parsing stopped. That is, the index of the first un-parsed character."
|
||||
(error "Junk in string: ~s" (subseq string start end))
|
||||
(return (values num pos)))))
|
||||
|
||||
(defconstant +parse-state-regexp+
|
||||
(ppcre:create-scanner
|
||||
"^\\s*([-+])?\\s*(\\()?\\s*([-+0-9ei./]*)\\s*(\\))?\\s*\\|([^>]*)>"
|
||||
:extended-mode t)
|
||||
(define-constant +parse-state-regexp+
|
||||
(ppcre:create-scanner
|
||||
"^\\s*([-+])?\\s*(\\()?\\s*([-+0-9ei./]*)\\s*(\\))?\\s*\\|([^>]*)>"
|
||||
:extended-mode t)
|
||||
"The regexp scanner used in `parse-state'.")
|
||||
|
||||
(defun parse-bits-state (state)
|
||||
|
||||
Reference in New Issue
Block a user