Skip to content

Latest commit

 

History

History
167 lines (105 loc) · 4.09 KB

README.md

File metadata and controls

167 lines (105 loc) · 4.09 KB

அகரம்

Join the chat at https://gitter.im/Agaram-Programming-Language/community

ஒரு தமிழ் நிரலாக்க மொழி

பயன்பாடு

வாக்கியங்களை பதிப்பிக்க

எழுது '123';

எண்கணித செயல்பாடுகள்

எழுது 1 + 2; // கூட்டல்

எழுது 1 - 2; // கழித்தல்

எழுது 1 * 2; // பெருக்கல்

எழுது 4/2; // வகுத்தல்

எழுது (1 * 2) + (4 / 2); //சிக்கலான எண்கணித செயல்பாடு

Variable declaration

மாறி எ = 10;

If loop (ஒருவேளை)

மாறி எ = 10;

  ஒருவேளை ( எ == 10) { 
     எழுது எ; 
  }

While Loop (இருப்பின்)

மாறி எ = 10;
இருப்பின்(எ > 0) {    எழுது எ;    எ = எ - 1; }

For loop (ஆக)

ஆக ( மாறி எ = 1; எ < 5; எ = எ + 1) {
  எழுது எ; 
}

Function declaration ( செயல்பாடு )

செயல்பாடு  கூட்டு( அ, ஆ ) {  
	எழுது அ + ஆ; 
}

Function call

	கூட்டு(1,2);

Return value from function (திருப்பு)

செயல்பாடு  கூட்டு( அ, ஆ ) {  
	திருப்பு அ + ஆ; 
}

Grammar

Statement

program → declaration* EOF ;

declaration → varDecl | funDecl | statement ;

funDecl → "செயல்பாடு" function ; function → IDENTIFIER "(" parameters? ")" block ; parameters → IDENTIFIER ( "," IDENTIFIER )* ;

parameters → IDENTIFIER ( "," IDENTIFIER )* ;

varDecl → "மாறி" IDENTIFIER ( "=" expression )? ";" ;

statement → exprStmt | printStmt | ifStmt | whileStmt | forStmt | returnStmt | block ;

ifStmt → "ஒருவேளை" "(" expression ")" statement ( "இல்லையென்றால்" statement )? ;

returnStmt -> "திருப்பு" expression ";"

whileStmt -> "இருப்பின்" "(" expression ")" statement

forStmt → "ஆக" "(" ( varDecl | exprStmt | ";" ) expression? ";" expression? ")" statement ;

block → "{" declaration* "}" ;

exprStmt → expression ";" ; printStmt → "எழுது" expression ";" ;

Expression

expression -> assignment;

assignment → IDENTIFIER "=" assignment | logic_or ; ;

logic_or → logic_and ( "or" logic_and )* ; logic_and → equality ( "and" equality )* ;

line -> expression

group -> "(" expression ")"

expression -> binary | unary | literal | group

comparsion -> expression (">=" | "<=" | ">" | "<") expression

operator -> "+" | "-" | "*" | "/"

binary -> expression operator expression

unary -> operator expression | call

call → primary ( "(" arguments? ")" )* ;

arguments → expression ( "," expression )* ;

primary -> NUMBER | STRING | "உண்மை" | "பொய்" | IDENTIFIER;

grouping -> "(" expression ")" ;

we will support or and operation in symbol and text form
||, அல்லது
&&, மற்றும்