]> Top I18N.BigEndianFileStream I18N.BigEndianFileStream Defined in namespace I18NSuperclass: FileStreamCategory: i18n-Messages Unlike ByteStream and FileStream, this retrieves integer numbers inbig-endian (68000, PowerPC, SPARC) order. I18N.FileStreamSegment I18N.FileStreamSegment Defined in namespace I18NSuperclass: FileSegmentCategory: i18n-Messages Unlike FileSegment, this object assumes that the `file' instancevariable is a FileStream, not a file name. I18N.FileStreamSegment: basic fileNamefileName Answer the name of the file containing the segment withFileDo: withFileDo: aBlock Evaluate aBlock, passing a FileStream corresponding to the file I18N.LcCollate I18N.LcCollate Defined in namespace I18NSuperclass: I18N.LocaleDataCategory: i18n-Collation I18N.LcCollate class: accessing bigEndianIDbigEndianID Answer the id of the data file read by this class if in big-endianformat category category Answer the C category (and environment variable) correspondingto the functionality implemented by this class littleEndianID littleEndianID Answer the id of the data file read by this class if in little-endianformat I18N.LcCollate: creating CollationKeys ?? aString Answer a collation key for aString, used to do locale-exactcomparisons collationKeyFor: collationKeyFor: aString Answer a precompiled collation key for aString, used to do fastlocale-exact comparisons at the expense of a fixed initial cost. I18N.LcCollate: reading bePosixbePosix Set the data for the POSIX locale's collating rules readDataFrom: readDataFrom: f Read the data for the locale described by the `f' FileStream. I18N.LcCollationKey I18N.LcCollationKey Defined in namespace I18NSuperclass: MagnitudeCategory: i18n-Collation An LcCollationKey knows how to compare strings according to a specificlocale, and can precompile strings to allow for very fast comparisons (asfast as traditional non-localized string comparisons). I18N.LcCollationKey class: instance creation newnew This method should not be called for instances of this class. on:for: on: aString for: aLocale Answer a new collation key for aString, that compares accordingto the aLocale locale. I18N.LcCollationKey: accessing isPrecompiledisPrecompiled Answer whether a precompiled representation of the stringis already available. locale locale Answer the locale in which the comparison is to be done precompile precompile Compute a precompiled representation of the string whichthe receiver refers to. I18N.LcCollationKey: comparison << anObject Answer whether the receiver collates before anObject, whichcan be a string or another LcCollationKey. If a precompiledrepresentation of the receiver is available, anObject isprecompiled as well and the comparison is done on thefast representation; otherwise a direct comparison is made. = = anObject Answer whether the receiver and anObject collect the same(for example StraBe and Strasse in the German locale) hash hash Answer an hash value for the receiver I18N.LcCollationMultipleWeights I18N.LcCollationMultipleWeights Defined in namespace I18NSuperclass: ObjectCategory: i18n-Collation I18N.LcCollationMultipleWeights: accessing numberAtPass:numberAtPass: cnt Not commented. pass:at:for: pass: cnt at: n for: aLocale Not commented. passes:index:for: passes: n index: slot for: aLocale Not commented. I18N.LcCollationSingleWeight I18N.LcCollationSingleWeight Defined in namespace I18NSuperclass: ObjectCategory: i18n-Collation I18N.LcCollationSingleWeight class: accessing index:index: firstIndex Not commented. I18N.LcCollationSingleWeight: accessing index:index: firstIndex Decrement to account for pass number starting at 1 numberAtPass: numberAtPass: cnt Answer `1'. pass:at:for: pass: cnt at: n for: aLocale Not commented. I18N.LcCollationWeight I18N.LcCollationWeight Defined in namespace I18NSuperclass: ObjectCategory: i18n-Collation LcCollationWeight is just a helper class which stores the values usedby the collator itself; LcCollationWeight is an abstract factory class,whose class methods create instances of the subclasses.There are two of them: LcCollationSingleWeight uses single elementsof a locale's collate-table, while LcCollationMultipleWeights uses multipleadjiacent elements of a locale's collate-extra table, and is used a) whereinvalid double-byte characters are used, and b) where collation elementsare encountered (e.g. `oe' in German). I18N.LcCollationWeight class: instance creation multipleWeights:locale:multipleWeights: slot locale: aLocale Not commented. singleWeight: singleWeight: slot Not commented. I18N.LcCollationWeight: accessing numberAtPass:numberAtPass: cnt This method's functionality should be implemented by subclasses of LcCollationWeight pass:at:for: pass: cnt at: n for: aLocale This method's functionality should be implemented by subclasses of LcCollationWeight I18N.LcCollationWeightsSet I18N.LcCollationWeightsSet Defined in namespace I18NSuperclass: ArrayCategory: i18n-Collation An LcCollationWeightsSet is an internal class that represents thepreliminary translation of a string to be compared and the currentposition in the translation. I18N.LcCollationWeightsSet: iteration ellipsisCharellipsisChar Answer `16rFFFFFFFE'. ignoreChar ignoreChar As found in the table ignoredWeightsFor: ignoredWeightsFor: aLocale Not commented. nextPass: nextPass: aLocale Not commented. weight weight Answer `weight'. I18N.LcMessages I18N.LcMessages Defined in namespace I18NSuperclass: I18N.LocaleConventionsCategory: i18n-Messages This object is a factory of LcMessagesDomain objects I18N.LcMessages class: accessing categorycategory Answer the environment variable used to determine the defaultlocale selector selector Answer the selector that accesses the receiver when sent to a Localeobject. I18N.LcMessages: accessing languageDirectorylanguageDirectory Answer the directory holding MO files for the language languageDirectory: languageDirectory: rootDirectory Answer the directory holding MO files for the language, given theroot directory of the locale data. territoryDirectory territoryDirectory Answer the directory holding MO files for the language, specific tothe territory territoryDirectory: territoryDirectory: rootDirectory Answer the directory holding MO files for the language, specific tothe territory, given the root directory of the locale data. I18N.LcMessages: opening MO files ?? aString Answer an object for the aString domain, querying both thelanguage catalog (e.g. pt) and the territory catalog (e.g. pt_BRor pt_PT). domain: domain: aString Answer an object for the aString domain, querying both thelanguage catalog (e.g. pt) and the territory catalog (e.g. pt_BRor pt_PT). domain:localeDirectory: domain: aString localeDirectory: rootDirectory Answer an object for the aString domain, querying both thelanguage catalog (e.g. pt) and the territory catalog (e.g. pt_BRor pt_PT). The localeDirectory is usually '<installprefix>/share/locale'. I18N.LcMessagesCatalog I18N.LcMessagesCatalog Defined in namespace I18NSuperclass: I18N.LcMessagesDomainCategory: i18n-Messages This object is an abstract superclass of objects that retrievetranslated strings from a file. I18N.LcMessagesDomain I18N.LcMessagesDomain Defined in namespace I18NSuperclass: I18N.LocaleDataCategory: i18n-Messages This object is an abstract superclass for message domains (catalogs).It contains methods to create instances of its subclasses, but they arecommonly used only by LcMessages.Translations are accessed using either #at: or the shortcut binarymessages `?'. This way, common idioms to access translated stringswill be string := NLS? 'abc'. string := self? 'abc'.(in the first case NLS is a class variable, in the second the receiverimplements #? through delegation) which is only five or six characterslonger than the traditional string := 'abc'.(cfr. the _("abc") idiom used by GNU gettext) I18N.LcMessagesDomain class: opening MO files id:on:id: anArray on: aFileName Create an instance of the receiver with a given locale identifierfrom a path to the MO file I18N.LcMessagesDomain: handling the cache flushflush Flush the receiver's cache of translations shouldCache shouldCache Answer whether translations should be cached. Never overridethis method to always answer false, because that would causebugs when transliteration is being used. I18N.LcMessagesDomain: querying ?? aString Answer the translation of `aString', or answer aString itselfif none is available. at: at: aString Answer the translation of `aString', or answer aString itselfif none is available. at:plural:with: at: singularString plural: pluralString with: n Answer either the translation of pluralString with `%1' replaced byn if n ~= 1, or the translation of singularString if n = 1. at:put: at: aString put: anotherString This method should not be called for instances of this class. translatorInformation translatorInformation Answer information on the translation, or nil if there is none.This information is stored as the `translation' of an empty string. translatorInformationAt: translatorInformationAt: key Answer information on the translation associated to a given key translatorInformationAt:at: translatorInformationAt: key at: subkey Answer information on the translation associated to a given keyand to a subkey of the key I18N.LcMessagesDummyDomain I18N.LcMessagesDummyDomain Defined in namespace I18NSuperclass: I18N.LcMessagesDomainCategory: i18n-Messages This object does no attempt to translate strings, returninginstead the same string passed as an argument to #?. I18N.LcMessagesMoFileVersion0 I18N.LcMessagesMoFileVersion0 Defined in namespace I18NSuperclass: I18N.LcMessagesCatalogCategory: i18n-Messages This object is an concrete class that retrieves translated stringsfrom a GNU gettext MO file. The class method #fileFormatDescriptioncontains an explanation of the file format. I18N.LcMessagesMoFileVersion0 class: documentation fileFormatDescriptionfileFormatDescription The Format of GNU MO Files (excerpt of the GNU gettext manual)==============================================================The format of the generated MO files is best described by a picture,which appears below.The first two words serve the identification of the file. The magicnumber will always signal GNU MO files. The number is stored in thebyte order of the generating machine, so the magic number really is twonumbers: `0x950412de' and `0xde120495'. The second word describes thecurrent revision of the file format. For now the revision is 0. Thismight change in future versions, and ensures that the readers of MOfiles can distinguish new formats from old ones, so that both can behandled correctly. The version is kept separate from the magic number,instead of using different magic numbers for different formats, mainlybecause `/etc/magic' is not updated often. It might be better to havemagic separated from internal format version identification.Follow a number of pointers to later tables in the file, allowingfor the extension of the prefix part of MO files without having torecompile programs reading them. This might become useful for laterinserting a few flag bits, indication about the charset used, newtables, or other things.Then, at offset O and offset T in the picture, two tables of stringdescriptors can be found. In both tables, each string descriptor usestwo 32 bits integers, one for the string length, another for the offsetof the string in the MO file, counting in bytes from the start of thefile. The first table contains descriptors for the original strings,and is sorted so the original strings are in increasing lexicographicalorder. The second table contains descriptors for the translatedstrings, and is parallel to the first table: to find the correspondingtranslation one has to access the array slot in the second array withthe same index.Having the original strings sorted enables the use of simple binarysearch, for when the MO file does not contain an hashing table, or forwhen it is not practical to use the hashing table provided in the MOfile. This also has another advantage, as the empty string in a POfile GNU `gettext' is usually *translated* into some system informationattached to that particular MO file, and the empty string necessarilybecomes the first in both the original and translated tables, makingthe system information very easy to find.The size S of the hash table can be zero. In this case, the hashtable itself is not contained in the MO file. Some people might preferthis because a precomputed hashing table takes disk space, and does notwin *that* much speed. The hash table contains indices to the sortedarray of strings in the MO file. Conflict resolution is done by doublehashing. The precise hashing algorithm used is fairly dependent of GNU`gettext' code, and is not documented here.As for the strings themselves, they follow the hash file, and eachis terminated with a <NUL>, and this <NUL> is not counted in the lengthwhich appears in the string descriptor. The `msgfmt' program has anoption selecting the alignment for MO file strings. With this option,each string is separately aligned so it starts at an offset which is amultiple of the alignment value. On some RISC machines, a correctalignment will speed things up.Nothing prevents a MO file from having embedded <NUL>s in strings.However, the program interface currently used already presumes thatstrings are <NUL> terminated, so embedded <NUL>s are somewhat useless.But MO file format is general enough so other interfaces would be laterpossible, if for example, we ever want to implement wide charactersright in MO files, where <NUL> bytes may accidently appear.This particular issue has been strongly debated in the GNU `gettext'development forum, and it is expectable that MO file format will evolveor change over time. It is even possible that many formats may laterbe supported concurrently. But surely, we have to start somewhere, andthe MO file format described here is a good start. Nothing is cast inconcrete, and the format may later evolve fairly easily, so we shouldfeel comfortable with the current approach.byte+————————————————————–+0 | magic number = 0x950412de || |4 | file format revision = 0 || |8 | number of strings | == N| |12 | offset of table with original strings | == O| |16 | offset of table with translation strings | == T| |20 | size of hashing table | == S| |24 | offset of hashing table | == H| |. .. (possibly more entries later) .. .| |O | length & offset 0th string ———————–.O + 8 | length & offset 1st string ————————–.... ... | |O + ((N-1)*8)| length & offset (N-1)th string | | || | | |T | length & offset 0th translation ———————.T + 8 | length & offset 1st translation ————————.... ... | | | |T + ((N-1)*8)| length & offset (N-1)th translation | | | | || | | | | |H | start hash table | | | | |... ... | | | |H + S * 4 | end hash table | | | | || | | | | || NUL terminated 0th string <———————–' | | || | | | || NUL terminated 1st string <————————–' | || | | |... ... | || | | || NUL terminated 0th translation <———————' || | || NUL terminated 1st translation <————————'| |... ...| |+————————————————————–+Locating Message Catalog Files——————————————–Because many different languages for many different packages have tobe stored we need some way to add these information to file messagecatalog files. The way usually used in Unix environments is have thisencoding in the file name. This is also done here. The directory namegiven in `bindtextdomain's second argument (or the default directory),followed by the value and name of the locale and the domain name areconcatenated:DIR_NAME/LOCALE/LC_CATEGORY/DOMAIN_NAME.moThe default value for DIR_NAME is system specific. For the GNUlibrary, and for packages adhering to its conventions, it's:/usr/local/share/localeLOCALE is the value of the locale whose name is this `LC_CATEGORY'.For `gettext' and `dgettext' this locale is always `LC_MESSAGES'. I18N.LcMessagesMoFileVersion0 class: plurals initializeinitialize Initialize a table with the expressions computing the pluralsfor the most common languages pluralExpressionFor:ifAbsent: pluralExpressionFor: locale ifAbsent: aBlock Answer a RunTimeExpression yielding the plural form for the givenlanguage and territory, if one is known, else evaluate aBlock andanswer it. I18N.LcMessagesMoFileVersion0: flushing the cache flushflush Flush the cache and reread the catalog's metadata. shouldCache shouldCache Answer true, we always cache translations if they are read froma file I18N.LcMessagesTerritoryDomain I18N.LcMessagesTerritoryDomain Defined in namespace I18NSuperclass: I18N.LcMessagesDomainCategory: i18n-Messages This object asks for strings to a primary domain (e.g. it_IT)and a secondary one (e.g. it). I18N.LcMessagesTerritoryDomain class: instance creation primary:secondary:primary: domain1 secondary: domain2 Answer an instance of the receiver that queries, in sequence,domain1 and domain2 I18N.LcMonetary I18N.LcMonetary Defined in namespace I18NSuperclass: I18N.LcNumericCategory: i18n-Printing Sending either #?, #printString: or #print:on: converts a Number toa String according to the rules that are mandated by ISO for printingcurrency amounts in the current locale. I18N.LcMonetary class: accessing categorycategory Answer the environment variable used to determine the defaultlocale selector selector Answer the selector that accesses the receiver when sent to a Localeobject. I18N.LcMonetary: printing print:on:print: aNumber on: aStream Print aNumber on aStream according to the receiver'sformatting conventions. Always print a currency signand don't force to print negative numbers by puttingparentheses around them. print:on:currency:parentheses: print: aNumber on: aStream currency: currency parentheses: p Print aNumber on aStream according to the receiver'sformatting conventions. If currency is true, print acurrency sign, and if p is true force to print negativenumbers by putting parentheses around them. If p is true,for positive numbers spaces are put around the numberto keep them aligned. I18N.LcMonetaryISO I18N.LcMonetaryISO Defined in namespace I18NSuperclass: I18N.LcMonetaryCategory: i18n-Printing I18N.LcMonetaryISO class: accessing selectorselector Answer the selector that accesses the receiver when sent to a Localeobject. I18N.LcNumeric I18N.LcNumeric Defined in namespace I18NSuperclass: I18N.LcPrintFormatsCategory: i18n-Printing Sending either #?, #printString: or #print:on: converts a Number toa String according to the rules that are used in the given locale. I18N.LcNumeric class: accessing categorycategory Answer the environment variable used to determine the defaultlocale selector selector Answer the selector that accesses the receiver when sent to a Localeobject. I18N.LcNumeric: printing basicPrint:on:basicPrint: aNumber on: aStream Print aNumber on aStream according to the receiver'sformatting conventions, without currency signs oranything like that. This method must not be overridden. print:on: print: aNumber on: aStream Print aNumber on aStream according to the receiver'sformatting conventions. I18N.LcPrintFormats I18N.LcPrintFormats Defined in namespace I18NSuperclass: I18N.LocaleConventionsCategory: i18n-Messages LcPrintFormats subclasses have instances that understand #?,#printString: and #print:on: (the last of which is abstract) whichprovide a means to convert miscellaneous objects to Strings accordingto the rules that are used in the given locale. I18N.LcPrintFormats: printing ?? anObject Answer how anObject must be printed according to the receiver'sformatting conventions. print:on: print: anObject on: aStream Print anObject on aStream according to the receiver'sformatting conventions. printString: printString: anObject Answer how anObject must be printed according to the receiver'sformatting conventions. I18N.LcTime I18N.LcTime Defined in namespace I18NSuperclass: I18N.LcPrintFormatsCategory: i18n-Printing Sending either #?, #printString: or #print:on: converts a Date or Timeto a String according to the rules that are used in the given locale. I18N.LcTime class: accessing categorycategory Answer the environment variable used to determine the defaultlocale selector selector Answer the selector that accesses the receiver when sent to a Localeobject. I18N.LcTime: printing print:on:print: aDateOrTimeOrArray on: aStream Print aDateOrTimeOrArray on aStream according to the receiver'sformatting conventions. It can be a Date, Time, DateTime, oran array made of a Date and a Time print:on:ifFull:ifDate:ifTime: print:time:format:on: print: aDateOrTimeOrArray on: aStream ifFull: fullFmt ifDate: dateFmt ifTime: timeFmt Print aDateOrTimeOrArray on aStream according to the receiver'sformatting conventions. It can be a Date, Time, DateTime, oran array made of a Date and a Time: Date is printed withdateFmt and Time with timeFmt, while in the other casesfullFmt is used. For information on the formatting codes,see #print:time:format:on:. print:time:format:on: print: aDate time: aTime format: aString on: aStream Print the specified date and time on aStream according to thereceiver's formatting conventions, using the given format.The valid abbreviations are the same used by the C functionstrftime:abbreviated weekday (%a)weekday (%A)abbreviated month (%b)month (%B)date & time (%c)century (%C)day of the month (%d)date (US) (%D)day of the month (%e)year for the ISO week (%g)year for the ISO week (%G)abbreviated month (%h)hours (%H)hours (AM/PM) (%I)day of the year (%j)hours (%k)hours (AM/PM) (%l)month (%m)minutes (%M)AM/PM (%p)lowercase AM/PM (%P)AM/PM time (%r)time (US) (%R)time_t (%s)seconds (%S)time (US) (%T)day of the week (%u)week number starting at Sun (%U)week number starting at Thu (%V)day of the week, Sunday=0 (%w)week number starting at Mon (%W)date (%x)time (%X)year (2-digit) (%y)year (4-digit) (%Y). I18N.LcTime: tests allFormatsExampleallFormatsExample Answer a long string that includes all the possible formats I18N.Locale I18N.Locale Defined in namespace I18NSuperclass: I18N.LocaleDataCategory: i18n-Messages This object is a factory of CollationKey objects; they are obtained bysending either #? or #collationKeyFor:, with a String as the only argument.The #? binary message allows for easily typed idioms: (aLocale ? string1 < string2) ifTrue: [ ... ]which could be interpreted as "hey, aLocale, tell me if string1 is < string2!" I18N.Locale class: initialization rootDirectoryrootDirectory Answer the directory under which locale definition files are found. rootDirectory: rootDirectory: aString Set under which directory locale definition files are found. I18N.Locale class: instance creation defaultdefault Answer an instance of the receiver that accesses the default locale. flush flush Flush the information on locales that are not valid across animage save/load. fromString: fromString: aString Answer an instance of the receiver that accesses the given locale(in the form language[_territory][.charset]). posix posix Answer an instance of the receiver that accesses the POSIX locale. I18N.Locale: C call-outs load:load: name Not commented. primRootDirectory primRootDirectory Not commented. I18N.Locale: subobjects messagesmessages Answer the LcMessages object for the locale represented by the receiver. monetary monetary Answer the LcMonetary object for the locale represented by the receiver. monetaryIso monetaryIso Answer the LcMonetaryISO object for the locale represented by thereceiver. numeric numeric Answer the LcNumeric object for the locale represented by the receiver. time time Answer the LcTime object for the locale represented by the receiver. I18N.LocaleConventions I18N.LocaleConventions Defined in namespace I18NSuperclass: I18N.LocaleDataCategory: i18n-Messages I am an abstract superclass of objects that are referred to by a Localeobject. I18N.LocaleConventions class: accessing ?? anObject Query the default object, forwarding the message to it. default default Answer an instance of the receiver that accesses the default locale. fromString: fromString: aString Answer an instance of the receiver that accesses the given locale(in the form language[_territory][.charset]). posix posix Answer an instance of the receiver that accesses the POSIX locale. selector selector This method's functionality should be implemented by subclasses of LocaleConventions I18N.LocaleConventions: accessing ?? anObject This method's functionality should be implemented by subclasses of LocaleConventions I18N.LocaleData I18N.LocaleData Defined in namespace I18NSuperclass: ObjectCategory: i18n-Messages I am an abstract superclass of objects that represent localizationinformation. I18N.LocaleData class: accessing categorycategory Answer `nil'. default default This method's functionality should be implemented by subclasses of LocaleData flush flush Flush the contents of the instances of each subclass of LocaleData. fromString: fromString: lang This method's functionality should be implemented by subclasses of LocaleData language: language: lang Answer the local object for the given language. language:territory: language: lang territory: territory Answer the local object for the given language and territory. language:territory:charset: language: lang territory: territory charset: charset Answer the local object for the given language, territory and charset. new new This method should not be called for instances of this class. posix posix This method's functionality should be implemented by subclasses of LocaleData update: update: aspect Flush instances of the receiver when an image is loaded. I18N.LocaleData class: database defaultCharsetdefaultCharset Answer the default charset used when nothing is specified. defaultCharset: defaultCharset: aString Set the default charset used when nothing is specified. defaults defaults Answer the default territory-language and language-charsetassociations. initialize initialize Initialize the receiver's class variables. languages languages ISO639 language codes territories territories ISO3166 territory codes I18N.LocaleData: accessing charsetcharset Return the charset supported by the receiver. id id Return the identifier of the locale supported by the receiver. isPosixLocale isPosixLocale Answer whether the receiver implements the default POSIX behaviorfor a locale. language language Return the language supported by the receiver. languageDirectory languageDirectory Answer the directory where data files for the current language reside. languageDirectory: languageDirectory: rootDirectory Answer the directory where data files for the current language reside,given the root directory of the locale data. territory territory Return the territory supported by the receiver. territoryDirectory territoryDirectory Answer the directory where data files for the current language,specific to the territory, reside. territoryDirectory: territoryDirectory: rootDirectory Answer the directory where data files for the current language,specific to the territory, reside, given the root directory of thelocale data. I18N.LocaleData: initialization id:id: anArray Private - Set which locale the receiver contains data for initialize: initialize: aString Set which locale the receiver contains data for, startingfrom a string describing the locale. I18N.RTEAlternativeNode I18N.RTEAlternativeNode Defined in namespace I18NSuperclass: I18N.RunTimeExpressionCategory: i18n-Messages I18N.RTEAlternativeNode class: compiling condition:ifTrue:ifFalse:condition: cond ifTrue: trueNode ifFalse: falseNode Private - Create a node in the parse tree for the run-time expression,mapping s to a Smalltalk arithmetic selector I18N.RTEAlternativeNode: computing condition:ifTrue:ifFalse:condition: condNode ifTrue: trueNode ifFalse: falseNode Initialize the children of the receiver and the conditional expressionto choose between them printOn: printOn: aStream Print a representation of the receiver on aStream send: send: parameter Evaluate the receiver by conditionally choosing one of its childrenand evaluating it I18N.RTEBinaryNode I18N.RTEBinaryNode Defined in namespace I18NSuperclass: I18N.RunTimeExpressionCategory: i18n-Messages I18N.RTEBinaryNode class: compiling lhs:op:rhs:lhs: lhs op: op rhs: rhs Private - Create a node in the parse tree for the run-time expression,mapping s to a Smalltalk arithmetic selector I18N.RTEBinaryNode: compiling lhslhs Answer `lhs'. op op Answer `op'. rhs rhs Answer `rhs'. I18N.RTEBinaryNode: computing lhs:op:rhs:lhs: lhsNode op: aSymbol rhs: rhsNode Initialize the children of the receiver and the operationto be done between them printOn: printOn: aStream Print a representation of the receiver on aStream send: send: parameter Private - Evaluate the receiver by evaluating both childrenand performing an arithmetic operation between them. I18N.RTELiteralNode I18N.RTELiteralNode Defined in namespace I18NSuperclass: I18N.RunTimeExpressionCategory: i18n-Messages I18N.RTELiteralNode class: initializing parseFrom:parseFrom: aStream Parse a literal number from aStream and return a new node I18N.RTELiteralNode: computing n:n: value Set the value of the literal that the node represents printOn: printOn: aStream Print a representation of the receiver on aStream send: send: parameter Answer a fixed value, the literal encoded in the node I18N.RTENegationNode I18N.RTENegationNode Defined in namespace I18NSuperclass: I18N.RunTimeExpressionCategory: i18n-Messages I18N.RTENegationNode class: initializing child:child: aNode Answer a new node representing the logical negation of aNode I18N.RTENegationNode: computing child:child: value Set the child of which the receiver will compute the negation printOn: printOn: aStream Print a representation of the receiver on aStream send: send: parameter Evaluate the receiver by computing the child's logical negation I18N.RTEParameterNode I18N.RTEParameterNode Defined in namespace I18NSuperclass: I18N.RunTimeExpressionCategory: i18n-Messages I18N.RTEParameterNode: computing printOn:printOn: aStream Print a representation of the receiver on aStream send: send: parameter Evaluate the receiver by answering the parameter I18N.RunTimeExpression I18N.RunTimeExpression Defined in namespace I18NSuperclass: ObjectCategory: i18n-Messages I18N.RunTimeExpression class: compiling parseExpression:parseExpression: stream Private - Compile the expression in the stream parseOperand: parseOperand: stream Parse an operand from the stream (i.e. an unary negation,a parenthesized subexpression, `n' or a number) and answerthe corresponding parse node. parseOperator: parseOperator: stream Answer a Symbol for an operator read from stream, or nil if somethingelse is found. I18N.RunTimeExpression class: initializing initializeinitialize Private - Initialize internal tables for the parser I18N.RunTimeExpression class: instance creation on:on: aString Compile aString and answer a RunTimeExpression I18N.RunTimeExpression: computing send:send: parameter This method's functionality should be implemented by subclasses of RunTimeExpression value: value: parameter Evaluate the receiver, and answer its value as an integer