/
CodeParser.cs
58 lines (50 loc) · 1.33 KB
/
CodeParser.cs
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// NppSharp - C#/.NET Scripting Plugin for Notepad++
// Copyright (C) 2012 Chris Mrazek
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System;
using System.Collections.Generic;
using System.Text;
namespace NppSharp
{
internal class CodeParser
{
private string _code;
private int _pos;
private int _len;
private StringBuilder _sb = new StringBuilder();
public CodeParser(string code)
{
_code = code;
_pos = 0;
_len = _code.Length;
}
public string ReadLine()
{
_sb.Remove(0, _sb.Length);
char ch;
while (_pos < _len)
{
ch = _code[_pos++];
if (ch == '\n') break;
if (ch != '\r') _sb.Append(ch);
}
return _sb.ToString();
}
public bool EndOfFile
{
get { return _pos >= _len; }
}
}
}