mirror of
https://codeberg.org/ProgramSnail/tree-sitter-lang.git
synced 2026-01-09 05:05:03 +00:00
config file fixes, langexp -> lang, highlighting
This commit is contained in:
parent
1357783074
commit
154fbfb4d4
5 changed files with 113 additions and 6 deletions
519
corpus/edigits_like.lang
Normal file
519
corpus/edigits_like.lang
Normal file
|
|
@ -0,0 +1,519 @@
|
|||
================================================================================
|
||||
EdigitsDraft
|
||||
================================================================================
|
||||
|
||||
:: os;
|
||||
:: std : BigInt;
|
||||
:: math;
|
||||
|
||||
exec.main = {
|
||||
%n := (?? os.args.size > 1 => (<> os.args[1]).scan !!=> 27);
|
||||
%k := binary_search 0;
|
||||
%p & %q := sum_terms 0 (k - 1);
|
||||
p += q;
|
||||
$a := (std.BigInt.of 10).pow (n - 1);
|
||||
%answer := p * a /. q;
|
||||
%s := answer.to_string;
|
||||
@ %i : (@ %j : 0..(n / 10 +. 1) => j * 10) => {
|
||||
?? i + 10 <=. n =>
|
||||
print (s.subseg i (i + 10) ++ "\t:" ++. (i + 10).to_string)
|
||||
!!=>
|
||||
print (s.subseg i n
|
||||
++ (@ _ : 0..(10 - math.mod n 10) => ''\s'')
|
||||
++ "\t:"
|
||||
++ n.to_string);
|
||||
};
|
||||
}
|
||||
|
||||
sum_terms 'a 'b : Int Int -> std.BigInt -> std.BigInt = {
|
||||
?? 'b ==. 'a + 1 => return std.BigInt.of 1 & std.BigInt.of 'b;
|
||||
|
||||
%mid := 'a + 'b /. 2;
|
||||
%p_left & %q_left := sum_terms 'a mid;
|
||||
%p_right & %q_right := sum_terms mid 'b;
|
||||
|
||||
return p_left * q_right +. p_right &.. q_left * q_right;
|
||||
}
|
||||
|
||||
binary_search 'n : Int -> Int = {
|
||||
%a := 0;
|
||||
%b := 1;
|
||||
@ not (test_k 'n b) => {
|
||||
a = b;
|
||||
b *= 2;
|
||||
};
|
||||
@ b - a >. 1 => {
|
||||
%m := a + b /. 2;
|
||||
?? test_k 'n m => b = m !!=> a = m;
|
||||
};
|
||||
return b;
|
||||
}
|
||||
|
||||
|
||||
test_k 'n 'k : Int Int -> Bool = {
|
||||
?? k < 0 => return false;
|
||||
|
||||
%ln_k_factorial := k * (math.log k - 1) +. 0.5 * math.log math.tau;
|
||||
%log_10_k_factorial := ln_k_factorial / math.ln10;
|
||||
|
||||
return log_10_k_factorial >=. n + 10;
|
||||
}
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(source_file
|
||||
(empty_lines)
|
||||
(import
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(import
|
||||
(simple_name_identifier)
|
||||
(simple_type_identifier))
|
||||
(empty_lines)
|
||||
(import
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(condition
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal))
|
||||
(name_expression
|
||||
(reference_expression
|
||||
(array_access
|
||||
(simple_name_identifier)
|
||||
(index_literal)))
|
||||
(simple_name_identifier))
|
||||
(index_literal))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(index_literal))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(operator_expression
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_definition
|
||||
(simple_name_identifier)))
|
||||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(index_literal)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal)))))
|
||||
(empty_lines)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(name_expression
|
||||
(name_expression
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_name_identifier)
|
||||
(index_literal))
|
||||
(simple_name_identifier)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal)))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(operator_tail1)
|
||||
(name_expression
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(loop
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(loop
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(operator_expression
|
||||
(index_literal)
|
||||
(operator)
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal))
|
||||
(operator_tail1)
|
||||
(index_literal)))
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal)))
|
||||
(block
|
||||
(empty_lines)
|
||||
(condition
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal))
|
||||
(operator_tail1)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal)))
|
||||
(operator)
|
||||
(string_literal))
|
||||
(operator_tail1)
|
||||
(name_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal))
|
||||
(simple_name_identifier))))
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(loop
|
||||
(placeholder)
|
||||
(operator_expression
|
||||
(index_literal)
|
||||
(operator)
|
||||
(operator_expression
|
||||
(index_literal)
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
(index_literal))))
|
||||
(char_literal)))
|
||||
(operator)
|
||||
(string_literal))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)))
|
||||
(empty_lines)))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(reference_type
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(reference_type
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(block
|
||||
(empty_lines)
|
||||
(condition
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(operator_tail1)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(operator)
|
||||
(index_literal)))
|
||||
(return
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_name_identifier)
|
||||
(index_literal))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(argument_name_identifier)))
|
||||
(operator_tail1)
|
||||
(index_literal))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(operator_expression
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_definition
|
||||
(simple_name_identifier)))
|
||||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(operator_expression
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_definition
|
||||
(simple_name_identifier)))
|
||||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier))))
|
||||
(empty_lines)
|
||||
(return
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(operator_tail1)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(operator_tail2)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(reference_type
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(block
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(index_literal)))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(index_literal)))
|
||||
(empty_lines)
|
||||
(loop
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(simple_name_identifier)))
|
||||
(block
|
||||
(empty_lines)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(empty_lines)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal))
|
||||
(empty_lines)))
|
||||
(empty_lines)
|
||||
(loop
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(operator_tail1)
|
||||
(index_literal))
|
||||
(block
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(operator_tail1)
|
||||
(index_literal))))
|
||||
(empty_lines)
|
||||
(condition
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(simple_name_identifier))
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)))
|
||||
(empty_lines)
|
||||
(return
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(empty_lines)))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(reference_type
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(block
|
||||
(empty_lines)
|
||||
(condition
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal))
|
||||
(return
|
||||
(bool_literal)))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal)))
|
||||
(operator_tail1)
|
||||
(operator_expression
|
||||
(double_literal)
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)
|
||||
(return
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator_tail1)
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
(operator)
|
||||
(index_literal))))
|
||||
(empty_lines)))
|
||||
(empty_lines))
|
||||
Loading…
Add table
Add a link
Reference in a new issue