From 93cb0732cc18d91e426e80514e803a81a5371743 Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Sun, 28 Jun 2015 20:50:07 -0400 Subject: [PATCH] Added back in float and double suffexes! --- krakenGrammer.kgm | 3 ++- tests/test_literal.expected_results | 4 ++++ tests/test_literal.krak | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/test_literal.expected_results create mode 100644 tests/test_literal.krak diff --git a/krakenGrammer.kgm b/krakenGrammer.kgm index a71a65a..31ac929 100644 --- a/krakenGrammer.kgm +++ b/krakenGrammer.kgm @@ -120,7 +120,8 @@ assignment_statement = factor WS "=" WS boolean_expression | factor WS "\+=" WS declaration_statement = "var" WS identifier WS "=" WS boolean_expression | "var" WS identifier WS dec_type WS "=" WS boolean_expression | "var" WS identifier WS dec_type | "var" WS identifier WS "." WS identifier WS "\(" WS opt_parameter_list WS "\)" WS dec_type ; hexadecimal = "0x(1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)+" ; integer = numeric | hexadecimal ; -floating_literal = numeric "." numeric ; +floating_literal = numeric "." float_end ; +float_end = "(0|1|2|3|4|5|6|7|8|9)+" | "(0|1|2|3|4|5|6|7|8|9)+f" | "(0|1|2|3|4|5|6|7|8|9)+d" ; bool = "true" | "false" ; character = "'(`|1|2|3|4|5|6|7|8|9|0|-|=|(\\t)|q|w|e|r|t|y|u|i|o|p|[|]|(\\\\)|a|s|d|f|g|h|j|k|l|;|'|(\\n)|z|x|c|v|b|n|m|,|.|/|~|!|@|#|$|%|^|&|\*|\(|\)|_|\+|Q|W|E|R|T|Y|U|I|O|P|{|}|\||A|S|D|F|G|H|J|K|L|:|\"|Z|X|C|V|B|N|M|<|>|\?| |(\\0))'" ; diff --git a/tests/test_literal.expected_results b/tests/test_literal.expected_results new file mode 100644 index 0000000..6d4d423 --- /dev/null +++ b/tests/test_literal.expected_results @@ -0,0 +1,4 @@ +int: 1 +double: 1.000000 +float: 1.000000 +double: 1.000000 diff --git a/tests/test_literal.krak b/tests/test_literal.krak new file mode 100644 index 0000000..47b9bdb --- /dev/null +++ b/tests/test_literal.krak @@ -0,0 +1,25 @@ +import io:* + +fun do_num(it: int) { + print("int: ") + println(it) +} + +fun do_num(it: float) { + print("float: ") + println(it) +} + +fun do_num(it: double) { + print("double: ") + println(it) +} + +fun main():int { + do_num(1) + do_num(1.0) + do_num(1.0f) + do_num(1.0d) + return 0 +} +