Как добавить неявное умножение в базовую грамматику калькулятора PHP PEG?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить неявное умножение в базовую грамматику калькулятора PHP PEG?

Сообщение Anonymous »


У меня проблема с грамматикой PEG в PHP, использующей php-peg (у проекта есть более поздняя версия, которая публикуется в пакете). Мой проект представляет собой ответвление анализатора выражений, который я хочу заменить сгенерированным анализатором, который гораздо проще модифицировать.

Пока все работает хорошо, но у меня возникла проблема с добавлением неявного умножения, которое является частью исходных функций проекта.

Выглядит это так:

-8(5/2) он ​​должен неявно умножить -8 на дробь.

Моя грамматика на данный момент имеет множество особенностей, но я хочу знать только, как добавить неявное умножение к простому примеру калькулятора, который выглядит следующим образом:

Число: /[0-9]+/ Значение: Число > | '(' > Выражение > ')' > номер функции( &$result, $sub) { $result['val'] = $sub['text'] ; } функция Выраж(&$результат, $sub) { $result['val'] = $sub['val'] ; } Времена: '*' > операнд:Значение > Div: '/' > операнд:Значение > Продукт: Значение > (Times | Div) * значение функции (&$результат, $sub) { $result['val'] = $sub['val'] ; } функция Times( &$result, $sub) { $result['val'] *= $sub['operand']['val'] ; } функция Div( &$result, $sub) { $result['val'] /= $sub['operand']['val'] ; } Плюс: '+' > операнд:Продукт > Минус: '-' > операнд:Продукт > Сумма: Произведение > (Плюс | Минус) * функция Product( &$result, $sub) { $result['val'] = $sub['val'] ; } функция Плюс (&$результат, $sub) { $result['val'] += $sub['operand']['val'] ; } функция Минус (&$результат, $sub) { $result['val'] -= $sub['operand']['val'] ; } Выражение: Сумма функция Сумма (&$результат, $sub) { $result['val'] = $sub['val'] ; } Находится в каталоге примеров проектов.

Я создал проект примера простого калькулятора на GitHub.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему умножение матриц с помощью MathNet.Numerics выполняется медленнее, чем обычное умножение?
    Anonymous » » в форуме C#
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Почему умножение матриц с помощью MathNet.Numerics выполняется медленнее, чем обычное умножение?
    Anonymous » » в форуме C#
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous
  • Правильный порядок математических выражений в грамматике PEG
    Anonymous » » в форуме Php
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Предотвратите чрезмерное замедление работы PEG.js
    Anonymous » » в форуме Javascript
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как построить предоставленную грамматику antlr?
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»