diff options
Diffstat (limited to 'gnu/usr.bin/groff/troff/token.h')
-rw-r--r-- | gnu/usr.bin/groff/troff/token.h | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/gnu/usr.bin/groff/troff/token.h b/gnu/usr.bin/groff/troff/token.h deleted file mode 100644 index 2c160e5..0000000 --- a/gnu/usr.bin/groff/troff/token.h +++ /dev/null @@ -1,194 +0,0 @@ -// -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. - Written by James Clark (jjc@jclark.com) - -This file is part of groff. - -groff is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. - -groff is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with groff; see the file COPYING. If not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -struct charinfo; -struct node; -struct vunits; - -class token { - symbol nm; - node *nd; - unsigned char c; - int val; - units dim; - enum token_type { - TOKEN_BACKSPACE, - TOKEN_BEGIN_TRAP, - TOKEN_CHAR, // a normal printing character - TOKEN_DUMMY, - TOKEN_EMPTY, // this is the initial value - TOKEN_END_TRAP, - TOKEN_ESCAPE, // \e - TOKEN_HYPHEN_INDICATOR, - TOKEN_INTERRUPT, // \c - TOKEN_ITALIC_CORRECTION, // \/ - TOKEN_LEADER, // ^A - TOKEN_LEFT_BRACE, - TOKEN_MARK_INPUT, // \k -- `nm' is the name of the register - TOKEN_NEWLINE, // newline - TOKEN_NODE, - TOKEN_NUMBERED_CHAR, - TOKEN_PAGE_EJECTOR, - TOKEN_REQUEST, - TOKEN_RIGHT_BRACE, - TOKEN_SPACE, // ` ' -- ordinary space - TOKEN_SPECIAL, // a special character -- \' \` \- \(xx - TOKEN_SPREAD, // \p -- break and spread output line - TOKEN_TAB, // tab - TOKEN_TRANSPARENT, // \! - TOKEN_EOF // end of file - } type; -public: - token(); - ~token(); - token(const token &); - void operator=(const token &); - void next(); - void process(); - void skip(); - int eof(); - int nspaces(); // 1 if space, 2 if double space, 0 otherwise - int space(); // is it a space or double space? - int white_space(); // is the current token space or tab? - int newline(); // is the current token a newline? - int tab(); // is the current token a tab? - int leader(); - int backspace(); - int delimiter(int warn = 0); // is it suitable for use as a delimiter? - int dummy(); - int transparent(); - int left_brace(); - int right_brace(); - int page_ejector(); - int hyphen_indicator(); - int operator==(const token &); // need this for delimiters, and for conditions - int operator!=(const token &); // ditto - unsigned char ch(); - charinfo *get_char(int required = 0); - int add_to_node_list(node **); - int title(); - void make_space(); - void make_newline(); - const char *description(); - - friend void process_input_stack(); -}; - -extern token tok; // the current token - -extern symbol get_name(int required = 0); -extern symbol get_long_name(int required = 0); -extern charinfo *get_optional_char(); -extern void skip_line(); -extern void handle_initial_title(); - -struct hunits; -extern void read_title_parts(node **part, hunits *part_width); - -extern int get_number(units *result, unsigned char si); -extern int get_integer(int *result); - -extern int get_number(units *result, unsigned char si, units prev_value); -extern int get_integer(int *result, int prev_value); - -void interpolate_number_reg(symbol, int); - -const char *asciify(int c); - -inline int token::newline() -{ - return type == TOKEN_NEWLINE; -} - -inline int token::space() -{ - return type == TOKEN_SPACE; -} - -inline int token::nspaces() -{ - if (type == TOKEN_SPACE) - return 1; - else - return 0; -} - -inline int token::white_space() -{ - return type == TOKEN_SPACE || type == TOKEN_TAB; -} - -inline int token::transparent() -{ - return type == TOKEN_TRANSPARENT; -} - -inline int token::page_ejector() -{ - return type == TOKEN_PAGE_EJECTOR; -} - -inline unsigned char token::ch() -{ - return type == TOKEN_CHAR ? c : 0; -} - -inline int token::eof() -{ - return type == TOKEN_EOF; -} - -inline int token::dummy() -{ - return type == TOKEN_DUMMY; -} - -inline int token::left_brace() -{ - return type == TOKEN_LEFT_BRACE; -} - -inline int token::right_brace() -{ - return type == TOKEN_RIGHT_BRACE; -} - -inline int token::tab() -{ - return type == TOKEN_TAB; -} - -inline int token::leader() -{ - return type == TOKEN_LEADER; -} - -inline int token::backspace() -{ - return type == TOKEN_BACKSPACE; -} - -inline int token::hyphen_indicator() -{ - return type == TOKEN_HYPHEN_INDICATOR; -} - -int has_arg(); |