1 // This file is part of e93.
2 //
3 // e93 is free software; you can redistribute it and/or modify
4 // it under the terms of the e93 LICENSE AGREEMENT.
5 //
6 // e93 is distributed in the hope that it will be useful,
7 // but WITHOUT ANY WARRANTY; without even the implied warranty of
8 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 // e93 LICENSE AGREEMENT for more details.
10 //
11 // You should have received a copy of the e93 LICENSE AGREEMENT
12 // along with e93; see the file "LICENSE.TXT".
13 
14 typedef struct expressionPiece EXPRESSION_PIECE;
15 typedef struct expressionPieceList EXPRESSION_PIECE_LIST;
16 typedef struct syntaxExpression SYNTAX_EXPRESSION;
17 typedef struct syntaxStyleMapping SYNTAX_STYLE_MAPPING;
18 typedef struct syntaxStyleMappingList SYNTAX_STYLE_MAPPING_LIST;
19 typedef struct syntaxMap SYNTAX_MAP;
20 
21 bool UpdateSyntaxInformation(EDITOR_BUFFER *buffer,UINT32 startOffset,UINT32 endOffset,UINT32 numBytes);
22 bool RegenerateAllSyntaxInformation(EDITOR_BUFFER *buffer);
23 SYNTAX_MAP *GetInstanceParentMap(SYNTAX_INSTANCE *instance);
24 void CloseSyntaxInstance(SYNTAX_INSTANCE *instance);
25 SYNTAX_INSTANCE *OpenSyntaxInstance(SYNTAX_MAP *map,EDITOR_BUFFER *buffer);
26 void RemoveMappingList(SYNTAX_STYLE_MAPPING_LIST *list);
27 SYNTAX_STYLE_MAPPING_LIST *AddMappingListElement(SYNTAX_STYLE_MAPPING_LIST **listHead,SYNTAX_STYLE_MAPPING *mapping);
28 SYNTAX_STYLE_MAPPING_LIST *AddBetweenListElementToMapping(SYNTAX_STYLE_MAPPING *mapping,SYNTAX_STYLE_MAPPING *betweenMapping);
29 SYNTAX_STYLE_MAPPING_LIST *AddRootListElementToMap(SYNTAX_MAP *map,SYNTAX_STYLE_MAPPING *rootMapping);
30 SYNTAX_STYLE_MAPPING *LocateSyntaxStyleMapping(SYNTAX_MAP *map,const char *name);
31 void SetMappingStartExpressionPiece(SYNTAX_STYLE_MAPPING *mapping,EXPRESSION_PIECE *startExpressionPiece);
32 void RemoveExpressionList(EXPRESSION_PIECE_LIST *list);
33 EXPRESSION_PIECE_LIST *AddMappingEndExpressionPiece(SYNTAX_STYLE_MAPPING *mapping,EXPRESSION_PIECE *endExpressionPiece);
34 void SetMappingStyles(SYNTAX_STYLE_MAPPING *mapping,UINT32 startStyle,UINT32 betweenStyle,UINT32 endStyle);
35 void RemoveMappingFromSyntaxMap(SYNTAX_MAP *map,SYNTAX_STYLE_MAPPING *mapping);
36 SYNTAX_STYLE_MAPPING *AddMappingToSyntaxMap(SYNTAX_MAP *map,const char *mappingName);
37 EXPRESSION_PIECE *LocateExpressionPiece(SYNTAX_EXPRESSION *expression,bool useRegisterMatch,UINT32 registerIndex);
38 void RemovePieceFromExpression(SYNTAX_EXPRESSION *expression,EXPRESSION_PIECE *piece);
39 EXPRESSION_PIECE *AddPieceToExpression(SYNTAX_EXPRESSION *expression,bool useRegisterMatch,UINT32 registerIndex);
40 SYNTAX_EXPRESSION *LocateSyntaxMapExpression(SYNTAX_MAP *map,const char *name);
41 void RemoveExpressionFromSyntaxMap(SYNTAX_MAP *map,SYNTAX_EXPRESSION *expression);
42 SYNTAX_EXPRESSION *AddExpressionToSyntaxMap(SYNTAX_MAP *map,const char *expressionName,const char *expressionText);
43 char *GetSyntaxMapName(SYNTAX_MAP *map);
44 SYNTAX_MAP *LocateNextSyntaxMap(SYNTAX_MAP *map);
45 SYNTAX_MAP *LocateSyntaxMap(char *name);
46 void UnlinkSyntaxMap(SYNTAX_MAP *map);
47 bool LinkSyntaxMap(SYNTAX_MAP *map);
48 void CloseSyntaxMap(SYNTAX_MAP *map);
49 SYNTAX_MAP *OpenSyntaxMap(char *name);
50 EDITOR_BUFFER *LocateNextEditorBufferOnMap(SYNTAX_MAP *map,EDITOR_BUFFER *buffer);
51 SYNTAX_MAP *GetAssignedSyntaxMap(EDITOR_BUFFER *buffer);
52 bool AssignSyntaxMap(EDITOR_BUFFER *buffer,SYNTAX_MAP *map);
53 void UnInitSyntaxMaps();
54 bool InitSyntaxMaps();
55