linc 0.7
Linc is a general-purpose programming language inspired by C
Loading...
Searching...
No Matches
linc::ForExpression Class Referencefinal
Inheritance diagram for linc::ForExpression:
linc::Expression linc::Node

Classes

struct  RangeForSpecifier
 
struct  VariableForSpecifier
 

Public Types

using Specifier = std::variant<const VariableForSpecifier, const RangeForSpecifier>
 

Public Member Functions

 ForExpression (std::optional< LoopLabel > label, const Token &for_keyword, const Token &left_parenthesis, const Token &right_parenthesis, std::unique_ptr< const VariableDeclaration > declaration, std::unique_ptr< const Expression > expression, std::unique_ptr< const Statement > statement, std::unique_ptr< const Expression > body)
 
 ForExpression (std::optional< LoopLabel > label, const Token &for_keyword, const Token &left_parenthesis, const Token &right_parenthesis, const Token &in_keyword, std::unique_ptr< const IdentifierExpression > value_identifier, std::unique_ptr< const IdentifierExpression > array_identifier, std::unique_ptr< const Expression > body)
 
const std::optional< LoopLabel > & getLabel () const
 
const TokengetForKeyword () const
 
const TokengetLeftParenthesis () const
 
const TokengetRightParenthesis () const
 
const Expression *const getBody () const
 
const Specifier & getSpecifier () const
 
virtual std::unique_ptr< const Expressionclone () const final override
 
- Public Member Functions inherited from linc::Expression
 Expression (const NodeInfo &info=NodeInfo{})
 
 Expression (const Token::Info &token_info)
 
- Public Member Functions inherited from linc::Node
 Node (const NodeInfo &info)
 
 Node (const Token::Info &token_info)
 
const Token::InfogetTokenInfo () const
 
const std::vector< Token > & getTokens () const
 
const NodeInfogetInfo () const
 
std::string getInfoString () const
 
void setLineNumber (size_t line_number) const
 
void setTokens (std::vector< Token > tokens) const
 
void addToken (const Token &token) const
 
void addTokens (const std::vector< Token > &tokens) const
 
std::unique_ptr< const Nodeclone () const
 

Member Function Documentation

◆ clone()

virtual std::unique_ptr< const Expression > linc::ForExpression::clone ( ) const
inlinefinaloverridevirtual

Implements linc::Expression.


The documentation for this class was generated from the following file: