Compare commits
3 commits
3f1ca7ecc1
...
bdc3832fd1
Author | SHA1 | Date | |
---|---|---|---|
|
bdc3832fd1 | ||
|
b72f78839c | ||
|
43568e947f |
4 changed files with 49 additions and 6 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
*.o
|
||||||
|
*.d
|
18
lab1/Justfile
Normal file
18
lab1/Justfile
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
all: a1 a2 a3 a4
|
||||||
|
|
||||||
|
a1:
|
||||||
|
g++ -o hello hello.cc
|
||||||
|
./hello
|
||||||
|
a2:
|
||||||
|
g++ -std=c++11 -o separate_main separate_main.cc separate_fn.cc
|
||||||
|
|
||||||
|
a3:
|
||||||
|
g++ -std=c++11 -c separate_main.cc
|
||||||
|
g++ -std=c++11 -c separate_fn.cc
|
||||||
|
g++ -std=c++11 -o separate_main separate_main.o separate_fn.o
|
||||||
|
|
||||||
|
a4:
|
||||||
|
g++ -std=c++11 -o separate_main separate_main.cc
|
||||||
|
|
||||||
|
a5:
|
||||||
|
g++ -c -O2 -Wall -Wextra -pedantic-errors -Wold-style-cast -std=c++11 hello.cc
|
|
@ -6,11 +6,29 @@ using std::string;
|
||||||
|
|
||||||
using size_type = Editor::size_type;
|
using size_type = Editor::size_type;
|
||||||
|
|
||||||
size_type Editor::get_size() const
|
size_type Editor::get_size() const { return text.size(); }
|
||||||
{
|
|
||||||
return text.size();
|
Editor::size_type Editor::find_left_par(size_type pos) const {
|
||||||
|
char right_par = text[pos];
|
||||||
|
char left_par;
|
||||||
|
|
||||||
|
// Determine the matching left parenthesis for the given right parenthesis
|
||||||
|
switch (right_par) {
|
||||||
|
case ')': left_par = '('; break;
|
||||||
|
case ']': left_par = '['; break;
|
||||||
|
case '}': left_par = '{'; break;
|
||||||
|
default: return string::npos; // Not a valid right parenthesis
|
||||||
}
|
}
|
||||||
|
|
||||||
size_type Editor::find_left_par(size_type pos) const {
|
int balance = 1; // Start with the right parenthesis at text[pos]
|
||||||
return string::npos;
|
for (size_type i = pos; i-- > 0;) {
|
||||||
|
if (text[i] == left_par) {
|
||||||
|
balance--;
|
||||||
|
if (balance == 0) return i; // Found the matching left parenthesis
|
||||||
|
} else if (text[i] == right_par) {
|
||||||
|
balance++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return string::npos; // No matching left parenthesis found
|
||||||
}
|
}
|
||||||
|
|
5
lab1/hello.cc
Normal file
5
lab1/hello.cc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
std::cout << "Hello" << std::endl;
|
||||||
|
}
|
Loading…
Reference in a new issue