From 7725bbb36baf0b921feb6c730a46fe1c81b54cbb Mon Sep 17 00:00:00 2001 From: Kevin Jalbert Date: Sat, 23 Feb 2013 13:19:10 -0500 Subject: [PATCH] Add TXL language Add: * TXL language * Sample TXL file --- lib/linguist/languages.yml | 7 ++++ samples/TXL/Cal.Txl | 80 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 samples/TXL/Cal.Txl diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4eae2dff..e21fa4cd 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1175,6 +1175,13 @@ SuperCollider: extensions: - .scd +TXL: + type: programming + lexer: Text only + primary_extension: .txl + extensions: + - .txl + Tcl: type: programming color: "#e4cc98" diff --git a/samples/TXL/Cal.Txl b/samples/TXL/Cal.Txl new file mode 100644 index 00000000..7a54d3d1 --- /dev/null +++ b/samples/TXL/Cal.Txl @@ -0,0 +1,80 @@ +% Calculator.Txl - simple numerical expression evaluator + +% Part I. Syntax specification +define program + [expression] +end define + +define expression + [term] + | [expression] [addop] [term] +end define + +define term + [primary] + | [term] [mulop] [primary] +end define + +define primary + [number] + | ( [expression] ) +end define + +define addop + '+ + | '- +end define + +define mulop + '* + | '/ +end define + + +% Part 2. Transformation rules +rule main + replace [expression] + E [expression] + construct NewE [expression] + E [resolveAddition] [resolveSubtraction] [resolveMultiplication] + [resolveDivision] [resolveParentheses] + where not + NewE [= E] + by + NewE +end rule + +rule resolveAddition + replace [expression] + N1 [number] + N2 [number] + by + N1 [+ N2] +end rule + +rule resolveSubtraction + replace [expression] + N1 [number] - N2 [number] + by + N1 [- N2] +end rule + +rule resolveMultiplication + replace [term] + N1 [number] * N2 [number] + by + N1 [* N2] +end rule + +rule resolveDivision + replace [term] + N1 [number] / N2 [number] + by + N1 [/ N2] +end rule + +rule resolveParentheses + replace [primary] + ( N [number] ) + by + N +end rule