1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/drinkjava2-jexparser

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

jExParser Простая Java программа для парсинга и вычисления выражений

Программа для парсинга и вычисления выражений на Java, созданная во время работы над проектом jSqlBox. Поддерживает переменные и параметры. Исходный код был выделен в отдельный модуль; он не имеет особых преимуществ, кроме простоты — прямое вычисление инфиксных выражений. Включает всего три файла с общим количеством строк кода около 800. Нет зависимости от сторонних библиотек.

Имеются два способа использования (или см. юнит тесты):

  Map<String, Object> keywords = new HashMap<String, Object>();
  keywords.put("USERNAME", "Tom");
  keywords.put("ID", "001");
  ExParser parser = new ExParser();
  
  // Интерпретация и выполнение, скорость ниже, пример: 100 000 операций в секунду (CPU i7)
  Assert.assertEquals(true, parser.doParse(keywords,
    "(1+2)*3/4>0.1/(9+?) and (userName equals ?) or id equals ?", 100, "Tom", "001"));
    
  // Компиляция и выполнение, скорость примерно в 10 раз выше, пример: 1 000 000 операций в секунду
  ExpItem[] expItems = parser.compile(
    "(1+2)*3/4>0.1/(9+?) and (userName equals ?) and id equals ?");
  Assert.assertEquals(true, parser.doParse(expItems, keywords, 100, "Tom", "001"));   

Метод doParse() класса ExParser выполняет анализ одного выражения и может вернуть тип данных Boolean, Long, Double, String или null.

Поддерживаются следующие операторы и строковые функции:

>  <  =  >=  <=  
+  -  *  /  
or  and  not  
'  ( )  ?  0~9 . 
equals  equalsIgnoreCase  contains  containsIgnoreCase  
startsWith  startsWithIgnoreCase  endsWith  endsWithIgnoreCase

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/drinkjava2-jexparser.git
git@api.gitlife.ru:oschina-mirror/drinkjava2-jexparser.git
oschina-mirror
drinkjava2-jexparser
drinkjava2-jexparser
master