Trailing-Edge
-
PDP-10 Archives
-
DEC_CMS-20_V1.0_SRC
-
cms/sources/langme.req
There are no other files named langme.req in the archive.
! LANGME.REQ -- Language processor mechanism declarations.
!
! COPYRIGHT (C) 1982 BY
! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
! TRANSFERRED.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
! CORPORATION.
!
! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
!
!++
! Facility: CMS Library Processor
!
! Abstract:
!
! This file declares items internal to several modules of the
! language processor. They are mostly literals used in the
! grammar tables. They are not needed by the caller of the
! language processor, who should find everything he needs in
! COMUSR.REQ
!
! Environment: Transportable
!
! Author: Earl Van Horn Creation Date: April, 1979
!
!--
! This file assumes that the declaration
!
! LIBRARY 'BLI:XPORT' ;
!
! has already appeared in the program.
! The grammar of the CMS command language is described by the integer vector
! GRATAB, declared in the module GRAMAR. Some of the integers in this vector
! are codes for commands, sub-commands, qualifiers, and syntactic constructs.
! These integers are defined in COMUSR.REQ, because they can appear in
! the data structures provided to the user of the COMAND routine.
! Other integer codes, called marks, delimit parameter lists, qualifier
! lists, etc. The mark integers are declared here.
!
! The mark integers are a dense set between K_MARK_1 and K_MARK_N, inclusive.
! They are distinct, non-zero, positive integers that do not overlap the
! integer codes defined in COMUSR.REQ.
! The GRATAB_VECTOR macro declares the attributes of the GRATAB vector, so that
! each of the modules using it will declare it the same way.
!
macro
gratab_vector =
vector %bliss32([, word])
% ;
! The following literal is used in the declaration of the mark integers.
!
literal
k_mark_base = 16000 ; ! Other dense sets internal to the language
! processor should begin at higher numbers.
! The lower numbers are reserved
! for extensions of COMUSR.REQ.
! These are literals for marks.
!
$literal ! Initialize $DISTINCT to 1.
k_mark_1 = k_mark_base + 1,
k_unused_1 = k_mark_base + $distinct, ! This code is not used.
k_end_gram_mark = k_mark_base + $distinct, ! Last item in the
! GRATAB vector.
k_beg_com_mark = k_mark_base + $distinct, ! Begin a command description.
k_end_com_mark = k_mark_base + $distinct, ! End of a command description.
k_beg_qua_mark = k_mark_base + $distinct, ! Begin a qualifier series.
k_end_qua_mark = k_mark_base + $distinct, ! End of a qualifier series.
k_beg_par_mark = k_mark_base + $distinct, ! Begin a parameter series.
k_end_par_mark = k_mark_base + $distinct, ! End of a parameter series.
k_beg_rep_mark = k_mark_base + $distinct, ! Begin a series that may occur
! one or more times.
k_end_rep_mark = k_mark_base + $distinct, ! End of a repeatable series.
k_beg_opt_mark = k_mark_base + $distinct, ! Begin an optional series.
k_end_opt_mark = k_mark_base + $distinct, ! End an optional series.
! You should add new mark codes just before this comment.
k_mark_n = k_mark_base + $distinct - 1 ;
! The following integer codes are input to the NXTLEX routine to tell it
! what kind of lexeme to look for. The codes are a dense set between
! K_LEXICAL_1 and K_LEXICAL_N, inclusive.
$literal
k_lexical_1 = 1,
k_normal_lex = $distinct, ! Punctuation and words, with white space
! where necessary.
k_file_spec_lex = $distinct,! Special lexical rules for file specification.
k_quotation_lex = $distinct,! Special lexical rules for quoted string.
! You should insert new lexical codes just before this comment.
k_lexical_n = $distinct - 1 ;
! The characters that can separate a qualifier from its value.
! Where more than one is allowed, the first is preferred for output.
macro
s_chars_for_eql = %bliss32('=:') %bliss36(':') %bliss16(':=') % ;
!
! The PROMPT_LIT Macro
!
! This macro takes a text-string and returns a descriptor for that prompt
! with the proper system-dependent prefix.
!
macro
prompt_lit (text) =
lit (%string (%if VaxVms %then '$_', %fi
text)) %;
! LANGME.REQ -- LAST LINE