⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cshpar.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group$Id: cshpar.c,v 1.3 2005/05/30 20:28:44 sjborley Exp $**********//* * The main entry point for cshpar. */#include "ngspice.h"#include "cpdefs.h"#include <signal.h>#include "cshpar.h"#ifdef HAVE_SGTTY_H#include <sgtty.h>#else#ifdef HAVE_TERMIO_H#include <termio.h>#else#ifdef HAVE_TERMIOS_H#include <termios.h>#endif#endif#endif#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#ifdef HAVE_PWD_H#include <pwd.h>#endif#ifdef HAVE_SYS_WAIT_H#include <sys/wait.h>#endif/* Things go as follows: * (1) Read the line and do some initial quoting (by setting the 8th bit), *  and command ignoring. Also deal with command completion. * (2) Do history substitutions. (!, ^) * (3) Do alias substitution. *  * In front.c these things get done: * (4) Do variable substitution. ($varname) * (5) Do backquote substitution. (``) * (6) Do globbing. (*, ?, [], {}, ~) * (7) Do io redirection. *//* static functions */static void pwlist(wordlist *wlist, char *name);wordlist *cp_parse(char *string){    wordlist *wlist;    wlist = cp_lexer(string);    if (!string)        cp_event++;    if (!wlist || !wlist->wl_word)        return (wlist);    pwlist(wlist, "Initial parse");    wlist = cp_histsubst(wlist);    if (!wlist || !wlist->wl_word)        return (wlist);    pwlist(wlist, "After history substitution");    if (cp_didhsubst) {        wl_print(wlist, stdout);        putc('\n', stdout);    }    /* Add the word list to the history. */    /* MW. If string==NULL we do not have to do this, and then play     * with cp_lastone is not needed, but watch out cp_doalias */    if ((*wlist->wl_word) && !(string))        cp_addhistent(cp_event - 1, wlist);    wlist = cp_doalias(wlist);    pwlist(wlist, "After alias substitution");    pwlist(wlist, "Returning ");    return (wlist);}static voidpwlist(wordlist *wlist, char *name){    wordlist *wl;    if (!cp_debug)        return;    fprintf(cp_err, "%s : [ ", name);    for (wl = wlist; wl; wl = wl->wl_next)        fprintf(cp_err, "%s ", wl->wl_word);    fprintf(cp_err, "]\n");    return;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -