]> git.saurik.com Git - apple/security.git/blame - libsecurity_codesigning/antlr2/src/CharScanner.cpp
Security-55471.14.18.tar.gz
[apple/security.git] / libsecurity_codesigning / antlr2 / src / CharScanner.cpp
CommitLineData
427c49bc
A
1/* ANTLR Translator Generator
2 * Project led by Terence Parr at http://www.jGuru.com
3 * Software rights: http://www.antlr.org/license.html
4 *
5 * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/src/CharScanner.cpp#2 $
6 */
7
8#include <stdio.h>
9#include <string>
10
11#include "antlr/CharScanner.hpp"
12#include "antlr/CommonToken.hpp"
13
14#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
15namespace antlr {
16#endif
17ANTLR_C_USING(exit)
18
19CharScanner::CharScanner(InputBuffer& cb, bool case_sensitive )
20 : saveConsumedInput(true) //, caseSensitiveLiterals(true)
21 , caseSensitive(case_sensitive)
22 , literals(CharScannerLiteralsLess(this))
23 , inputState(new LexerInputState(cb))
24 , commitToPath(false)
25 , tabsize(8)
26 , traceDepth(0)
27{
28 setTokenObjectFactory(&CommonToken::factory);
29}
30
31CharScanner::CharScanner(InputBuffer* cb, bool case_sensitive )
32 : saveConsumedInput(true) //, caseSensitiveLiterals(true)
33 , caseSensitive(case_sensitive)
34 , literals(CharScannerLiteralsLess(this))
35 , inputState(new LexerInputState(cb))
36 , commitToPath(false)
37 , tabsize(8)
38 , traceDepth(0)
39{
40 setTokenObjectFactory(&CommonToken::factory);
41}
42
43CharScanner::CharScanner( const LexerSharedInputState& state, bool case_sensitive )
44 : saveConsumedInput(true) //, caseSensitiveLiterals(true)
45 , caseSensitive(case_sensitive)
46 , literals(CharScannerLiteralsLess(this))
47 , inputState(state)
48 , commitToPath(false)
49 , tabsize(8)
50 , traceDepth(0)
51{
52 setTokenObjectFactory(&CommonToken::factory);
53}
54
55/** Report exception errors caught in nextToken() */
56void CharScanner::reportError(const RecognitionException& ex)
57{
58 fprintf(stderr, "%s", (ex.toString() + "\n").c_str());
59}
60
61/** Parser error-reporting function can be overridden in subclass */
62void CharScanner::reportError(const ANTLR_USE_NAMESPACE(std)string& s)
63{
64 if ( getFilename()=="" )
65 fprintf(stderr, "%s", ("error: " + s + "\n").c_str());
66 else
67 fprintf(stderr, "%s", (getFilename() + ": error: " + s + "\n").c_str());
68}
69
70/** Parser warning-reporting function can be overridden in subclass */
71void CharScanner::reportWarning(const ANTLR_USE_NAMESPACE(std)string& s)
72{
73 if ( getFilename()=="" )
74 fprintf(stderr, "%s", ("warning: " + s + "\n").c_str());
75 else
76 fprintf(stderr, "%s", (getFilename() + ": warning: " + s + "\n").c_str());
77}
78
79void CharScanner::traceIndent()
80{
81 for( int i = 0; i < traceDepth; i++ )
82 printf(" ");
83}
84
85void CharScanner::traceIn(const char* rname)
86{
87 traceDepth++;
88 traceIndent();
89 printf("> lexer %s; c==%d\n", rname, LA(1));
90}
91
92void CharScanner::traceOut(const char* rname)
93{
94 traceIndent();
95 printf("< lexer %s; c==%d\n", rname, LA(1));
96 traceDepth--;
97}
98
99#ifndef NO_STATIC_CONSTS
100const int CharScanner::NO_CHAR;
101const int CharScanner::EOF_CHAR;
102#endif
103
104#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
105}
106#endif
107