module volta.parser.expression

Code Map

module volta.parser.expression;


class ExpOrOp
{
public:
	exp: intir.UnaryExp;
	op: ir.BinOp.Op;
	bin: ir.BinOp;


public:
	this(exp: intir.UnaryExp) { }
	this(op: ir.BinOp.Op) { }
	fn isExp() bool { }
}

fn parseExp(ps: ParserStream, exp: ir.Exp) ParseStatus { }
fn assignToExp(ps: ParserStream, assign: intir.AssignExp, exp: ir.Exp) ParseStatus { }
fn ternaryToExp(ps: ParserStream, tern: intir.TernaryExp, exp: ir.Exp) ParseStatus { }
fn gatherExps(bin: intir.BinExp) ExpOrOp[] { }
fn binexpToExp(ps: ParserStream, bin: intir.BinExp, exp: ir.Exp) ParseStatus { }
fn unaryToExp(ps: ParserStream, unary: intir.UnaryExp, exp: ir.Exp) ParseStatus { }
fn postfixToExp(ps: ParserStream, loc: const(Location), exp: ir.Exp, postfix: intir.PostfixExp, seed: ir.Exp) ParseStatus { }
fn primaryToExp(ps: ParserStream, primary: intir.PrimaryExp, exp: ir.Exp) ParseStatus { }
fn parseArgumentList(ps: ParserStream, outexps: ir.Exp[], endChar: TokenType) ParseStatus { }
fn parseIsExp(ps: ParserStream, ie: ir.IsExp) ParseStatus { }
fn parseFunctionLiteral(ps: ParserStream, fl: ir.FunctionLiteral) ParseStatus { }
//! ugly intir stuff ***
fn parseAssignExp(ps: ParserStream, exp: intir.AssignExp) ParseStatus { }
fn parseTernaryExp(ps: ParserStream, exp: intir.TernaryExp) ParseStatus { }
fn parseBinExp(ps: ParserStream, exp: intir.BinExp) ParseStatus { }
fn parseUnaryExp(ps: ParserStream, exp: intir.UnaryExp) ParseStatus { }
fn getLastSlice(pe: intir.PostfixExp) intir.PostfixExp { }
fn parseNewOrDup(ps: ParserStream, exp: intir.UnaryExp) ParseStatus { }
fn parseDupExp(ps: ParserStream, doubleDotDepth: i32, dupExp: intir.DupExp) ParseStatus { }
fn parseNewExp(ps: ParserStream, newExp: intir.NewExp) ParseStatus { }
fn parseCastExp(ps: ParserStream, exp: intir.CastExp) ParseStatus { }
fn parsePostfixExp(ps: ParserStream, exp: intir.PostfixExp, disableNoDoubleDotSlice: bool, depth: i32) ParseStatus { }
fn parsePrimaryExp(ps: ParserStream, exp: intir.PrimaryExp) ParseStatus { }
fn parseVaArgExp(ps: ParserStream, vaexp: ir.VaArgExp) ParseStatus { }
fn parseRunExp(ps: ParserStream, runexp: ir.RunExp) ParseStatus { }
//! Parse a volt expression in slice into exp.
fn parseInlineExp(loc: const(Location), ps: ParserStream, slice: string, exp: ir.Exp) ParseStatus { }
//! Parse a composable string expression.
fn parseComposableString(ps: ParserStream, exp: ir.Exp) ParseStatus { }
fn isComposableString(ps: ParserStream) bool { }
fn isUnambiguouslyParenType(ps: ParserStream) bool { }
fn isFunctionLiteral(ps: ParserStream) bool { }
fn parseAssignExp(ps: ParserStream, exp: intir.AssignExp) ParseStatus

ugly intir stuff ***

fn parseInlineExp(loc: const(Location), ps: ParserStream, slice: string, exp: ir.Exp) ParseStatus

Parse a volt expression in slice into exp.

Used by composable strings.

fn parseComposableString(ps: ParserStream, exp: ir.Exp) ParseStatus

Parse a composable string expression.

If a runtime composable string, expects the parse to be at the 'new' token.

fn isComposableString(ps: ParserStream) bool

Return

true if ps is at a composable string.