Skip to content
This repository was archived by the owner on Nov 5, 2024. It is now read-only.

Latest commit

 

History

History
40 lines (28 loc) · 1.11 KB

basic.md

File metadata and controls

40 lines (28 loc) · 1.11 KB

Users can enable shells in the rascal from the basic shell shells.Shell.

class MyShell(shells.Shell):
    def beforeSession(self):
        """Setup the environment."""

        # Tune the banner which is printed before the session.
        setBanner("My shell to play with a message.")

        # Create a message object.
        self.message = types.message.Message(2)

        # Register the object to get access to it during the session. The
        # registered variable must be an attribute (`self.variable_name`).
        self.register('message')

    def session(self):
        """The session to run."""

        # Show the message.
        print(self.message)

        # Enter interactive mode.
        self.interactive()

    def afterSession(self):
        """Code to run when at the end of the session."""

        print("Session stopped.")

So in the rascal, we define the shell name (here Myshell) and what the shell does:

  • beforeSession: prepare a session.
  • session: run pre-defined code (non-interactive) or enter in interactive mode.
  • afterSession: what to do once the session is done.