B/Menus of <B>Alice</B>

# B/Menus of Alice

Below we summarize the command menus of Alice. For each menu, we give the key binding to summon the menu. For each command on the menu, we give the command's name in parentheses and the command's special key sequence in brace brackets (if the command has such a sequence.) Thus we might write

>     Files Menu {[F8]}
>         Load (LOAD) {[ALT-L]}

Note that all these menus contain a `Do Nothing` entry for those people who decide they do not want to issue any of the other commands on the menu.

All command names are shown here in upper case to make them stand out. However, they should be entered in lower case.

## Master Menu {`[F7]`}

This menu lists the other major menus of Alice.

>     Insertions (INSMENU) {[F4]}
>     Help (HELP) {[F9]}
>     Deletions (DELETE) {[F3]}
>     Change Structures (CHANGE) {[F5]}
>     Move Cursor (CURSOR) {[ALT-G]}
>     Information about Pascal (PHELP) {[ALT-P]}
>     What Can I Type Here (TOKLIST) {[ALT-T]}
>     Misc (MISC) {[SHIFT-F9]}
>     File Operations (IO) {[F8]}
>     Special Changes (SPECIALTIES) {None}
>     Running the Program (DEBUG) {[F6]}
>     Possible Symbols (COMPLETE) {[END]}

## Select Menu {`[SHIFT-F10]`}

This menu is used to perform operations on selected portions of code.

>     Clear Selection (UNSELECT) {None}
>     Hide (HIDE) {[ALT-H]}
>     Copy to workspace (COPY) {[ALT-C]}
>     Comment Out (COMOUT) {None}
>     Edit (EDIT) {[ALT-E]}
>     Delete (DELETE) {[DEL]}
>     Clip (CLIP) {[CTRL-P]}
>     Move to workspace (MOVE) {[CTRL-minus]}
>     Special changes (SPECIALTIES) {None}
>     Raise (RAISE) {None}
>     Enclose (ENCLOSE) {None}

## Help Menu {`[F9]`}

This menu provides help on a variety of subjects.

>     Getting Started with Alice {None}
>     Quick Summary of Keys {None}
>     Features of Alice {None}
>     Information about Pascal (PHELP) {[ALT-P]}
>     What Can I Type Here? (TOKLIST) {[ALT-T]}
>     How to Quit Alice {None}
>     What was the last error? (LASTERROR) {None}
>     What does my error message mean? (ERRHELP) {None}

## Move and Search Menu {`[ALT-G]`}

This menu offers a number of commands that move the cursor and search for things in your program.

>     Go to mark (GO) {None}
>     Former cursor loc (POPBACK) {[CTRL-B]}
>     Mark Position (MARK) {None}
>     Search forward (SEARCH) {[CTRL-F]}
>     Search backwards (RSEARCH) {None}
>     Search again (AGAIN) {[CTRL-A]}
>     Up to Parent (PARENT) {[CTRL-6]}
>     Page up (PAGEUP) {[PgUp]}
>     Page down (PAGEDOWN) {[PgDn]}
>     Go to declaration (DECL) {None}
>     Top of block (BLOCK) {[HOME]}

## Run-Time Menu {`[F6]`}

This menu offers commands to run the program, and also to invoke debugging operations that affect how the program runs. The menu is special, in that it only shows the commands that are applicable at the moment. For example, if you have turned on cursor following, it will show the

>     Cursor Following Off

selection. If you do not have cursor following on, it will show the

>     Cursor Following On

selection. Similarly, there are a number of selections that will only appear when you have a suspended program. Below we show all the possible selections that may show up at one time or another.

>     Big Step (SUPERSTEP) {[SHIFT-F2]}
>     Cursor Following Off (CLEARFOLLOW) {None}
>     Cursor Following On (SETFOLLOW) {None}
>     Clear Breakpoints (CLRPOINT) {None}
>     Continue (CONTINUE) {None}
>     Debug on (BUGON) {None}
>     Debug off (BUGOFF) {None}
>     Don't Log Output to File (LOG) {None}
>     Immediate mode block (IMMEDIATE) {None}
>     Pop suspended state (POP) {None}
>     Pop suspend & Run (RUN) {[F1]}
>     Run Program (RUNIT) {[ALT-F1]}
>     Set Breakpoint (BREAKPOINT) {None}
>     Single Step (STEP) {[F2]}
>     Typecheck program (CHECK) {[CTRL-T]}
>     Who called me? (TRACEBACK) {None}
>     Log Output to File (LOG) {None}

## Insert Menu {`[F4]`}

This menu offers commands to insert various types of code into a program.

>     Extend list (EXTEND) {[CTRL-E]}
>     Insert (INSERT) {[INS]}
>     Get workspace (GET) {[CTRL-plus]}
>     What Can I Type Here? (TOKLIST) {[ALT-T]}
>     Possible Symbols (COMPLETE) {[END]}
>     Enclose (ENCLOSE) {None}

## Delete Menu {`[F3]`}

This menu offers commands that delete code from your program.

>     Delete (DELETE) {[DEL]}
>     Clip (CLIP) {[CTRL-P]}
>     Clear this workspace (NEW) {None}
>     Move to workspace (MOVE) {[CTRL-minus]}
>     Raise (RAISE) {None}
>     Recover memory (RECOVER) {None}

## Changes Menu {`[F5]`}

This menu offers commands that change code in various ways.

>     Edit (EDIT) {[ALT-E]}
>     Undo (UNDO) {[CTRL-U]}
>     Hide (HIDE) {[ALT-H]}
>     Reveal (REVEAL) {[ALT-R]}
>     Copy to workspace (COPY) {[ALT-C]}
>     Comment Out (COMOUT) {None}
>     Redo (REDO) {[CTRL-R]}
>     Special Changes (SPECIALTIES) {None}

## Files Menu {`[F8]`}

This menu offers commands that work with files.

>     Load New File (LOAD) {[ALT-L]}
>     Save (SAVE) {[ALT-S]}
>     Save to Text File (TEXT) {None}
>     Merge (Load Library) (MERGE) {None}
>     DOS Command (SHELL) {[SHIFT-F3]}
>     Set Filename (FILENAME) {None}
>     Quit Alice (EXIT) {[ALT-Q]}

## Starting Menu

This menu is displayed when you begin your session with Alice.

>     Edit a new program
>     Load in an existing Pascal Program
>     Quit the Alice system
>     Experiment in Immediate Mode
>     What is Alice all about?
>     How to Obtain this Program

## Safety Menu

This menu is displayed if you try to quit but you have not saved all programs in all workspaces in files. It gives you a chance to save your code if you want. If you go ahead and quit anyway, any changes made since the last time you wrote to a file will be lost.

>     Go back to Alice
>     Quit, forgetting all the changes

## Miscellaneous Menu {`[SHIFT-F9]`}

This menu is a grab bag of commands that don't fit elsewhere.

>     Immediate mode block (IMMEDIATE) {None}
>     Set Macro (MAP) {None}
>     File I/O (IO) {[F8]}
>     Autosave (AUTOSAVE) {None}
>     Special changes (SPECIALTIES) {None}
>     Redraw Screen (CLEAR) {[CTRL-HOME]}
>     Change Workspace (WS) {None}