Добрый день,разделение входной линии с различными форматами в Tcl с
Я пытаюсь написать TCL скрипт, который дал входной файл
input hreadyin;
input wire htrans;
input wire [7:0] haddr;
output logic [31:0] hrdata;
output hreadyout;
будет производить
hreadyin(hreadyin),
htrans(htrans),
haddr(haddr[7:0]),
hrdata(hrdata[31:0]),
hready(hreadyout)
В другом слова, формат:
<input/output> <wire/logic optional> <width, optional> <paramName>;
с количеством пробелов, неограниченных между каждым из них.
У меня нет проблем с чтением из входного файла и было возможно разместить каждую строку в элементе $line
. Теперь я пытался вещи, как:
set param0 [split $line "input"]
set param1 [lindex $param0 1]
Но поскольку не все линии имеют "input"
линия в них я не смог получить элементы я хочу (имя и ширину, если она существует)
. есть еще одна команда в Tcl способны для выполнения подобного рода разборе?
Это просто еще один способ использования регулярного выражения, чтобы пропустить шаги проверки. – Jerry
Самое простое решение, но '-all' не требуется, а' info exists width' всегда будет истинным после первой строки. 'regexp' никогда не выводит подпункты. – potrzebie
@potrzebie huh, я был под впечатлением, что он даже не создает переменную (или не задает ее без совпадений). Отредактировал код, поскольку он лишний с этим. Спасибо :) – Jerry