source: dev/trunk/jenga/include/smoothie/LexicalAnalysis.h@ 394

Last change on this file since 394 was 394, checked in by dai_9181, 16 years ago
File size: 1.6 KB
Line 
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include <windows.h>
7
8#include <jenga/include/common/String.h>
9
10typedef std::vector<int> Subscripts;
11
12enum ReferenceKind
13{
14 RefNon = 0, // no reference member
15 RefDot, // obj.member
16 RefPointer, // obj->member
17};
18
19bool IsVariableTopChar(char c);
20bool IsVariableChar( char c, bool isGenericsChars = false );
21bool IsBlank(char c);
22int GetOneParameter(const char *Parameter,int pos,char *retAns);
23int JumpOneParameter(char *Parameter,int i);
24int GetStringInQuotation(char *buffer,char *ReadBuffer);
25int GetStringInPare(char *buffer,const char *ReadBuffer);
26int GetStringInBracket(char *buffer,const char *ReadBuffer);
27int GetStringInGenericBracket(char *buffer,const char *ReadBuffer);
28int JumpStringInPare(const char *buffer,int pos);
29int JumpStringInBracket(const char *buffer,int pos);
30bool IsCommandDelimitation( char c );
31int GetStringInPare_RemovePare(char *buffer,const char *ReadBuffer);
32void GetArrange(char *variable,char *variAnswer, Subscripts &subscripts );
33void SplitParameter( const std::string &src, Jenga::Common::Strings &dests, bool isClear = true );
34bool SplitMemberName( const char *desc, char *object, char *member, ReferenceKind &refType );
35bool SplitMemberName( const char *desc, char *object, char *member );
36void SplitSyntacticForAs( const char *src, char *varName, char *typeName);
37void GetCalcName(int idCalc,char *name);
38BYTE ToCalcId( const char *name );
39std::string Operator_NaturalStringToCalcMarkString( const std::string &name );
40std::string Operator_CalcMarkStringToNaturalString( const std::string &name );
41bool IsGenericTypeSourcePart( const char *buffer );
Note: See TracBrowser for help on using the repository browser.