Skip to content

Commit

Permalink
Merge pull request #47 from tonyfettes/test-def
Browse files Browse the repository at this point in the history
update
  • Loading branch information
tonyfettes authored Dec 25, 2024
2 parents 5f88ac4 + 5ea653b commit ef712bb
Show file tree
Hide file tree
Showing 6 changed files with 152 additions and 8 deletions.
9 changes: 5 additions & 4 deletions grammar.js
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ module.exports = grammar({
test_definition: $ => seq(
'test',
optional($.string_literal),
optional($.parameters),
$.block_expression
),

Expand Down Expand Up @@ -293,10 +294,10 @@ module.exports = grammar({
boolean_literal: _ => choice('true', 'false'),

integer_literal: _ => token(choice(
/[0-9][0-9_]*L?/,
/0[xX][0-9a-fA-F_]+L?/,
/0[oO][0-7_]+L?/,
/0[bB][01_]+L?/,
/[0-9][0-9_]*U?L?/,
/0[xX][0-9a-fA-F_]+U?L?/,
/0[oO][0-7_]+U?L?/,
/0[bB][01_]+U?L?/,
)),

// integerPart = /[0-9][_0-9]*/,
Expand Down
20 changes: 16 additions & 4 deletions src/grammar.json
Original file line number Diff line number Diff line change
Expand Up @@ -956,6 +956,18 @@
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block_expression"
Expand Down Expand Up @@ -1547,19 +1559,19 @@
"members": [
{
"type": "PATTERN",
"value": "[0-9][0-9_]*L?"
"value": "[0-9][0-9_]*U?L?"
},
{
"type": "PATTERN",
"value": "0[xX][0-9a-fA-F_]+L?"
"value": "0[xX][0-9a-fA-F_]+U?L?"
},
{
"type": "PATTERN",
"value": "0[oO][0-7_]+L?"
"value": "0[oO][0-7_]+U?L?"
},
{
"type": "PATTERN",
"value": "0[bB][01_]+L?"
"value": "0[bB][01_]+U?L?"
}
]
}
Expand Down
4 changes: 4 additions & 0 deletions src/node-types.json
Original file line number Diff line number Diff line change
Expand Up @@ -2189,6 +2189,10 @@
"type": "block_expression",
"named": true
},
{
"type": "parameters",
"named": true
},
{
"type": "string_literal",
"named": true
Expand Down
Binary file modified src/parser.c
Binary file not shown.
58 changes: 58 additions & 0 deletions test/corpus/literal.txt
Original file line number Diff line number Diff line change
Expand Up @@ -279,3 +279,61 @@ fn init {
(bytes_literal
(string_fragment
(unescaped_string_fragment))))))))))))))))

================================================================================
integer literal
================================================================================
fn main {
let a = 1
let b = 1U
let c = 1L
let d = 1UL
}
--------------------------------------------------------------------------------

(structure
(structure_item
(function_definition
(function_identifier
(lowercase_identifier))
(block_expression
(statement_expression
(let_expression
(pattern
(simple_pattern
(lowercase_identifier)))
(expression
(simple_expression
(atomic_expression
(literal
(integer_literal)))))))
(statement_expression
(let_expression
(pattern
(simple_pattern
(lowercase_identifier)))
(expression
(simple_expression
(atomic_expression
(literal
(integer_literal)))))))
(statement_expression
(let_expression
(pattern
(simple_pattern
(lowercase_identifier)))
(expression
(simple_expression
(atomic_expression
(literal
(integer_literal)))))))
(statement_expression
(let_expression
(pattern
(simple_pattern
(lowercase_identifier)))
(expression
(simple_expression
(atomic_expression
(literal
(integer_literal)))))))))))
69 changes: 69 additions & 0 deletions test/corpus/test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,72 @@ test {
(atomic_expression
(literal
(integer_literal)))))))))))

================================================================================
snapshot
================================================================================
test "a" (it : @test.T) {
it.writeln("hello")
it.snapshot!(filename="test.txt")
}
--------------------------------------------------------------------------------

(structure
(structure_item
(test_definition
(string_literal
(string_fragment
(unescaped_string_fragment)))
(parameters
(parameter
(lowercase_identifier)
(type_annotation
(colon)
(type
(apply_type
(qualified_type_identifier
(package_identifier)
(dot_identifier
(dot_operator))))))))
(block_expression
(statement_expression
(expression
(simple_expression
(dot_apply_expression
(simple_expression
(qualified_identifier
(lowercase_identifier)))
(dot_identifier
(dot_operator))
(argument
(expression
(simple_expression
(atomic_expression
(literal
(string_literal
(string_fragment
(unescaped_string_fragment))))))))))))
(statement_expression
(expression
(simple_expression
(apply_expression
(simple_expression
(access_expression
(simple_expression
(qualified_identifier
(lowercase_identifier)))
(accessor
(dot_identifier
(dot_operator)))))
(argument
(argument_label
(simple_expression
(qualified_identifier
(lowercase_identifier))))
(expression
(simple_expression
(atomic_expression
(literal
(string_literal
(string_fragment
(unescaped_string_fragment))))))))))))))))

0 comments on commit ef712bb

Please sign in to comment.