some lines in lark
This commit is contained in:
		
							
								
								
									
										30
									
								
								spf.lark
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								spf.lark
									
									
									
									
									
								
							@ -1 +1,29 @@
 | 
			
		||||
// Contient la gramaire de spf
 | 
			
		||||
start: (instruction)* TERMINAL
 | 
			
		||||
 | 
			
		||||
instruction: KEYWORD TERMINAL
 | 
			
		||||
		   | declaration TERMINAL
 | 
			
		||||
 | 
			
		||||
declaration: TYPE NOM
 | 
			
		||||
		   | TYPE NOM "=" expression
 | 
			
		||||
 | 
			
		||||
expression: literal
 | 
			
		||||
		  | list
 | 
			
		||||
		  | range
 | 
			
		||||
		  | expression operator expression
 | 
			
		||||
		  | operator expression
 | 
			
		||||
 | 
			
		||||
controls: test
 | 
			
		||||
		| loop
 | 
			
		||||
 | 
			
		||||
test: "si" expression "alors" "{" instruction* "}"
 | 
			
		||||
 | 
			
		||||
loop: "si" expression "alors" { (instruction)* }
 | 
			
		||||
 | 
			
		||||
COMMENT: "#" /[^\n]/
 | 
			
		||||
%ignore COMMENT
 | 
			
		||||
 | 
			
		||||
TERMINAL: ";"
 | 
			
		||||
 | 
			
		||||
VARIABLE: /([a-z]|[A-Z]|_)+[a-z]|[A-Z]|[0-9]_)+/ // TODO: ajouter accents
 | 
			
		||||
 | 
			
		||||
TYPE: "booléen" | "entier" | "texte" | "liste"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								spf.py
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								spf.py
									
									
									
									
									
								
							@ -20,10 +20,10 @@ def main():
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
 | 
			
		||||
    if args.dump:
 | 
			
		||||
        print("Dump activated", file=sys.stderr)
 | 
			
		||||
        print("Dump activated (TODO)", file=sys.stderr)
 | 
			
		||||
 | 
			
		||||
    if args.trace:
 | 
			
		||||
        print("Trace activated", file=sys.stderr)
 | 
			
		||||
        print("Trace activated (TODO)", file=sys.stderr)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user