Added partial draft of grammar doc
This commit is contained in:
		
							
								
								
									
										33
									
								
								grammar.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								grammar.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
expression ->
 | 
			
		||||
	| literal
 | 
			
		||||
//	| IDENTIFIER
 | 
			
		||||
//	| sequence
 | 
			
		||||
	| unary
 | 
			
		||||
	| binary
 | 
			
		||||
//	| let
 | 
			
		||||
//	| when
 | 
			
		||||
	| if
 | 
			
		||||
	| variant
 | 
			
		||||
	| record
 | 
			
		||||
	| list
 | 
			
		||||
	| field
 | 
			
		||||
	| index
 | 
			
		||||
	| grouping ;
 | 
			
		||||
 | 
			
		||||
literal -> NUMBER | STRING ;
 | 
			
		||||
grouping -> "(" expression ")" ;
 | 
			
		||||
unary -> ( "-" | "!" ) expression ;
 | 
			
		||||
binary -> expression operator expression ;
 | 
			
		||||
operator ->
 | 
			
		||||
	| "==" | "!=" | "<" | "<=" | ">" | ">="
 | 
			
		||||
	| "+" | "-" | "*" | "/"
 | 
			
		||||
	| "|>" | "<|" | ">>" | "<<"
 | 
			
		||||
	| "++" ;
 | 
			
		||||
if -> "if" expression "then" expression "else" expression ;
 | 
			
		||||
variant -> "`" IDENTIFIER ( "(" ( expression ( "," expression)* )? ")" )? ;
 | 
			
		||||
record ->
 | 
			
		||||
	"{" ( IDENTIFIER "=" expression ( "," IDENTIFIER "=" expression )* )? "}" ;
 | 
			
		||||
list -> "[" ( expression ( "," expression )* )? "]" ;
 | 
			
		||||
field -> expression "." identifier ;
 | 
			
		||||
index -> expression "[" expression "]" ;
 | 
			
		||||
grouping -> "(" expression ")" ;
 | 
			
		||||
		Reference in New Issue
	
	Block a user