نمایش نتایج 1 تا 8 از 8

نام تاپیک: command برای تولید پارسر

  1. #1
    کاربر دائمی آواتار BeginnerProgrammer
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    کرمانشاه
    پست
    232

    Question command برای تولید پارسر

    سلام دوستان من کد پارسر و اسکنر کامپایلرمو نوشتم . اسکنرش خیلی راحت با استفاده از flex درست شد. تستشم جواب داد ولی نمیدونم چطوری کدی که برای پارسر نوشتمو ازش اجرا بگیرم( میخوام با استفاده از bison اینکارو انجام بدم). یعنی در واقع من این فایلا رو داریم:
    symboltable.h, lex.yy.c , mygrammer.txt , myparsercode.txt, three.h
    پیشاپیش از راهنماییهاتون ممنون.

  2. #2
    کاربر جدید
    تاریخ عضویت
    تیر 1391
    محل زندگی
    اصفهان
    پست
    5

    نقل قول: command برای تولید پارسر

    کافیه شما کدی که برای پارسر نوشتید را با پسوند .y ذخیره کنید. و اونو توی پوشه‌ای قرار بدید که فایل bison.exe اونجا هست.
    بعد با cmd به همون مسیر برید و این دستور را تایپ کنید:
    bison -d filename.y
    فقط به جای filename اسم فایل خودتون را بذارید.
    به این ترتیب یه فایل c ایجاد میشه که به راحتی می تونید اجراش کنید.

  3. #3
    کاربر دائمی آواتار BeginnerProgrammer
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    کرمانشاه
    پست
    232

    نقل قول: command برای تولید پارسر

    ایجاد کردم همین فایلی که میگین بعد تو کد بلاکم ازش ران گرفتم ولی هرکاری کردم اجرا نمیشه !!!!!!

  4. #4
    کاربر جدید
    تاریخ عضویت
    تیر 1391
    محل زندگی
    اصفهان
    پست
    5

    نقل قول: command برای تولید پارسر

    آهان! بله حق با شماست. یه قسمت را فراموش کردم بگم، فقط قبلش اینو بگم که دستور قبلی توی یه قسمتش اشتباه شده، دستور صحیح اینه:
    bison -dy filename.y
    با این دستور علاوه بر یه فایل c ، یه فایل .h هم ایجاد میشه.
    حالا باید ابتدای فایل .l تون این فایل .h را include کنید و در پایان فایل هم یه main بنویسید و توی اون فقط تابعی به اسم ()yyparse را فراخوانی کنید و دوباره با flex از اول فایل lex.yy.c را ایجاد کنید.
    تا اینجا شما دو تا فایل c دارید که یکیش با flex ایجاد شده و یکیش با bison.
    حالا باید این دوتا را با هم لینک کنید و یک فایل اجرایی ازش در بیارید. می‌تونید از gcc استفاده کنید. من خودم از برنامه‌ی devcpp استفاده می‌کردم.
    بعد از اینکه نصبش کردین فایل‌های .c و .h را تو پوشه‌ی bin اش کپی کنین و با cmd به اون مسیر برید و این دستور را تایپ کنید:
    gcc filename.tab.c lex.yy.c -o parser.exe
    فقط به جای filename بازم اسم فایل خودتونو بذارین.
    حالا این parser.exe است که باید اجرا بشه و بهش ورودی بدین و خروجیشو را ببینین. میشه با همون cmd که توی اون مسیر هستید این کار را انجام بدین:
    parser.exe <input.txt> output.txt

    باز هم اگر مشکلی بود (و البته بلد بودم) در خدمتم :)

  5. #5
    کاربر دائمی آواتار BeginnerProgrammer
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    کرمانشاه
    پست
    232

    نقل قول: command برای تولید پارسر

    فقط یک سوال اگه از devcpp استفاده کنم باز باید از همین دستوره gcc filename.tab.c lex.yy.c -o parser.exe استفاده کنم؟
    از جواباتون بسیار ممنونم.

  6. #6
    کاربر جدید
    تاریخ عضویت
    تیر 1391
    محل زندگی
    اصفهان
    پست
    5

    نقل قول: command برای تولید پارسر

    بله! دقیقا. همین برنامه است که gcc را داره.

  7. #7
    کاربر جدید
    تاریخ عضویت
    تیر 1391
    محل زندگی
    اصفهان
    پست
    5

    نقل قول: command برای تولید پارسر

    من اینجا نمونه‌های خیلی ساده از فایل‌های .l و .y را قرار دادم.
    با توجه به اینکه اسکنرتون به درستی کار می‌کرده، پس فایل .l را قطعا درست نوشته بودید ولی به این نکته توجه کنید که الان باید اسکنر و پارسر با هم لینک بشن، پس باید قسمت‌هایی را که احیانا توی فایل .l براشون printf نوشتید را به جای printf، الان return کنید و بعد توی فایل .y اونا را به عنوان token تعریف کنید.
    برای اینکه بهتر متوجه بشید فایلی را هم که قبل از نوشتن پارسر به عنوان loghavi.l نوشته شده بوده را هم ضمیمه کردم، (فقط ممکنه یه سری تغییراتی توی اسم token ها هم ایجاد شده باشه که زیاد مهم نیست) می‌تونید اونو با فایل bnf.l که بعد از نوشتن پارسر نوشته شده، مقایسه کنید.

    پی‌نوشت:
    توی فایل bnf.y برای تست به دلیل کمی وقت، فقط گرامر را پرینت کردم! ولی در اصل برای یک پارسر واقعی نباید اینطور باشه، و باید اون کار اصلی را انجام بده.
    فایل های ضمیمه فایل های ضمیمه

  8. #8
    کاربر جدید
    تاریخ عضویت
    تیر 1391
    محل زندگی
    اصفهان
    پست
    5

    نقل قول: command برای تولید پارسر

    این هم فایل loghavi.l
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. فوری-->درخواست لینک دانلود نرم افزار LEX برای تولید Lexical Analyzer
    نوشته شده توسط Bithiah در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: یک شنبه 02 اردیبهشت 1386, 11:29 صبح
  2. پاسخ: 2
    آخرین پست: پنج شنبه 01 دی 1384, 08:36 صبح
  3. برنامه ای برای تولید اسکریپت جاوا برای منوهای popup
    نوشته شده توسط amir_masoud در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: سه شنبه 18 فروردین 1383, 00:51 صبح
  4. COMMAND برای datareportخواهشا جواب بدید
    نوشته شده توسط ario در بخش VB.NET
    پاسخ: 14
    آخرین پست: شنبه 17 آبان 1382, 11:19 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •