BeginProgram: OutputFormatting3
BeginEval: language =~ m/rs/
	@@@#[macro_use]@@@
	Statement: @@@extern crate fstrings@@@
EndEval

BeginMain:
	ScalarDecl: const <double> FICA_RATE = 0.0765
	ScalarDecl: const <double> PAY_RATE = 20.0
	ScalarDecl: const <double> annual_salary = PAY_RATE * 2080.0
BeginEval: language =~ m/cpp/
	PrintLine: "C++ does not support variable interpolation!"
ElseIfEval: language =~ m/java/
	PrintLine: "Java does not support variable interpolation!"
ElseIfEval: language =~ m/js/
	PrintLine: @@@`FICA Tax Rate: ${FICA_RATE}`@@@
	PrintLine: @@@`Annual Salary: ${annual_salary}`@@@
	PrintLine: @@@`FICA Tax: ${FICA_RATE * annual_salary}`@@@
ElseIfEval: language =~ m/pl/
	Comment: Single quote strings will not interpolate variables like ${annual_salary}
	Comment: Must use double quote strings if you want variable interpolation.
	PrintLine: @@@"FICA Tax Rate: ${FICA_RATE}"@@@
	PrintLine: @@@"Annual Salary: ${annual_salary}"@@@
	PrintLine: @@@"FICA Tax: @{[$FICA_RATE * $annual_salary]}"@@@
ElseIfEval: language =~ m/py/
	PrintLine: f"FICA Tax Rate: {FICA_RATE}"
	PrintLine: f"Annual Salary: {annual_salary}"
	PrintLine: f"FICA Tax: {FICA_RATE * annual_salary}"
ElseIfEval: language =~ m/rs/
	ScalarDecl: const <double> FICA_tax = annual_salary * FICA_RATE
	ScalarDecl: const <string> s1 = f"FICA Tax Rate: {FICA_RATE}"
	PrintLine: s1
	PrintLine: f"Annual Salary: {annual_salary}"
	Statement: @@@println_f!("FICA Tax: {FICA_tax}")@@@
ElseIfEval: language =~ m/swift/
	PrintLine: "FICA Tax Rate: \(FICA_RATE)"
	PrintLine: "Annual Salary: \(annual_salary)"
	PrintLine: "FICA Tax: \(FICA_RATE * annual_salary)"
EndEval
EndMain
EndProgram
