Anonymous avatar Anonymous committed 28f9e59 Draft

Place Squishy2K distribution in the public domain.

Comments (0)

Files changed (4)

+Squishky2K
+==========
+
+This is the reference distribution for the esoteric programming language
+Squishy2K.
+
+Here is a copy of the email that announced its creation.  That's all the
+docs you get for now.
+
+    .....Subject: [Esoteric] [Languages] New! Squishy2K (v2000.10.06)
+            Date: Fri, 06 Oct 2000 20:56:43 -0500
+            From: Chris Pressey
+    Organization: Cat's Eye Technologies
+              To: Cat's Eye Technologies Mailing List
+
+
+    Back in ancient history I came up with a language which worked like a
+    Turing-Complete EBNF - a compiler-compiler that could also do banal
+    computation via translation.  I wanted to call the language Wirth in
+    honour of the inventor of EBNF.  But the name SQUISHY was proposed and
+    stuck.
+
+    SQUISHY is now left to the sands of time, and this was long before I had
+    ever heard of a semi-Thue grammar or the language Thue.
+
+    But SQUISHY is now back, refurbished for the twenty-first century, in
+    the form of Squishy2K!  Squishy2K is a lot like the original SQUISHY
+    except with more and less.  It's not as much like EBNF anymore.  On the
+    other hand, it's more like a state machine now!  And in Perl it's dead
+    simple, something like 7K of code.
+
+    Squishy2K is a string-rewriting language (read: Thue) embedded within a
+    state machine (read: beta-Juliet) with states-doubling-as-functions
+    thrown in for good measure (read: I haven't rhe foggiest idea what I'm
+    doing.)
+
+    Reading the grammar will prove to you how simple it is.
+
+      Program ::= {State}.
+      State   ::= "*" Name "{" {Rule} ["!" Name] "}".
+      Rule    ::= LString "?" RString "!" [Name].
+      LString ::= {quoted | "few" | "many" | "start" | "finish"}.
+      RString ::= {quoted | digit | Name "(" RString ")"}.
+
+    In English... a program consists of any number of states.  Each state
+    begins with an asterisk, gives a name (alphanumeric), and contains any
+    number of rules and an optional notwithstanding clause between curly
+    braces.  The state named "main" is where flow control begins and ends.
+
+    Each rule is composed of an "lstring" (a pattern to be searched for) and
+    an "rstring" (an expression to replace any matched pattern with.)  The
+    pattern tokens "start" and "finish" match the beginning and the end of
+    the input string respectively.  The tokens "few" and "many" match any
+    number of characters, the former preferring to match as few as possible,
+    the latter is "greedy."  In the rstring, backreferences to the few and
+    many tokens may be made with digits: 1 indicates the first few or many,
+    2 the second, and so on.
+
+    Each rule, and the notwithstanding clause, can name another state, and
+    when a match succeeds on that rule (or no match succeeds for the
+    notwithstanding clause), a transition along the arc to that state fires
+    (i.e. it's a goto...)
+
+    That's about it.
+
+    Now I have to write a fake infomercial for it, and it'll be complete. 
+    :-)
+
+    _chris
+
+    -- 
+    Uryc! V'z genccrq vafvqr gur ebg13 plcure!
+    Share and Enjoy on Cat's Eye Technologies' Electronic Mailing List
+    http://www.catseye.mb.ca/list.html

README.txt

-     Subject: [Esoteric] [Languages] New! Squishy2K (v2000.10.06)
-        Date: Fri, 06 Oct 2000 20:56:43 -0500
-        From: Chris Pressey
-Organization: Cat's Eye Technologies
-          To: Cat's Eye Technologies Mailing List
-
-
-Back in ancient history I came up with a language which worked like a
-Turing-Complete EBNF - a compiler-compiler that could also do banal
-computation via translation.  I wanted to call the language Wirth in
-honour of the inventor of EBNF.  But the name SQUISHY was proposed and
-stuck.
-
-SQUISHY is now left to the sands of time, and this was long before I had
-ever heard of a semi-Thue grammar or the language Thue.
-
-But SQUISHY is now back, refurbished for the twenty-first century, in
-the form of Squishy2K!  Squishy2K is a lot like the original SQUISHY
-except with more and less.  It's not as much like EBNF anymore.  On the
-other hand, it's more like a state machine now!  And in Perl it's dead
-simple, something like 7K of code.
-
-Squishy2K is a string-rewriting language (read: Thue) embedded within a
-state machine (read: beta-Juliet) with states-doubling-as-functions
-thrown in for good measure (read: I haven't rhe foggiest idea what I'm
-doing.)
-
-Reading the grammar will prove to you how simple it is.
-
-  Program ::= {State}.
-  State   ::= "*" Name "{" {Rule} ["!" Name] "}".
-  Rule    ::= LString "?" RString "!" [Name].
-  LString ::= {quoted | "few" | "many" | "start" | "finish"}.
-  RString ::= {quoted | digit | Name "(" RString ")"}.
-
-In English... a program consists of any number of states.  Each state
-begins with an asterisk, gives a name (alphanumeric), and contains any
-number of rules and an optional notwithstanding clause between curly
-braces.  The state named "main" is where flow control begins and ends.
-
-Each rule is composed of an "lstring" (a pattern to be searched for) and
-an "rstring" (an expression to replace any matched pattern with.)  The
-pattern tokens "start" and "finish" match the beginning and the end of
-the input string respectively.  The tokens "few" and "many" match any
-number of characters, the former preferring to match as few as possible,
-the latter is "greedy."  In the rstring, backreferences to the few and
-many tokens may be made with digits: 1 indicates the first few or many,
-2 the second, and so on.
-
-Each rule, and the notwithstanding clause, can name another state, and
-when a match succeeds on that rule (or no match succeeds for the
-notwithstanding clause), a transition along the arc to that state fires
-(i.e. it's a goto...)
-
-That's about it.
-
-Now I have to write a fake infomercial for it, and it'll be complete. 
-:-)
-
-_chris
-
--- 
-Uryc! V'z genccrq vafvqr gur ebg13 plcure!
-Share and Enjoy on Cat's Eye Technologies' Electronic Mailing List
-http://www.catseye.mb.ca/list.html
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+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 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.
+
+For more information, please refer to <http://unlicense.org/>
 #!/usr/bin/env perl
 # squishy2k.pl - v2000.10.06 Chris Pressey
 # Squishy2K to Perl 5 compiler in Perl 5
-
-# Copyright (c)2000-2012, Chris Pressey, Cat's Eye Technologies.
-# All rights reserved.
-# 
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-#  1. Redistributions of source code must retain the above copyright
-#     notices, this list of conditions and the following disclaimer.
-#  2. Redistributions in binary form must reproduce the above copyright
-#     notices, this list of conditions, and the following disclaimer in
-#     the documentation and/or other materials provided with the
-#     distribution.
-#  3. Neither the names of the copyright holders nor the names of their
-#     contributors may be used to endorse or promote products derived
-#     from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
-# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
+# This work is in the public domain.  See the file UNLICENSE for more
+# information.
 
 ### SYNOPSIS
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.