Source

HH-Parse / package-hh-parse.lisp

;; Copyright (c) 2010 Phil Hargett

;; Permission is hereby granted, free of charge, to any person obtaining a copy
;; of this software and associated documentation files (the "Software"), to deal
;; in the Software without restriction, including without limitation the rights
;; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
;; copies of the Software, and to permit persons to whom the Software is
;; furnished to do so, subject to the following conditions:

;; The above copyright notice and this permission notice shall be included in
;; all copies or substantial portions of the Software.

;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
;; THE SOFTWARE.

(defpackage #:hh-parse-asd
  (:use :cl :asdf))

(in-package :hh-parse-asd)

(defpackage :hh-parse
  (:nicknames :hh-parse)
  (:use :cl 
	;; external
	:cl-fad

	;; project
	:hh-utils 

	)
  (:export
   
   ;; Exported symbols go here

   ;; source
   #:source-code-file
   #:source-code-position
   #:make-source
  
   #:source-text
   #:insert-line
   #:insert-text

   #:lines-of
   #:current-position
   #:current-line
   #:current-line-position
   #:current-column-position

   ;; AST nodes
   #:ast-node-type
   #:ast-node-value

   ;; grammars
   ;; #:+ from CL
   ;; #:* from CL
   ;; #:= from CL
   ;; #:+= from CL
   #:? 
   #:^ 

   #:start-rule
   #:defgrammar
   #:specification
   #:reduction

   ;; grammar -- reduction actions
   #:ignore-terms
   #:list-terms

   ;; lexers
   #:deflexer
   #:source
   #:state
   ;; #:position already experted by CL-USER
   #:lexer-error
   #:next-token
   #:copy-lexer

   ;; parsers
   #:make-parser
   #:expected-next-symbols
   #:parse-token
   #:parse-input
   #:get-parse-result

   ))