1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-07 11:39:43 +00:00
Files
PDP-10.its/bin/librm2/egroup.fbin

214 lines
10 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'<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>