Sporo się rozglądałem za szybkim parserem matematycznym w C lub Objective-C Prawie wszystkie biblioteki, które widziałem są napisane w C++ i naprawdę nie chcę przechodzić przez kłopoty z uzyskaniem tego skompilować. Czy ktoś może zalecić?Co to jest szybki parser matematyczny C lub Objective-C?
Odpowiedz
Nie użyłem ich sam, ale możesz spróbować GCMathParser i DDMathParser.
+1 dla DDMathParser! hoorah! (Chociaż jeśli idziesz na surową prędkość, prawie niemożliwe jest pokonanie GCMathParser) –
@Dave: Wiedziałem o parserze Grahama, ale w jakiś sposób tęskniłem za twoim. Fascynująca struktura za pomocą bloków. Wygląda na to, że użycie NSNumber, przy częstym generowaniu autoreleased instancji, może trochę spowolnić. Wygląda na to, że do obliczeń można zastosować proste typy zmiennoprzecinkowe, które mogą być znacznie szybsze. –
@Brad tak, jest wiele rzeczy, które można by zoptymalizować; moim celem było rozszerzenie i czytelność, niekoniecznie wydajność. :) Ponadto, używa on 'NSDecimal' do obliczeń (o wiele bardziej precyzyjnych niż typ zmiennoprzecinkowy). –
Nie będzie żadnych kłopotów z kompilacją, ObjC może pracować obok dowolnej klasy C++. Wyszukaj tutaj ObjC++, który jest naprawdę całkiem łatwy (zasadniczo zmienia nazwę z * .m na * .mm).
Zobacz moją bibliotekę ae (która używa Lua) i libmatheval.
Um ... jest oznaczony jako "Objective-C" i "iPhone" ... –
@Dave: jest również oznaczony C. – lhf
Istnieje Code Project, w którym ten problem został rozwiązany. Zauważ, że to jest dla C++ - przepraszam, tylko zobaczyłem, że szukasz C/Objective-C. Gdy tworzy bibliotekę, możesz napisać prosty interfejs i udostępnić go C. Istnieje naprawdę zwięzły opis tego, jak to zrobić.
- 1. Szybki parser HTML Pythona
- 2. Co to jest parser od nowa?
- 3. Co to jest pojedynczy | lub?
- 4. Co to jest 1LL lub 2LL w C i C++?
- 5. //! [0] C++ - co to jest?
- 6. Co to jest C++ analog C# byte []?
- 7. Co to jest "Przenośny C++"?
- 8. Co to jest "==" w C?
- 9. Co to jest dobry kompilator kompilatora kompilatora C#/analizatora składni?
- 10. Prosty C XML parser
- 11. Co to jest szybki, wydajny sposób przesyłania danych między wątkami w C#?
- 12. Co to jest obiekt w C?
- 13. Co to jest "kategoria" w Objective-C?
- 14. Co to jest operator "" w C++?
- 15. llvm-clang: inkrementalny lub online parser?
- 16. Co to jest odpowiednik C# w dynamicznym C++ w C++?
- 17. Co to jest %% w Happy?
- 18. Co to jest „Class :: *”
- 19. Co to jest incydent?
- 20. Co to jest wstawianie?
- 21. Wdrożenie ObjectiveC protokół w szybkim
- 22. Co to jest klasa inline C++?
- 23. Co to jest "upakowana" struktura w C?
- 24. Co to jest ".. ::." w języku C#?
- 25. Co to jest odpowiednik UINT32_MAX w C++?
- 26. Co to jest ekwiwalent C# Java DecimalFormat?
- 27. Co to jest wersja C++ Java ArrayList
- 28. Co to jest LLVM C++ API?
- 29. Co to jest wymazywanie typów w C++?
- 30. Co to jest bash escape character "\ c"?
Spróbuj [TinyExpr] (https://github.com/codeplea/tinyexpr). Jest w jednym pliku kodu źródłowego i nagłówku C. – 131
Po prostu chcę dodać ** TinyExpr **. Super łatwy w użyciu. – rileyk