Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the pythonic-string-reader Reference Manual, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:26:39 2018 GMT+0.
• Introduction: | What pythonic-string-reader is all about | |
• Systems: | The systems documentation | |
• Files: | The files documentation | |
• Packages: | The packages documentation | |
• Definitions: | The symbols documentation | |
• Indexes: | Concepts, functions, variables and data types |
* Pythonic String Reader This is a piece of code stolen from Yury Sulsky which has been slightly modified/improved by myself. It sets up some reader macros that make it simpler to input string literals which contain backslashes and double quotes. This is very useful for writing complicated docstrings and, as it turns out, writing code that contains string literals that contain code themselves. ** Enabling the syntax Pythonic String Reader is implemented using modern read-table management libraries like Named Readtables, so it should be even more unintrusive than it was originally designed. To use the this read macro, you can simply use the readtable =pythonic-string-syntax= in the package by putting the following at the beginning of your files: #+begin_src lisp (in-readtable pythonic-string-syntax) #+end_src Or use any of the ways Named Readtables allows you to define and combine readtables, for instance: #+begin_src lisp (defreadtable my-readtable (:merge :standard) (:merge pythonic-string-syntax)) #+end_src ... or ... #+begin_src lisp (defreadtable my-readtable (:merge :standard) (:macro-char #\" #'pythonic-string-reader::read-multiline-string t)) (in-readtable my-readtable) #+end_src *** I don't want to use Named Readtables To enable the reader syntax, run =enable-pythonic-string-syntax= and to disable use =disable-pythonic-string-syntax=. ** Usage The string reader will treat any bit of code that contains three consecutive double quotes specially. If it finds three consecutive double quotes, it will start reading and won't stop until it finds another three consecutive double quotes. All text in between is taken as literal. It is impossible to escape anything. As an extension, if the reader finds four consecutive double quotes (i.e. it finds the opening three double quotes, then finds one more immediately after those), it will do the same as above, except it will not end until it reaches another four consecutive double quotes. This is particularly useful if you want to trick your text editor into treating the string you are writing as normal code instead of a string. *** Examples Note that in these examples I still balance quotes. This is needed so that Slime doesn't get confused and think there is still input to be had. This is not the case when code is loaded or compiled using the =load= or =compile-file= commands (which is what users will experience). #+begin_src CL-USER> """ hello\ """ " hello\\ " CL-USER> """ hello\ """" " " " CL-USER> """hello""" "hello" CL-USER> """ \ """ " \\ " CL-USER> """ " " """ " \" \" " CL-USER> """" hello """" " hello " CL-USER> """" hello """ " """" " hello \"\"\" \" " #+end_src ** TODO Perhaps I will integrate with CL-Syntactic-Sugar in the future, as that used to be a way to wrangle all of these reader macros in a sane way. I feel like Named-Readtables has accomplished this in a cleaner way though.
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The pythonic-string-reader system: |
Zach Kost-Smith <zachkostsmith@gmail.com>
Yury Sulsky and Zach Kost-Smith
A simple and unintrusive read table modification that allows for simple string literal definition that doesn’t require escaping characters.
named-readtables
pythonic-string-reader.asd (file)
pythonic-string-reader.lisp (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files: |
• The pythonic-string-reader.asd file: | ||
• The pythonic-string-reader/pythonic-string-reader.lisp file: |
Next: The pythonic-string-reader/pythonic-string-reader<dot>lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
pythonic-string-reader.asd
pythonic-string-reader (system)
Previous: The pythonic-string-reader<dot>asd file, Up: Lisp files [Contents][Index]
pythonic-string-reader (system)
pythonic-string-reader.lisp
read-multiline-string (function)
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The pythonic-string-reader package: |
pythonic-string-reader.lisp (file)
read-multiline-string (function)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions: | ||
• Internal definitions: |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported functions: |
Previous: Exported definitions, Up: Exported definitions [Contents][Index]
pythonic-string-reader.lisp (file)
pythonic-string-reader.lisp (file)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal functions: |
Previous: Internal definitions, Up: Internal definitions [Contents][Index]
pythonic-string-reader.lisp (file)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index: | ||
• Function index: | ||
• Variable index: | ||
• Data type index: |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | F L P |
---|
Jump to: | F L P |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | D E F R |
---|
Jump to: | D E F R |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | P S |
---|
Jump to: | P S |
---|