mirror of
https://github.com/PDP-10/its.git
synced 2026-03-07 11:39:43 +00:00
214 lines
10 KiB
Plaintext
214 lines
10 KiB
Plaintext
'<PCODE "EGROUP">
|
||
|
||
<PACKAGE "EGROUP">
|
||
|
||
<ENTRY MAKE-GROUP PRINT-GROUP AMODES ADD-NODE-GROUP AUTO-TABLE AGROUP-TABLE>
|
||
|
||
<USE "EHACK" "EUTL" "CALSYM" "CALRDR" "XGEDIT">
|
||
|
||
<SETG GET-MODES %<RSUBR!- '[ %<PCODE!- "EGROUP" 0> GET-MODES #DECL ("VALUE" <
|
||
LIST [REST <LIST ANY ANY>]> LIST) READER GET-CONDS OUTCHAN %<RGLOC AMODES T>
|
||
"mode" [
|
||
"
|
||
Modes are Input (node command format), Edit (E/node command format),
|
||
Request, which will ask if you want to edit, and Input.if.empty..else.edit
|
||
(where empty means never edited - only initialized) which is the default (CRLF or $).
|
||
If Input is selected, it should be accompanied with a Condition (see
|
||
next argument) of Empty so that filled out-nodes are not clobbered"] ["SYM"]
|
||
"Iie/ee"]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,GET-MODES GLUE ![1077953552 4563452672
|
||
-16911466224 2080384020 70912 0 262148!]>>
|
||
|
||
<SETG GET-CONDS %<RSUBR!- '[ %<PCODE!- "EGROUP" 101> GET-CONDS #DECL ("VALUE"
|
||
LIST "OPTIONAL" ANY) READER %<RGLOC CONDS T> "
|
||
Conditions" [
|
||
"
|
||
Conditions indicate either that a test will be run to determine whether to
|
||
include this node in the automatic mode at run time or that some special action
|
||
should be taken while editing the object.
|
||
The current choices are: Empty (as determined by the resident empty-checking
|
||
routine for the current object type, e.g. default automatic mode), Evaluate
|
||
(i.e. something to evaluate at run time), or Edit.with (causes a given field to
|
||
be inserted into the editing buffer if the mode is \"Edit\").
|
||
If both Empty and an Evaluate are given, they both must be satisfied for the
|
||
editing of the node to take place" ""] ["SYM"] CONDITION EMPTY "Empty" EVAL []
|
||
"the object" [
|
||
"
|
||
The form you give will be evaluated when the node is
|
||
encountered. If it is false the node will not be edited." ""] ["FORM"] TOEVAL
|
||
"Evaluate" CONT GTYPE ALLNODES "the contents of" [
|
||
"
|
||
The contents of the node you select will be appended to the contents
|
||
of the node to be edited. The node to be edited must be a terminal
|
||
node. If it contains a string, the \"with\" node must also.
|
||
Multiple nodes can be given via multiple conditions." ""] "Contents"]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,GET-CONDS GLUE ![4379120709 4391935
|
||
-5162728687 30542663772 30601640753 8522825793 30542118975 -322666752 1065237 0
|
||
15 262157!]>>
|
||
|
||
<SETG CONDS '["Edit.with" CONT "Empty" EMPTY "Evaluate" EVAL]>
|
||
|
||
<SETG NODE-GROUP-INSERT %<RSUBR!- '[ %<PCODE!- "EGROUP" 276> NODE-GROUP-INSERT
|
||
#DECL ("VALUE" <OR ATOM FIX STRING> <PRIMTYPE LIST>) SYM.INSERT GET-CONDS
|
||
INSERT.G.EDIT DEPTH.G.EDIT GTYPE ALLNODES "node" ["Select node to insert" ""] [
|
||
"SYM"] PT.G.EDIT %<RGLOC AMODES T> "mode" ["Select Mode to insert" ""] OUTCHAN
|
||
"INSERTION ONLY IN SECOND POSITION" "CAN'T INSERT"]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,NODE-GROUP-INSERT GLUE ![1076954163
|
||
-17112776698 18372117251 -66646799 4580714252 -4026531840 262148!]>>
|
||
|
||
<SETG NODE-GROUP-CHANGE %<RSUBR!- '[ %<PCODE!- "EGROUP" 378> NODE-GROUP-CHANGE
|
||
#DECL ("VALUE" <OR ATOM <PRIMTYPE LIST>> <PRIMTYPE LIST>) SYM.CHANGE GET-CONDS
|
||
CHANGE.G.EDIT DEPTH.G.EDIT PT.G.EDIT GTYPE ALLNODES "node" [
|
||
"Select node to change existing node to" ""] ["SYM"] %<RGLOC AMODES T> "mode" [
|
||
"Select Mode to change to" ""] T]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,NODE-GROUP-CHANGE GLUE ![1078136924
|
||
17461870847 -4284727028 4293926785 -3217021952 262148!]>>
|
||
|
||
<SETG NODE-GROUP-KILL %<RSUBR!- '[ %<PCODE!- "EGROUP" 472> NODE-GROUP-KILL #
|
||
DECL ("VALUE" <OR STRING <PRIMTYPE LIST>> <PRIMTYPE LIST> FIX) KILL.G.EDIT
|
||
DEPTH.G.EDIT PT.G.EDIT OUTCHAN "CAN'T KILL"]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,NODE-GROUP-KILL GLUE ![67309660 17649696924
|
||
13895729152 524294!]>>
|
||
|
||
<SETG NODE-GROUP-KM %<RSUBR!- '[ %<PCODE!- "EGROUP" 522> NODE-GROUP-KM #DECL (
|
||
"VALUE" <OR STRING <PRIMTYPE LIST>> <PRIMTYPE LIST> FIX) CHANGE.G.EDIT PT.G.EDIT
|
||
OUTCHAN "CAN'T KILL MODE"]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,NODE-GROUP-KM GLUE ![68419632 285215744
|
||
163789888 0 524294!]>>
|
||
|
||
<SETG NODE-GROUP-IM %<RSUBR!- '[ %<PCODE!- "EGROUP" 581> NODE-GROUP-IM #DECL (
|
||
"VALUE" <OR ATOM FIX STRING> <PRIMTYPE LIST> FIX) SYM.INSERT EDITOBJ (<PRIMTYPE
|
||
LIST>) DEPTH.G.EDIT GTYPE ALLNODES "node" [
|
||
"First select the node. Later select mode/conditions" ""] ["SYM"]
|
||
%<RSUBR!- '[ %<PCODE!- "EGROUP" 648> ANONF2!-TMP!- #DECL ("VALUE" <LIST ANY
|
||
ANY> ANY) READER GET-CONDS %<RGLOC AMODES T> "mode" [
|
||
"Give the mode in which the node should be edited" ""] ["SYM"]]> OUTCHAN
|
||
"CAN'T INSERT AT THIS LEVEL"]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,NODE-GROUP-IM GLUE ![68959244 17461870847
|
||
-4292895693 -16106127360 524294!]>>
|
||
|
||
<SETG NODE-GROUP-CM %<RSUBR!- '[ %<PCODE!- "EGROUP" 711> NODE-GROUP-CM #DECL (
|
||
"VALUE" <OR ATOM STRING <PRIMTYPE LIST>> <PRIMTYPE LIST> FIX) SYM.CHANGE EDITOBJ
|
||
(<PRIMTYPE LIST>) PT.G.EDIT %<RGLOC AMODES T> "mode" [
|
||
"What mode do you wish to change the existing one to?" ""] ["SYM"]
|
||
%<RSUBR!- '[ %<PCODE!- "EGROUP" 781> ANONF2!-TMP!- #DECL ("VALUE" LIST ANY)
|
||
GET-CONDS EDITOBJ PT.G.EDIT]> OUTCHAN "CAN'T CHANGE LIST"]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,NODE-GROUP-CM GLUE ![68535232 201344048
|
||
17175690864 -13136560128 524294!]>>
|
||
|
||
<SETG TABPRINT %<RSUBR!- '[ %<PCODE!- "EGROUP" 824> TABPRINT #DECL ("VALUE"
|
||
ATOM FIX) OUTCHAN " " " " " " T]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,TABPRINT GLUE ![1073860369 -13134662848 262148
|
||
!]>>
|
||
|
||
<SETG PRINT-GROUP %<RSUBR!- '[ %<PCODE!- "EGROUP" 864> PRINT-GROUP #DECL (
|
||
"VALUE" ANY) MAKEMST READER READARGS GET-TYPE TABPRINT "GTYPES" #SYMTABLE [
|
||
SSTOPS ["Nodes" T] "NODES" #FALSE ()] %<RGLOC TYPE-COM-TABLE T> %<TYPE-W
|
||
SYMTABLE VECTOR> "of" ["
|
||
Type of group to be printed ." ""] ["SYM"] T AGROUP-TABLE "named" [
|
||
"
|
||
Name of the group(s) to print. False (terminator) will print all of
|
||
the existing groups. will flush the command." ""] ["SYM" "MULT"] OUTCHAN
|
||
" group" %<RGLOC OBJVECT T> AUTO-TABLE [
|
||
"
|
||
Name of the group(s) to print. If false (terminator), all groups will be
|
||
printed. will flush the command." ""] NODE-GROUP
|
||
" group
|
||
Node____ Mode____ Conditions__________" "Unspecified" " "
|
||
" " " " %<RGLOC NULL T>]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,PRINT-GROUP GLUE ![17251434288 553646097
|
||
1900265535 -532397055 262144 16704 18321702917 17180917760 1140916225
|
||
-16374501376 -17175411648 268435504 -17179866112 18544154641 -4278192111
|
||
4563664897 0 4378870720 268451840 272892160 4546825264 13892600836 17183033091
|
||
753992716 201851139 54267904 1426341952 -17166303228 3222073616 12888293396
|
||
22835301383 -12884901888 2!]>>
|
||
|
||
<SETG MAKE-GROUP %<RSUBR!- '[ %<PCODE!- "EGROUP" 1443> MAKE-GROUP #DECL (
|
||
"VALUE" ANY ANY) GET-TYPE READER MAKE-NODE-GROUP MAKE-ABS-GROUP T AUTO-TABLE
|
||
"named" [
|
||
"
|
||
Indicate the name of the node group you wish to operate on. If you choose an
|
||
existing name you may either edit it or replace it." ""] ["SYM" "ATOM"]
|
||
AGROUP-TABLE [
|
||
"
|
||
Indicate the name of the object group you wish to operate on. If you
|
||
choose an existing group you may either edit it or replace it." ""]]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,MAKE-GROUP GLUE ![1078206468 17455771663
|
||
-133103472 -4293901376 17177789442 17179869184 262148!]>>
|
||
|
||
<SETG MAKE-ABS-GROUP %<RSUBR!- '[ %<PCODE!- "EGROUP" 1543> MAKE-ABS-GROUP #DECL
|
||
("VALUE" ANY <OR ATOM SYMBOL> ATOM) READER SYM.EDIT POS NO-DUPES READARGS
|
||
SYM-SORT COMMAND-UPDATE FOO (LIST) %<TYPE-C SYMBOL VECTOR> AGROUP-TABLE []
|
||
"Edit existing group?" [
|
||
"
|
||
If you wish to replace the existing group, just type a terminator.
|
||
If you wish to edit the existing group, type anything (e.g., T) followed
|
||
by a terminator." ""] ["ANY"] %<RGLOC OBJVECT T> ROBL %<RGLOC OBJLOADTAB T> %<
|
||
TYPE-W SYMTABLE VECTOR> "object" [
|
||
"
|
||
Select an object or group of them to include here.
|
||
If a group is selected, it will be expanded to its constituents." ""] ["SYM"]
|
||
"consisting of objects" [
|
||
"
|
||
Select the objects and groups of objects to comprise the new group." ""] ["SYM"
|
||
"MULT"]]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,MAKE-ABS-GROUP GLUE ![68508796 4580655104
|
||
-4294967169 -29080572 16777219 1024 17120320 16109486076 100667652 1140851460
|
||
4460800 1073807360 87107 541065220 21613278015 -536591865 17179886608 4563405833
|
||
17664 284164096 17842244 3154944 18088896 4294967872 0 524294!]>>
|
||
|
||
<SETG MAKE-NODE-GROUP %<RSUBR!- '[ %<PCODE!- "EGROUP" 1991> MAKE-NODE-GROUP #
|
||
DECL ("VALUE" ATOM <OR ATOM FALSE SYMBOL> ATOM) READER G.EDIT MAKEMST READARGS
|
||
GET-MODES GTYPE (ATOM) EDIT.LOCAL (<OR FALSE LIST>) %<TYPE-C SYMBOL VECTOR>
|
||
NODE-GROUP [] "Edit existing group?" [
|
||
"
|
||
If non-false, you may edit the group using the muddle editor. If the group has
|
||
specifications for modes (for automatic mode), the group will appear as a list of
|
||
2-lists with the node name and the mode operative. The two modes available now
|
||
are Edit and Input (equivalent to E/ and node commands). A third choice is an object
|
||
of type false, which will cause a request to occur at the time the node is reached.
|
||
If there are no mode specifications, the group will be a list of node names." ""
|
||
] ["ANY"] OPATH "INSERT" %<RGLOC NODE-GROUP-INSERT T> "CHANGE" %<RGLOC
|
||
NODE-GROUP-CHANGE T> "KILL" %<RGLOC NODE-GROUP-KILL T> "IM" %<RGLOC
|
||
NODE-GROUP-IM T> "Insert a node with a mode specified" "CM" %<RGLOC
|
||
NODE-GROUP-CM T> "Change a node to have a mode specified" "KM" %<RGLOC
|
||
NODE-GROUP-KM T> "Kill the mode for the next object" "nodes&n-groups" ALLNODES
|
||
AUTO-TABLE "consisting of nodes" [
|
||
"
|
||
These nodes will comprise the group.
|
||
Node-groups may be given, in which case they will be expanded to
|
||
their constituents and duplicates eliminated" ""] ["SYM" "MULT"] "Specify mode?"
|
||
[
|
||
"
|
||
If non-false, you will be asked for the mode of operation for each of the nodes
|
||
in the group. The form of the request will be .. Unique.name mode:, etc.
|
||
Possible answers include the modes Input and Edit which correspond to fill-node
|
||
commands and E/ commands. Other modes are explained in the next argument" ""] T
|
||
]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,MAKE-NODE-GROUP GLUE ![68508732 30585144349
|
||
17887236 34359625668 16110256131 -4294709248 16915366896 16110257088 8841720048
|
||
251658371 -508 17180979200 4567597312 84 1413757953 4194304 18270404864 4276481
|
||
4294967381 4362076225 17197711424 67130372 1162100752 1130500 18186510336
|
||
4546691140 16106127360 1006698496 872415232 0 524294!]>>
|
||
|
||
<SETG ADD-NODE-GROUP %<RSUBR!- '[ %<PCODE!- "EGROUP" 2525> ADD-NODE-GROUP #DECL
|
||
("VALUE" ANY ATOM ATOM LIST) AUTO-TABLE NODE-GROUP]>>
|
||
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,ADD-NODE-GROUP GLUE ![4210748 268435713
|
||
16792580 0 786440!]>>
|
||
|
||
<ENDPACKAGE>
|