Exemplo n.º 1
0
        public override void ExitPlayerVarsPlayerExpression(PlayerVarsPlayerExpression playerVarsPlayerExpression)
        {
            var playerClass = playerVarsPlayerExpression.NearestAncestorOfType <Root>().SourceFiles.SelectMany(x => x.ClassDeclarations)
                              .Where(x => x.Name == "Player").ToList();

            if (playerClass.Count > 1)
            {
                throw new CompilationError(playerClass.First().Context, "The class 'Player' can not be duplicated");
            }
            playerVarsPlayerExpression.Type = new ReferenceType(playerVarsPlayerExpression.Context, playerClass.First());
        }
Exemplo n.º 2
0
 public override INode VisitPlayerVarsPlayerExpression(PlayerVarsPlayerExpression playerVarsPlayerExpression)
 {
     return(new PlayerVarsPlayerExpression(playerVarsPlayerExpression.Context, playerVarsPlayerExpression.Children.Select(Visit)));
 }
Exemplo n.º 3
0
 public virtual void ExitPlayerVarsPlayerExpression(PlayerVarsPlayerExpression playerVarsPlayerExpression)
 {
 }
Exemplo n.º 4
0
 public virtual T VisitPlayerVarsPlayerExpression(PlayerVarsPlayerExpression playerVarsPlayerExpression)
 {
     return(VisitChildren(playerVarsPlayerExpression));
 }
Exemplo n.º 5
0
 public override void ExitPlayerVarsPlayerExpression(PlayerVarsPlayerExpression playerVarsPlayerExpression)
 {
     playerVarsPlayerExpression.ReplaceWith(playerVarsPlayerExpression.thisExpression);
 }