O ile PO najwyraźniej oznaczał "co wolno w regularnej składni parsable ", myślę, że pouczające jest wskazanie, że" Smalltalk Textual Language "jest po prostu pośrednią reprezentacją tekstową, aby dostać się do modelu obiektowego. Jeśli chcesz być kreatywny, możesz faktycznie robić rzeczy, których składnia z celami parsowania prostoty będzie trudna do obsłużenia.
Na przykład można mieć metody, które rozpoczynają się od cyfr:
Object methodDictionary at: #1a put: (Object >> #yourself) copy.
Object new perform: #1a
Dlaczego ciągi liczb, które zaczynają się, kiedy można po prostu bezpośrednio używać liczb?
Object methodDictionary at: 42 put: (Object >> #yourself) copy.
Object new perform: 42
A może po prostu puste struny?
Object methodDictionary at: #'' put: (Object >> #yourself) copy.
Object new perform: #''
Twoja przeglądarka może, ale nie musi radzić sobie wdzięcznie z tymi metodami dodawanymi do twojego systemu.
Podobne manipulacje można wykonywać za pomocą zmiennych instancji.
Wow ... musi zaczynać się od małej litery. Hmmm ... dziękuję! – unmircea
Selektory zaczynające się od dużej litery są ważne. Ogólna reguła jest taka, że selektory muszą rozpoczynać się od znaku alfabetycznego i śledzić za pomocą 0 lub więcej cyfr lub alfa, z wyjątkiem selektorów binarnych, które muszą być sekwencją!% & * +, -/<=>? @ \ ~ |. Możesz to sprawdzić w initializeClassificationTable RBScanner. –