入力文字列を配列にトークン化できるようにしたい(または、提案を受け入れる効率的な方法)。これにより、指定された入力を簡単に解釈して変更できるようになります。
たとえば、電卓を扱っていて、入力が
55+63.7/7-(6+5)/9+(3-6.5)/(5-2)
次のような配列または一連のトークンを作成する必要があります
{"55","+","63.7","/","7","-","(","6","+","5","... }
ベストプラクティス?parseKitとNSScannerを調べてみましたが、どちらも非常に妥当なようですが、可能であれば、これを正しく機能させるために必要な時間を切り捨てる例を示したいと思います。
編集:
基本的に私が探しているのは、「パーサー」ロジックの単純なセットです...
完全なパーサー/スキャナーを自分で作成する場合は、次のような疑似コードを使用できます。
char c
NSMutableString temp
NSMutableArray parsed
For each c in input {
if is_number(c)
while is_number(c)
add c to temp
parsed addObject:temp
reset temp
if is_operation(c) //single character operations like +, -, /,
add c to temp
parsed addObject:temp
reset temp
if is_letter(c)
while is_letter(c)
add c to temp
if is_keyword(temp) //like sin, cos, tan
parsed addObject:temp
else
input misunderstood //not necessary, really, just useful
reset temp
}