Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2012, 12:33   #1
Huligan799
Пользователь
 
Регистрация: 23.10.2012
Сообщений: 14
Восклицание ошибки не пойму((. Таблично управляемый синтаксический разбор сверху вниз

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, lexlib, tt, StdCtrls;

type
   symb = (goal, switch1, case2, case1, term, break1, sw,
         aa, cas, coun, br, num, eof);


  TForm1 = class(TForm)
    Button1: TButton;

     function strtosymb:symb;
     function lextosymb:symb;
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;


const
Mtable : array [goal..break1, sw..eof] of string=
(('switch1 sw','er', 'er', 'er', 'er', 'er', 'er'),
 ('er','case2 aa', 'er', 'er', 'er', 'er', 'er'),
 ('er', 'er', 'case1 cas','er', 'er', 'er', ''),
 ('er', 'er', 'er', 'term num', 'er', 'er', 'er'),
 ('er', 'er',   'er',  'er',  'break1 case2 coun',  'er',  'er'),
 ('er', 'er',  'er', 'er', 'er', 'br', '')
);


var
  Form1: TForm1;
  stack:array [1..100] of symb;
  p_s:integer;
implementation

{$R *.dfm}


 function TForm1.lextosymb(value:integer): symb;
begin
case value of
num: result:=num;
sw:result:=switch;
aa:result:=a;
cas:result:=cas;
coun:result:count<<ok;
br:result:=break;
end;
end;


function TForm1.strtosymb: symb;
begin
if value='goal' then result:=goal;
if value='switch1' then result:=switch1;
if value='case2' then result:=case2;
if value='case1' then result:=case1;
if value='term' then result:=term;
if value='break1' then result:=break;
if value='sw' then result:=sw;
if value='aa' then result:=aa;
if value='cas' then result:=cas;
if value='coun' then result:=coun;
if value='br' then result:=br;
if value='num' then result:=num;
end;







begin
  procedure push (value: symb);
begin
  inc(p_s);
  stack[p_s]:=value;
end;

procedure pop;
begin
  dec(p_s);
end;
procedure TForm1.Button1Click(Sender: TObject);

begin
 // yymemoinit(memo1, memo3, memo3, memo3);
  yyclear;
  yylineno:=0;
  token:=yylex;
  if GOAL
  then ShowMessage('Uspeh')
  else ShowMessage('Neudacha');


end;

end;
Вложения
Тип файла: rar tyap_4.rar (185.4 Кб, 15 просмотров)

Последний раз редактировалось Huligan799; 30.11.2012 в 12:46.
Huligan799 вне форума Ответить с цитированием
Старый 30.11.2012, 13:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Какого рода ошибка? Каков текст ошибки? Проходил ли трассировкой по программе?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.11.2012, 14:00   #3
Huligan799
Пользователь
 
Регистрация: 23.10.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Какого рода ошибка? Каков текст ошибки? Проходил ли трассировкой по программе?
там не одна ошибка)) легче было бы если бы вы запустите и посмотритеесли не составит труда
Huligan799 вне форума Ответить с цитированием
Старый 30.11.2012, 14:13   #4
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Цитата:
Сообщение от Huligan799 Посмотреть сообщение
Код:
function TForm1.strtosymb: symb;
begin
if value='goal' then result:=goal;
...
end;
Что за переменная value и откуда она взялась?
Сдается мне, код даже компиляцию не проходит...
superedward вне форума Ответить с цитированием
Старый 30.11.2012, 14:32   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
там не одна ошибка))
ошибки исправляются по одной за раз.(Как правило).
Цитата:
легче было бы если бы вы запустите и посмотрит
Цитата:
Сдается мне, код даже компиляцию не проходит...
первая попытка "компиляции". и ПЕРВАЯ ошибка для исправления.
Цитата:
Код:
  TForm1 = class(TForm)
    Button1: TButton;

     function strtosymb:symb;
     function lextosymb:symb;
Цитата:
Код:
function TForm1.lextosymb(value:integer): symb;
Список параметров и тип значения должен быть идентичен с точностью до именования.
После исправления всех ошибок данного типа посмотрим дальше.
может быть сделаем еще одну "компиляцию".
НО учтите, количество наших компиляций ОЧЕНЬ ограничено.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.11.2012 в 14:35.
evg_m вне форума Ответить с цитированием
Старый 03.12.2012, 18:21   #6
Huligan799
Пользователь
 
Регистрация: 23.10.2012
Сообщений: 14
По умолчанию

Спасибо огромное всем.)) Я еще чайник. Теперь последнюю устранить не могу((
Вложения
Тип файла: rar tyap_4.rar (188.4 Кб, 19 просмотров)
Huligan799 вне форума Ответить с цитированием
Старый 05.12.2012, 10:54   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

еще раз ТЕКСТ ОШИБКИ в студию(на форум) и КУСОК кода с указанием к какой строке из приведенных относится данная ошибка.
Цитата:
Какого рода ошибка? Каков текст ошибки?
У вас текст ошибки есть, но вам ЛЕНЬ его переписать (или даже скопировать),
А нам лень качать, компилировать и ...
Цитата:
НО учтите, количество наших компиляций ОЧЕНЬ ограничено.
P.S. погулял по сайту и ...
О.БОЖЕ! Вы потеряли свой проект "написанный" месяц назад и начали все снова? Зайдите в старую тему и скачайте!
Или потеряли надежду довести тот проект и начали снова и с теми же (или похожими) ошибками? Возьмите учебник!(именно учебник а не самоучитель за 21 день)

В любом случае будет быстрее.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 05.12.2012 в 16:56.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здравствуйте. Попытался написать программу метод резолюции на прологе, но программа мне выдает ошибки не пойму почему. jeka1 Помощь студентам 0 08.05.2012 12:27
Покритикуйте код. Интересно мнение. Пойму ошибки. Проект и подробности в теме... Casper-SC Общие вопросы .NET 2 28.01.2011 07:22
Добавление строк сверху-вниз Rapala Общие вопросы Delphi 6 30.04.2010 18:50
Расположение дочерних MDI окон слева-направо и сверху-вниз Umdis Общие вопросы Delphi 2 30.11.2009 07:05