rig_pnt.rig 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #STANT
  2. -- Program for printing object out
  3. -- 1th parameter - =s - for printing to screen
  4. -- oth. for printing to any file
  5. -- 2th parameter p - PRINT-operation
  6. -- g - Graphical print operation
  7. -- v - Graphical, to file
  8. -- 3rd parameter Code file name
  9. -- Next parameters - Components
  10. -- Last parameter - if "?" - then writes only this component
  11. $E:=#PARM(T);
  12. IF $E[1]='s' -> OPEN TT ' '
  13. ELSIF T -> OPEN TT $E[1]
  14. FI;
  15. TT<<parameters ':';
  16. FORALL $EE IN $E DO TT<]'('$EE') ' OD;
  17. #F($E);
  18. IF $E[1]='s' -> #CALL_PAS(1 'Press ENTER') FI;
  19. ##
  20. #F
  21. (. $GFILE
  22. ($F:=p!$F:=g!$F:=v)
  23. $AFILE
  24. / LOAD $OBJ $AFILE ;
  25. $STR :=(. '"' $AFILE '"' .);
  26. IF NOT $OBJ -> TT<<$STR;
  27. TT<<' no such file !!! ';
  28. #CALL_PAS(1 #IMPLODE('No such file="'
  29. $AFILE '" Press ENTER')) ;
  30. RETURN NULL FI/
  31. (*
  32. ( '?' / TT<<$STR;
  33. IF $GFILE<>'s'->
  34. PRINT ' Use " ? " only if output to screen allowed !'
  35. FI;
  36. #ANAL($OBJ);RETURN NULL / !
  37. $NUM / $STR!!:=(. '[' COPY($NUM) ']' .);
  38. TT<< $STR; $LEN:=#LEN($OBJ);
  39. IF NOT #LIST($OBJ) -> TT<<'object is not list !';#TT()
  40. ELSIF ( $NUM>$LEN ) OR
  41. ( ( $NUM<0 )AND( -$NUM>$LEN ) ) ->
  42. TT<<'object''s length-only ' $LEN ;#TT() FI;
  43. $OBJ:=$OBJ[$NUM] / !
  44. $IDATOM / $STR !!:=(. '.' COPY($IDATOM) .) ;
  45. TT<< $STR;
  46. IF NOT #TREE($OBJ) ->
  47. TT<< 'object is not tree !';#TT()
  48. ELSIF NOT( $OBJ.$IDATOM ) ->
  49. TT<< 'object has no such selector !';#TT()
  50. FI;
  51. $OBJ:=$OBJ.$IDATOM /!
  52. $XXX / TT<<' wrong element in parameters =' $XXX / ) *) .)
  53. / TT<<;TT<<;
  54. IF $F=g -> #CALL_PAS(13 $OBJ)
  55. ELSIF $F=v -> #CALL_PAS(12 $OBJ)
  56. ELSIF T -> PRINT $OBJ
  57. FI;TT<< / ##
  58. #TT / TT<<;TT<< / ##
  59. #ANAL NULL / TT << ' NULL ' / ;;
  60. $NAME::<* $SEL : $ZARS:=#MANAL
  61. / IF NOT $NAME -> TT<< 'tree without name : ' ; $NAME:=0;
  62. ELSIF $NAME<>0 -> TT<<'tree with name : ' $NAME ;$NAME:=0;
  63. FI;
  64. TT<< $SEL ':' $ZARS / *> ;;
  65. $NAME ::(. (* $EL!.:=#MANAL
  66. / IF NOT $NAME -> TT<< ' list without name : ' ; $NAME:=0;
  67. ELSIF $NAME<>0 -> TT<<'list with name : ' $NAME ;$NAME:=0;
  68. FI / *) .)
  69. / TT<<list length #LEN($EL);
  70. TT<<list is $EL / ;;
  71. $K:= #MANAL
  72. / TT<<$K; RETURN $K / ##
  73. #MANAL NULL / RETURN ' NULL ' / ;;
  74. <. [X:X] .> / RETURN ' tree ' /;;
  75. (. (* $E *) .) / RETURN ' list '/;;
  76. $F:=#FATOM / RETURN (. 'F-ATOM=' $F .)/;;
  77. $N:=#NUMBER / RETURN (. 'NUMBER-ATOM=' $N .)/;;
  78. V'(#_RULETOATM($$)) $S / RETURN (. 'RULE-DESK=' $S .)/;;
  79. V'(#_VARNAME ($$)) $S / RETURN (. 'VAR-DESK=' $S .)/;;
  80. V'(#_KEYWORD ($$)) $S / RETURN (. 'KEYW-DESK=' $S .)/;;
  81. $I:=#IDENT / RETURN (. 'ID-ATOM=' $I .)/;;
  82. $I:=#IDENT / RETURN (. 'ID-ATOM=' $I .)/;;
  83. $O / RETURN (. 'ATOM=' $O .)/##