1 ; Portions Copyright 2004 Sun Microsystems, Inc.
2 ; Portions Copyright 1999-2003 Language Technologies Institute,
3 ; Carnegie Mellon University.
4 ; All Rights Reserved. Use is subject to license terms.
6 ; See the file "license.terms" for information on usage and
7 ; redistribution of this file, and for a DISCLAIMER OF ALL
10 ; Dumps intonation accent cart to stdout.
12 ; Expects int_accent_cart_tree to be defined.
14 (define (dump_int_accent_cart)
16 (set! nodes (print_cart_nodes int_accent_cart_tree))
17 (format t "TOTAL %d\n" current_node)
18 (format t "%s" nodes))
20 (defvar cart_operators
26 ("=" "EQUALS"))) ; CST_CART_OP_EQUALS not handled in
27 ; Flite->FreeTTS Conversion
30 (define (print_cart_list l)
33 ((cdr l) (format nil "%f,%s" (car l) (print_cart_list (cdr l))))
34 (t (format nil "%f" (car l)))))
36 (define (print_cart_nodes tree)
37 (set! current_node (+ 1 current_node))
39 ((cdr tree) ;node (non-leaf)
40 (let ((operator (cadr (assoc_string (cadr (car tree)) cart_operators)))
41 (val (nth 2 (car tree))))
43 ((string-equal operator "=") (format nil "String(%s)" val))
44 ((string-equal operator "REGEX") (format nil "Integer(%d)" val))
45 ((number? val) (format nil "Float(%f)" val))
46 ((consp val) (format stderr "List vals not supported here yet\n")
48 (t (format nil "String(%s)" val))
50 (let ((left_val (print_cart_nodes (car (cdr tree)))))
51 (let ((this_node_val (format nil "NODE %s %s %s %d\n"
56 (let ((right_val (print_cart_nodes (car (cdr (cdr tree))))))
57 (string-append this_node_val left_val right_val))))
59 (t (format nil "LEAF String(%s)\n" (caar (cdr (car tree)))))))