summary refs log tree commit diff
path: root/F2024/cps710/assignments/A1/HL.jj
diff options
context:
space:
mode:
authorKleidi Bujari <mail@4kb.net>2024-10-04 17:40:22 -0400
committerKleidi Bujari <mail@4kb.net>2024-10-04 17:40:22 -0400
commit19d2651ab7618afab39811907fd5b0ae0e36ad41 (patch)
tree064fca592c01dfea936b8f124c97260edc386255 /F2024/cps710/assignments/A1/HL.jj
parente3d457d72f59bd442a3a8d13b311d7c8444e177d (diff)
downloaduni-19d2651ab7618afab39811907fd5b0ae0e36ad41.tar.gz
uni-19d2651ab7618afab39811907fd5b0ae0e36ad41.tar.bz2
uni-19d2651ab7618afab39811907fd5b0ae0e36ad41.zip
lab 1 HEAD master
Diffstat (limited to 'F2024/cps710/assignments/A1/HL.jj')
-rw-r--r--F2024/cps710/assignments/A1/HL.jj83
1 files changed, 83 insertions, 0 deletions
diff --git a/F2024/cps710/assignments/A1/HL.jj b/F2024/cps710/assignments/A1/HL.jj
new file mode 100644
index 0000000..54657cc
--- /dev/null
+++ b/F2024/cps710/assignments/A1/HL.jj
@@ -0,0 +1,83 @@
+options {
+	IGNORE_CASE=false;
+}
+
+PARSER_BEGIN(HL)
+
+	public class HL { } 
+
+PARSER_END(HL)
+
+	TOKEN_MGR_DECLS : 
+{
+	static int depth;
+}
+
+SKIP : 
+{ 
+	" " 
+		| "\t" 
+		| "\n" 
+		| "\r" 
+		| <"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")>
+		| "/'" { depth = 1; SwitchTo(COMMENT_BLOCK); }
+}
+
+<COMMENT_BLOCK> SKIP:
+{
+	< "/'" > { depth++; }
+	|  < "'/" > { if (--depth == 0) SwitchTo(DEFAULT); }
+	|  < ~[] >
+}
+
+TOKEN : 
+{ 
+	<ELSE: "else"> 
+		| <FOR: "for">
+		| <DO: "do"> 
+		| <IN: "in"> 
+		| <WHILE: "while"> 
+		| <IF: "if"> 
+		| <THEN: "then"> 
+		| <ELIF: "elif">
+		| <FI: "fi">
+		| <FUNCTION: "function">
+		| <RETURN: "return">
+		| <END: "end">
+		| <PRINT: "print">
+		| <PRINTLN: "println">
+		| <VAR: "var">
+		| <LESS: "<">
+		| <LESSEQ: "<=">
+		| <GREATER: ">">
+		| <GREATEQ: ">=">
+		| <EQUAL: "==">
+		| <NOTEQ: "!=">
+		| <ISIN: "=in">
+		| <NOTIN: "!in">
+		| <PLUS: "+">
+		| <MINUS: "-">
+		| <TIMES: "*">
+		| <DIV: "/">
+		| <MOD: "%">
+		| <AND: "&">
+		| <VBAR: "|">
+		| <NOT: "!">
+		| <ASSIGN: "=">
+		| <LROUND: "(">
+		| <RROUND: ")">
+		| <LCURLY: "{">
+		| <RCURLY: "}">
+		| <LSQUARE: "[">
+		| <RSQUARE: "]">
+		| <COMMA: ",">
+		| <SEMICOL: ";">
+		| <TRUE: "#1">
+		| <FALSE: "#0">
+		| <IDNUM: ["a"-"z"] ( ["a"-"z", "A"-"Z", "0"-"9"] )*>
+		| <IDSET: ["A"-"Z"] ( ["a"-"z", "A"-"Z", "0"-"9"] )*>
+		| <IDBOOL: "#" ["a"-"z","A"-"Z"] ( ["a"-"z", "A"-"Z", "0"-"9"] )*>
+		| <NUMBER: ( ["0"-"9"] )+>
+		| <STRING: "\"" (~["\"","\\"] | "\\" ["n","t","\\","\""])* "\"" > 
+}
+