Skip to content

Commit

Permalink
[#137] Parser에서 Tokenizer 호출 분리
Browse files Browse the repository at this point in the history
  • Loading branch information
myyrakle committed Jul 26, 2024
1 parent d171916 commit eab3e11
Show file tree
Hide file tree
Showing 15 changed files with 98 additions and 83 deletions.
10 changes: 9 additions & 1 deletion src/parser/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,15 @@ pub struct Parser {

impl Parser {
// 파서 객체 생성
pub fn new(text: String) -> Result<Self, RRDBError> {
pub fn new(tokens: Vec<Token>) -> Self {
Self {
current_token: Token::EOF,
tokens: VecDeque::from(tokens),
}
}

// deorecated
pub fn with_string(text: String) -> Result<Self, RRDBError> {
Ok(Self {
current_token: Token::EOF,
tokens: VecDeque::from(Tokenizer::string_to_tokens(text)?),
Expand Down
4 changes: 2 additions & 2 deletions src/parser/test/alter_database.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pub fn alter_database_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterDatabaseQuery::builder()
.set_name("foo".to_owned())
Expand All @@ -34,7 +34,7 @@ pub fn alter_database_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterDatabaseQuery::builder()
.set_name("foo".to_owned())
Expand Down
26 changes: 13 additions & 13 deletions src/parser/test/alter_table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ pub fn alter_table_rename_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand All @@ -42,7 +42,7 @@ pub fn alter_table_add_column_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -73,7 +73,7 @@ pub fn alter_table_add_column_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -104,7 +104,7 @@ pub fn alter_table_rename_column_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -133,7 +133,7 @@ pub fn alter_table_rename_column_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -162,7 +162,7 @@ pub fn alter_table_alter_column_drop_not_null_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -191,7 +191,7 @@ pub fn alter_table_alter_column_set_not_null_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -220,7 +220,7 @@ pub fn alter_table_alter_column_set_type_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -252,7 +252,7 @@ pub fn alter_table_alter_column_set_type_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -284,7 +284,7 @@ pub fn alter_table_alter_column_set_default_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -316,7 +316,7 @@ pub fn alter_table_alter_column_drop_default_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -345,7 +345,7 @@ pub fn alter_table_drop_column_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down Expand Up @@ -373,7 +373,7 @@ pub fn alter_table_drop_column_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = AlterTableQuery::builder()
.set_table(TableName {
Expand Down
4 changes: 2 additions & 2 deletions src/parser/test/create_database.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pub fn create_database_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = CreateDatabaseQuery::builder()
.set_name("test_db".to_owned())
Expand All @@ -30,7 +30,7 @@ pub fn create_database_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = CreateDatabaseQuery::builder()
.set_name("test_db".to_owned())
Expand Down
2 changes: 1 addition & 1 deletion src/parser/test/create_table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ pub fn create_table() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = CreateTableQuery::builder()
.set_table(TableName::new(
Expand Down
2 changes: 1 addition & 1 deletion src/parser/test/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ pub fn test_delete_query() {
];

for t in test_cases {
let mut parser = Parser::new(t.input).unwrap();
let mut parser = Parser::with_string(t.input).unwrap();

let got = parser.parse(ParserContext::default());

Expand Down
2 changes: 1 addition & 1 deletion src/parser/test/drop_database.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pub fn drop_database() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = DropDatabaseQuery::builder()
.set_name("test_db".to_owned())
Expand Down
2 changes: 1 addition & 1 deletion src/parser/test/drop_table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pub fn drop_table() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = DropTableQuery::builder()
.set_table(TableName::new(Some("foo_db".to_owned()), "foo".to_owned()))
Expand Down
36 changes: 18 additions & 18 deletions src/parser/test/expressions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ pub fn unary_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -51,7 +51,7 @@ pub fn unary_expression_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -81,7 +81,7 @@ pub fn arithmetic_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -112,7 +112,7 @@ pub fn arithmetic_expression_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -148,7 +148,7 @@ pub fn arithmetic_expression_3() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -184,7 +184,7 @@ pub fn arithmetic_expression_4() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -225,7 +225,7 @@ pub fn arithmetic_expression_5() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -263,7 +263,7 @@ pub fn arithmetic_expression_6() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -298,7 +298,7 @@ pub fn function_call_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -332,7 +332,7 @@ pub fn function_call_expression_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -362,7 +362,7 @@ pub fn between_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -393,7 +393,7 @@ pub fn between_expression_2() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -429,7 +429,7 @@ pub fn between_expression_3() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -465,7 +465,7 @@ pub fn not_between_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -496,7 +496,7 @@ pub fn list_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -529,7 +529,7 @@ pub fn in_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -567,7 +567,7 @@ pub fn not_in_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down Expand Up @@ -605,7 +605,7 @@ pub fn complex_expression_1() {
"#
.to_owned();

let mut parser = Parser::new(text).unwrap();
let mut parser = Parser::with_string(text).unwrap();

let expected = SelectQuery::builder()
.add_select_item(
Expand Down
Loading

0 comments on commit eab3e11

Please sign in to comment.