TransitionParser.y File Reference

#include <sys/fcntl.h>
#include <sys/stat.h>
#include <getopt.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <assert.h>
#include <dirent.h>
#include <iostream>
#include <string>
#include "Version.hxx"
#include "AST.hxx"
#include "ParseType.hxx"
#include "UocInfo.hxx"
#include "Options.hxx"
#include "TransitionLexer.hxx"

Go to the source code of this file.

Defines

#define YYSTYPE   ParseType
#define YYLEX_PARAM   (TransitionLexer *)lexer
#define yyerror(lexer, s)   lexer->showNextError = true
#define SHOWPARSE(s)
#define SHOWPARSE1(s, x)
#define syntaxError(s)   PrintSyntaxError(lexer, (s))

Functions

uoc Compile ()
 addChild ($3) = $1
 child (0)->defForm
 if ($1->children.size()!=0)
ctr addChildrenFrom ($3) = AST::make(at_reprctr, $1->loc, ctr)
 getID ()->flags| = $5->externalName
 if ($3->children.size()==1) lexer->ReportParseError($3->loc
 if (!UocInfo::importInterface(lexer->errStream, $2.loc, $2.str))
 if ($3->astType==at_byRefType) $1->flags|
lexer ReportParseError ($1.loc,"Expected 'then' following 'if', got "+lastTok.str+" at "+lastTok.loc.asString())
lexer ReportParseError ($1.loc,"if/then/else missing else clause at "+lastTok.loc.asString()+", assuming unit. Consider when or unless?")
 assert (yychar!=YYEMPTY)
lexer pushTokenBack (yylval.tok, true)
lexer ReportParseError ($3.loc,"when/then has been replaced by when/do.")
 for (size_t c=0;c< $7->children.size();c++)
 if ($8->astType==at_otherwise)
 if ($6->astType==at_otherwise)
ow children insert (ow->children.begin(), $4->getDeepCopy())
 addChild (AST::make(at_constraints))
lexer pushTokenBack (tok, true)
lexer lex (&yylval)
 if (yychar!=YYEMPTY) yyclearin

Variables

start __pad0__
 return
trn_uoc_body __pad1__
trn_uoc_body __pad2__
trn_uoc_body __pad3__
blk_version __pad4__
trn_interface __pad5__
blk_ifident __pad6__
blk_ifident __pad7__
trn_module_seq __pad8__
trn_module_seq __pad9__
trn_implicit_module __pad10__
 astType = $1 at_module
 printVariant = pf_IMPLIED
string uocName
shared_ptr< UocInfouoc = UocInfo::make(uocName, lexer->here.origin, $$)
lexer nModules
trn_module __pad11__
trn_module __pad12__
trn_if_definitions __pad13__
trn_if_definitions __pad14__ = AST::make(at_Null, $1->loc, $1)
trn_if_definition __pad15__
trn_mod_definitions __pad16__ = $1
trn_mod_definitions __pad17__ = AST::make(at_Null, $1->loc, $1)
trn_mod_definition __pad18__
blk_mod_definition __pad19__ = $1
blk_mod_definition __pad20__ = $1
blk_common_definition __pad21__ = $1
blk_common_definition __pad22__ = $1
blk_type_val_definition __pad23__ = $1
blk_type_val_definition __pad24__ = $1
blk_type_val_definition __pad25__ = $1
blk_type_val_definition __pad26__ = $1
blk_type_val_definition __pad27__ = $1
blk_type_val_definition __pad28__ = $1
blk_constraints __pad29__ = $1
blk_constraints __pad30__
blk_constraint_seq __pad31__ = $2
blk_constraint_seq __pad32__
blk_constraint __pad33__ = AST::make(at_constraints, $1->loc, $1)
blk_constraint __pad34__ = $1
blk_ptype_name __pad35__ = AST::make(at_tcapp, $1->loc, $1)
shared_ptr< ASTtvlist = AST::make(at_tvlist, $1->loc)
blk_ptype_name __pad36__ = AST::make(at_Null, $1->loc, $1, tvlist)
blk_type_definition __pad37__ = AST::make(at_Null, $1->loc, $1, $3)
blk_type_definition __pad38__
blk_type_definition __pad39__
blk_repr_constructors __pad40__
blk_repr_constructors __pad41__ = AST::make(at_reprctrs, $1->loc, $1)
blk_repr_constructor __pad42__
 flags = (ID_IS_GLOBAL)
shared_ptr< ASTctr = AST::make(at_constructor, $1->loc, $1)
blk_repr_reprs __pad43__
blk_repr_reprs __pad44__ = AST::make(at_Null, $1->loc, $1)
blk_repr_repr __pad45__
blk_externals __pad46__ = AST::make(at_reprrepr, $2.loc, $1, $3)
 yyerrok
lexer showNextError = false
 flags = AST::make(at_Null) NO_FLAGS
blk_externals __pad47__
 flags = AST::make(at_Null, $1.loc) DEF_IS_EXTERNAL
blk_externals __pad48__
 flags = AST::make(at_Null, $1.loc) DEF_IS_EXTERNAL
 externalName = $2->s
blk_type_definition __pad49__
shared_ptr< ASTvalCat
blk_type_decl __pad50__
 flags = $5->flags
blk_type_decl __pad51__
 flags = $5->flags
blk_type_decl __pad52__
 flags = $5->flags
blk_optval __pad53__
 printVariant = AST::make(at_boxedCat) pf_IMPLIED
blk_optval __pad54__
blk_val __pad55__ = $1
blk_val __pad56__ = AST::make(at_boxedCat)
blk_val __pad57__ = AST::make(at_unboxedCat, $1)
blk_openclosed __pad58__ = AST::make(at_opaqueCat, $1)
 printVariant = AST::make(at_oc_open) pf_IMPLIED
blk_openclosed __pad59__
blk_type_definition __pad60__ = AST::make(at_oc_closed, $1)
 flags = ID_IS_GLOBAL
blk_type_definition __pad61__
 flags = ID_IS_GLOBAL
blk_tc_definition __pad62__
blk_tc_decls __pad63__
blk_method_decls __pad64__ = AST::make(at_tcdecls)
LexLoc loc
blk_method_decls __pad65__ = AST::make(at_method_decls, loc)
blk_method_decl __pad66__
 flags = ID_IS_GLOBAL
 identType = id_tcmethod
blk_ti_definition __pad67__ = AST::make(at_method_decl, $1->loc, $1, $3)
blk_ti_definition __pad68__
blk_method_bindings __pad69__ = AST::make(at_definstance, $2.loc, $3, $5, $1)
blk_method_bindings __pad70__ = AST::make(at_tcmethods, $1->loc, $1)
blk_method_binding __pad71__
blk_value_definition __pad72__ = AST::make(at_tcmethod_binding, $1->loc, $1, $3)
blk_value_definition __pad73__ = AST::make(at_define, $2.loc, $3, $5, $1)
shared_ptr< ASTiRetBlock
shared_ptr< ASTiLambda
iLambda printVariant = pf_IMPLIED
shared_ptr< ASTiP = AST::make(at_identPattern, $3->loc, $3)
blk_value_definition __pad74__ = AST::make(at_recdef, $2.loc, iP, iLambda, $1)
shared_ptr< ASTiRetBlock
shared_ptr< ASTiLambda = AST::make(at_lambda, $2.loc, $5, iRetBlock)
iLambda printVariant = pf_IMPLIED
shared_ptr< ASTiP = AST::make(at_identPattern, $3->loc, $3)
blk_fndef_tail __pad75__ = AST::make(at_recdef, $2.loc, iP, iLambda, $1)
blk_fndef_tail __pad76__ = $2
blk_fndef_tail __pad77__ = $2
blk_value_declaration __pad78__ = $2
Declaration forms require a type
shared_ptr< ASTdeclIdent = $3->child(0)
shared_ptr< ASTdeclType = $3->child(1)
 flags = AST::make(at_proclaim, $2.loc, declIdent, declType, $1) $4->flags
blk_import_definition __pad79__
shared_ptr< ASTifIdent = AST::make(at_ifident, $2)
blk_import_definition __pad80__ = AST::make(at_importAs, $1.loc, ifIdent, $4)
shared_ptr< ASTifIdent = AST::make(at_ifident, $2)
blk_import_definition __pad81__ = AST::make(at_import, $1.loc, ifIdent)
shared_ptr< ASTifIdent = AST::make(at_ifident, $2)
blk_importList __pad82__
blk_importList __pad83__ = AST::make(at_Null, $1->loc, $1)
blk_alias __pad84__
blk_alias __pad85__ = AST::make(at_ifsel, $1->loc, $1, $1->getDeepCopy())
blk_provide_definition __pad86__ = AST::make(at_ifsel, $1->loc, $1, $3)
shared_ptr< ASTifIdent = AST::make(at_ifident, $2)
blk_provideList __pad87__
blk_provideList __pad88__ = AST::make(at_Null, $1->loc, $1)
blk_opt_declares __pad89__
 yyerrok
lexer showNextError = false
blk_opt_declares __pad90__ = AST::make(at_declares)
blk_declares __pad91__ = $1
blk_declares __pad92__ = AST::make(at_declares, $1->loc, $1)
blk_declare __pad93__
blk_decl __pad94__ = $2
blk_decl __pad95__ = AST::make(at_declare, $1->loc, $1, $3)
blk_constructors __pad96__ = AST::make(at_declare, $1->loc, $1)
blk_constructors __pad97__ = AST::make(at_constructors, $1->loc, $1)
blk_constructor __pad98__
 flags = (ID_IS_GLOBAL)
blk_constructor __pad99__ = AST::make(at_constructor, $1->loc, $1)
 flags = (ID_IS_GLOBAL)
blk_fields __pad100__
blk_fields __pad101__ = AST::make(at_fields, $1->loc, $1)
blk_field __pad102__
blk_field __pad103__ = AST::make(at_field, $1->loc, $1, $3)
blk_field __pad104__ = AST::make(at_fill, $1.loc, $3)
blk_methods_only __pad105__ = AST::make(at_fill, $1.loc, $3, $5)
blk_methods_only __pad106__ = AST::make(at_fields, $1->loc, $1)
blk_methdecl __pad107__
blk_fields_and_methods __pad108__ = AST::make(at_methdecl, $1->loc, $1, $3)
blk_fields_and_methods __pad109__ = AST::make(at_fields, $1->loc, $1)
blk_fields_and_methods __pad110__ = AST::make(at_fields, $1->loc, $1)
blk_fields_and_methods __pad111__
blk_tvlist __pad112__
blk_tvlist __pad113__ = AST::make(at_tvlist, $1->loc, $1)
blk_prefix_type __pad114__
blk_prefix_type __pad115__ = $1
blk_prefix_type __pad116__ = AST::make(at_mutableType, $1.loc, $2)
blk_postfix_type __pad117__ = AST::make(at_constType, $1.loc, $2)
blk_type __pad118__ = $1
blk_primary_type __pad119__ = $1
blk_primary_type __pad120__ = $1
 printVariant = $2 pf_PARENWRAP
blk_primary_type __pad121__
blk_primary_type __pad122__ = $2
blk_primary_type __pad123__ = AST::make(at_boxedType, $1.loc, $3)
blk_primary_type __pad124__ = AST::make(at_unboxedType, $1.loc, $3)
primary_type __pad125__
 s = AST::make(at_primaryType, $1.loc) "unit"
bool_type __pad126__
primary_type __pad127__ = AST::make(at_primaryType, $1)
primary_type __pad128__ = $1
primary_type __pad129__ = AST::make(at_primaryType, $1)
int_type __pad130__ = AST::make(at_primaryType, $1)
int_type __pad131__ = AST::make(at_primaryType, $1)
int_type __pad132__ = AST::make(at_primaryType, $1)
int_type __pad133__ = AST::make(at_primaryType, $1)
uint_type __pad134__ = AST::make(at_primaryType, $1)
uint_type __pad135__ = AST::make(at_primaryType, $1)
uint_type __pad136__ = AST::make(at_primaryType, $1)
uint_type __pad137__ = AST::make(at_primaryType, $1)
any_int_type __pad138__ = AST::make(at_primaryType, $1)
any_int_type __pad139__ = $1
any_int_type __pad140__ = $1
float_type __pad141__ = AST::make(at_primaryType, $1)
float_type __pad142__ = AST::make(at_primaryType, $1)
float_type __pad143__ = AST::make(at_primaryType, $1)
primary_type __pad144__ = AST::make(at_primaryType, $1)
primary_type __pad145__ = $1
primary_type __pad146__ = $1
primary_type __pad147__ = AST::make(at_exceptionType, $1.loc)
blk_postfix_type __pad148__ = $1
blk_type __pad149__ = AST::make(at_boxedType, $2.loc, $1)
trn_fneffect __pad150__ = $1
trn_fneffect __pad151__ = AST::make(at_ident, LToken(tk_IMPURE, "impure"))
trn_fneffect __pad152__ = AST::make(at_ident, $1)
trn_fneffect __pad153__ = AST::make(at_ident, $1)
blk_type_args __pad154__ = AST::make(at_ident, $1)
blk_type_args __pad155__
blk_fntype __pad156__
shared_ptr< ASTfnargVec = AST::make(at_fnargVec, $5.loc)
blk_fntype __pad157__ = AST::make(at_fn, $1->loc, fnargVec, $6)
blk_method_type __pad158__ = AST::make(at_fn, $1->loc, $4, $7)
shared_ptr< ASTfnargVec = AST::make(at_fnargVec, $5.loc)
blk_method_type __pad159__ = AST::make(at_methType, $1->loc, fnargVec, $6)
blk_type_cpair __pad160__ = AST::make(at_fn, $1->loc, $4, $7)
blk_type_cpair __pad161__
blk_postfix_type __pad162__
blk_postfix_type __pad163__ = AST::make(at_arrayType, $1->loc, $1, $3)
blk_primary_type __pad164__ = AST::make(at_vectorType, $1->loc, $1)
blk_typeapp __pad165__ = $1
blk_bitfieldtype __pad166__
blk_bitfieldtype __pad167__ = AST::make(at_bitfieldType, $1->loc, $1, $3)
blk_field_type __pad168__ = AST::make(at_bitfieldType, $1->loc, $1, $3)
blk_field_type __pad169__ = $1
blk_type_pl_byref __pad170__ = $1
blk_type_pl_byref __pad171__ = $1
blk_type_pl_byref __pad172__ = AST::make(at_byRefType, $1.loc, $2)
blk_type_args_pl_byref __pad173__ = AST::make(at_arrayRefType, $1.loc, $2)
blk_type_args_pl_byref __pad174__
blk_bindingpattern __pad175__
blk_bindingpattern __pad176__ = AST::make(at_identPattern, $1->loc, $1)
blk_defpattern __pad177__ = AST::make(at_identPattern, $1->loc, $1, $3)
blk_defpattern __pad178__ = AST::make(at_identPattern, $1->loc, $1)
blk_lambdapatterns __pad179__ = AST::make(at_identPattern, $1->loc, $1, $3)
blk_lambdapatterns __pad180__
blk_lambdapattern __pad181__
blk_lambdapattern __pad182__ = AST::make(at_identPattern, $1->loc, $1)
blk_expr_primary __pad183__
blk_expr_apply __pad184__ = $1
blk_expr_apply __pad185__ = $1
blk_expr_apply __pad186__ = AST::make(at_sizeof, $1.loc, $3)
blk_expr_apply __pad187__ = AST::make(at_bitsizeof, $1.loc, $3)
blk_expr_apply __pad188__ = AST::make(at_dup, $1.loc, $3)
blk_expr_apply __pad189__ = AST::make(at_deref, $1.loc, $3)
blk_expr_apply __pad190__
 astType = $3 at_vector
 loc = $1.loc
blk_expr_apply __pad191__
 astType = $3 at_array
 loc = $1.loc
blk_expr_mixfix __pad192__
blk_expr_mixfix __pad193__ = $1
blk_mixfix_elem __pad194__ = $1
blk_mixfix_elem __pad195__ = AST::make(at_mixfix, $1->loc, $1)
blk_mixfix_arglist __pad196__ = AST::make(at_mixfix, $1.loc, AST::make(at_ident, $1), $2)
blk_mixfix_arglist __pad197__ = AST::make(at_mixfix, $1->loc, $1)
blk_expr_seq __pad198__
blk_expr_seq __pad199__ = AST::make(at_begin, $1->loc, $1)
blk_expr_seq __pad200__
blk_actual_params __pad201__
blk_actual_params __pad202__ = AST::make(at_Null)
blk_nonempty_params __pad203__ = $1
blk_nonempty_params __pad204__ = AST::make(at_Null, $1->loc, $1)
blk_expr_primary __pad205__
blk_expr_primary __pad206__ = $1
blk_expr_primary __pad207__ = $1
blk_expr __pad208__
blk_expr_continue __pad209__ = $1
blk_expr __pad210__
blk_expr_from_return __pad211__ = $1
blk_expr __pad212__ = AST::make(at_return_from, $1.loc, $2, $4)
blk_expr_lambda __pad213__ = $1
shared_ptr< ASTargVec = AST::make(at_argVec, $2.loc)
shared_ptr< ASTiRetBlock
blk_expr_lambda __pad214__ = AST::make(at_lambda, $1.loc, argVec, iRetBlock)
shared_ptr< ASTiRetBlock
blk_expr __pad215__ = AST::make(at_lambda, $1.loc, $3, iRetBlock)
blk_expr_return __pad216__ = $1
blk_expr __pad217__
blk_expr_if_then_else __pad218__ = $1
blk_expr __pad219__ = AST::make(at_if, $1.loc, $2, $5, $8)
LToken lastTok = lexer->getLastToken()
blk_expr __pad220__ = AST::make(at_unit, $1.loc)
LToken lastTok = lexer->getLastToken()
yylval tok flags = TF_REPROCESS
 yyclearin
lexer showNextError = false
blk_expr __pad221__
blk_expr_when __pad222__ = $1
blk_expr_when __pad223__ = AST::make(at_when, $1.loc, $2, $4)
blk_expr __pad224__ = AST::make(at_when, $1.loc, $2, $4)
blk_expr_unless __pad225__ = $1
blk_expr __pad226__ = AST::make(at_unless, $1.loc, $2, $4)
blk_expr __pad227__ = AST::make(at_setbang, $2.loc, $1, $3)
blk_expr_switch __pad228__ = $1
blk_sw_legs __pad229__
blk_sw_legs __pad230__
blk_sw_leg __pad231__ = AST::make(at_usw_legs, $1->loc, $1)
blk_expr_switch_matches __pad232__
blk_expr_switch_matches __pad233__ = AST::make(at_Null, $1->loc, $1)
blk_expr_switch_match __pad234__
blk_expr_switch_match __pad235__ = AST::make(at_select, $1->loc, $1, $3)
shared_ptr< ASTusesel = AST::make(at_usesel, $1->loc, $1, $3)
usesel s = $1->s + "." + $3->s
blk_opt_otherwise __pad236__ = AST::make(at_select, $1->loc, usesel, $5)
blk_opt_otherwise __pad237__ = $1
blk_otherwise __pad238__ = AST::make(at_Null)
blk_expr __pad239__ = AST::make(at_otherwise, $1.loc, $2)
blk_expr_try __pad240__ = $1
blk_expr_try __pad241__
shared_ptr< ASTdummyID
shared_ptr< ASTow
blk_expr __pad242__
blk_expr_throw __pad243__ = $1
blk_expr __pad244__ = AST::make(at_throw, $1.loc, $2)
blk_expr_let __pad245__ = $1
blk_letbinding __pad246__
blk_letbindings __pad247__ = AST::make(at_letbinding, $1->loc, $1, $3)
blk_letbindings __pad248__ = AST::make(at_letbindings, $1->loc, $1)
blk_expr __pad249__
blk_expr_letrec __pad250__ = $1
shared_ptr< ASTlbs = $3
blk_expr __pad251__ = AST::make(at_letrec, $1.loc, lbs, $6, AST::make(at_constraints))
blk_expr_loop __pad252__ = $1
shared_ptr< ASTiTest
shared_ptr< ASTiBody
shared_ptr< ASTiContinueBlock
blk_loopbindings __pad253__ = AST::make(at_loop, $1.loc, $3, iTest, iContinueBlock)
blk_loopbindings __pad254__ = AST::make(at_loopbindings)
blk_nonempty_loopbindings __pad255__ = $1
blk_nonempty_loopbindings __pad256__ = AST::make(at_loopbindings, $1->loc, $1)
blk_expr_loopbinding __pad257__
trn_literal __pad258__ = AST::make(at_loopbinding, $1->loc, $1, $3, $5)
trn_literal __pad259__ = $1
trn_literal __pad260__ = $1
trn_literal __pad261__ = $1
trn_literal __pad262__ = $1
blk_exident __pad263__ = $1
blk_exident __pad264__ = AST::make(at_ident, $1)
blk_ident __pad265__ = AST::make(at_ident, $1)
blk_ident __pad266__ = AST::make(at_ident, $1)
blk_ident __pad267__ = AST::make(at_ident, $1)
blk_ident __pad268__ = AST::make(at_ident, $1)
blk_ident __pad269__ = AST::make(at_ident, $1)
cerr<< $1.loc.asString()<
< ": The token \""<< $1.str<
< "\" is reserved for future
use.\n";lexer-> 
num_errors
blk_useident __pad270__ = AST::make(at_ident, $1)
blk_useident __pad271__ = $1
shared_ptr< ASTusesel = AST::make(at_usesel, $2.loc, $1, $3)
usesel s = $1->s + "." + $3->s
blk_defident __pad272__ = usesel
 flags = (ID_IS_GLOBAL)
typevar __pad273__ = $1
 identType = AST::make(at_ident, $1) id_tvar
boolLit __pad274__
boolLit __pad275__ = AST::makeBoolLit($1)
charLit __pad276__ = AST::makeBoolLit($1)
intLit __pad277__ = AST::makeCharLit($1)
intLit __pad278__ = AST::makeIntLit($1)
natLit __pad279__ = AST::makeIntLit($1)
floatLit __pad280__ = AST::makeIntLit($1)
strLit __pad281__ = AST::makeFloatLit($1)
ILCB __pad282__ = AST::makeStringLit($1)
IRCB __pad283__
OptRCB __pad284__
yylval tok flags = TF_REPROCESS
LToken tok = LToken('}', yylval.tok.loc, yylval.tok.loc, "}")
tok prevTokType = yylval.tok.prevTokType
yylval tok prevTokType = '}'
tok flags = (TF_INSERTED|TF_BY_PARSER)
OptRCB __pad285__ = tok
IsILCB __pad286__
IsILCB __pad287__
SC __pad288__
SC __pad289__


Define Documentation

#define SHOWPARSE ( s   ) 

Value:

do {                                         \
    if (Options::showParse)                    \
      lexer->errStream << (s) << std::endl;    \
  } while (false);

#define SHOWPARSE1 ( s,
 ) 

Value:

do {                                                     \
    if (Options::showParse)                                \
      lexer->errStream << (s) << " " << (x) << std::endl;  \
  } while (false);

#define syntaxError ( s   )     PrintSyntaxError(lexer, (s))

#define yyerror ( lexer,
s   )     lexer->showNextError = true

#define YYLEX_PARAM   (TransitionLexer *)lexer

#define YYSTYPE   ParseType


Function Documentation

addChild ( AST::  make(at_constraints)  ) 

addChild ( 3  )  = $1

addChildrenFrom ( 3  )  = AST::make(at_reprctr, $1->loc, ctr)

assert ( yychar!  = YYEMPTY  ) 

Referenced by acyclic(), add_relevant_items_todo(), addTvsToSigma(), addType(), AlphaRename(), Type::argCCOK(), Type::argInConst(), Type::Args(), AST::atKwd(), Type::Base(), bindIdentDef(), blk_BitcP(), buildFnFromApp(), buildNewDeclaration(), c_decl(), calc_struct_size(), calc_unin_size(), cl_convert_ast(), cl_heapify(), clearConstraints(), CMangle(), TCConstraints::collectAllFnDeps(), collectHeapifiedArgs(), Type::Core(), decl(), doChildren(), UocInfo::DoResolve(), UocInfo::DoTypeCheck(), emit_arr_vec_fn_types(), emit_fnxn_decl(), emit_fnxn_label(), EmitDefexcept(), EmitExpr(), EmitGlobalInitializers(), emitInitProc(), EmitTypeExpansion(), EmitTypeScheme(), Type::ensureMinimizability(), EqUnify(), findComponent(), findusedef(), Type::fixupConstArguments(), GenerateCoutput(), GenerateInterface(), getAllDefs(), AST::getCtr(), getDefToInstantiate(), getIDFromInstantiation(), getInnerLet(), AST::getInstanceMethod(), getLetintoLetStream(), getNewName(), getOuterLet(), SpecialNames::getSpName(), getTypeAst(), getTypesIntoMainStream(), getValuesIntoMainStream(), handlePcst(), handleSpecialPred(), handleTCPred(), hoist(), importInstBindings(), InferInstance(), InferObject(), InferStruct(), InferTvList(), InferTypeClass(), InferUnion(), insertMethDecls(), isExpansive(), Type::isShallowConcretizable(), AST::isUnionLeg(), lbMustNotSurvive(), sherpa::INOstream::less(), LetWrap(), TransitionLexer::lex(), MakeFrame(), mangleComponent(), Type::mangledString(), markPreludeDefs(), markTail(), MixFixNode::matchesKwd(), moveTypesUp(), name2fqn(), nCtArgs(), obtainFullUnionType(), AST::old_atKwd(), MixContext::ParseOneMixFix(), polyinst(), UocInfo::PrettyPrint(), proclaimsAboveDefs(), Type::propagateMutability(), providing(), reduce(), refize(), removeAndReRandT(), reprCheck(), resolve(), Type::Ret(), rigidify(), Trail::rollBack(), Type::size(), Specialize(), ssa(), sub(), superDAG(), toc(), toCtype(), top(), TopInit(), topNext(), trulyHoist(), typeEqInfer(), typeInfer(), Unify(), UnifyDecl(), UnifyFnArgs(), UnifyStructUnion(), unrigidify(), updateSigmas(), AST::Use(), used(), LitValue::validate_string(), Type::Var(), sherpa::vu_add(), sherpa::vu_mul(), sherpa::vu_sub(), warnUnresRef(), and XMLtypes().

child (  ) 

Initial value:

 AST::make(at_defunion, $3.loc,
                 $4->child(0),   /* ident */
                 $4->child(1),   /* tvlist */
                 $2,             /* category */
                 $5,             /* declares */
                 $7,             /* constructors */
                 $1) $$

Referenced by cl_convert(), cl_HoistInstLam(), LetInsert(), and pureLoop().

uoc Compile (  ) 

for ( size_t  c = 0; c < $7->children.size(); c++  ) 

Initial value:

 AST::make(at_try, $1.loc, $2, 
                 AST::make(at_ident, LToken(tk_BlkIdent, "__dummy")),
                 $5, $6)

Definition at line 22963 of file TransitionParser.y.

Referenced by checkConstraints(), sherpa::vu_lshift_digits(), sherpa::vu_mul(), and sherpa::vu_rshift_digits().

getID (  )  = $5->externalName

if ( yychar!  = YYEMPTY  ) 

if ( $6->  astType = = at_otherwise  ) 

Definition at line 23060 of file TransitionParser.y.

if ( $8->  astType = = at_otherwise  ) 

Definition at line 22968 of file TransitionParser.y.

if ( $3->  astType = =at_byRefType  ) 

if ( !UocInfo::  importInterface(lexer->errStream, $2.loc, $2.str)  ) 

Definition at line 21810 of file TransitionParser.y.

if ( $3->children.  size() = = 1  ) 

if ( $1->children.size()!  = 0  ) 

Definition at line 21439 of file TransitionParser.y.

Referenced by aliasPublicBindings(), CMangle(), EmitDefstruct(), EmitDefunion(), hasPatternBindings(), importIfBinding(), importInstBindings(), importSymBindings(), importTSBindings(), main(), pureLoop(), typeInfer(), UpdateMegaEnvs(), useIFGamma(), and useIFInsts().

ow children insert ( ow->children.  begin(),
$4->  getDeepCopy() 
)

Referenced by addCandidates().

lexer lex ( yylval  ) 

lexer pushTokenBack ( tok  ,
true   
)

lexer pushTokenBack ( yylval.  tok,
true   
)

lexer ReportParseError ( $3.  loc,
"when/then has been replaced by when/do."   
)

lexer ReportParseError ( $1.  loc,
"if/then/else missing else clause at "+lastTok.loc.asString()+"  ,
assuming unit.Consider when or unless?"   
)

lexer ReportParseError ( $1.  loc,
"Expected 'then' following 'if'  ,
got"+lastTok.str+"at"+lastTok.loc.  asString() 
)


Variable Documentation

start __pad0__

Definition at line 21093 of file TransitionParser.y.

blk_fields __pad100__

Definition at line 21950 of file TransitionParser.y.

blk_fields __pad101__ = AST::make(at_fields, $1->loc, $1)

Definition at line 21955 of file TransitionParser.y.

blk_field __pad102__

Definition at line 21962 of file TransitionParser.y.

blk_field __pad103__ = AST::make(at_field, $1->loc, $1, $3)

Definition at line 21966 of file TransitionParser.y.

blk_field __pad104__ = AST::make(at_fill, $1.loc, $3)

Definition at line 21972 of file TransitionParser.y.

blk_methods_only __pad105__ = AST::make(at_fill, $1.loc, $3, $5)

Definition at line 21979 of file TransitionParser.y.

blk_methods_only __pad106__ = AST::make(at_fields, $1->loc, $1)

Definition at line 21984 of file TransitionParser.y.

blk_methdecl __pad107__

Definition at line 21991 of file TransitionParser.y.

blk_fields_and_methods __pad108__ = AST::make(at_methdecl, $1->loc, $1, $3)

Definition at line 21995 of file TransitionParser.y.

blk_fields_and_methods __pad109__ = AST::make(at_fields, $1->loc, $1)

Definition at line 22000 of file TransitionParser.y.

trn_implicit_module __pad10__

Definition at line 21198 of file TransitionParser.y.

blk_fields_and_methods __pad110__ = AST::make(at_fields, $1->loc, $1)

Definition at line 22005 of file TransitionParser.y.

blk_fields_and_methods __pad111__

Definition at line 22012 of file TransitionParser.y.

blk_tvlist __pad112__

Definition at line 22018 of file TransitionParser.y.

blk_tvlist __pad113__ = AST::make(at_tvlist, $1->loc, $1)

Definition at line 22025 of file TransitionParser.y.

blk_prefix_type __pad114__

Definition at line 22025 of file TransitionParser.y.

blk_prefix_type __pad115__ = $1

Definition at line 22062 of file TransitionParser.y.

blk_prefix_type __pad116__ = AST::make(at_mutableType, $1.loc, $2)

Definition at line 22067 of file TransitionParser.y.

blk_postfix_type __pad117__ = AST::make(at_constType, $1.loc, $2)

Definition at line 22071 of file TransitionParser.y.

blk_type __pad118__ = $1

Definition at line 22076 of file TransitionParser.y.

blk_primary_type __pad119__ = $1

Definition at line 22081 of file TransitionParser.y.

trn_module __pad11__

Definition at line 21212 of file TransitionParser.y.

blk_primary_type __pad120__ = $1

Definition at line 22086 of file TransitionParser.y.

blk_primary_type __pad121__

Definition at line 22095 of file TransitionParser.y.

blk_primary_type __pad122__ = $2

Definition at line 22096 of file TransitionParser.y.

blk_primary_type __pad123__ = AST::make(at_boxedType, $1.loc, $3)

Definition at line 22103 of file TransitionParser.y.

blk_primary_type __pad124__ = AST::make(at_unboxedType, $1.loc, $3)

Definition at line 22108 of file TransitionParser.y.

primary_type __pad125__

Definition at line 22108 of file TransitionParser.y.

bool_type __pad126__

Definition at line 22130 of file TransitionParser.y.

primary_type __pad127__ = AST::make(at_primaryType, $1)

Definition at line 22141 of file TransitionParser.y.

primary_type __pad128__ = $1

Definition at line 22146 of file TransitionParser.y.

primary_type __pad129__ = AST::make(at_primaryType, $1)

Definition at line 22151 of file TransitionParser.y.

trn_module __pad12__

Definition at line 21229 of file TransitionParser.y.

int_type __pad130__ = AST::make(at_primaryType, $1)

Definition at line 22155 of file TransitionParser.y.

int_type __pad131__ = AST::make(at_primaryType, $1)

Definition at line 22160 of file TransitionParser.y.

int_type __pad132__ = AST::make(at_primaryType, $1)

Definition at line 22164 of file TransitionParser.y.

int_type __pad133__ = AST::make(at_primaryType, $1)

Definition at line 22168 of file TransitionParser.y.

uint_type __pad134__ = AST::make(at_primaryType, $1)

Definition at line 22172 of file TransitionParser.y.

uint_type __pad135__ = AST::make(at_primaryType, $1)

Definition at line 22176 of file TransitionParser.y.

uint_type __pad136__ = AST::make(at_primaryType, $1)

Definition at line 22180 of file TransitionParser.y.

uint_type __pad137__ = AST::make(at_primaryType, $1)

Definition at line 22184 of file TransitionParser.y.

any_int_type __pad138__ = AST::make(at_primaryType, $1)

Definition at line 22188 of file TransitionParser.y.

any_int_type __pad139__ = $1

Definition at line 22193 of file TransitionParser.y.

trn_if_definitions __pad13__

Definition at line 21248 of file TransitionParser.y.

any_int_type __pad140__ = $1

Definition at line 22197 of file TransitionParser.y.

float_type __pad141__ = AST::make(at_primaryType, $1)

Definition at line 22201 of file TransitionParser.y.

float_type __pad142__ = AST::make(at_primaryType, $1)

Definition at line 22206 of file TransitionParser.y.

float_type __pad143__ = AST::make(at_primaryType, $1)

Definition at line 22210 of file TransitionParser.y.

primary_type __pad144__ = AST::make(at_primaryType, $1)

Definition at line 22214 of file TransitionParser.y.

primary_type __pad145__ = $1

Definition at line 22219 of file TransitionParser.y.

primary_type __pad146__ = $1

Definition at line 22223 of file TransitionParser.y.

primary_type __pad147__ = AST::make(at_exceptionType, $1.loc)

Definition at line 22229 of file TransitionParser.y.

blk_postfix_type __pad148__ = $1

Definition at line 22235 of file TransitionParser.y.

blk_type __pad149__ = AST::make(at_boxedType, $2.loc, $1)

Definition at line 22241 of file TransitionParser.y.

trn_if_definitions __pad14__ = AST::make(at_Null, $1->loc, $1)

Definition at line 21253 of file TransitionParser.y.

trn_fneffect __pad150__ = $1

Definition at line 22247 of file TransitionParser.y.

trn_fneffect __pad151__ = AST::make(at_ident, LToken(tk_IMPURE, "impure"))

Definition at line 22252 of file TransitionParser.y.

trn_fneffect __pad152__ = AST::make(at_ident, $1)

Definition at line 22257 of file TransitionParser.y.

trn_fneffect __pad153__ = AST::make(at_ident, $1)

Definition at line 22262 of file TransitionParser.y.

blk_type_args __pad154__ = AST::make(at_ident, $1)

Definition at line 22267 of file TransitionParser.y.

blk_type_args __pad155__

Definition at line 22274 of file TransitionParser.y.

blk_fntype __pad156__

Definition at line 22274 of file TransitionParser.y.

blk_fntype __pad157__ = AST::make(at_fn, $1->loc, fnargVec, $6)

Definition at line 22285 of file TransitionParser.y.

blk_method_type __pad158__ = AST::make(at_fn, $1->loc, $4, $7)

Definition at line 22290 of file TransitionParser.y.

blk_method_type __pad159__ = AST::make(at_methType, $1->loc, fnargVec, $6)

Definition at line 22297 of file TransitionParser.y.

trn_if_definition __pad15__

Definition at line 21260 of file TransitionParser.y.

blk_type_cpair __pad160__ = AST::make(at_fn, $1->loc, $4, $7)

Definition at line 22302 of file TransitionParser.y.

blk_type_cpair __pad161__

Definition at line 22302 of file TransitionParser.y.

blk_postfix_type __pad162__

Definition at line 22302 of file TransitionParser.y.

blk_postfix_type __pad163__ = AST::make(at_arrayType, $1->loc, $1, $3)

Definition at line 22323 of file TransitionParser.y.

blk_primary_type __pad164__ = AST::make(at_vectorType, $1->loc, $1)

Definition at line 22328 of file TransitionParser.y.

blk_typeapp __pad165__ = $1

Definition at line 22339 of file TransitionParser.y.

blk_bitfieldtype __pad166__

Definition at line 22346 of file TransitionParser.y.

blk_bitfieldtype __pad167__ = AST::make(at_bitfieldType, $1->loc, $1, $3)

Definition at line 22351 of file TransitionParser.y.

blk_field_type __pad168__ = AST::make(at_bitfieldType, $1->loc, $1, $3)

Definition at line 22355 of file TransitionParser.y.

blk_field_type __pad169__ = $1

Definition at line 22361 of file TransitionParser.y.

trn_mod_definitions __pad16__ = $1

Definition at line 21264 of file TransitionParser.y.

blk_type_pl_byref __pad170__ = $1

Definition at line 22366 of file TransitionParser.y.

blk_type_pl_byref __pad171__ = $1

Definition at line 22374 of file TransitionParser.y.

blk_type_pl_byref __pad172__ = AST::make(at_byRefType, $1.loc, $2)

Definition at line 22379 of file TransitionParser.y.

blk_type_args_pl_byref __pad173__ = AST::make(at_arrayRefType, $1.loc, $2)

Definition at line 22384 of file TransitionParser.y.

blk_type_args_pl_byref __pad174__

Definition at line 22391 of file TransitionParser.y.

blk_bindingpattern __pad175__

Definition at line 22391 of file TransitionParser.y.

blk_bindingpattern __pad176__ = AST::make(at_identPattern, $1->loc, $1)

Definition at line 22401 of file TransitionParser.y.

blk_defpattern __pad177__ = AST::make(at_identPattern, $1->loc, $1, $3)

Definition at line 22406 of file TransitionParser.y.

blk_defpattern __pad178__ = AST::make(at_identPattern, $1->loc, $1)

Definition at line 22414 of file TransitionParser.y.

blk_lambdapatterns __pad179__ = AST::make(at_identPattern, $1->loc, $1, $3)

Definition at line 22418 of file TransitionParser.y.

trn_mod_definitions __pad17__ = AST::make(at_Null, $1->loc, $1)

Definition at line 21272 of file TransitionParser.y.

blk_lambdapatterns __pad180__

Definition at line 22426 of file TransitionParser.y.

blk_lambdapattern __pad181__

Definition at line 22426 of file TransitionParser.y.

blk_lambdapattern __pad182__ = AST::make(at_identPattern, $1->loc, $1)

Definition at line 22435 of file TransitionParser.y.

blk_expr_primary __pad183__

Definition at line 22443 of file TransitionParser.y.

blk_expr_apply __pad184__ = $1

Definition at line 22525 of file TransitionParser.y.

blk_expr_apply __pad185__ = $1

Definition at line 22537 of file TransitionParser.y.

blk_expr_apply __pad186__ = AST::make(at_sizeof, $1.loc, $3)

Definition at line 22541 of file TransitionParser.y.

blk_expr_apply __pad187__ = AST::make(at_bitsizeof, $1.loc, $3)

Definition at line 22545 of file TransitionParser.y.

blk_expr_apply __pad188__ = AST::make(at_dup, $1.loc, $3)

Definition at line 22550 of file TransitionParser.y.

blk_expr_apply __pad189__ = AST::make(at_deref, $1.loc, $3)

Definition at line 22554 of file TransitionParser.y.

trn_mod_definition __pad18__

Definition at line 21279 of file TransitionParser.y.

blk_expr_apply __pad190__

Definition at line 22554 of file TransitionParser.y.

blk_expr_apply __pad191__

Definition at line 22565 of file TransitionParser.y.

blk_expr_mixfix __pad192__

Definition at line 22572 of file TransitionParser.y.

blk_expr_mixfix __pad193__ = $1

Definition at line 22576 of file TransitionParser.y.

blk_mixfix_elem __pad194__ = $1

Definition at line 22582 of file TransitionParser.y.

blk_mixfix_elem __pad195__ = AST::make(at_mixfix, $1->loc, $1)

Definition at line 22594 of file TransitionParser.y.

blk_mixfix_arglist __pad196__ = AST::make(at_mixfix, $1.loc, AST::make(at_ident, $1), $2)

Definition at line 22616 of file TransitionParser.y.

blk_mixfix_arglist __pad197__ = AST::make(at_mixfix, $1->loc, $1)

Definition at line 22621 of file TransitionParser.y.

blk_expr_seq __pad198__

Definition at line 22621 of file TransitionParser.y.

blk_expr_seq __pad199__ = AST::make(at_begin, $1->loc, $1)

Definition at line 22685 of file TransitionParser.y.

blk_mod_definition __pad19__ = $1

Definition at line 21283 of file TransitionParser.y.

trn_uoc_body __pad1__

Definition at line 21101 of file TransitionParser.y.

blk_expr_seq __pad200__

Definition at line 22691 of file TransitionParser.y.

blk_actual_params __pad201__

Definition at line 22696 of file TransitionParser.y.

blk_actual_params __pad202__ = AST::make(at_Null)

Definition at line 22700 of file TransitionParser.y.

blk_nonempty_params __pad203__ = $1

Definition at line 22704 of file TransitionParser.y.

blk_nonempty_params __pad204__ = AST::make(at_Null, $1->loc, $1)

Definition at line 22708 of file TransitionParser.y.

blk_expr_primary __pad205__

Definition at line 22708 of file TransitionParser.y.

blk_expr_primary __pad206__ = $1

Definition at line 22719 of file TransitionParser.y.

blk_expr_primary __pad207__ = $1

Definition at line 22741 of file TransitionParser.y.

blk_expr __pad208__

Initial value:

Definition at line 22803 of file TransitionParser.y.

blk_expr_continue __pad209__ = $1

Definition at line 22810 of file TransitionParser.y.

blk_mod_definition __pad20__ = $1

Definition at line 21288 of file TransitionParser.y.

blk_expr __pad210__

Initial value:

 AST::make(at_return_from, $1.loc,
                 AST::make(at_ident, LToken(tk_BlkIdent, "__continue")),
                 AST::make(at_unit, $1.loc))

Definition at line 22814 of file TransitionParser.y.

blk_expr_from_return __pad211__ = $1

Definition at line 22821 of file TransitionParser.y.

blk_expr __pad212__ = AST::make(at_return_from, $1.loc, $2, $4)

Definition at line 22825 of file TransitionParser.y.

blk_expr_lambda __pad213__ = $1

Definition at line 22835 of file TransitionParser.y.

blk_expr_lambda __pad214__ = AST::make(at_lambda, $1.loc, argVec, iRetBlock)

Definition at line 22843 of file TransitionParser.y.

blk_expr __pad215__ = AST::make(at_lambda, $1.loc, $3, iRetBlock)

Definition at line 22851 of file TransitionParser.y.

blk_expr_return __pad216__ = $1

Definition at line 22857 of file TransitionParser.y.

blk_expr __pad217__

Initial value:

 AST::make(at_return_from, $1.loc,
                 AST::make(at_ident, LToken(tk_BlkIdent, "__return")), $2)

Definition at line 22861 of file TransitionParser.y.

blk_expr_if_then_else __pad218__ = $1

Definition at line 22868 of file TransitionParser.y.

blk_expr __pad219__ = AST::make(at_if, $1.loc, $2, $5, $8)

Definition at line 22873 of file TransitionParser.y.

blk_common_definition __pad21__ = $1

Definition at line 21293 of file TransitionParser.y.

blk_expr __pad220__ = AST::make(at_unit, $1.loc)

Definition at line 22881 of file TransitionParser.y.

blk_expr __pad221__

Initial value:

 AST::make(at_if, $1.loc, $2, $5,
                 AST::make(at_unit, $1.loc))

Definition at line 22901 of file TransitionParser.y.

blk_expr_when __pad222__ = $1

Definition at line 22908 of file TransitionParser.y.

blk_expr_when __pad223__ = AST::make(at_when, $1.loc, $2, $4)

Definition at line 22912 of file TransitionParser.y.

blk_expr __pad224__ = AST::make(at_when, $1.loc, $2, $4)

Definition at line 22919 of file TransitionParser.y.

blk_expr_unless __pad225__ = $1

Definition at line 22923 of file TransitionParser.y.

blk_expr __pad226__ = AST::make(at_unless, $1.loc, $2, $4)

Definition at line 22927 of file TransitionParser.y.

blk_expr __pad227__ = AST::make(at_setbang, $2.loc, $1, $3)

Definition at line 22939 of file TransitionParser.y.

blk_expr_switch __pad228__ = $1

Definition at line 22955 of file TransitionParser.y.

blk_sw_legs __pad229__

Definition at line 22976 of file TransitionParser.y.

blk_common_definition __pad22__ = $1

Definition at line 21298 of file TransitionParser.y.

blk_sw_legs __pad230__

Definition at line 22981 of file TransitionParser.y.

blk_sw_leg __pad231__ = AST::make(at_usw_legs, $1->loc, $1)

Definition at line 22982 of file TransitionParser.y.

blk_expr_switch_matches __pad232__

Definition at line 22995 of file TransitionParser.y.

blk_expr_switch_matches __pad233__ = AST::make(at_Null, $1->loc, $1)

Definition at line 22996 of file TransitionParser.y.

blk_expr_switch_match __pad234__

Definition at line 22996 of file TransitionParser.y.

blk_expr_switch_match __pad235__ = AST::make(at_select, $1->loc, $1, $3)

Definition at line 23020 of file TransitionParser.y.

blk_opt_otherwise __pad236__ = AST::make(at_select, $1->loc, usesel, $5)

Definition at line 23027 of file TransitionParser.y.

blk_opt_otherwise __pad237__ = $1

Definition at line 23033 of file TransitionParser.y.

blk_otherwise __pad238__ = AST::make(at_Null)

Definition at line 23037 of file TransitionParser.y.

blk_expr __pad239__ = AST::make(at_otherwise, $1.loc, $2)

Definition at line 23041 of file TransitionParser.y.

blk_type_val_definition __pad23__ = $1

Definition at line 21303 of file TransitionParser.y.

blk_expr_try __pad240__ = $1

Definition at line 23047 of file TransitionParser.y.

blk_expr_try __pad241__

Definition at line 23068 of file TransitionParser.y.

blk_expr __pad242__

Definition at line 23099 of file TransitionParser.y.

blk_expr_throw __pad243__ = $1

Definition at line 23100 of file TransitionParser.y.

blk_expr __pad244__ = AST::make(at_throw, $1.loc, $2)

Definition at line 23104 of file TransitionParser.y.

blk_expr_let __pad245__ = $1

Definition at line 23110 of file TransitionParser.y.

blk_letbinding __pad246__

Definition at line 23119 of file TransitionParser.y.

blk_letbindings __pad247__ = AST::make(at_letbinding, $1->loc, $1, $3)

Definition at line 23120 of file TransitionParser.y.

blk_letbindings __pad248__ = AST::make(at_letbindings, $1->loc, $1)

Definition at line 23125 of file TransitionParser.y.

blk_expr __pad249__

Definition at line 23131 of file TransitionParser.y.

blk_type_val_definition __pad24__ = $1

Definition at line 21316 of file TransitionParser.y.

blk_expr_letrec __pad250__ = $1

Definition at line 23136 of file TransitionParser.y.

blk_expr __pad251__ = AST::make(at_letrec, $1.loc, lbs, $6, AST::make(at_constraints))

Definition at line 23145 of file TransitionParser.y.

blk_expr_loop __pad252__ = $1

Definition at line 23154 of file TransitionParser.y.

blk_loopbindings __pad253__ = AST::make(at_loop, $1.loc, $3, iTest, iContinueBlock)

Definition at line 23175 of file TransitionParser.y.

blk_loopbindings __pad254__ = AST::make(at_loopbindings)

Definition at line 23180 of file TransitionParser.y.

blk_nonempty_loopbindings __pad255__ = $1

Definition at line 23184 of file TransitionParser.y.

blk_nonempty_loopbindings __pad256__ = AST::make(at_loopbindings, $1->loc, $1)

Definition at line 23188 of file TransitionParser.y.

blk_expr_loopbinding __pad257__

Definition at line 23194 of file TransitionParser.y.

trn_literal __pad258__ = AST::make(at_loopbinding, $1->loc, $1, $3, $5)

Definition at line 23201 of file TransitionParser.y.

trn_literal __pad259__ = $1

Definition at line 23208 of file TransitionParser.y.

blk_type_val_definition __pad25__ = $1

Definition at line 21321 of file TransitionParser.y.

trn_literal __pad260__ = $1

Definition at line 23213 of file TransitionParser.y.

trn_literal __pad261__ = $1

Definition at line 23219 of file TransitionParser.y.

trn_literal __pad262__ = $1

Definition at line 23224 of file TransitionParser.y.

blk_exident __pad263__ = $1

Definition at line 23229 of file TransitionParser.y.

blk_exident __pad264__ = AST::make(at_ident, $1)

Definition at line 23235 of file TransitionParser.y.

blk_ident __pad265__ = AST::make(at_ident, $1)

Definition at line 23240 of file TransitionParser.y.

blk_ident __pad266__ = AST::make(at_ident, $1)

Definition at line 23246 of file TransitionParser.y.

blk_ident __pad267__ = AST::make(at_ident, $1)

Definition at line 23250 of file TransitionParser.y.

blk_ident __pad268__ = AST::make(at_ident, $1)

Definition at line 23255 of file TransitionParser.y.

blk_ident __pad269__ = AST::make(at_ident, $1)

Definition at line 23259 of file TransitionParser.y.

blk_type_val_definition __pad26__ = $1

Definition at line 21326 of file TransitionParser.y.

blk_useident __pad270__ = AST::make(at_ident, $1)

Definition at line 23266 of file TransitionParser.y.

blk_useident __pad271__ = $1

Definition at line 23271 of file TransitionParser.y.

blk_defident __pad272__ = usesel

Definition at line 23278 of file TransitionParser.y.

typevar __pad273__ = $1

Definition at line 23284 of file TransitionParser.y.

boolLit __pad274__

Definition at line 23292 of file TransitionParser.y.

boolLit __pad275__ = AST::makeBoolLit($1)

Definition at line 23298 of file TransitionParser.y.

charLit __pad276__ = AST::makeBoolLit($1)

Definition at line 23302 of file TransitionParser.y.

intLit __pad277__ = AST::makeCharLit($1)

Definition at line 23307 of file TransitionParser.y.

intLit __pad278__ = AST::makeIntLit($1)

Definition at line 23312 of file TransitionParser.y.

natLit __pad279__ = AST::makeIntLit($1)

Definition at line 23317 of file TransitionParser.y.

blk_type_val_definition __pad27__ = $1

Definition at line 21331 of file TransitionParser.y.

floatLit __pad280__ = AST::makeIntLit($1)

Definition at line 23322 of file TransitionParser.y.

strLit __pad281__ = AST::makeFloatLit($1)

Definition at line 23327 of file TransitionParser.y.

ILCB __pad282__ = AST::makeStringLit($1)

Definition at line 23332 of file TransitionParser.y.

IRCB __pad283__

Definition at line 23340 of file TransitionParser.y.

OptRCB __pad284__

Definition at line 23355 of file TransitionParser.y.

OptRCB __pad285__ = tok

Definition at line 23373 of file TransitionParser.y.

IsILCB __pad286__

Definition at line 23380 of file TransitionParser.y.

IsILCB __pad287__

Definition at line 23384 of file TransitionParser.y.

SC __pad288__

Definition at line 23416 of file TransitionParser.y.

SC __pad289__

Definition at line 23418 of file TransitionParser.y.

blk_type_val_definition __pad28__ = $1

Definition at line 21336 of file TransitionParser.y.

blk_constraints __pad29__ = $1

Definition at line 21341 of file TransitionParser.y.

trn_uoc_body __pad2__

Definition at line 21105 of file TransitionParser.y.

blk_constraints __pad30__

Definition at line 21357 of file TransitionParser.y.

blk_constraint_seq __pad31__ = $2

Definition at line 21358 of file TransitionParser.y.

blk_constraint_seq __pad32__

Definition at line 21358 of file TransitionParser.y.

blk_constraint __pad33__ = AST::make(at_constraints, $1->loc, $1)

Definition at line 21369 of file TransitionParser.y.

blk_constraint __pad34__ = $1

Definition at line 21374 of file TransitionParser.y.

blk_ptype_name __pad35__ = AST::make(at_tcapp, $1->loc, $1)

Definition at line 21379 of file TransitionParser.y.

blk_ptype_name __pad36__ = AST::make(at_Null, $1->loc, $1, tvlist)

Definition at line 21398 of file TransitionParser.y.

blk_type_definition __pad37__ = AST::make(at_Null, $1->loc, $1, $3)

Definition at line 21409 of file TransitionParser.y.

blk_type_definition __pad38__

Definition at line 21419 of file TransitionParser.y.

blk_type_definition __pad39__

Definition at line 21438 of file TransitionParser.y.

trn_uoc_body __pad3__

Definition at line 21109 of file TransitionParser.y.

blk_repr_constructors __pad40__

Definition at line 21451 of file TransitionParser.y.

blk_repr_constructors __pad41__ = AST::make(at_reprctrs, $1->loc, $1)

Definition at line 21452 of file TransitionParser.y.

blk_repr_constructor __pad42__

Definition at line 21462 of file TransitionParser.y.

blk_repr_reprs __pad43__

Definition at line 21471 of file TransitionParser.y.

blk_repr_reprs __pad44__ = AST::make(at_Null, $1->loc, $1)

Definition at line 21472 of file TransitionParser.y.

blk_repr_repr __pad45__

Definition at line 21472 of file TransitionParser.y.

blk_externals __pad46__ = AST::make(at_reprrepr, $2.loc, $1, $3)

Definition at line 21483 of file TransitionParser.y.

blk_externals __pad47__

Definition at line 21495 of file TransitionParser.y.

blk_externals __pad48__

Definition at line 21501 of file TransitionParser.y.

blk_type_definition __pad49__

Definition at line 21508 of file TransitionParser.y.

blk_version __pad4__

Definition at line 21114 of file TransitionParser.y.

blk_type_decl __pad50__

Definition at line 21523 of file TransitionParser.y.

blk_type_decl __pad51__

Definition at line 21539 of file TransitionParser.y.

blk_type_decl __pad52__

Definition at line 21555 of file TransitionParser.y.

blk_optval __pad53__

Definition at line 21575 of file TransitionParser.y.

blk_optval __pad54__

Definition at line 21585 of file TransitionParser.y.

blk_val __pad55__ = $1

Definition at line 21586 of file TransitionParser.y.

blk_val __pad56__ = AST::make(at_boxedCat)

Definition at line 21591 of file TransitionParser.y.

blk_val __pad57__ = AST::make(at_unboxedCat, $1)

Definition at line 21596 of file TransitionParser.y.

blk_openclosed __pad58__ = AST::make(at_opaqueCat, $1)

Definition at line 21601 of file TransitionParser.y.

blk_openclosed __pad59__

Definition at line 21608 of file TransitionParser.y.

trn_interface __pad5__

Definition at line 21125 of file TransitionParser.y.

blk_type_definition __pad60__ = AST::make(at_oc_closed, $1)

Definition at line 21612 of file TransitionParser.y.

blk_type_definition __pad61__

Definition at line 21631 of file TransitionParser.y.

blk_tc_definition __pad62__

Definition at line 21648 of file TransitionParser.y.

blk_tc_decls __pad63__

Definition at line 21659 of file TransitionParser.y.

blk_method_decls __pad64__ = AST::make(at_tcdecls)

Definition at line 21663 of file TransitionParser.y.

blk_method_decls __pad65__ = AST::make(at_method_decls, loc)

Definition at line 21687 of file TransitionParser.y.

blk_method_decl __pad66__

Definition at line 21694 of file TransitionParser.y.

blk_ti_definition __pad67__ = AST::make(at_method_decl, $1->loc, $1, $3)

Definition at line 21700 of file TransitionParser.y.

blk_ti_definition __pad68__

Initial value:

Definition at line 21706 of file TransitionParser.y.

blk_method_bindings __pad69__ = AST::make(at_definstance, $2.loc, $3, $5, $1)

Definition at line 21711 of file TransitionParser.y.

blk_ifident __pad6__

Definition at line 21171 of file TransitionParser.y.

blk_method_bindings __pad70__ = AST::make(at_tcmethods, $1->loc, $1)

Definition at line 21716 of file TransitionParser.y.

blk_method_binding __pad71__

Definition at line 21722 of file TransitionParser.y.

blk_value_definition __pad72__ = AST::make(at_tcmethod_binding, $1->loc, $1, $3)

Definition at line 21727 of file TransitionParser.y.

blk_value_definition __pad73__ = AST::make(at_define, $2.loc, $3, $5, $1)

Definition at line 21738 of file TransitionParser.y.

blk_value_definition __pad74__ = AST::make(at_recdef, $2.loc, iP, iLambda, $1)

Definition at line 21749 of file TransitionParser.y.

blk_fndef_tail __pad75__ = AST::make(at_recdef, $2.loc, iP, iLambda, $1)

Definition at line 21761 of file TransitionParser.y.

blk_fndef_tail __pad76__ = $2

Definition at line 21766 of file TransitionParser.y.

blk_fndef_tail __pad77__ = $2

Definition at line 21770 of file TransitionParser.y.

blk_value_declaration __pad78__ = $2

Definition at line 21774 of file TransitionParser.y.

blk_import_definition __pad79__

Definition at line 21793 of file TransitionParser.y.

blk_ifident __pad7__

Definition at line 21180 of file TransitionParser.y.

blk_import_definition __pad80__ = AST::make(at_importAs, $1.loc, ifIdent, $4)

Definition at line 21815 of file TransitionParser.y.

blk_import_definition __pad81__ = AST::make(at_import, $1.loc, ifIdent)

Definition at line 21825 of file TransitionParser.y.

blk_importList __pad82__

Definition at line 21837 of file TransitionParser.y.

blk_importList __pad83__ = AST::make(at_Null, $1->loc, $1)

Definition at line 21841 of file TransitionParser.y.

blk_alias __pad84__

Definition at line 21841 of file TransitionParser.y.

blk_alias __pad85__ = AST::make(at_ifsel, $1->loc, $1, $1->getDeepCopy())

Definition at line 21853 of file TransitionParser.y.

blk_provide_definition __pad86__ = AST::make(at_ifsel, $1->loc, $1, $3)

Definition at line 21858 of file TransitionParser.y.

blk_provideList __pad87__

Definition at line 21868 of file TransitionParser.y.

blk_provideList __pad88__ = AST::make(at_Null, $1->loc, $1)

Definition at line 21872 of file TransitionParser.y.

blk_opt_declares __pad89__

Definition at line 21872 of file TransitionParser.y.

trn_module_seq __pad8__

Definition at line 21186 of file TransitionParser.y.

blk_opt_declares __pad90__ = AST::make(at_declares)

Definition at line 21885 of file TransitionParser.y.

blk_declares __pad91__ = $1

Definition at line 21889 of file TransitionParser.y.

blk_declares __pad92__ = AST::make(at_declares, $1->loc, $1)

Definition at line 21894 of file TransitionParser.y.

blk_declare __pad93__

Definition at line 21901 of file TransitionParser.y.

blk_decl __pad94__ = $2

Definition at line 21905 of file TransitionParser.y.

blk_decl __pad95__ = AST::make(at_declare, $1->loc, $1, $3)

Definition at line 21911 of file TransitionParser.y.

blk_constructors __pad96__ = AST::make(at_declare, $1->loc, $1)

Definition at line 21920 of file TransitionParser.y.

blk_constructors __pad97__ = AST::make(at_constructors, $1->loc, $1)

Definition at line 21927 of file TransitionParser.y.

blk_constructor __pad98__

Definition at line 21933 of file TransitionParser.y.

blk_constructor __pad99__ = AST::make(at_constructor, $1->loc, $1)

Definition at line 21938 of file TransitionParser.y.

trn_module_seq __pad9__

Definition at line 21194 of file TransitionParser.y.

shared_ptr<AST> argVec = AST::make(at_argVec, $2.loc)

Definition at line 22839 of file TransitionParser.y.

Referenced by cl_convert_ast(), FixDefs(), refize(), resolve(), typeEqInfer(), and typeInfer().

astType = $3 at_array

Definition at line 22570 of file TransitionParser.y.

astType = $3 at_vector

Definition at line 22563 of file TransitionParser.y.

astType = $1 at_module

Definition at line 21200 of file TransitionParser.y.

Referenced by cl_convert_ast().

shared_ptr<AST> ctr = AST::make(at_constructor, $1->loc, $1)

Definition at line 21464 of file TransitionParser.y.

Referenced by calc_unin_size(), InferUnion(), reprXform(), Specialize(), toc(), typeEqInfer(), and typeInfer().

shared_ptr<AST> declIdent = $3->child(0)

Definition at line 21786 of file TransitionParser.y.

shared_ptr<AST> declType = $3->child(1)

Definition at line 21787 of file TransitionParser.y.

shared_ptr<AST> dummyID

Initial value:

 
    AST::make(at_ident, LToken(tk_BlkIdent, "__dummy"))

Definition at line 23069 of file TransitionParser.y.

externalName = $2->s

Definition at line 21507 of file TransitionParser.y.

tok flags = (TF_INSERTED|TF_BY_PARSER)

Definition at line 23362 of file TransitionParser.y.

yylval tok flags = TF_REPROCESS

Definition at line 23357 of file TransitionParser.y.

flags = (ID_IS_GLOBAL)

Definition at line 23283 of file TransitionParser.y.

yylval tok flags = TF_REPROCESS

Definition at line 22895 of file TransitionParser.y.

flags = (ID_IS_GLOBAL)

Definition at line 21947 of file TransitionParser.y.

flags = (ID_IS_GLOBAL)

Definition at line 21937 of file TransitionParser.y.

flags = AST::make(at_proclaim, $2.loc, declIdent, declType, $1) $4->flags

Definition at line 21790 of file TransitionParser.y.

flags = ID_IS_GLOBAL

Definition at line 21698 of file TransitionParser.y.

flags = ID_IS_GLOBAL

Definition at line 21639 of file TransitionParser.y.

flags = ID_IS_GLOBAL

Definition at line 21622 of file TransitionParser.y.

flags = $5->flags

Definition at line 21572 of file TransitionParser.y.

flags = $5->flags

Definition at line 21552 of file TransitionParser.y.

flags = $5->flags

Definition at line 21536 of file TransitionParser.y.

flags = AST::make(at_Null, $1.loc) DEF_IS_EXTERNAL

Definition at line 21506 of file TransitionParser.y.

flags = AST::make(at_Null, $1.loc) DEF_IS_EXTERNAL

Definition at line 21500 of file TransitionParser.y.

flags = AST::make(at_Null) NO_FLAGS

Definition at line 21494 of file TransitionParser.y.

flags = (ID_IS_GLOBAL)

Definition at line 21463 of file TransitionParser.y.

Referenced by blk_BitcP(), c_decl(), CMangle(), decl(), declare(), doChildren(), emit_fnxn_decl(), main(), MixFixNode::PrettyPrint(), resolve(), and toCtype().

shared_ptr<AST> fnargVec = AST::make(at_fnargVec, $5.loc)

Definition at line 22296 of file TransitionParser.y.

shared_ptr<AST> fnargVec = AST::make(at_fnargVec, $5.loc)

Definition at line 22284 of file TransitionParser.y.

shared_ptr<AST> iBody

Initial value:

Definition at line 23167 of file TransitionParser.y.

shared_ptr<AST> iContinueBlock

Initial value:

    AST::make(at_labeledBlock, $1.loc,
              AST::make(at_ident, LToken(tk_BlkIdent, "__continue")),
              iBody)

Definition at line 23170 of file TransitionParser.y.

identType = AST::make(at_ident, $1) id_tvar

Definition at line 23291 of file TransitionParser.y.

identType = id_tcmethod

Definition at line 21699 of file TransitionParser.y.

shared_ptr<AST> ifIdent = AST::make(at_ifident, $2)

Definition at line 21864 of file TransitionParser.y.

shared_ptr<AST> ifIdent = AST::make(at_ifident, $2)

Definition at line 21830 of file TransitionParser.y.

shared_ptr<AST> ifIdent = AST::make(at_ifident, $2)

Definition at line 21820 of file TransitionParser.y.

shared_ptr<AST> ifIdent = AST::make(at_ifident, $2)

Definition at line 21809 of file TransitionParser.y.

shared_ptr<AST> iLambda = AST::make(at_lambda, $2.loc, $5, iRetBlock)

Definition at line 21758 of file TransitionParser.y.

shared_ptr<AST> iLambda

Initial value:

Definition at line 21745 of file TransitionParser.y.

Referenced by blk_BitcP().

shared_ptr<AST> iP = AST::make(at_identPattern, $3->loc, $3)

Definition at line 21760 of file TransitionParser.y.

shared_ptr<AST> iP = AST::make(at_identPattern, $3->loc, $3)

Definition at line 21748 of file TransitionParser.y.

shared_ptr<AST> iRetBlock

Initial value:

    AST::make(at_labeledBlock, $1.loc, 
              AST::make(at_ident, LToken(tk_BlkIdent, "__return")), $5)

Definition at line 22848 of file TransitionParser.y.

shared_ptr<AST> iRetBlock

Initial value:

    AST::make(at_labeledBlock, $1.loc, 
              AST::make(at_ident, LToken(tk_BlkIdent, "__return")), $4)

Definition at line 22840 of file TransitionParser.y.

shared_ptr<AST> iRetBlock

Initial value:

    AST::make(at_labeledBlock, $2.loc, 
              AST::make(at_ident, LToken(tk_BlkIdent, "__return")), $7)

Definition at line 21755 of file TransitionParser.y.

shared_ptr<AST> iRetBlock

Initial value:

    AST::make(at_labeledBlock, $2.loc, 
              AST::make(at_ident, LToken(tk_BlkIdent, "__return")), $6)

Definition at line 21742 of file TransitionParser.y.

shared_ptr<AST> iTest

Initial value:

Definition at line 23164 of file TransitionParser.y.

LToken lastTok = lexer->getLastToken()

Definition at line 22885 of file TransitionParser.y.

LToken lastTok = lexer->getLastToken()

Definition at line 22877 of file TransitionParser.y.

shared_ptr<AST> lbs = $3

Definition at line 23141 of file TransitionParser.y.

Referenced by cl_convert_ast(), findusedef(), getLastLB(), getLetintoLetStream(), loopOK(), newGrandLet(), refize(), resolve(), Specialize(), ssa(), toc(), and typeInfer().

loc = $1.loc

Definition at line 22571 of file TransitionParser.y.

loc = $1.loc

Definition at line 22564 of file TransitionParser.y.

LexLoc loc

Definition at line 21686 of file TransitionParser.y.

Referenced by buildLinkedAST(), main(), and typeAsAst().

lexer nModules

Definition at line 21208 of file TransitionParser.y.

cerr<< $1.loc.asString() << ": The token \"" << $1.str << "\" is reserved for future use.\n"; lexer-> num_errors

Definition at line 23265 of file TransitionParser.y.

shared_ptr<AST> ow

Initial value:

 AST::make(at_try, $1.loc, $2, dummyID,
                 AST::make(at_usw_legs, $5->loc), /* empty */
                 $5) $5

Definition at line 23076 of file TransitionParser.y.

Referenced by ssa(), toc(), and typeInfer().

yylval tok prevTokType = '}'

Definition at line 23361 of file TransitionParser.y.

tok prevTokType = yylval.tok.prevTokType

Definition at line 23360 of file TransitionParser.y.

printVariant = $2 pf_PARENWRAP

Definition at line 22092 of file TransitionParser.y.

iLambda printVariant = pf_IMPLIED

Definition at line 21759 of file TransitionParser.y.

iLambda printVariant = pf_IMPLIED

Definition at line 21747 of file TransitionParser.y.

printVariant = AST::make(at_oc_open) pf_IMPLIED

Definition at line 21607 of file TransitionParser.y.

printVariant = AST::make(at_boxedCat) pf_IMPLIED

Definition at line 21582 of file TransitionParser.y.

printVariant = pf_IMPLIED

Definition at line 21201 of file TransitionParser.y.

return

Definition at line 21097 of file TransitionParser.y.

usesel s = $1->s + "." + $3->s

Definition at line 23277 of file TransitionParser.y.

usesel s = $1->s + "." + $3->s

Definition at line 23026 of file TransitionParser.y.

s = AST::make(at_primaryType, $1.loc) "unit"

Definition at line 22129 of file TransitionParser.y.

Referenced by aliasPublicBindings(), sherpa::BigNum::asString(), EmitExpr(), importIfBinding(), Type::mangledString(), sherpa::sgetenv(), sherpa::LexLoc::updateWith(), useIFGamma(), useIFInsts(), sherpa::LexLoc::with(), and xmlMangle().

lexer showNextError = false

Definition at line 22899 of file TransitionParser.y.

lexer showNextError = false

Definition at line 21884 of file TransitionParser.y.

lexer showNextError = false

Definition at line 21491 of file TransitionParser.y.

LToken tok = LToken('}', yylval.tok.loc, yylval.tok.loc, "}")

Definition at line 23359 of file TransitionParser.y.

Referenced by TransitionLexer::beginBlock(), TransitionLexer::endBlock(), TransitionLexer::lex(), AST::makeBoolLit(), AST::makeCharLit(), AST::makeFloatLit(), AST::makeIntLit(), AST::makeStringLit(), and TransitionLexer::pushTokenBack().

shared_ptr<AST> tvlist = AST::make(at_tvlist, $1->loc)

Definition at line 21390 of file TransitionParser.y.

Referenced by blk_BitcP(), cl_convert_ast(), and Specialize().

Declaration forms require a type

Definition at line 21784 of file TransitionParser.y.

shared_ptr<UocInfo> uoc = UocInfo::make(uocName, lexer->here.origin, $$)

Definition at line 21207 of file TransitionParser.y.

Referenced by buildLinkedAST(), cl_convert(), EmitBitO(), fixinit(), FQNize(), polyinst(), removeAndReRandT(), reRandT(), and Specialize().

string uocName

Initial value:

   UocInfo::UocNameFromSrcName(lexer->here.origin, lexer->nModules)

Definition at line 21204 of file TransitionParser.y.

Referenced by initGamma().

shared_ptr<AST> usesel = AST::make(at_usesel, $2.loc, $1, $3)

Definition at line 23276 of file TransitionParser.y.

shared_ptr<AST> usesel = AST::make(at_usesel, $1->loc, $1, $3)

Definition at line 23025 of file TransitionParser.y.

shared_ptr<AST> valCat

Initial value:

 
    AST::make(at_unboxedCat, LToken(tk_UNBOXED, "unboxed"))

Definition at line 21516 of file TransitionParser.y.

yyclearin

Definition at line 22897 of file TransitionParser.y.

yyerrok

Definition at line 21883 of file TransitionParser.y.

yyerrok

Definition at line 21490 of file TransitionParser.y.


Generated on Sat Feb 4 23:59:29 2012 for BitC Compiler by  doxygen 1.4.7