LSE's portable command language provides a one-to-one correspondence between an LSE command and a TPU procedure called to execute that command. For example, the command ERASE WORD is translated into a procedure named LSE_ERASE_WORD. The LSE command parser can support multiple sets of grammar, which exist in layers. Initially, the LSE layer is enabled. When you enable a new layer, it is stacked on top of the existing layer. LSE searches first for routines in the top layer before going to the next layer. The standard portable LSE routines all have the LSE_ prefix. You can group a set of routines into a grammar by adding a prefix. When you define a routine and enable a prefix for that routine, your new grammar is placed at the top of the stack. The prefix may be any string of valid TPU identifier characters: alphabetic, a dollar sign, or an underscore. For example, you can define a command as follows: 1. Enable the routine with the ENABLE GRAMMAR PREFIX USER_ command. 2. Define a routine USER_SET_BUFFER_CUSTOM (), which may or may not have arguments. When you type SET BUFFER CUSTOM, LSE first looks for a procedure named USER_SET_BUFFER_CUSTOM. Thereafter, if you type an ambiguous command such as SET BUFFER, you will see CUSTOM listed as one of the possible choices. In the next example, you can customize an existing command, such as CREATE FILE, as follows: 1. Enable the routine with the ENABLE GRAMMAR PREFIX MY_ command. 2. Define a routine MY_CREATE_FILE (), which you want to take precedence over an existing routine LSE_CREATE_FILE (). The MY_CREATE_FILE routine is now at the top of the stack. The LSE parser will look first for MY_CREATE_FILE and then for LSE_CREATE_FILE. See the ENABLE GRAMMAR PREFIX and DISABLE GRAMMAR PREFIX commands.