[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference vaxuum::document_ft

Title:DOCUMENT T1.0
Notice:**New notesfile (DOCUMENT.NOTE) now available (see note 897)**
Moderator:CLOSET::ADLER
Created:Mon Feb 09 1987
Last Modified:Thu Oct 31 1991
Last Successful Update:Fri Jun 06 1997
Number of topics:897
Total number of notes:4397

194.0. "DOCUMENT and DECspell" by DLO06::DAVIS (Jerry Davis @DLO 451-2929) Thu Apr 02 1987 19:57

    Is there any plans for a /DOCUMENT qualifier on DECspell?
    
    There is a /RUNOFF qualifier now.
    
    Regards.
T.RTitleUserPersonal
Name
DateLines
194.1Not likelyCUPOLA::HAKKARAINENAlbatross!Fri Apr 03 1987 09:418
    Can't say for sure, but disucssions in the DECspell conference didn't
    look promising.
    
    An intermediate step would be the inclusion of a personal dictionary
    that contains the sdml tags in the internal kit. DECspell still
    won't understand sdml syntax, but it won't choke on <x>, at least.
    
    kh 
194.2Need a spelling checker that runs in batch modeTLE::SAVAGENeil, @Spit BrookFri Apr 03 1987 11:424
    For small files, the step suggested in .1 works fine - it's saved
    me embarrassment many a time - but DECspell is just too sloooowww
    to be practical for large books.  Has anyone figured out a way to
    run a spell checker in batch?
194.3Meta-X SpellVAXUUM::DYERAdventures in SuccessFri Apr 03 1987 14:173
If you type in a word and aren't sure if it's spelled right, isn't there a way
 to call DECspell to check it right then and there?  I know Emacs does it . . .
  <_Jym_>
194.4<do> spellCUPOLA::HAKKARAINENA terrible to mind thing is waste.Fri Apr 03 1987 14:497
>  If you type in a word and aren't sure if it's spelled right ...
    
    It's the words that I am sure about that are the ones to cause me
    trouble.
    
    You can call DECspell directly from TPU V2. Still doesn't run in
    batch, though.
194.5A Few Thoughts and QualifiersCLOSET::ETZELMikeFri Apr 03 1987 15:2619
    .0: My attempts to get some info about a /DOCUMENT qualifier in
        the DECSpell notes file were not even answered. The notes
        conference is PIXEL::DECSPELL, which lists the acting product 
    	manager as Peter Martin.
    
    .1: A personal dictionary of all global DOCUMENT tags can be copied
    	from: 
    
    		NEWDOC::[writer.docv1]personal.lgp
    
    	Note that you should append and then sort this file (SPELL/FORMAT) 
    	with any existing SYS$LOGIN:PERSONAL.LGP file or use multiple
    	files (requires /DICTIONARY=file-spec qualifier to the SPELL command).
    
    DECspell has a callable interface, which makes it possible to do 
    things Jym mentioned in .3 from TPU. I donno about BATCH (.2), but
    it is possible. See the VAX DECSpell Programmer's Guide, AA-Z3334B-RE.
        
Mike
194.6<END*> Tags not in DOCUMENT DictionaryEDEN::DENHAMJeff Denham, DTN 223-6770Tue May 12 1987 10:414
    Mike, the DOCUMENT tags files are very handy to have, but I noticed
    upon using them with SPELL that the <END*> tags seems to be missing in
    most cases.  For instance, <ENDMARK>, <ENDLIST>, and <ENDTABLE> were
    all missing.  Just thought I'd mention it. 
194.7You Are RightCLOSET::ETZELMikeTue May 12 1987 14:306
    I used LSEDIT to get the tags. I'll go through and add the
    corresponding <end* tags soon.
    
    Thank you for mentioning this.
    
    Mike
194.8please?CLOSET::OTTETue May 12 1987 16:083
    Mike, could you put a note in here when you've updated the file?
    I was planning on using it on my manuals and want to make sure I
    get the version with the <end* tags in it.  thanks, -randy
194.9A pass at a list of tagsBUNSUP::LITTLETodd Little NJCD SWS 323-4475Wed May 13 1987 17:39125
The following is an "extraction" of everything that looked like a tag in the
BL8 LSEDIT environment for SDML.  You can just append this to the end of
your personal dictionary (SYS$LOGIN:PERSONAL.LGP) and then format
your dictionary with a:  $ SPELL/FORMAT PERSONAL.LGP
I'm not sure they're all tags, although it looks pretty good.

-tl
********************************************************************************
abstract	accent		acknowledgements		align_after
align_char	ampersand	appendix	argdef		argdeflist
argitem		author		author_addr	author_aff	author_info
author_list	auto_number

backslash	back_note	back_notes	bibliography	bib_entry
box		byline

callout		callouts	callout_ref	cc		cclist
center_line	chapter		chead		check_for_inclusion
choose		closing		co		code_example	command
command_section	comment		condition	construct	construct_list
contents_file	copyright_date	copyright_page	cp		cparen
cpos

date		define_book_name		define_symbol	definition_list
definition_list_head		deflist_def	deflist_item	delete_key
description	display		distlist	divided_by	doctype
document_attributes		dot_times	double_quote

element		ellipsis	emphasis	endabstract	endalign_char
endappendix	endargdeflist	endcallouts	endcclist
endcheck_for_inclusion		endcode_example	endcommand_section
endcomment	endcondition	endconstruct_list
endcopyright_page		enddeflist	enddescription	enddisplay
enddistlist	enddocument_attributes		endexample
endexample_sequence		endfigure	endformat	endfront_matter
endglossary	endicon		endinteractive	endkeypad_section
endkey_sequence	endline_art	endlist		endmark		endmath
endmessage_section		endnote		endoutline	endoverview
endparamdeflist	endpart_page	endpreface	endprofile	endprompts
endqualdeflist	endqual_list	endquotation	endquote	endrelated_tags
endrestrictions	endrettext	endroutine_section		endrsdeflist
endsample_text	endstatement_format		endstatement_section
endsubcommand_section		endsyntax	endtable	endtable_key
endtable_unit	endtag_section	endtitle_page	endtitle_section
endupdate_range	equals		example		examples_intro
example_attributes		example_file	example_sequence
example_space	exc		exi		extext

farg		fargs		fcmd		ffunc		figure
figure_attributes		figure_file	figure_space	final_cleanup
footnote	footnote_text	footref		format		formatsubhead
fparms		from_address	front_matter	frtn		ftag
func

gdef		glossary	graphic		gref		group
gterm

head		head1		head2		head3		head4
head5		hellipsis	hyphenate

icon		icon_file	icon_text	include		includes_file
index_file	interactive	intro_subtitle	intro_title

keep		key		keyname		keypad		keypad_endrow
keypad_row	keypad_section	keyword		key_name	key_plus
key_sequence	key_type

le		level		line		line_art	list
literal		lowercase

mark		math		math_char	mcs		memo_date
memo_from	memo_header	memo_line	memo_to		message_section
minus		msg		msgtype		msg_action	msg_exp
msg_fac		msg_severity	msg_text

nested_table_break		newterm		note

oparen		order_number	outline		over		overview

p		page		paramdef	paramdeflist	paramitem
parendchar	part		part_page	pi		plus
preface		preface_section	print_date	profile		prompt
prompts

qcomment	qpair		qualdef		qualdeflist	qualitem
qual_list	qual_list_heads	quotation	quote

reference	ref_note	ref_notes	related_item	related_tag
related_tags	restrictions	rettext		returns		return_value
revision	revision_info	right_line	ritem		routine
routine_section	rsdeflist	rsitem		rule		running_feet
running_title

s		salutation	sample_text	sdml_tag	section
set_appendix_letter		set_chapter_number		set_condition
set_formal_element_numbering	set_headings	set_page_numbering
set_running_titles		set_template_command
set_template_heading		set_template_list
set_template_para		set_template_routine
set_template_statement		set_template_subcommand
set_template_table		set_template_tag		set_template_xxx
show_levels	signatures	single_quote	slide		source_note
span		special_char	specification_info		spec_title
sqrt		statement	statement_format		statement_line
statement_section		subcommand_section
subcommand_section_head		subhead1	subhead2	subject
subscript	subtitle	sum		superheads	superscript
syntax

table		table_attributes		table_file	table_heads
table_key	table_keyref	table_row	table_row_break	table_setup
table_space	table_unit	table_unit_heads		tag
tag_section	terminating_tag	text_size	times		title
title_page	title_section	topic		to_address

u		underline	update_range	uppercase	user_i_message
user_w_message

valid_break	valid_table_row_break		variable	vbar
vita

x		xs		xsort		xsubentry	x-append
x_times

y
194.10Done and Also AutomatedCLOSET::ETZELMikeThu May 14 1987 12:2427
    Thanks for the help, Todd. I think the file needs to be one term
    per line, doesn't it?
    
    The file NEWDOC::[writer.docv1]personal.lgp contains all SDML tags,
    both uppercase and lowercase, with angle brackets, from Todd's list
    in .9.
    
    I suspect people could mess this up, so I created a command procedure
    to update your personal dictionary (in your top-level directory)
    with this file. If you use multiple dictionary files, do NOT use this 
    command procedure; simply copy NEWDOC::[writer.docv1]personal.lgp to 
    the approrpriate location/filename.

    To add SDML tags to your PERSONAL.LGP on your current node, type:
    	
	$ @NEWDOC::[writer.docv1]decspell_personal
    
    If your personal.lgp file already contains SDML tags, you may want
    to edit them out of your personal.lgp before you execute this command 
    procedure or you can edit personal.lgp afterwards to elimate duplicates. The
    command procedure saves your existing dictionary as personal.lgp_old
    before the APPEND command executes.
        
    Command procedure execution over the net isn't the greatest, so 
    people may want to copy the above file to their local directory and 
    then execute it.
    
194.11decspell is smarter than that...IOSG::HORSFIELDlet&#039;s not go off on a parallel tangentFri May 15 1987 04:2615
>    Thanks for the help, Todd. I think the file needs to be one term
>    per line, doesn't it?

	no, decspell doesn't mind

    
>    If your personal.lgp file already contains SDML tags, you may want
>    to edit them out of your personal.lgp before you execute this command 
>    procedure or you can edit personal.lgp afterwards to elimate duplicates.

	you don't need to. when you do spell/format, decspell throws
	duplicates away


	jack 
194.12Automated extraction procedureBUNSUP::LITTLETodd Little NJCD SWS 323-4475Fri May 15 1987 13:54138
Well,  I too thought that the entries had to be one per line, but it
turns out that the listing in my note was the output of a formatted
dictionary, and was sucessfully merged with another dictionary.

I've also posted the SCAN program I hacked up to generate the list in the
first place, along with a TPU procedure and DCL command procedure to drive
the whole thing.  If you compile and link the SCAN program, and then execute
the DCL command procedure, it will leave you with a new list of tags
extracted from the current SDML LSE environment.  You can use the procedure
with any baselevel of DOCUMENT, just add /ENVIRONMENT=DOC$LSE:SDML.ENV to
the LSEDIT command in MAKE_TAG_LIST.COM for baselevels prior to baselevel 7.

This procedure leaves you with a file TAGS.LIST that is a DECspell ready 
dictionary with all the tags in the LSEDIT environment for SDML.

-tl

******************************MAKE_TAG_LIST.COM*********************************
$ lsedit/nodisp/nosystem/output=tags.file/command=get_tags.tpu/noinit
$ run find_tags
tags.file
tags.list
$ delete tags.file;
$ spell/format sys$disk:[]tags.list
$ purge tags.list
******************************GET_TAGS.TPU**************************************
!+
! Process environment file
!-
env_file := get_info(command_line,"ENVIRONMENT_FILE");
if env_file = ""
	then env_file := "SYS$LIBRARY:LSE$SYSTEM_ENVIRONMENT";
endif;
lse$get_environment(env_file,OFF);

!+
!  Get the output filename, and language
!-
out_file := get_info(command_line,"OUTPUT_FILE");
lang := get_info(command_line,"LANGUAGE");
if lang = ""
	then lang := "SDML";
endif;

!+
!  Create a temporary buffer and set the language
!-
!temp_buff := create_buffer('temp');
!position(temp_buff);
lse$do_command('set language '+lang);
erase(current_buffer);
!+
! Extract the various elements of the language
!-
lse$do_command('extract placeholder *');
lse$do_command('extract token *');

!+
! Write out the file, and get out
!-
write_file(current_buffer,out_file);
delete(current_buffer);
quit
******************************FIND_TAGS.SCN*************************************
MODULE FIND_TAGS;
!++
!
! ABSTRACT:
!
!    This SCAN program extracts anything that looks like a tag from
!    a file and places just the tags into a seperate file.
!
! AUTHORS:
!
!    Todd J. Little
!
! CREATION DATE: 13-May-1987
!
! MODIFICATION HISTORY:
!
!    [-tbs-]
!--

    DECLARE tag_list_file : FILE;
 
    SET not_c_bracket ( NOT('>' OR s'eol') );

    TOKEN full_tag { '<' [not_c_bracket]... '>'};
    TOKEN part_tag { '<' [not_c_bracket]... s'eol'};
     
    MACRO mfull_tag TRIGGER { tag_string:full_tag };
     
	WRITE FILE( tag_list_file ) tag_string;
     
    END MACRO /* mfull_tag */;

    MACRO mpart_tag TRIGGER { part_tag };
     
    END MACRO /* mfull_tag */;


    PROCEDURE main MAIN;
    !++
    ! FUNCTIONAL DESCRIPTION:
    !
    !   This procedure asks the user for the name of an input file and
    !	an output file, and then scans the input file for tags, placing
    !	them in the output file.
    !
    ! FORMAL PARAMETERS:
    !
    !   NONE
    !
    ! IMPLICIT INPUTS:
    !
    !   NONE
    !
    ! IMPLICIT OUTPUTS:
    !
    !   NONE
    !
    ! SIDE EFFECTS:
    !
    !   NONE
    !--
     
	DECLARE in_file_name, out_file_name : DYNAMIC STRING;
	READ PROMPT ('File containing tags and text? ') in_file_name;
	READ PROMPT ('File to place tag list? ') out_file_name;
	OPEN FILE( tag_list_file ) AS out_file_name FOR OUTPUT;
	START SCAN
	    INPUT FILE in_file_name
	    OUTPUT FILE 'NLA0:';
	CLOSE FILE( tag_list_file );
     
    END PROCEDURE /* main */;
 
END MODULE /* FIND_TAGS */;