wnptok(3)
NAME
- wn_parse_recursive_comment, wn_parse_literal,
- wn_parse_literal_id, wn_copy_between_marks_to_string,
- wn_parse_literal_general_id, wn_between_marks_equal_string,
- wn_parse_id, wn_write_between_marks, wn_parse_numeric_id,
- wn_parse_general_id, wn_parse_int, wn_parse_double,
- wn_parse_quoted_string, wn_parse_empty, wn_parse_eos,
- wn_parse_char, wn_parse_literal_char, wn_parse_char_of_type,
- wn_parse_blanks, wn_parse_blanks_with_std_comments,
- wn_parse_blanks_with_comments, wn_parse_standard_comment,
- wn_parse_simple_comment - parse stuff
SYNOPSIS
#include <wn/wncstr.h> bool wn_parse_empty(stream) wn_cstream stream; bool wn_parse_eos(stream) wn_cstream stream; bool wn_parse_char(stream,&c) wn_cstream stream; char c; bool wn_parse_literal_char(stream,c) wn_cstream stream; char c; bool wn_parse_char_of_type(stream,&c,char_type) wn_cstream stream; char c,char_type[256]; bool wn_parse_blanks(stream,num) wn_cstream stream; int num; bool wn_parse_blanks_with_std_comments(stream,num) wn_cstream stream; int num; bool wn_parse_blanks_with_comments(stream,pparse_comment,num) wn_cstream stream; bool (*pparse_comment)(/*stream*/); int num; bool wn_parse_standard_comment(stream) wn_cstream stream; bool wn_parse_simple_comment(stream,start_comment,fin_comment) wn_cstream stream; char start_comment[],fin_comment[]; bool wn_parse_recursive_comment(stream,start_comment,fin_comment) wn_cstream stream; char start_comment[],fin_comment[]; bool wn_parse_literal(stream,literal) wn_cstream stream; char literal[]; bool wn_parse_literal_id(stream,id) wn_cstream stream; char id[]; bool wn_parse_literal_general_id(stream,begin_id_char_type, id_char_type,id) wn_cstream stream; char begin_id_char_type[256],id_char_type[256]; char id[]; bool wn_parse_id(stream,&id) wn_cstream stream; char id[]; bool wn_parse_numeric_id(stream,&id) wn_cstream stream; char id[]; bool wn_parse_general_id(stream,begin_id_char_type,id_char_type,&id) wn_cstream stream; char begin_id_char_type[256],id_char_type[256]; char id[]; bool wn_parse_int(stream,&i) wn_cstream stream; int i; bool wn_parse_double(stream,&f) wn_cstream stream; double f; bool wn_parse_quoted_string(stream,start_char,&string,fin_char) wn_cstream stream; char start_char,fin_char; char string[]; wn_copy_between_marks_to_string(string,stream,start_mark,fin_mark) char string[]; wn_cstream stream; int start_mark,fin_mark; bool wn_between_marks_equal_string(string,stream,start_mark,fin_mark) char string[]; wn_cstream stream; int start_mark,fin_mark; wn_write_between_marks(out_stream,stream,start_mark,fin_mark) wn_cstream out_stream,stream; int start_mark,fin_mark;
DESCRIPTION
- These routines parse for the indicated object. If the
- parse is successful, the current mark is placed after the object
- and TRUE is returned. Otherwise, FALSE is returned and the cur
- rent mark is unaltered.
- wn_parse_empty parses the empty string. It always suc
- ceeds.
- wn_parse_eos returns TRUE if the current mark is at end of
- stream. It returns FALSE otherwise.
- wn_parse_char parses a char from stream. This char is
- placed in c. It succeeds unless current mark is at end of
- stream.
- wn_parse_literal_char attempts to parse Ic as the next
- char in stream.
- wn_parse_char_of_type attempts to parse the next char in
- stream as a char of a class defined by char_type. If
- wn_parse_char_of_type finds a char and char_type[c] == TRUE it
- succeeds; otherwise it fails.
- wn_parse_blanks attempts to parse num or more blanks.
- wn_parse_blanks_with_std_comments attempts to parse blanks
- mixed with comments. num or more chars must be parsed for
- success. wn_parse_standard__comment is the subroutine used to
- parse the comments.
- wn_parse_blanks_with_comments attempts to parse blanks
- mixed with comments. num or more chars must be parsed for
- success. *pparse_comment is a subroutine to parse the comments,
- usually set to wn_parse_standard_comment.
- wn_parse_standard_comment attempts to parse a comment
- delimited by /* and */ . Such comments may be nested.
- wn_parse_simple_comment attempts to parse a comment
- delimited by the strings in start_comment and fin_comment.
Nested comments are not permitted.
- wn_parse_recursive_comment attempts to parse a comment
- delimited by the strings in start_comment and fin_comment.
Nested comments are permitted.
wn_parse_literal attempts to parse the string in literal.
- wn_parse_literal_id attempts to parse an identifier of the
- style parsed by wn_parse_id. It succeeds iff it parses an
- identifier AND this identifier matches id.
- wn_parse_literal_general_id attempts to parse an
- identifier of the style parsed by wn_parse_general_id. It
- succeeds iff it parses an identifier AND this identifier matches
- id.
- wn_parse_id attempts to parse an identifier. If
- successful, the result is placed in id. The identifier must
- begin with a letter or underscore character ('_'). Its body
- consists of letters, numbers, or underscores. No limit is placed
- on its length. Memory for id is allocated from the current
- memory group.
- wn_parse_numeric_id attempts to parse an identifier. If
- successful, the result is placed in id. Its beginning and body
- consists of letters, numbers, or underscores. No limit is placed
- on its length. Memory for id is allocated from the current
- memory group.
- wn_parse_general_id attempts to parse an identifier. If
- successful, the result is placed in id. The identifier must
- begin with a character from the class begin_id_char_type. Its
- body consists of characters from the class id_char_type. A
- character c belongs to a class iff class[c] == TRUE. No limit is
- placed on the indentifier's length. Memory for id is allocated
- from the current memory group.
- wn_parse_int attempts to parse a signed integer. If
- successful, the integer is placed in i.
- wn_parse_double attempts to parse a signed
- double-precision floating point number. If successful, the
- number is placed in f.
- wn_parse_quoted_string attempts to parse a quoted string.
If successful, the result is placed in string. Memory for string
- is allocated from the current memory group. The beginning of the
quoted string is delimited by the character start_char, the end
by the character fin_char.
wn_copy_between_marks_to_string copies characters of - stream between start_mark (inclusive) and fin_mark (exclusive)
- into string. string must be of length fin_mark-start_mark+1 (1
- for the ' ' terminator). Memory for string must be allocated by
- the caller.
- wn_between_marks_equal_string tests whether characters of
- stream between start_mark (inclusive) and fin_mark (exclusive)
- match those in string.
- wn_write_between_marks writes characters of stream between
- start_mark (inclusive) and fin_mark (exclusive) into the
- out_stream.
SEE ALSO
wnwtok, wnscan, wncstr
AUTHOR
- Will Naylor
- WNLIB August 23, 1998