X-Git-Url: https://code.kerkeslager.com/?p=sandbox;a=blobdiff_plain;f=furfur%2Fsyntax.fparse;fp=furfur%2Fsyntax.fparse;h=356762e9ebeec0c6d44307f6c8fa672a91062bad;hp=0000000000000000000000000000000000000000;hb=968af6bc53d70e889bae92c15606212c084e0168;hpb=45ec9c36ab7241cee93e615b3c901b5b80aa7aff diff --git a/furfur/syntax.fparse b/furfur/syntax.fparse new file mode 100644 index 0000000..356762e --- /dev/null +++ b/furfur/syntax.fparse @@ -0,0 +1,20 @@ +__IGNORE__ = /[ \n\t]*/ + +CLOSE_PARENTHESE = ')' +EQUALS = '=' +OPEN_PARENTHESE = '(' + +DEF = 'def' +END = 'end' + +IDENTIFIER = /[A-Za-z_][A-Za-z_0-9]*/ +NUMBER = /\d+(\.\d+)?/ +STRING = /'(.*?|\\')'|"(.*?|\\")"/ + +expression = + +assignment_statement = IDENTIFIER EQUALS expression +function_definition_statement = DEF IDENTIFIER OPEN_PARENTHESE argument_definition_list CLOSE_PARENTHESE statement_list END +expression_statement = expression + +statement = assignment_statement | function_definition_statement