Search Top Index
HELP LMR A. Sloman May 1982 Revised Jan 1990 <ENTER> lmr Load Marked Range - compiles the code in the marked range. This command can be invoked using the DOIT key or key sequence. CONTENTS - (Use <ENTER> g to access sections) -- Introduction -- Selecting a compiler -- Program results -- Controlling output -- Marked range in an output file -- Error messages -- Compiling one line: vedloadline -- Immediate mode: <ENTER> im -- See also -- Introduction ------------------------------------------------------- The TEACH * LMR file gives an introduction to this facility. This file is more complete (but more condensed). It is assumed that you will know how to mark a range in a VED file. For details see HELP * MARK. The marked range of the current file is compiled by the -ved_lmr- command or by pressing the "DOIT" key. If there is no marked range, the current line is compiled. By default VED maps the procedure -ved_lmr- to CTRL-D. (For information on altering the mapping see HELP * VEDSETKEY.) -- Selecting a compiler ----------------------------------------------- The procedure used to compile the marked range is determined by the value of the variable -subsystem-. This variable is local to each file, its value being set when the file is first edited according to the file type. The default mapping from file types to language subsystems is as follows: .p Pop-11 .pl Prolog .lsp Common Lisp (also '.l', '.lisp', '.cl') .ml Standard ML (also '.sig') You can override or extend this mapping with the mechanism described in HELP * VEDFILETYPES. -- Program results ---------------------------------------------------- Program output can be directed to one of three places: 1 To the screen 2 To a named file 3 To the current file In the first case, output from the program is not recorded in any way - it merely appears on the terminal screen and is lost when VED is restarted after the VED HERE: PRESS RETURN TO CONTINUE prompt. The second case is the default - printing is directed into an "output" file so that a record of all activity is maintained for later inspection. The default output file name is one of 'output.p', 'output.pl', 'output.lsp' etc. depending on the initial language being used. Finally, output can be sent to the current file. This means that output will appear directly below the line in the marked range being compiled. This is useful for debugging, as a sequence of print-arrow statements can be compiled, and their results will appear with them, for example, compiling the following sequence of statements: vars a = 16; a => a * a => sqrt(a) => should produce (IF OUTPUT IS BEING SENT TO THE CURRENT FILE!) : vars a = 16; a => ** 16 a * a => ** 256 sqrt(a) => ** 4.0 Output is controlled by the variable -vedlmr_print_in_file-, which can take one of three values: 1 -false- 2 a filename (as a string) 3 -true- These correspond to the three types of output listed above. -- Controlling output ------------------------------------------------- The command <ENTER> output can be used to alter the value of -vedlmr_print_in_file-, as follows: <ENTER> output foo.p will make the file called 'foo.p' the output file. i.e. all printout will go there. <ENTER> output . will make the current file the output file, by making the value of -vedlmr_print_in_file- to be -true-. <ENTER> output ^ will make output go onto the screen without going into any file, by making the value of -vedlmr_print_in_file- to be -false-. <ENTER> output will print out the current value of vedlmr_print_in_file. -- Marked range in an output file ------------------------------------- Under certain circumstances, the range mark will be repositioned after a successful invocation of ved_lmr. If output is being directed to the current file (or to the screen), the mark is automatically moved to the next line of the file after compilation. This makes interactive debugging easier in an output file, since commands can be typed-in and run one at a time. Program segments remain marked after compilation in non-output files. -- Error messages ----------------------------------------------------- Compiler mishaps (usually syntax errors) will be trapped, and instead of a full error message, a short message will be displayed on the command line. The cursor is left at the point the compiler had read to. The error message is stored in the command line, and can be examined by putting the cursor on the command line and moving down one line. For details see TEACH * LMR. Run-time mishaps (or warnings of undeclared variables) will cause a normal mishap message to be printed. Error messages are sent to the same place as normal printing output will occur - that is, if -vedlmr_print_in_file- is -false- or the name of a file, then mishap messages will go to the screeen (in the first instance) or to the named file (in the second). When -vedlmr_print_in_file- is -true-, however, error messages are not automatiocally sent to the current file. Instead, a variable named -vedlmr_errs_in_file- is consulted. Its value should be a boolean: -false- messages to screen only -true- messages to the current file When set -false-, mishaps are printed on the screen without any record being kept. This is the default case. When -true-, then mishaps are included in the current file along with any output. The combination -vedlmr_print_in_file- and -vedlmr_errs_in_file- both set -true- is convenient for preparing a record of a full interactive session, including all error messages. The command <ENTER> errs is used to switch (ie toggle) the value of -vedlmr_errs_in_file-. If a mishap messages is put into the current file, it is automatically marked, so that they can be deleted with <ENTER> d. Warning messages about undeclared variables are inserted as comments, so they can be deleted or left in the file. The symbol '^' should appear above the error message to show how far the compiler had got before it complained (although the actual bug may not be at that exact point - it will be earlier in the marked range). -- Compiling one line: vedloadline ------------------------------------ The procedure -vedloadline- can be used to compile just one line, the line containing the cursor. By default this is mapped onto the key sequence <ESC> d, in VED, though this may be changed in some VED terminal configurations. See HELP * VEDSETKEY for information on altering the mapping. -- Immediate mode: <ENTER> im ----------------------------------------- VED provides a convenient mode for treating a particular file as an interactive file, with each press of the RETURN key handing the current line to the compiler. This facility is described in HELP * IM. -- See also ----------------------------------------------------------- HELP * POPWARNINGS for information about warning or mishap messages * POPMISHAPS * MARK details of marking a range TEACH * LMR tutorial on compiling (with examples) HELP * VEDSETKEY altering VED key mappings HELP * IM Use of VED in "immediate mode" --- C.all/help/lmr --- Copyright University of Sussex 1991. All rights reserved. ----------