Personal tools
You are here: Home Projects C++ Cfront releases Release 3.0.3 source libSC fs fsippsrc fsipp.c
Document Actions

fsipp.c

by Michael L Powell last modified 2007-01-26 03:23

Click here to get the file

Size 1.7 kB - File type text/plain

File contents

/*ident	"@(#)fs:fsippsrc/fsipp.c	3.1" */
/******************************************************************************
*
* C++ Standard Components, Release 3.0.
*
* Copyright (c) 1991, 1992 AT&T and Unix System Laboratories, Inc.
* Copyright (c) 1988, 1989, 1990 AT&T.  All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T and Unix System
* Laboratories, Inc.  The copyright notice above does not evidence
* any actual or intended publication of such source code.
*
******************************************************************************/

#include "fsipp.h"

CXXLexer *lexer;
bool_type alternateLineDirectiveFormat = 0;

static bool_type verbose = 0;

static void getopts(int argc, char *argv[])
{
	extern char *optarg;
	extern int opterr;
	bool_type errflg = no;
	opterr = 0;
	int c;
	while ((c=getopt(argc, argv, "Lv")) != EOF)
	{
		switch (c)
		{
//			case 'f':
//				filename = optarg;
//				break;	
			case 'v':
				verbose = 1;
				break;
			case 'L':
				alternateLineDirectiveFormat = 1;
				break;
			case '?':
				errflg++;
				break;
		}
	}
	if (errflg)
	{
		cerr << "usage: fsipp [-vL] file ...\n";
		exit(2);
	}
}



int const bufsize=2048;
char buf[bufsize];

main(int argc, char *argv[])
{
	extern int optind;
	extern char *optarg;

	getopts(argc, argv);
	lexer = new CXXLexer;
	lexer->verbose(verbose);

	int nErrors = 0;
	if (optind == argc)
	{
		lexer->attach(cin);
		nErrors += parse();
	}
	else 
	{
		for (; optind < argc; optind++) 
		{
			ifstream in(argv[optind], ios::nocreate);
			if (in)
			{
				in.setbuf(buf, bufsize);
				lexer->attach(in, argv[optind]);
				nErrors += parse();
			}
			else 
			{
				cerr << "freestore: can't open " << argv[optind] << endl;
			}
		}			
	}
	exit(nErrors);
}





« April 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: