Как я могу разобрать символ в файле в Squeak4.1? - PullRequest
0 голосов
/ 16 февраля 2011

друг, предположим, у меня есть файл test.txt, содержимое файла "1 + 2 * 3", если имя, прямо выраженное в рабочей области Squeak, выведите его, то получится 9, что я хочу получить 7 затем я читаю содержимое файла 1+2*3 из файла. код, как это, и он хорошо работает

ReadFrom
"read the equation from  ./formular.txt"

| fileContents |
fileContents := FileStream 
               readOnlyFileNamed: 'test.txt' 
               do: [:f | f contents ].
^fileContents.

но как я могу сохранить 5 символов строки "1 + 2 * 3" в коллекции, кроме того, я могу использовать двоичное дерево для вычисления уравнения? Кто-нибудь может дать мне несколько советов? сперва спасибо :) 1007 *

1 Ответ

2 голосов
/ 16 февраля 2011

Учебное пособие по SmaCC заканчивается тем, что в значительной степени создает то, что вы хотите.

Цитата из упомянутого учебного пособия:

Две строки, которые мы добавили в началограмматики означают, что «+» и «-» оцениваются слева направо и имеют одинаковый приоритет, который меньше, чем «*» и «/".

SmaCC является полнымгенератор паролей для Smalltalk, который может быть излишним в зависимости от ваших потребностей.

Если вы просто хотите построить простой калькулятор, вы можете использовать алгоритм Shunting-yard для преобразования инфиксного математического выраженияв RPN и оцените его легко.

...