📄 visit.m
字号:
function node = visit(node)global AP_NAME AP_BUILD_INFO% traverse the tree to find atomic propositionsif strcmp(node.symbol,'ap') switch node.production case 'polyap', apname = node.value{1}.value; if ~ismember(apname,AP_NAME) new = length(AP_NAME)+1; AP_NAME{new} = apname; AP_BUILD_INFO{new} = {'polyap'}; end % replace subtree by a single leaf node representing apname node.production = 'none'; node.value = apname; case 'fsmap', fsmname = node.value{1}.value; statename = node.value{3}.value; apname = [fsmname '_in_' statename]; if ~ismember(apname,AP_NAME) new = length(AP_NAME)+1; AP_NAME{new} = apname; AP_BUILD_INFO{new} = {'fsmap' fsmname statename}; end % replace subtree by a single leaf node representing this finite % state machine atomic proposition node.production = 'none'; node.value = apname; otherwise, error(['Unknown production ''' node.production ''' for atomic proposition'])% moved endelse if ~ischar(node.value) for k = 1:length(node.value) node.value{k} = visit(node.value{k}); end endend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -