The cl-vhdl Reference Manual

This is the cl-vhdl Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 15:51:08 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cl-vhdl

My attempt to understand VHDL, and basicly make VHDL with Lisp-macro

Author

Alexandr Popolitov <>

License

MIT

Version

0.1

Dependencies
  • iterate (system).
  • cl-itertools (system).
  • cl-ppcre (system).
  • cl-interpol (system).
  • esrap-liquid (system).
  • alexandria (system).
Source

cl-vhdl.asd.

Child Components

3 Modules

Modules are listed depth-first from the system components tree.


3.1 cl-vhdl/parse

Dependency

package.lisp (file).

Source

cl-vhdl.asd.

Parent Component

cl-vhdl (system).

Child Components

3.2 cl-vhdl/parse/grammar

Dependency

parsing.lisp (file).

Source

cl-vhdl.asd.

Parent Component

parse (module).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 cl-vhdl/cl-vhdl.asd

Source

cl-vhdl.asd.

Parent Component

cl-vhdl (system).

ASDF Systems

cl-vhdl.


4.1.2 cl-vhdl/package.lisp

Source

cl-vhdl.asd.

Parent Component

cl-vhdl (system).

Packages

cl-vhdl.


4.1.3 cl-vhdl/parse/parsing-macro.lisp

Source

cl-vhdl.asd.

Parent Component

parse (module).

Public Interface

vhdl-parse (macro).

Internals

4.1.4 cl-vhdl/parse/parsing-ebnf.lisp

Dependency

parsing-macro.lisp (file).

Source

cl-vhdl.asd.

Parent Component

parse (module).

Public Interface

s-exp<-ebnf (function).

Internals

4.1.5 cl-vhdl/parse/parsing.lisp

Dependency

parsing-ebnf.lisp (file).

Source

cl-vhdl.asd.

Parent Component

parse (module).

Public Interface
Internals

4.1.6 cl-vhdl/parse/grammar/parse-design-file.lisp

Source

cl-vhdl.asd.

Parent Component

grammar (module).


4.1.7 cl-vhdl/parse/grammar/parse-decls.lisp

Source

cl-vhdl.asd.

Parent Component

grammar (module).


4.1.8 cl-vhdl/parse/grammar/parse-concurrent.lisp

Source

cl-vhdl.asd.

Parent Component

grammar (module).


4.1.9 cl-vhdl/parse/grammar/parse-sequential.lisp

Source

cl-vhdl.asd.

Parent Component

grammar (module).


4.1.10 cl-vhdl/parse/grammar/parse-interfaces.lisp

Source

cl-vhdl.asd.

Parent Component

grammar (module).


4.1.11 cl-vhdl/parse/grammar/parse-type.lisp

Source

cl-vhdl.asd.

Parent Component

grammar (module).


4.1.12 cl-vhdl/parse/grammar/parse-expressions.lisp

Source

cl-vhdl.asd.

Parent Component

grammar (module).

Internals

4.1.13 cl-vhdl/parse/grammar/parse-misc.lisp

Source

cl-vhdl.asd.

Parent Component

grammar (module).


4.1.14 cl-vhdl/parse/parsing-api.lisp

Dependency

grammar (module).

Source

cl-vhdl.asd.

Parent Component

parse (module).

Public Interface

parse-vhdl-file (function).


4.1.15 cl-vhdl/cl-vhdl.lisp

Dependency

parse (module).

Source

cl-vhdl.asd.

Parent Component

cl-vhdl (system).

Internals

foo (function).


4.2 Static


4.2.1 cl-vhdl/sketches

Dependency

cl-vhdl.lisp (file).

Source

cl-vhdl.asd.

Parent Component

cl-vhdl (system).


5 Packages

Packages are listed by definition order.


5.1 cl-vhdl

Source

package.lisp.

Use List
  • cl-itertools.
  • common-lisp.
  • esrap-liquid.
  • iterate.
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Special variables

Special Variable: *vhdl-strict*

When this parameter is NIL, some restrictions on possible VHDL syntax are relaxed, so as to make it more lispy

Package

cl-vhdl.

Source

parsing.lisp.

Special Variable: *vhdl-version*
Package

cl-vhdl.

Source

parsing.lisp.


6.1.2 Macros

Macro: vhdl-parse (expression text &key start end junk-allowed)
Package

cl-vhdl.

Source

parsing-macro.lisp.


6.1.3 Ordinary functions

Function: parse-vhdl-file (file-name &key junk-allowed)
Package

cl-vhdl.

Source

parsing-api.lisp.

Function: s-exp<-ebnf (syntax)
Package

cl-vhdl.

Source

parsing-ebnf.lisp.


6.2 Internals


6.2.1 Special variables

Special Variable: $+0
Package

cl-vhdl.

Source

parsing.lisp.

Special Variable: $-0
Package

cl-vhdl.

Source

parsing.lisp.

Special Variable: $0
Package

cl-vhdl.

Source

parsing.lisp.

Special Variable: *greedy-char-map*

In this, all the dynamically found misc keywords would be placed, for later greedy parsing

Package

cl-vhdl.

Source

parsing-ebnf.lisp.

Special Variable: *special-symbols*
Package

cl-vhdl.

Source

parsing-ebnf.lisp.

Special Variable: ebnf-aux-contexts
Package

cl-vhdl.

Source

parsing-macro.lisp.

Special Variable: ebnf-aux-rules
Package

cl-vhdl.

Source

parsing-macro.lisp.

Special Variable: toplevel
Package

cl-vhdl.

Source

parsing.lisp.

Special Variable: vhdl-contexts
Package

cl-vhdl.

Source

parsing-macro.lisp.

Special Variable: vhdl-reserved
Package

cl-vhdl.

Source

parsing.lisp.

Special Variable: vhdl-rules
Package

cl-vhdl.

Source

parsing-macro.lisp.


6.2.2 Macros

Macro: aif (test then &optional else)
Package

cl-vhdl.

Source

parsing.lisp.

Macro: define-c-ebnf-aux-rule (symbol args &body body)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: define-c-ebnf-rule (name syntax &body body)
Package

cl-vhdl.

Source

parsing.lisp.

Macro: define-c-vhdl-rule (symbol args &body body)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: define-ebnf-aux-rule (symbol args &body body)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: define-ebnf-rule (name syntax &body body)
Package

cl-vhdl.

Source

parsing.lisp.

Macro: define-plural-rule (name single delim)
Package

cl-vhdl.

Source

parsing-ebnf.lisp.

Macro: define-vhdl-rule (symbol args &body body)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: ebnf-aux-parse (expression text &key start end junk-allowed)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: ebnf-aux-parse-stream (expression stream &key junk-allowed)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: ebnf-aux-parse-token-iter (expression token-iter &key junk-allowed)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: fail-if-reserved (&optional thing)
Package

cl-vhdl.

Source

parsing.lisp.

Macro: maybe-a-binary-operator ()
Package

cl-vhdl.

Source

parse-expressions.lisp.

Macro: mk-ebnf-aux-tokenizer (expression token-iter &key junk-allowed)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: mk-vhdl-tokenizer (expression token-iter &key junk-allowed)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: register-ebnf-aux-context (context-var &rest plausible-contexts)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: register-vhdl-context (context-var &rest plausible-contexts)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: vhdl-parse-stream (expression stream &key junk-allowed)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: vhdl-parse-token-iter (expression token-iter &key junk-allowed)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: with-ebnf-aux-contexts (&body body)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: with-ebnf-aux-rules (&body body)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: with-list-places ((lst) &body body)
Package

cl-vhdl.

Source

parsing.lisp.

Macro: with-vhdl-contexts (&body body)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: with-vhdl-rules (&body body)
Package

cl-vhdl.

Source

parsing-macro.lisp.

Macro: wrapping-in-label (&optional expr)
Package

cl-vhdl.

Source

parsing.lisp.


6.2.3 Ordinary functions

Function: %define-ebnf-rule (name syntax body &key context-sensitive)
Package

cl-vhdl.

Source

parsing.lisp.

Function: %shunting-yard (cur-op cur-lst lst-iter &optional toplevel-p)
Package

cl-vhdl.

Source

parse-expressions.lisp.

Function: binary-char-p (x)
Package

cl-vhdl.

Source

parsing.lisp.

Function: convert-to-binary-string (str init-radix &optional expand-unknown-chars)
Package

cl-vhdl.

Source

parsing.lisp.

Function: esrap-liquid-body (thing)
Package

cl-vhdl.

Source

parsing-ebnf.lisp.

Function: foo (&optional junk-allowed)
Package

cl-vhdl.

Source

cl-vhdl.lisp.

Function: hash<-assoc (x)
Package

cl-vhdl.

Source

parse-expressions.lisp.

Function: hex-char-p (x)
Package

cl-vhdl.

Source

parsing.lisp.

Function: intern-here (x)
Package

cl-vhdl.

Source

parsing.lisp.

Function: joinl (joinee lst)
Package

cl-vhdl.

Source

parsing-ebnf.lisp.

Function: nil-toplevel-p (x)
Package

cl-vhdl.

Source

parsing.lisp.

Function: not-double-quote (x)
Package

cl-vhdl.

Source

parse-expressions.lisp.

Function: octal-char-p (x)
Package

cl-vhdl.

Source

parsing.lisp.

Function: populate-precedence (lst)
Package

cl-vhdl.

Source

parse-expressions.lisp.

Function: reserved-word-p (sym)
Package

cl-vhdl.

Source

parsing.lisp.

Function: shunting-yard (lst ops)

I actually don’t know if it’s an actual shunting yard of Dijkstra – I just thought about my own solution.

Package

cl-vhdl.

Source

parse-expressions.lisp.

Function: special-form-p (x)
Package

cl-vhdl.

Source

parsing-ebnf.lisp.

Function: t-toplevel-p (x)
Package

cl-vhdl.

Source

parsing.lisp.

Function: token-p (x)
Package

cl-vhdl.

Source

parsing-ebnf.lisp.

Function: transform-vararg-times (expr)

Here we recursively look for all { ... }’s and replace them with +’s

Package

cl-vhdl.

Source

parsing-ebnf.lisp.

Function: update-greedy-char-seq-table (str)
Package

cl-vhdl.

Source

parsing-ebnf.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %  
A   B   C   D   E   F   H   I   J   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

%
%define-ebnf-rule: Private ordinary functions
%shunting-yard: Private ordinary functions

A
aif: Private macros

B
binary-char-p: Private ordinary functions

C
convert-to-binary-string: Private ordinary functions

D
define-c-ebnf-aux-rule: Private macros
define-c-ebnf-rule: Private macros
define-c-vhdl-rule: Private macros
define-ebnf-aux-rule: Private macros
define-ebnf-rule: Private macros
define-plural-rule: Private macros
define-vhdl-rule: Private macros

E
ebnf-aux-parse: Private macros
ebnf-aux-parse-stream: Private macros
ebnf-aux-parse-token-iter: Private macros
esrap-liquid-body: Private ordinary functions

F
fail-if-reserved: Private macros
foo: Private ordinary functions
Function, %define-ebnf-rule: Private ordinary functions
Function, %shunting-yard: Private ordinary functions
Function, binary-char-p: Private ordinary functions
Function, convert-to-binary-string: Private ordinary functions
Function, esrap-liquid-body: Private ordinary functions
Function, foo: Private ordinary functions
Function, hash<-assoc: Private ordinary functions
Function, hex-char-p: Private ordinary functions
Function, intern-here: Private ordinary functions
Function, joinl: Private ordinary functions
Function, nil-toplevel-p: Private ordinary functions
Function, not-double-quote: Private ordinary functions
Function, octal-char-p: Private ordinary functions
Function, parse-vhdl-file: Public ordinary functions
Function, populate-precedence: Private ordinary functions
Function, reserved-word-p: Private ordinary functions
Function, s-exp<-ebnf: Public ordinary functions
Function, shunting-yard: Private ordinary functions
Function, special-form-p: Private ordinary functions
Function, t-toplevel-p: Private ordinary functions
Function, token-p: Private ordinary functions
Function, transform-vararg-times: Private ordinary functions
Function, update-greedy-char-seq-table: Private ordinary functions

H
hash<-assoc: Private ordinary functions
hex-char-p: Private ordinary functions

I
intern-here: Private ordinary functions

J
joinl: Private ordinary functions

M
Macro, aif: Private macros
Macro, define-c-ebnf-aux-rule: Private macros
Macro, define-c-ebnf-rule: Private macros
Macro, define-c-vhdl-rule: Private macros
Macro, define-ebnf-aux-rule: Private macros
Macro, define-ebnf-rule: Private macros
Macro, define-plural-rule: Private macros
Macro, define-vhdl-rule: Private macros
Macro, ebnf-aux-parse: Private macros
Macro, ebnf-aux-parse-stream: Private macros
Macro, ebnf-aux-parse-token-iter: Private macros
Macro, fail-if-reserved: Private macros
Macro, maybe-a-binary-operator: Private macros
Macro, mk-ebnf-aux-tokenizer: Private macros
Macro, mk-vhdl-tokenizer: Private macros
Macro, register-ebnf-aux-context: Private macros
Macro, register-vhdl-context: Private macros
Macro, vhdl-parse: Public macros
Macro, vhdl-parse-stream: Private macros
Macro, vhdl-parse-token-iter: Private macros
Macro, with-ebnf-aux-contexts: Private macros
Macro, with-ebnf-aux-rules: Private macros
Macro, with-list-places: Private macros
Macro, with-vhdl-contexts: Private macros
Macro, with-vhdl-rules: Private macros
Macro, wrapping-in-label: Private macros
maybe-a-binary-operator: Private macros
mk-ebnf-aux-tokenizer: Private macros
mk-vhdl-tokenizer: Private macros

N
nil-toplevel-p: Private ordinary functions
not-double-quote: Private ordinary functions

O
octal-char-p: Private ordinary functions

P
parse-vhdl-file: Public ordinary functions
populate-precedence: Private ordinary functions

R
register-ebnf-aux-context: Private macros
register-vhdl-context: Private macros
reserved-word-p: Private ordinary functions

S
s-exp<-ebnf: Public ordinary functions
shunting-yard: Private ordinary functions
special-form-p: Private ordinary functions

T
t-toplevel-p: Private ordinary functions
token-p: Private ordinary functions
transform-vararg-times: Private ordinary functions

U
update-greedy-char-seq-table: Private ordinary functions

V
vhdl-parse: Public macros
vhdl-parse-stream: Private macros
vhdl-parse-token-iter: Private macros

W
with-ebnf-aux-contexts: Private macros
with-ebnf-aux-rules: Private macros
with-list-places: Private macros
with-vhdl-contexts: Private macros
with-vhdl-rules: Private macros
wrapping-in-label: Private macros


A.4 Data types

Jump to:   C   F   G   M   P   S  
Index Entry  Section

C
cl-vhdl: The cl-vhdl system
cl-vhdl: The cl-vhdl package
cl-vhdl.asd: The cl-vhdl/cl-vhdl․asd file
cl-vhdl.lisp: The cl-vhdl/cl-vhdl․lisp file

F
File, cl-vhdl.asd: The cl-vhdl/cl-vhdl․asd file
File, cl-vhdl.lisp: The cl-vhdl/cl-vhdl․lisp file
File, package.lisp: The cl-vhdl/package․lisp file
File, parse-concurrent.lisp: The cl-vhdl/parse/grammar/parse-concurrent․lisp file
File, parse-decls.lisp: The cl-vhdl/parse/grammar/parse-decls․lisp file
File, parse-design-file.lisp: The cl-vhdl/parse/grammar/parse-design-file․lisp file
File, parse-expressions.lisp: The cl-vhdl/parse/grammar/parse-expressions․lisp file
File, parse-interfaces.lisp: The cl-vhdl/parse/grammar/parse-interfaces․lisp file
File, parse-misc.lisp: The cl-vhdl/parse/grammar/parse-misc․lisp file
File, parse-sequential.lisp: The cl-vhdl/parse/grammar/parse-sequential․lisp file
File, parse-type.lisp: The cl-vhdl/parse/grammar/parse-type․lisp file
File, parsing-api.lisp: The cl-vhdl/parse/parsing-api․lisp file
File, parsing-ebnf.lisp: The cl-vhdl/parse/parsing-ebnf․lisp file
File, parsing-macro.lisp: The cl-vhdl/parse/parsing-macro․lisp file
File, parsing.lisp: The cl-vhdl/parse/parsing․lisp file
File, sketches: The cl-vhdl/sketches file

G
grammar: The cl-vhdl/parse/grammar module

M
Module, grammar: The cl-vhdl/parse/grammar module
Module, parse: The cl-vhdl/parse module

P
Package, cl-vhdl: The cl-vhdl package
package.lisp: The cl-vhdl/package․lisp file
parse: The cl-vhdl/parse module
parse-concurrent.lisp: The cl-vhdl/parse/grammar/parse-concurrent․lisp file
parse-decls.lisp: The cl-vhdl/parse/grammar/parse-decls․lisp file
parse-design-file.lisp: The cl-vhdl/parse/grammar/parse-design-file․lisp file
parse-expressions.lisp: The cl-vhdl/parse/grammar/parse-expressions․lisp file
parse-interfaces.lisp: The cl-vhdl/parse/grammar/parse-interfaces․lisp file
parse-misc.lisp: The cl-vhdl/parse/grammar/parse-misc․lisp file
parse-sequential.lisp: The cl-vhdl/parse/grammar/parse-sequential․lisp file
parse-type.lisp: The cl-vhdl/parse/grammar/parse-type․lisp file
parsing-api.lisp: The cl-vhdl/parse/parsing-api․lisp file
parsing-ebnf.lisp: The cl-vhdl/parse/parsing-ebnf․lisp file
parsing-macro.lisp: The cl-vhdl/parse/parsing-macro․lisp file
parsing.lisp: The cl-vhdl/parse/parsing․lisp file

S
sketches: The cl-vhdl/sketches file
System, cl-vhdl: The cl-vhdl system