Enumeration #SYNTAX_Text #SYNTAX_Keyword #SYNTAX_Comment #SYNTAX_Constant #SYNTAX_String #SYNTAX_Function #SYNTAX_Asm #SYNTAX_Operator #SYNTAX_Structure #SYNTAX_Number #SYNTAX_Pointer #SYNTAX_Separator #SYNTAX_Label EndEnumeration Enumeration #File EndEnumeration Prototype SyntaxHighlightCallback(*Position, Length.i, Color.i) Import "SyntaxHilighting.lib" SyntaxHighlight(*Buffer, Length.i, Callback.SyntaxHighlightCallback, ASM.i) EndImport Enumeration #FillMode_None #FillMode_GetName #FillMode_FirstField #FillMode_NextField EndEnumeration Procedure Callback(*Position, Length.i, Color.i) Protected String.s Static FillMode.i, Name.s, Index.i, Input.s Debug Str(Color)+" | "+PeekS(*Position, Length) String = PeekS(*Position, Length) Select Color Case #SYNTAX_Text If Trim(String) = "FillArray" FillMode = #FillMode_GetName ElseIf Trim(String) = "EndFillArray"+#CRLF$ FillMode = #FillMode_None WriteString(#File, #CRLF$) Index = 0 ElseIf FillMode <> #FillMode_FirstField WriteData(#File, *Position, Length) EndIf Case #SYNTAX_Function If FillMode = #FillMode_GetName Name = String FillMode = #FillMode_FirstField ElseIf FillMode <> #FillMode_FirstField WriteData(#File, *Position, Length) EndIf Case #SYNTAX_Number If (FillMode = #FillMode_NextField Or FillMode = #FillMode_FirstField) And String = #CRLF$ Input = ":" + Name + "(" + Str(Index) + ") = " WriteString(#File, Input) FillMode = #FillMode_NextField Index + 1 ElseIf FillMode <> #FillMode_FirstField WriteData(#File, *Position, Length) EndIf Case #SYNTAX_Separator If (FillMode = #FillMode_NextField Or FillMode = #FillMode_FirstField) And String = ":" Input = ":" + Name + "(" + Str(Index) + ") = " WriteString(#File, Input) FillMode = #FillMode_NextField Index + 1 ElseIf FillMode <> #FillMode_FirstField WriteData(#File, *Position, Length) EndIf Default If FillMode <> #FillMode_FirstField WriteData(#File, *Position, Length) EndIf EndSelect EndProcedure Define FileName.s = ProgramParameter(0) If Not FileName End EndIf If ReadFile(#File, FileName) Length = Lof(#File) *Buffer = AllocateMemory(Length) ReadData(#File, *Buffer, Length) CloseFile(#File) EndIf If CreateFile(#File, FileName) SyntaxHighlight(*Buffer, Length, @Callback(), 0) CloseFile(#File) EndIf ; IDE Options = PureBasic 4.60 Beta 3 (Windows - x86) ; CursorPosition = 45 ; Folding = - ; EnableXP ; Executable = EasyFill.Tool.exe ; CommandLine = "Example.pbi"