111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
auto valId = AppendToVectorTerm( m_context.identity(), t.first );
switch( m_context.env()->retrieveValue( valId, m_context.identity(), result ) )
{
case sema::Env::Status::NoMatch:
return t;
case sema::Env::Status::AmbiguousMatch:
DiagnosticsManager::GetInstance().emitErrorMessage(
t.second, "ambiguous match for symbol." );
return t;
}
return TermLoc( result, t.second );
}
|
|
|
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
auto valId = AppendToVectorTerm( m_context.identity(), t.first );
switch( m_context.env()->retrieveValue( valId, m_context.identity(), result ) )
{
case sema::Env::Status::NoMatch:
return t;
case sema::Env::Status::AmbiguousMatch:
DiagnosticsManager::GetInstance().emitSyntaxErrorMessage(
t.second, "ambiguous match for symbol." );
return t;
}
return TermLoc( result, t.second );
}
|
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
case Delimiter::OpenBracket:
co_yield move( *tok );
co_yield consumeBlock( Delimiter::CloseBracket );
break;
case Delimiter::CloseParen:
DiagnosticsManager::GetInstance().emitErrorMessage(
tok->second, "mismatched ')'.", 0 );
break;
case Delimiter::CloseBrace:
DiagnosticsManager::GetInstance().emitErrorMessage(
tok->second, "mismatched '}'.", 0 );
break;
case Delimiter::CloseBracket:
DiagnosticsManager::GetInstance().emitErrorMessage(
tok->second, "mismatched ']'.", 0 );
break;
default:
co_yield move( *tok );
break;
}
|
|
|
|
|
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
case Delimiter::OpenBracket:
co_yield move( *tok );
co_yield consumeBlock( Delimiter::CloseBracket );
break;
case Delimiter::CloseParen:
DiagnosticsManager::GetInstance().emitSyntaxErrorMessage(
tok->second, "mismatched ')'.", 0 );
break;
case Delimiter::CloseBrace:
DiagnosticsManager::GetInstance().emitSyntaxErrorMessage(
tok->second, "mismatched '}'.", 0 );
break;
case Delimiter::CloseBracket:
DiagnosticsManager::GetInstance().emitSyntaxErrorMessage(
tok->second, "mismatched ']'.", 0 );
break;
default:
co_yield move( *tok );
break;
}
|
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
co_return;
}
else
{
switch( *delim )
{
case Delimiter::CloseParen:
DiagnosticsManager::GetInstance().emitErrorMessage(
tok->second, "mismatched ')'.", 0 );
co_return;
case Delimiter::CloseBrace:
DiagnosticsManager::GetInstance().emitErrorMessage(
tok->second, "mismatched '}'.", 0 );
co_return;
case Delimiter::CloseBracket:
DiagnosticsManager::GetInstance().emitErrorMessage(
tok->second, "mismatched ']'.", 0 );
co_return;
}
}
}
co_yield consumeUnit();
}
}
|
|
|
|
|
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
co_return;
}
else
{
switch( *delim )
{
case Delimiter::CloseParen:
DiagnosticsManager::GetInstance().emitSyntaxErrorMessage(
tok->second, "mismatched ')'.", 0 );
co_return;
case Delimiter::CloseBrace:
DiagnosticsManager::GetInstance().emitSyntaxErrorMessage(
tok->second, "mismatched '}'.", 0 );
co_return;
case Delimiter::CloseBracket:
DiagnosticsManager::GetInstance().emitSyntaxErrorMessage(
tok->second, "mismatched ']'.", 0 );
co_return;
}
}
}
co_yield consumeUnit();
}
}
|