home *** CD-ROM | disk | FTP | other *** search
/ Really Useful CD 1 / ReallyUsefulCD1.iso / extras / languages / smalltalk / _smalltalk / parser / h / cmds next >
Encoding:
Text File  |  1987-12-30  |  3.9 KB  |  136 lines

  1. /*
  2.      Little Smalltalk
  3.  
  4.      The following very common commands are given a concise description
  5.      in bytecodes.
  6.  
  7. */
  8.  
  9. static char *unspecial[] = {"new", "isNil", "notNil", "size", "class",
  10.           "value", "first", "next", "print", "printString",
  11.           "strictlyPositive", "currentKey", "not",
  12.  
  13.           /* after the first 16 - which should be the most common
  14.           messages, order doesn't make as much difference so we
  15.           might as well list things in alphabetical order */
  16.  
  17.           "abs",
  18.           "asArray", 
  19.           "asFloat", 
  20.           "asString", 
  21.           "asSymbol", 
  22.           "block",
  23.           "compareError", 
  24.           "copy", 
  25.           "current",
  26.           "deepCopy",
  27.           "exp", 
  28.           "findLast",
  29.           "firstKey",
  30.           "gamma", 
  31.           "isEmpty",
  32.           "isLowercase",
  33.           "isUppercase",
  34.           "last",
  35.           "lastKey",
  36.           "ln", 
  37.           "newProcess",
  38.           "not", 
  39.           "opError",
  40.           "read",
  41.           "removeError",
  42.           "removeFirst",
  43.           "removeLast",
  44.           "resume",
  45.           "rounded", 
  46.           "shallowCopy", 
  47.           "sqrt",
  48.           "squared", 
  49.           "state",
  50.           "superClass",
  51.           "truncated", 
  52.           "unblock",
  53.           "x", 
  54.           "y", 
  55.           0 };
  56.  
  57. # define VALUECMD 5
  58. # define PRNTCMD  8
  59.  
  60. static char *binspecial[] = {"new:", "at:", "to:", "do:", "value:",
  61.                       "==", "~~", "timesRepeat:", "whileTrue:", "whileFalse:",
  62.                       "ifTrue:", "ifFalse:", "error:", "add:", 
  63.                 "/", "coerce:",
  64.  
  65.                 "^", 
  66.                 ",", 
  67.                 "//",
  68.                 "addAll:", 
  69.                 "addAllLast:", 
  70.                 "addFirst:", 
  71.                 "addLast:", 
  72.                 "binaryDo:", 
  73.                 "checkBucket:",
  74.                 "collect:",
  75.                 "deepCopy:", 
  76.                 "gcd:", 
  77.                 "getList:",
  78.                 "hashNumber:",
  79.                 "includes:", 
  80.                 "inRange:", 
  81.                 "keysDo:", 
  82.                 "log:", 
  83.                 "maxtype:", 
  84.                 "newProcessWith:",
  85.                 "occurrencesOf:",
  86.                 "raisedTo:",
  87.                 "reject:",
  88.                 "remove:", 
  89.                 "removeKey:", 
  90.                 "respondsTo:",
  91.                 "reverseDo:",
  92.                 "roundTo:", 
  93.                 "select:",
  94.                 "shallowCopy:", 
  95.                 "sort:", 
  96.                 "termErr:",
  97.                 "truncateTo:",
  98.                 "write:",
  99.                 "x:", 
  100.                 "y:", 
  101.                 "includesKey:",
  102.                 0};
  103.  
  104. static char *arithspecial[] = {"+", "-", "*", "\\\\",
  105.                         "bitShift:", "bitAnd:", "bitOr:",
  106.                         "<", "<=", "=", "~=", ">=", ">", 
  107.                "rem:", "quo:", "min:", "max:", 
  108.                0};
  109.  
  110. static char *keyspecial[] = {"at:put:", "ifTrue:ifFalse:", "ifFalse:ifTrue:",
  111.                         "value:value:", "to:by:", "at:ifAbsent:",
  112.                "indexOf:ifAbsent:", "inject:into:", 
  113.                "remove:ifAbsent:", "removeKey:ifAbsent:", 
  114.                "between:and:", 
  115.                "findFirst:ifAbsent:", "findLast:ifAbsent:",
  116.                "equals:startingAt:",
  117.                "findAssociation:inList:",
  118.                "detect:ifAbsent:",
  119.                0};
  120.  
  121. /*   The classes included in the standard prelude
  122.      also have a very concise description in bytecode representation
  123. */
  124.  
  125. static char *classpecial[] = {"Array", "ArrayedCollection", 
  126.      "Bag", "Block", "Boolean", "ByteArray",
  127.      "Char", "Class", "Collection", "Complex",
  128.      "Dictionary", "False", "File", "Float",
  129.      "Integer", "Interpreter", "Interval",
  130.      "KeyedCollection", "List", "Magnitude", "Number",
  131.      "Object", "OrderedCollection", "Point",
  132.      "Radian", "Random",
  133.      "SequenceableCollection", "Set", "String", "Symbol",
  134.      "True", "UndefinedObject",
  135.      0 };
  136.