fix call expression

pull/625/head^2
Nikolaj Sidorenco 2024-04-08 19:38:01 +07:00
parent a3c34da73f
commit 6adabb9344
No known key found for this signature in database
7 changed files with 203567 additions and 205256 deletions

@ -1,5 +1,6 @@
let _ =
if b then
2
1
do
services
.Build()
.Run()
|> ignore

@ -679,7 +679,7 @@ module.exports = grammar({
prec.right(PREC.DOT,
seq(
field('base', $._expression),
token.immediate('.'),
'.',
field('field', $.long_identifier_or_op),
)),

7
src/grammar.json generated

@ -2506,11 +2506,8 @@
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "."
}
"type": "STRING",
"value": "."
},
{
"type": "FIELD",

408620
src/parser.c generated

File diff suppressed because it is too large Load Diff

@ -129,16 +129,13 @@ do
--------------------------------------------------------------------------------
(file
(value_declaration
(do
(typed_expression
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier))))))))
(value_declaration
(do
(typed_expression
(long_identifier_or_op
(long_identifier
(identifier)
(identifier)))))))
================================================================================
typed expression
@ -150,20 +147,17 @@ do
--------------------------------------------------------------------------------
(file
(value_declaration
(do
(typed_expression
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier))))
(types
(type
(long_identifier
(identifier))))))))
(value_declaration
(do
(typed_expression
(long_identifier_or_op
(long_identifier
(identifier)
(identifier)))
(types
(type
(long_identifier
(identifier))))))))
================================================================================
paren expression
@ -220,19 +214,25 @@ do
dot expression
================================================================================
do (test.test)
do (A[1]).B
--------------------------------------------------------------------------------
(file
(value_declaration
(do
(paren_expression
(dot_expression
(long_identifier_or_op
(long_identifier (identifier)))
(long_identifier_or_op
(long_identifier (identifier))))))))
(dot_expression
(paren_expression
(application_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(list_expression
(const
(int)))))
(long_identifier_or_op
(long_identifier
(identifier)))))))
================================================================================
index dot expression
@ -725,22 +725,16 @@ do
(do
(application_expression
(infix_expression
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier))))
(long_identifier_or_op
(long_identifier
(identifier)
(identifier)))
(infix_op
(symbolic_op))
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier)))))
(long_identifier_or_op
(long_identifier
(identifier)
(identifier))))
(dot_expression
(long_identifier_or_op
(long_identifier
@ -788,13 +782,10 @@ do
(application_expression
(do_expression
(application_expression
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier))))
(long_identifier_or_op
(long_identifier
(identifier)
(identifier)))
(const
(int))))
(return_expression
@ -1343,38 +1334,35 @@ let test f =
--------------------------------------------------------------------------------
(file
(value_declaration
(function_or_value_defn
(function_declaration_left
(identifier)
(argument_patterns
(value_declaration
(function_or_value_defn
(function_declaration_left
(identifier)
(argument_patterns
(long_identifier
(identifier))))
(sequential_expression
(application_expression
(if_expression
(const
(bool))
(long_identifier_or_op
(long_identifier
(identifier))))
(long_identifier_or_op
(long_identifier
(identifier))))
(sequential_expression
(application_expression
(if_expression
(const
(bool))
(long_identifier_or_op
(long_identifier
(identifier))))
(call_expression
(long_identifier_or_op
(long_identifier
(identifier)
(identifier)))
(tuple_expression
(long_identifier_or_op
(long_identifier
(identifier))))
(call_expression
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier))))
(tuple_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(const
(string))))))))
(identifier)))
(const
(string))))))))
================================================================================
if-expression in sequence expression

@ -84,7 +84,7 @@ let inline double<^a when ^a:(member Double: unit -> ^a)> (x: ^a) = x.Double()
--------------------------------------------------------------------------------
(file
(file
(value_declaration
(function_or_value_defn
(function_declaration_left
@ -115,13 +115,10 @@ let inline double<^a when ^a:(member Double: unit -> ^a)> (x: ^a) = x.Double()
(type_argument
(identifier))))))
(call_expression
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier))))))))
(long_identifier_or_op
(long_identifier
(identifier)
(identifier)))))))
================================================================================
basic function with srt constraint (new-style, with ')
@ -131,7 +128,7 @@ let inline double<'a when 'a:(member Double: unit -> 'a)> (x: 'a) = x.Double()
--------------------------------------------------------------------------------
(file
(file
(value_declaration
(function_or_value_defn
(function_declaration_left
@ -162,10 +159,7 @@ let inline double<'a when 'a:(member Double: unit -> 'a)> (x: 'a) = x.Double()
(type_argument
(identifier))))))
(call_expression
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier))))))))
(long_identifier_or_op
(long_identifier
(identifier)
(identifier)))))))

@ -351,13 +351,10 @@ type A() =
(long_identifier
(identifier)))
(call_expression
(dot_expression
(long_identifier_or_op
(long_identifier
(identifier)))
(long_identifier_or_op
(long_identifier
(identifier))))))
(long_identifier_or_op
(long_identifier
(identifier)
(identifier)))))
(infix_op)
(const
(unit))))))))