NewLang Project
Yet another programm language
Loading...
Searching...
No Matches
lexer.l File Reference
#include "lexer.h"
#include "nlc-rt.h"
#include "term.h"
Include dependency graph for lexer.l:

Go to the source code of this file.

Macros

#define yyterminate()   return token::END
 
#define YY_NO_UNISTD_H
 
#define YY_USER_ACTION   yylloc->columns(yyleng);
 
#define YY_TOKEN(tok)   *yylval = Term::Create(TermID:: tok, yytext, token:: tok, yyleng, yylloc, source_string); (*yylval)->m_bracket_depth = m_bracket_depth; return token:: tok
 
#define YY_TOKEN_ONLY(tok)   *yylval = Term::Create(TermID::UNKNOWN, yytext, token:: tok, yyleng, yylloc, source_string); return token:: tok
 

Functions

yylloc step ()
 
 yy_push_state (state_DOC_BEFORE)
 
buffer clear ()
 
buffer append (yytext, yyleng)
 
 YY_FATAL_ERROR ("Document comments cannot be nested!")
 
yylloc lines (yyleng)
 
 yy_pop_state ()
 
 yy_push_state (state_COMMENT)
 
 if (!m_ignore_comment &&yy_start_stack_ptr==0)
 
 if (!m_ignore_comment)
 
 BEGIN (state_SOURCE)
 
 BEGIN (INITIAL)
 
 BEGIN (state_MACRO_STR)
 
 BEGIN (state_TEMPLATE1)
 
 BEGIN (state_TEMPLATE2)
 
 BEGIN (state_STRWIDE)
 
 BEGIN (state_STRWIDE_RAW)
 
 YY_FATAL_ERROR ("Unterminated string constant")
 
void sscanf (yytext+1, "%o", &result)
 
 if (result > 0xff)
 
 YY_FATAL_ERROR ("Bad escape sequence")
 
 BEGIN (state_STRCHAR_RAW)
 
 BEGIN (state_STRCHAR)
 
 BEGIN (state_EVAL)
 
 YY_FATAL_ERROR ("Unterminated eval string")
 

Variables

yylval = Term::Create(TermID::DOC_AFTER, &yytext[5], token::DOC_AFTER, yyleng-6, yylloc, source_string)
 
 m_macro_del
 
 m_macro_count
 
int result
 
char byte = (char)result
 
 m_bracket_depth
 
return static_cast< token_type > * yytext
 

Macro Definition Documentation

◆ yyterminate

#define yyterminate ( )    return token::END

◆ YY_NO_UNISTD_H

#define YY_NO_UNISTD_H

◆ YY_USER_ACTION

#define YY_USER_ACTION   yylloc->columns(yyleng);

◆ YY_TOKEN

#define YY_TOKEN ( tok)    *yylval = Term::Create(TermID:: tok, yytext, token:: tok, yyleng, yylloc, source_string); (*yylval)->m_bracket_depth = m_bracket_depth; return token:: tok

◆ YY_TOKEN_ONLY

#define YY_TOKEN_ONLY ( tok)    *yylval = Term::Create(TermID::UNKNOWN, yytext, token:: tok, yyleng, yylloc, source_string); return token:: tok

Function Documentation

◆ step()

◆ yy_push_state() [1/2]

yy_push_state ( state_DOC_BEFORE )

◆ clear()

buffer clear ( )

◆ append()

buffer append ( yytext ,
yyleng  )

◆ YY_FATAL_ERROR() [1/4]

YY_FATAL_ERROR ( "Document comments cannot be nested!" )

Referenced by if().

◆ lines()

yylloc lines ( yyleng )

◆ yy_pop_state()

yy_pop_state ( )

◆ yy_push_state() [2/2]

yy_push_state ( state_COMMENT )

◆ if() [1/3]

if ( !m_ignore_comment && yy_start_stack_ptr = = 0)

Definition at line 219 of file lexer.l.

References yylval.

◆ if() [2/3]

if ( ! m_ignore_comment)

Definition at line 232 of file lexer.l.

◆ BEGIN() [1/10]

BEGIN ( state_SOURCE )

◆ BEGIN() [2/10]

BEGIN ( INITIAL )

◆ BEGIN() [3/10]

BEGIN ( state_MACRO_STR )

◆ BEGIN() [4/10]

BEGIN ( state_TEMPLATE1 )

◆ BEGIN() [5/10]

BEGIN ( state_TEMPLATE2 )

◆ BEGIN() [6/10]

BEGIN ( state_STRWIDE )

◆ BEGIN() [7/10]

BEGIN ( state_STRWIDE_RAW )

◆ YY_FATAL_ERROR() [2/4]

YY_FATAL_ERROR ( "Unterminated string constant" )

◆ sscanf()

void sscanf ( yytext+ 1,
"%o" ,
& result )

◆ if() [3/3]

if ( result ,
0xff  )

Definition at line 370 of file lexer.l.

References YY_FATAL_ERROR().

◆ YY_FATAL_ERROR() [3/4]

YY_FATAL_ERROR ( "Bad escape sequence" )

◆ BEGIN() [8/10]

BEGIN ( state_STRCHAR_RAW )

◆ BEGIN() [9/10]

BEGIN ( state_STRCHAR )

◆ BEGIN() [10/10]

BEGIN ( state_EVAL )

◆ YY_FATAL_ERROR() [4/4]

YY_FATAL_ERROR ( "Unterminated eval string" )

Variable Documentation

◆ yylval

* yylval = Term::Create(TermID::DOC_AFTER, &yytext[5], token::DOC_AFTER, yyleng-6, yylloc, source_string)

Definition at line 131 of file lexer.l.

Referenced by newlang::Parser::GetNextToken(), and if().

◆ m_macro_del

m_macro_del

Definition at line 260 of file lexer.l.

◆ m_macro_count

m_macro_count

Definition at line 271 of file lexer.l.

◆ result

int result

Definition at line 367 of file lexer.l.

Referenced by newlang::runtime::Base::__timeit__(), newlang::NLC::AnswerCGI(), newlang::Term::AppendBlock(), newlang::Term::asTypeString(), newlang::Obj::BaseTypeConstructor(), BinToHex(), newlang::Context::CallNative_(), newlang::Diag::ChangeState(), newlang::AstAnalysis::CheckError(), newlang::AstAnalysis::CheckStrPrintf(), newlang::Term::Clone(), newlang::Rational::clone(), newlang::Obj::ConstructorDictionary_(), newlang::Obj::ConstructorEnum_(), newlang::Obj::ConstructorSimpleType_(), newlang::Obj::ConstructorStruct_(), newlang::AstAnalysis::ConvertToVFormat_(), newlang::Obj::CreateBaseType(), newlang::Obj::CreateBool(), newlang::Obj::CreateClass(), newlang::Obj::CreateClass(), newlang::Context::CreateDict(), newlang::Obj::CreateDict(), newlang::Obj::CreateDict(), newlang::Term::CreateDict(), CreateFromGenericValue(), newlang::RunTime::CreateFunction(), newlang::RunTime::CreateFunction(), newlang::Term::CreateIntName(), newlang::Term::CreateName(), newlang::RunTime::CreateNative(), newlang::Context::CreateNative_(), newlang::Term::CreateNil(), newlang::Term::CreateNone(), newlang::Context::CreateRange(), newlang::Obj::CreateString(), newlang::Obj::CreateString(), CreateTensor(), newlang::Context::CreateTensor(), newlang::Obj::CreateValue(), newlang::Context::Dump(), newlang::Dump(), newlang::GlobalObjects::Dump(), newlang::Macro::Dump(), newlang::Macro::Dump(), newlang::Macro::Dump(), newlang::Module::Dump(), newlang::NameLookupStack::Dump(), newlang::StorageTerm::Dump(), newlang::Macro::DumpText(), newlang::RunTime::Escape(), newlang::Context::Eval(), newlang::Context::EvalDoWhile_(), newlang::Context::EvalEval_(), newlang::Context::EvalInterrupt_(), newlang::Context::EvalIterator_(), newlang::Context::EvalOpMath_(), newlang::Context::EvalTerm(), newlang::Context::EvalWhile_(), newlang::Macro::ExpandMacros(), newlang::JIT::ExtractFunctionDecls(), newlang::ExtractModuleName(), newlang::Context::FindObject(), newlang::BigNum::GetAsInteger(), newlang::Rational::GetAsInteger(), newlang::BigNum::GetAsNumber(), newlang::BigNum::GetAsString(), newlang::Rational::GetAsString(), newlang::Parser::GetCurrentTimeStamp(), newlang::runtime::System::getenviron(), newlang::Term::GetFullName(), newlang::Macro::GetMacroMaping(), newlang::InternalName::getMangledName(), newlang::NameLookupStack::GetNamespace(), newlang::Parser::GetNextToken(), newlang::NameLookupStack::GetOfferBlock(), newlang::Logger::GetStackTrace(), getSummaryTensorType(), newlang::runtime::System::getsysinfo(), newlang::runtime::System::gettimeofday(), newlang::runtime::System::getuname(), newlang::Obj::GetValueAsString(), HexStrToBinStr(), newlang::Obj::index_set(), newlang::Obj::ItemValueCount(), newlang::Obj::IteratorMake(), newlang::Obj::IteratorMake(), newlang::Logger::log_printf(), newlang::AstAnalysis::LookupName(), newlang::JIT::MainArgs(), newlang::JIT::MakeApplicationSource(), newlang::JIT::MakeCodeModule(), newlang::JIT::MakeCodeRepl(), newlang::MakeConstructorName(), newlang::AstAnalysis::MakeFormat(), newlang::JIT::MakeFunctionPrototype(), newlang::AstAnalysis::MakeInclude(), newlang::NameLookupStack::MakeInternalName(), newlang::Macro::MakeMacroId(), newlang::JIT::MakeMain(), newlang::RunTime::MakeMainArgs(), newlang::JIT::MakeMainEmbed(), newlang::Context::MakeNamespace(), newlang::NameLookupStack::MakeNamespace(), newlang::RunTime::MakeObjArgs(), newlang::VariableTaken::MakeTimeoutMessage(), newlang::MangaledFunc(), newlang::MangaledFuncCPP(), newlang::MangleName(), nlc_prinft_sub_(), newlang::Obj::No(), newlang::NormalizeName(), newlang::Obj::op_bit_and(), newlang::Obj::op_concat(), newlang::Obj::op_div_ceil(), newlang::Obj::op_pow(), newlang::Obj::operator float(), newlang::Obj::operator uint64_t(), newlang::Variable::operator uint64_t(), newlang::Obj::operator%(), newlang::Variable::operator%(), newlang::Obj::operator*(), newlang::Variable::operator*(), newlang::Obj::operator+(), newlang::Variable::operator+(), newlang::Obj::operator-(), newlang::Variable::operator-(), newlang::Obj::operator/(), newlang::Variable::operator/(), newlang::VirtualFuncImpl< R, Args >::override(), newlang::parseDouble(), newlang::parseInteger(), newlang::Scanner::ParseLexem(), newlang::Parser::ParseTerm(), newlang::RunTime::RegisterBuildinType(), newlang::Diag::RemoveDiagPrefix(), newlang::JIT::ReplaceObjectInEmbedSource(), newlang::JIT::Run(), newlang::NLC::Run(), newlang::Iterator< T >::search_loop(), newlang::RunTime::SelectPredict(), newlang::RunTime::SplitChar(), newlang::RunTime::SplitString(), newlang::Macro::SymbolSeparateArg_(), newlang::runtime::System::system(), TensorToString(), newlang::Obj::toIntVector(), newlang::Obj::toString(), newlang::Term::toString(), newlang::Variable::toString(), newlang::RunTime::UnLoadModule(), newlang::NLC::url_decode(), newlang::NLC::url_encode(), and newlang::Obj::Yes().

◆ byte

buffer append & byte = (char)result

Definition at line 373 of file lexer.l.

◆ m_bracket_depth

m_bracket_depth

Definition at line 714 of file lexer.l.

◆ yytext

return static_cast< token_type > * yytext

Definition at line 716 of file lexer.l.