<commit_before>(* A copy of pre V7 ast *)

open Names

type loc = int * int

type t =
  | Node of loc * string * t list
  | Nvar of loc * string
  | Slam of loc * string option * t
  | Num of loc * int
  | Id of loc * string
  | Str of loc * string
  | Path of loc * string list
  | Dynamic of loc * Dyn.t

let section_path sl =
  match List.rev sl with
    | s::pa ->
	make_path
	  (make_dirpath (List.rev (List.map id_of_string pa)))
	  (id_of_string s)
    | [] -> invalid_arg "section_path"

let is_meta s = String.length s > 0 && s.[0] == '$'<commit_msg>the function Ctast.section_path was wrong.  It performed two reverse operations on lists, which was equivalent to doing nothing.<commit_after>(* A copy of pre V7 ast *)

open Names

type loc = int * int

type t =
  | Node of loc * string * t list
  | Nvar of loc * string
  | Slam of loc * string option * t
  | Num of loc * int
  | Id of loc * string
  | Str of loc * string
  | Path of loc * string list
  | Dynamic of loc * Dyn.t

let section_path sl =
  match List.rev sl with
    | s::pa ->
	make_path
	  (make_dirpath (List.map id_of_string pa))
	  (id_of_string s)
    | [] -> invalid_arg "section_path"

let is_meta s = String.length s > 0 && s.[0] == '$'
{'fraction_non_alphanumeric': 0.1088379705400982, 'fraction_numerical': 0.004909983633387889, 'mean_word_length': 2.706060606060606, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3595597', 'n_tokens_mistral': 441, 'n_tokens_neox': 429, 'n_words': 170}