Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
pgagnidze committed Jun 5, 2023
1 parent c81c720 commit 01950c6
Showing 1 changed file with 4 additions and 85 deletions.
89 changes: 4 additions & 85 deletions README.md
Expand Up @@ -5,98 +5,17 @@
<img src="./example/example.png" alt="Example Ena Image" width="60%"">
</p>

ენა მიზნად ისახავს, ქართველებისთვის ხელმისაწვდომი გახადოს პროგრამირება, რაც გულისხმობს მშობლიურ ენაზე კოდის წერას. ენა იყენებს პოპულარული, ფართოდ გავრცელებული ენების სინტაქსს, რაც დაგვეხმარება მარტივად შევისწავლოთ პროგრამული ენის მახასიათებლები.

## პროგრამული ენის მახასიათებლები
- საბაზისო ოპერაციები - არითმეტიკული ოპერატორები (+, -, *, /, %, ^), შედარებითი ოპერატორები (==, !=, <, >, <=, >=), ლოგიკური ოპერატორები (&, |), ერთიანი ოპერატორები (!, -).
- ცვლადები - გლობალური და ლოკალური ცვლადების დეკლარაცია. შეგვიძლია მივანიჭოთ რიცხვები, ლოგიკური მნიშნვნელობები (ჭეშმარიტი, მცდარი), და ასოები.
- if დებულებები და ციკლები - პროგრამის მიმართულებისა და ლოგიკის კონტროლი ცილკებისა და if დებულებების გამოყენებით.
- მასივები - ახალი მასივების შექმნა, მასივის ელემენტებზე წვდომა და მნიშვნელობების მინიჭება.
- ფუნქციები - ფუნქციების შექმნა და გამოძახება.

## ინსტალაცია
1. დააინსტალირეთ [Lua](https://www.lua.org/start.html#installing) და [LuaRocks](https://github.com/luarocks/luarocks/wiki/Download)
2. გაუშვით შემდეგი ბრძანება ტერმინალში - `$ luarocks install ena`
3. დააინსტალირეთ VS Code [Extension](https://marketplace.visualstudio.com/items?itemName=pgagnidze.ena) სინტაქსის ამოცნობისთვის

## გამოყენება
ენა შეგვიძლია გავუშვათ ასე:

`$ ena -i [filename] [options]`

options-ები მოიცავს:
ენა - პირველი ქართული პროგრამული ენა.

| ოფშენი | მოკლე ჩანაწერი | აღწერა |
|--------|------------|-------------|
| --help | -h | აჩვენეთ ოფშენები. |
| --input | -i | მიუთითეთ შესაყვანი ფაილი. |
| --ast | -a | აჩვენეთ აბსტრაქტული სინტაქსის ხე. |
| --code | -c | აჩვენეთ გენერირებული კოდი. |
| --trace | -t | მიჰყევით პროგრამის მსვლელობას. |
| --result | -r | აჩვენეთ შედეგი. |
| --pegdebug | -p | გაუშვით PEG დებაგერი. |
| --transpile | -tp | ტრანსპილაცია Lua-ში. (ექსპერიმენტული) |
| --translate | -tr | თარგმნეთ წერილები ქართულ ენაზე. |

მაგალითისთვის:
`$ ena --result --translate -i example/example.ena`

```
შედეგი:
720
```

## მაგალითი

<table>
<tr>
<th>Lua</th>
<th>Ena</th>
</tr>
<tr>
<td>
<pre>
<code>
function faqtoriali(n)
n = n or 6
if n ~= 0 then
return n * faqtoriali(n - 1)
else
return 1
end
end
function main()
return faqtoriali()
end
main()
</code>
</pre>
</td>
<td>
<pre>
<code>
ფუნქცია ფაქტორიალი(ნ = 6) {
თუ ნ != 0 {
დააბრუნე ნ * ფაქტორიალი(ნ - 1)
} თუარა {
დააბრუნე 1
}
}
ფუნქცია მთავარი() {
დააბრუნე ფაქტორიალი()
}
</code>
</pre>
</td>
</tr>
</table>
ენა მიზნად ისახავს, ქართველებისთვის ხელმისაწვდომი გახადოს პროგრამირება, რაც გულისხმობს მშობლიურ ენაზე კოდის წერას. ენა იყენებს პოპულარული, ფართოდ გავრცელებული ენების სინტაქსს, რაც დაგვეხმარება მარტივად შევისწავლოთ პროგრამული ენის მახასიათებლები.

***დეტალურ დოკუმენტაციას შეგიძლიათ გაეცნოთ ენას [ვიკიზე](https://github.com/pgagnidze/ena/wiki)***
## კონტრიბუცია
თუ იპოვით შეცდომას, გსურთ შემოგთავაზოთ ახალი ფუნქცია ან გჭირდებათ დახმარება რაიმესთან დაკავშირებით, გთხოვთ გახსნათ ახალი მოთხოვნა GitHub Issue-ებში.

## ლიცენზია
ენა ლიცენზირებულია GPLv3 ლიცენზიით. დამატებითი ინფორმაცია იხილეთ LICENSE ფაილში.

##
- Roberto Ierusalimschy-ის პროგრამირების ენის შემსწავლელი კურსის საბოლოო პროექტი ([report](./NOTES.md))
- Roberto Ierusalimschy-ის პროგრამირების ენის შემსწავლელი კურსის საბოლოო პროექტი ([Report](./NOTES.md))
- Mark W. Gabby-Li-ის [Mab](https://github.com/mwgabby-li/Mab) პროგრამირების ენაზე დაფუძნებული

0 comments on commit 01950c6

Please sign in to comment.