📄 nodety~1
字号:
#!/bin/sh -## Copyright (c) 1991 The Regents of the University of California.# All rights reserved.## This code is derived from software contributed to Berkeley by# Kenneth Almquist.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:# 1. Redistributions of source code must retain the above copyright# notice, this list of conditions and the following disclaimer.# 2. Redistributions in binary form must reproduce the above copyright# notice, this list of conditions and the following disclaimer in the# documentation and/or other materials provided with the distribution.# 3. All advertising materials mentioning features or use of this software# must display the following acknowledgement:# This product includes software developed by the University of# California, Berkeley and its contributors.# 4. Neither the name of the University nor the names of its contributors# may be used to endorse or promote products derived from this software# without specific prior written permission.## THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF# SUCH DAMAGE.## @(#)nodetypes 5.1 (Berkeley) 3/7/91# This file describes the nodes used in parse trees. Unindented lines# contain a node type followed by a structure tag. Subsequent indented# lines specify the fields of the structure. Several node types can share# the same structure, in which case the fields of the structure should be# specified only once.## A field of a structure is described by the name of the field followed# by a type. The currently implemented types are:# nodeptr - a pointer to a node# nodelist - a pointer to a list of nodes# string - a pointer to a nul terminated string# int - an integer# other - any type that can be copied by assignment# temp - a field that doesn't have to be copied when the node is copied# The last two types should be followed by the text of a C declaration for# the field.NSEMI nbinary # two commands separated by a semicolon type int ch1 nodeptr # the first child ch2 nodeptr # the second childNCMD ncmd # a simple command type int backgnd int # set to run command in background args nodeptr # the arguments redirect nodeptr # list of file redirectionsNPIPE npipe # a pipeline type int backgnd int # set to run pipeline in background cmdlist nodelist # the commands in the pipelineNREDIR nredir # redirection (of a compex command) type int n nodeptr # the command redirect nodeptr # list of file redirectionsNBACKGND nredir # run command in backgroundNSUBSHELL nredir # run command in a subshellNAND nbinary # the && operatorNOR nbinary # the || operatorNIF nif # the if statement. Elif clauses are handled type int # using multiple if nodes. test nodeptr # if test ifpart nodeptr # then ifpart elsepart nodeptr # else elsepartNWHILE nbinary # the while statement. First child is the testNUNTIL nbinary # the until statementNFOR nfor # the for statement type int args nodeptr # for var in args body nodeptr # do body; done var string # the for variableNCASE ncase # a case statement type int expr nodeptr # the word to switch on cases nodeptr # the list of cases (NCLIST nodes)NCLIST nclist # a case type int next nodeptr # the next case in list pattern nodeptr # list of patterns for this case body nodeptr # code to execute for this caseNDEFUN narg # define a function. The "next" field contains # the body of the function.NARG narg # represents a word type int next nodeptr # next word in list text string # the text of the word backquote nodelist # list of commands in back quotesNTO nfile # fd> fnameNFROM nfile # fd< fnameNAPPEND nfile # fd>> fname type int next nodeptr # next redirection in list fd int # file descriptor being redirected fname nodeptr # file name, in a NARG node expfname temp char *expfname # actual file nameNTOFD ndup # fd<&dupfdNFROMFD ndup # fd>&dupfd type int next nodeptr # next redirection in list fd int # file descriptor being redirected dupfd int # file descriptor to duplicateNHERE nhere # fd<<\!NXHERE nhere # fd<<! type int next nodeptr # next redirection in list fd int # file descriptor being redirected doc nodeptr # input to command (NARG node)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -