From 0826f2b9780591b53ff1faa33bf413f05e8bdbc9 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 8 Apr 2015 20:22:22 -0400 Subject: Removed several useless lux files (1 example and 3 outdated rewrites of compiler code). --- source/luxc/parser.lux | 72 -------------------------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 source/luxc/parser.lux (limited to 'source/luxc/parser.lux') diff --git a/source/luxc/parser.lux b/source/luxc/parser.lux deleted file mode 100644 index 35ec12b17..000000000 --- a/source/luxc/parser.lux +++ /dev/null @@ -1,72 +0,0 @@ -(use ./util #as &util #refer [do return fail try-all repeat]) -(use ./lexer #as &lexer) - -;; [Utils] -(do-template [ ] - (def ( parse) - (do [elems (repeat parse) - token &lexer:lex] - (case token - - (return (list ( (fold ++ (list) elems)))) - - _ - (fail (concat (list "[Parser Error] Unbalanced " ".")))))) - - parse-form #&lexer:Close-Paren "parantheses" #Form - parse-tuple #&lexer:Close-Bracket "brackets" #Tuple - ) - -(def (parse-record parse) - (do [elems* (repeat parse) - token &lexer:lex - #let [elems (fold ++ (list) elems*)]] - (case token - #&lexer:Close-Bracket - (if (odd? (size elems)) - (fail "[Parser Error] Records must have an even number of elements.") - (return (list (#Record elems)))) - - _ - (fail "[Parser Error] Unbalanced braces.")))) - -;; [Interface] -(def parse - (do [token &lexer/lex] - (match token - (#&lexer:White-Space _) - (return (list)) - - (#&lexer:Comment _) - (return (list)) - - (#&lexer:Bool ?value) - (return (list [#Bool (jvm:invokestatic Boolean "parseBoolean" [String] [?value])])) - - (#&lexer:Int ?value) - (return (list [#Int (jvm:invokestatic Integer "parseInt" [String] [?value])])) - - (#&lexer:Real ?value) - (return (list [#Real (jvm:invokestatic Float "parseFloat" [String] [?value])])) - - (#&lexer:Char ?value) - (return (list [#Char (jvm:invokevirtual String "charAt" [int] ?value [0])])) - - (#&lexer:Text ?value) - (return (list [#Text ?value])) - - (#&lexer:Ident ?value) - (return (list [#Ident ?value])) - - (#&lexer:Tag ?value) - (return (list [#Tag ?value])) - - #&lexer:Open-Paren - (parse-form parse) - - #&lexer:Open-Bracket - (parse-tuple parse) - - #&lexer:Open-Brace - (parse-record parse) - ))) -- cgit v1.2.3