Ответы пользователя по тегу PHP
  • Как грамотно проанализировать?

    У вас очень хаотичная логика.
    Я думаю вам будет проще в первую очередь привести текстовый код из $prog[0] к массиву элементов.
    То есть из
    program {var} begin end
    сделать вот это
    Array
    (
    [0] => {
    [1] => var 
    [2] => } 
    [3] => begin
    [4] => end
    )


    После чего вы можете спокойно пройтись циклом по вышеописанному массиву и найти все лексемы.

    $codeForParsing = "program {var} begin end";
    
    $codeAsArray = textToArray($textForParsing);
    
    $map = [];
    foreach(array_unique($codeAsArray) as $codeItem) {
          if (isset($map[$codeItem])) 
              continue;
    
         foreach($outp as $group => $groupItems) {
              if (($finded = array_search($codeItem, $groupItems)) !== false) {
                    $map[$codeItem] = [$group, $finded];
               }
         }
    }
    
    $result = [];
    foreach($codeAsArray as $codeItem) {
         $result[] = [$codeItem, $map[$codeItem][0], $map[$codeItem][1]];
    }


    В итоге вы получите массив вида
    [
    ['{', 'ogran', индексЛексемы]
    ['var', 'oper', индексЛексемы],
    ['}', 'ogran', индексЛексемы],
    ....
    ]


    который вы уже легко сможете привести к нужному виду
    Ответ написан
    2 комментария
  • Когда новичку в php стоит учить фреймворки?

    Я думаю что лучше взяться за один из самых популярных фреймворков. Там, как минимум, имеется достаточное количество примеров реализации той или иной задачи и хорошая документация.
    Т.к. последние месяцы я работаю с Yii, то именно этот фреймворк я бы и порекомендовал :)
    Ответ написан
    Комментировать