ANTLR – قسمت اول، آموزش نصب و تست

ANTLR یه ابزار قدرتمند برای طراحی کامپایلره، توی این قسمت قراره آموزش نصب و تستش توی سه تا سیستم‌عامل لینوکس و مک و ویندوز رو بگم.

قبل از هرچیز برای کار با ANTLR شما باید حداقل نسخه ۱.۶ JDK رو داشته باشید.

نصب ANTLR

  • لینوکس:

    -دایرکتوری خودتونو به usr/local/lib/ تغییر بدید.

    -با دستور زیر و البته دسترسی روت,  jar فایل antlr رو دانلود کنید:

wget http://www.antlr.org/download/antlr-4.5.3-complete.jar

-تو مرحله بعدی آدرس این فایلو باید به CLASSPATH اضافه کنید:

export CLASSPATH=".:/usr/local/lib/antlr-4.5.1-complete.jar:$CLASSPATH"

    -حالا دوتا alias تعریف میکنیم برای راحتی کار :دی :

alias antlr4='java -jar /usr/local/lib/antlr-4.5.1-complete.jar'
alias grun='java org.antlr.v4.gui.TestRig'

-تنظیماتی که توی دو مرحله قبل انجام دادید با ری استارت کردن کامپیوتر از بین میرن و باید مجدد وارد بشن, برای اینکه تغییرات دائمی بشه باید اونارو توی فایل bash_profile. توی شاخه‌ی home خودتون اضافه کنید و با زدن دستور زیر, میتونید از میانبرها برای همیشه استفاده کنید.

. ~/.bash_profile
  • مک:

    مراحل دقیقا شبیه لینوکسه فقط بجای دستور wget از curl -O استفاده کنید.

  • ویندوز:

    -اول ANTLR رو از http://antlr.org/download/antlr-4.5.1-complete.jar دانلود کنید.

    -فایل دانلود شده رو از مسیر زیر به CLASSPATH اضافه کنید و اگه موجود نبود یکی به همین اسم بسازید:

Control Panel > System > Advanced system settings > Environment variables

   نکته: حتما حواستون باشه که دایرکتوری جاریتون رو هم به CLASSPATH اضافه کنید, مثلا محتوای CLASSPATH من به این شکل هست:

.;C:\Users\yasha\Documents\antlr-4.5.1-complete.jar;%CLASSPATH%

    اون نقطه اول که بعدش سمی کالن گذاشتم یعنی دایرکتوری جاری.

    -حالا برای راحتی کار یه batch بسازید به اسم antlr4.bat و محتواشو مقدار زیر قرار بدید:

java org.antlr.v4.Tool %*

 

    -یه batch فایل دیگه هم بسازید به اسم grun.bat و محتواشو مقدار زیر قرار بدید:

 

java org.antlr.v4.gui.TestRig %*

    -اگه cmd تون بازه یبار ببندینش و دوباره بازش کنید.

خب حالا ANTLR تو جای درست خودش نصب شده فقط حواستون باشه برای اجرای مثال ها باید از cmd یا command prompt استفاده کنید و برای راحتی کار با دستور cd به دایرکتوری که دوتا batch فایل بالا توش هست برید, مثلا من دوتا batch فایلمو توی دایرکتوری Documents درست کردم و وقتی command prompt رو باز میکنم به این شکله:

2

و بعدش وقتی میزنم cd Documents دایرکتوری من به Documents یعنی جایی که اون دوتا batch فایل داخلش هست تغییر میکنه:

3

اجرای مثال

خب از اینجا به بعدش دیگه تو همه سیستم‌عاملا مشترکه, من دوتا مثال اوردم برای گرفتن خروجی از ANTLR:

  • مثال اول:

    -یه فایل به اسم Expr.g4 بسازید و محتوای زیر رو داخلش قرار بدید:

grammar Expr;		
prog:	(expr NEWLINE)* ;
expr:	expr ('*'|'/') expr
    |	expr ('+'|'-') expr
    |	INT
    |	'(' expr ')'
    ;
NEWLINE : [\r\n]+ ;
INT     : [0-9]+ ;

    -حالا دستور زیر رو بزنید:

antlr4 Expr.g4

    -دستور قبل رو که بزنید چندتا فایل براتون تولید میکنه, مرحله بعد باید اونارو با جاوا کامپایل کنید:

javac Expr*.java

    -حالا دستور زیر رو برای گرفتن خروجی از مثالمون  بزنید:

grun Expr prog -gui

    -بعد از زدن دکمه Enter برنامه منتظر ورودی از شما میشه که میتونید بزنید ۳۴*۲+۱۰۰ .

    -بعدش با زدن دکمه Ctrl +d در لینوکس و مک یا Ctrl + z در ویندوز خروجی مثل این شکل میگیرید:

Screenshot from 2015-10-14 23-10-05

  • مثال دوم:

    -یه فایل به  اسم Hello.g4 بسازید و محتوای زیر رو داخلش قرار بدید:

grammar Hello;
r  : 'hello' ID ;         
ID : [a-z]+ ;             
WS : [ \t\r\n]+ -> skip ;
    -حالا دستور زیر رو بزنید:
antlr4 Hello.g4

  -دستور قبل رو که بزنید چندتا فایل براتون تولید میکنه, مرحله بعد باید اونارو با جاوا کامپایل کنید:

javac Hello*.java

  -حالا دستور زیر رو برای گرفتن خروجی از مثالمون  بزنید:

grun Hello r -tree

  -بعد از زدن دکمه Enter برنامه منتظر ورودی از شما میشه که میتونید بزنید hello parrt .

    -بعدش با زدن دکمه Ctrl +d در لینوکس و مک یا Ctrl + z در ویندوز خروجی مثل این شکل میگیرید:

Screenshot from 2015-10-14 23-17-18

    -اینم خروجی گرافیکی که مثل مثال قبل درست میشه:

Screenshot from 2015-10-14 23-18-53

من این مثال‌ها رو از سایت خود ANTLR درآوردم و روی کامپیوتر خودم اجرا کردم و از بعضی از مراحلش اسکرین شات گرفتم, اگه مشکلی تو پیاده‌سازیش بود تو قسمت نظرات اعلام کنید.

10 دیدگاه

  1. Taha

    مهر ۲۴, ۱۳۹۴ at ۱۱:۱۷

    با سلام
    تمام مراحل به درستی انجام میشن، ولی با زدنctrl+zهیچ خروجی داده نمیشه فقط تویcommand prompt میزنه ^Z

    1. yashar

      مهر ۲۴, ۱۳۹۴ at ۱۱:۱۹

      یکم طول میکشه تا صفحه باز بشه و نشون بده اگه باز نشد یه اینتر هم بزنید محظ احتیاط

  2. es

    آبان ۷, ۱۳۹۴ at ۱۹:۰۲

    mesal dovom baraye man khoroojie graphici nemide faghat minevise :
    (r hello parrt)

    1. yashar

      آبان ۸, ۱۳۹۴ at ۰۱:۳۰

      خب چون ما ازش خروجی گرافیکی نخواستیم

  3. es

    آبان ۷, ۱۳۹۴ at ۱۹:۰۳

    enter ham mizanam.mesal aval khoroojie graphici dad.oonam bade chandbar ejra

  4. ارش

    آبان ۱۶, ۱۳۹۴ at ۲۰:۲۵

    یا خدا این دیگه چیه

  5. zahra

    دی ۹, ۱۳۹۴ at ۰۱:۵۷

    سلام، میشه نصب Antler روی visual studio رو هم بگید
    مرسی

  6. arefeh

    دی ۲۴, ۱۳۹۴ at ۱۷:۳۸

    سلام ببخشید برای من پس از این دستور : grun Expr prog -gui
    این ارور را می دهد:
    could not find or load main class org.antlr.v4.gui.testrig

    1. yashar

      بهمن ۴, ۱۳۹۴ at ۱۶:۲۴

      بررسی کنید که اول فایل های جاوا رو کامپایل کردید یا نه و اینکه محتوای CLASSPATH دست هست یا نه

  7. امیر حمدی

    بهمن ۲۱, ۱۳۹۴ at ۱۷:۰۸

    سلام وقت شما بخیر. من و دوستانم در حال انجام یک برنامه هستیم که باید با استفده از انتلر کد سه آدرسه و کد محک تولید کنیم. خواهشا اگر مکن است توضیحات بالا و توضیحات در مورد کد محک را بصورت فایل جداگانه برای من ایمیل کن. صمیمانه از شما سپاسگذارم.

پاسخ دهید