📄 ansify.c
字号:
/* ansify.c Copyright (C) 1997 Free Software Foundation, Inc. Contributed by James Craig Burley.This file is part of GNU Fortran.GNU Fortran is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU Fortran is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Fortran; see the file COPYING. If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA02111-1307, USA. *//* From f/proj.h, which uses #error -- not all C compilers support that, and we want *this* program to be compilable by pretty much any C compiler. */#include "hconfig.j"#include "system.j"#include "assert.j"#if HAVE_STDDEF_H#include <stddef.h>#endiftypedef enum {#if !defined(false) || !defined(true) false = 0, true = 1,#endif#if !defined(FALSE) || !defined(TRUE) FALSE = 0, TRUE = 1,#endif Doggone_Trailing_Comma_Dont_Work = 1 } bool;#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))#define die_unless(c) \ do if (!(c)) \ { \ fprintf (stderr, "%s:%lu: " #c "\n", argv[1], lineno); \ die (); \ } \ while(0)static voiddie (void){ exit (1);}intmain(int argc, char **argv){ int c; static unsigned long lineno = 1; die_unless (argc == 2); printf ("\/* This file is automatically generated from `%s',\n\ which you should modify instead. */\n\# 1 \"%s\"\n\", argv[1], argv[1]); while ((c = getchar ()) != EOF) { switch (c) { default: putchar (c); break; case '\n': ++lineno; putchar (c); break; case '"': putchar (c); for (;;) { c = getchar (); die_unless (c != EOF); switch (c) { case '"': putchar (c); goto next_char; case '\n': putchar ('\\'); putchar ('n'); putchar ('\\'); putchar ('\n'); ++lineno; break; case '\\': putchar (c); c = getchar (); die_unless (c != EOF); putchar (c); if (c == '\n') ++lineno; break; default: putchar (c); break; } } break; case '\'': putchar (c); for (;;) { c = getchar (); die_unless (c != EOF); switch (c) { case '\'': putchar (c); goto next_char; case '\n': putchar ('\\'); putchar ('n'); putchar ('\\'); putchar ('\n'); ++lineno; break; case '\\': putchar (c); c = getchar (); die_unless (c != EOF); putchar (c); if (c == '\n') ++lineno; break; default: putchar (c); break; } } break; case '/': putchar (c); c = getchar (); putchar (c); if (c != '*') break; for (;;) { c = getchar (); die_unless (c != EOF); switch (c) { case '\n': ++lineno; putchar (c); break; case '*': c = getchar (); die_unless (c != EOF); if (c == '/') { putchar ('*'); putchar ('/'); goto next_char; } if (c == '\n') { ++lineno; putchar (c); } break; default: /* Don't bother outputting content of comments. */ break; } } break; } next_char: ; } die_unless (c == EOF); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -