Metadata-Version: 2.1
Name: backrooms
Version: 1.0.0
Summary: 3D, CISC Architecture and Esolang
Home-page: https://github.com/cmcmarrow/backrooms
Author: Charles McMarrow
Author-email: Charles.McMarrow.4@gmail.com
License: Apache Software License 2.0
Description: ##################
        backrooms - v1.0.0
        ##################
        
        *****
        About
        *****
        This python module "backrooms" is an `Esolang <https://esolangs.org/wiki/Main_Page>`_.
        
        Backrooms is inspired by:
            * Backrooms Creepypasta/MEME
            * ASCIIDOTS Esolang
            * CISC Architecture
        
        Backrooms is designed to be:
            * Hackable VIA memory overflow attacks and poor error handling.
            * Visually pleasing.
            * Enjoyable to write small/medium programs.
            * Capable of rewriting all of a program at run-time.
        
        ***********
        Hello World
        ***********
        ``hello_world.brs``
        
        .. code-block:: text
        
           ~GATE
           /rs"Hello World!"e~ha
        
        *******************
        Python Installation
        *******************
        .. code-block:: bash
        
           pip install backrooms
        
        *****************
        Console Interface
        *****************
        .. code-block:: bash
        
           backrooms hello_world.brs
        
        .. code-block:: text
        
           backrooms
        
           positional arguments:
             file                  path to main file
        
           optional arguments:
             -h, --help            show this help message and exit
             -a, --author          get author of backrooms
             -b, --builtins        don't include built-in libraries
             -c, --core_dump       enables CoreDump rule "?"
             -e, --error-on-space  errors if portal lands on a space
             -p, --profile         profiles backrooms
             -s, --system-out      don't write to stdio
             -v, --version         get version of backrooms
             --lost-count LOST_COUNT
                                   set lost count
             --lost-rule-count LOST_RULE_COUNT
                                   set lost rule count
             --profile_range PROFILE_RANGE
             --whisper WHISPER     set the log level [notset, debug, info, warning, error, critical]
        
        *************
        Documentation
        *************
        * `Documentation <https://esolangs.org/wiki/Backrooms>`_
        * `Raw Documentation <https://github.com/cmcmarrow/backrooms/blob/master/DOCUMENTATION.txt>`_
        
        *******
        Bottles
        *******
        ``bottles.brs``
        
        .. code-block:: text
        
           ~GATE
           /ri10ibri99>ers" bottles of beer on the wall, "epers" bottles of beer."epzez-V
           /V".llaw eht no reeb fo selttob "srepe" ,dnuora ti ssap dna nwod eno ekaT"sr.<
           /e>e~ha    1 >rs"1 bottle of beer on the wall, 1 bottle of beer."epers"Take one"epV
           /pp        p pVe".llaw eht no reeb fo selttob erom on ,dnuora ti ssap dna nwod "sr<
           /ze        . p>peers"No more bottles of beer on the wall, no more bottles of beer"V
           />...eezd-N^.^                                                                    e
           / ^".llaw eht no reeb fo selttob 99 ,erom emos yub dna erots eht ot oG"srepe"."srp<
        
        ******
        Turing
        ******
        ``turing.brs``
        
        .. code-block:: text
        
           ~GATE
           /cicOvZVpri1V
           /    p >.e>NV~ha
           /    >ri1e^e<
        
        *********
        Fibonacci
        *********
        ``fibonacci.brs``
        
        .. code-block:: text
        
           ~GATE
           /V         ah~<
           />ri0>dri18isZ^pdrs"FIB"V
           /    ^+pe" "srpech......<
           ~FIB
           />ZVdri3isLVpd-rs"FIB"hcz--rs"FIB"hciahr
           /rh<rh1irpp<
        
        ***********
        Tic Tac Toe
        ***********
        ``tic_tac_toe.brs``
        
        .. code-block:: text
        
           ~GATE
           />ri0>...+dri10isNVpprs"x"k0pri10ibrs"Tic Tac Toe!"epepri0V
           /.   .            p           a                    >p+....>dri9isNVpprs"E_BOARD"hcrs"Cats!"ep...V
           /.   .            d           h   >..rs"C_BOARD"hcZ^rs"E_BOARD"hceprs" won!"epri10ibeppVpebi01ir<
           /.   ^..hujbz"k"sr<           ~   ^................huch"DRAOB_U"sr<                    .
           /^...........................p^Zeb"a"srcpe+ >>+srpebi01irpe+!niaga yalp ot "a" retnE+sr<
           # Echo board
           ~E_BOARD
           />ri10ibrs"#"s1epes2epes3epzezeeeeezezs4epes5epes6epzezeeeeezezs7epes8epes9eppephr
           # Update board
           ~U_BOARD
           />rs"rs+"s0bjrs"+k"bjV                      >pbjrs"prs+"bjs0rs"x"beZVprs"o">bjrs"+k0p">bjhr
           /  Vpe0sch"DRAOB_E"sr<.pebi01irpe"RORRE"srpp^Nib"123456789"sr<      >prs"x"^
           /  >rs": "epcdri10ibeprs"1~2~3~4~5~6~7~8~9"biZVpdrs"s"zbjuh..^
           /                    ^....ebi01irpe"RORRE"srpp<
           # Check for winner
           ~C_BOARD
           /V                         >ppzphr
           />s5ds1beNVpd.....V    >beN^ppp..V                  >ppzphr
           /         >pds9beZVphr ^oupp<    3            V..ppp^Neb<
           /                 >pds3beNVpd.....V           .    >ppuo^
           /                         >pds7beZVphr  V+....<pppp^Nebou..hujbz"s"srai3ir<
           /                           2     >ppri0>dri3isNVpprs""hr                 z
           /         >rs"s"zbjuh..uobeN^pppp>d+....drs"s"z1pbjuh..zri3iadrs"s"zbjuh..^
           /         ^+z..hujbz"s"srd+z..hujbz"s"srd+mi3ird<
        
        ****************
        Build Executable
        ****************
        .. code-block:: bash
        
           git clone https://github.com/cmcmarrow/backrooms.git
           pip install -e .[dev]
           python build.py
        
        ***
        API
        ***
        ``backrooms_api.py``
        
        .. code-block:: python
        
           from backrooms.backrooms import backrooms_api, StringHandler
        
        
           main_brs = """
           ~GATE
           /rs"Hello World"e~ha
           """
        
           main_handler = StringHandler("main", main_brs)
           backrooms_api(main_handler)()
        
        .. code-block:: text
        
           info: An API to backrooms.
           :param code: Union[str, Handler, Handlers]
               str: Will treat str as main file and load its dir.
               Handler: Will load just the single Handler.
               Handlers: Will load the Handlers.
           :param inputs: Optional[Union[Tuple[str, ...], List[str]]]
           :param feeder: bool
           :param sys_output: bool
           :param catch_output: bool
           :param lost_count: int
           :param lost_rule_count: int
           :param error_on_space: bool
           :param error_on_no_rule: bool
           :param br_builtins: bool
               Only adds builtins if code is str or Handler.
           :param core_dump: bool
           :param yields: bool
           :param rules: Optional[Union[Tuple[Type[Rule], ...], List[Type[Rule]]]]
           :param whisper_level: str
           :return: Portal
        
Platform: UNKNOWN
Classifier: Development Status :: 6 - Mature
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Description-Content-Type: text/x-rst
Provides-Extra: dev
