Trabalho Prático 2
Processamento de Linguagens
Referência ao ficheiro commands.c

Este ficheiro contem as instruções necessárias para executar os comandos vindos do grammar.y. Mais...

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "../src/commands.h"
#include "../src/imageraster.h"
#include "../include/grammar.tab.h"

Ir para o código fonte deste ficheiro.

Funções

ColourparseColour (Value *r, Value *g, Value *b)
 Recebe 3 valores e cria uma estrutura de cor. Mais...
 
DimensionparseDimension (Value *x, Value *y)
 Recebe 2 valores e devolve uma estrutura do tipo dimension (x x y) Mais...
 
PointparsePoint (Point *lst, Value *x, Value *y)
 Recebe 2 valores de x e y e uma lista de pontos. Mais...
 
ValueparseValue (int val, char *str)
 Cria uma estutura do tipo value dependendo se enviamos uma string ou um valor. Mais...
 
CommandnewCommand (int command, Point *pt, Dimension *dim, Colour *col, Value *val, Value *val2, Value *str, Value *str2, Command *child)
 Função que cria um comando e o devolve. Mais...
 
CommandinsertCommand (Command *lst, Command *cmd)
 Recebe uma lista de comandos e um comando e insere o mesmo na lista. Mais...
 
VarListupdateVar (VarList *lst, char *varName, int varValue)
 Altera o valor de uma variavel. Mais...
 
int evalVar (VarList *lst, char *varName)
 Devolve o valor de uma variavel através do nome da mesma. Mais...
 
int evalValue (VarList *lst, Value *val)
 
ImagenewImage ()
 Cria uma nova estrutura que irá servir para correr os comandos. Mais...
 
void Run (Command *lst)
 Função chamada no final de fazer parsing à gramatica program : instructionList { Run($1); } A mesma cria uma imagem e corre os comandos contidos na lst. Mais...
 
void runCommands (Command *lst, Image *image)
 Função recursiva principal que corre os comandos pertencentes à lista de comandos que foi feito o parsing. Mais...
 
int gera_random (int min, int max)
 Gera um numero random entre min e max. Mais...
 

Descrição detalhada

Este ficheiro contem as instruções necessárias para executar os comandos vindos do grammar.y.

Autor
  • José Moura <a13742|at|alunos.ipca.pt>
  • Óscar Silva <a14383|at|alunos.ipca.pt>
  • Daniel Filipe <a17442|at|alunos.ipca.pt>
Data
01 Jan 2020

Definido no ficheiro commands.c.

Documentação das funções

◆ evalValue()

int evalValue ( VarList lst,
Value val 
)

Devolve o valor de uma variavel através da estrutura de uma variavel

Parâmetros
lstLista de Variaveis
valValor Struct
Retorna

Definido na linha 174 do ficheiro commands.c.

Referências evalVar(), _Value::val e _Value::var.

◆ evalVar()

int evalVar ( VarList lst,
char *  varName 
)

Devolve o valor de uma variavel através do nome da mesma.

Parâmetros
lstLista de Variaveis
varNameNome da Variavel
Retorna
Inteiro do valor da variavel

Definido na linha 156 do ficheiro commands.c.

Referências evalVar(), _varList::next, _varList::val e _varList::var.

Referenciado por evalValue() e evalVar().

◆ gera_random()

int gera_random ( int  min,
int  max 
)

Gera um numero random entre min e max.

Parâmetros
min
max
Retorna

Definido na linha 505 do ficheiro commands.c.

◆ insertCommand()

Command* insertCommand ( Command lst,
Command cmd 
)

Recebe uma lista de comandos e um comando e insere o mesmo na lista.

Parâmetros
lstLista de Comandos
cmdNodo
Retorna

Definido na linha 118 do ficheiro commands.c.

Referências _Command::next.

◆ newCommand()

Command* newCommand ( int  command,
Point pt,
Dimension dim,
Colour col,
Value val,
Value val2,
Value str,
Value str2,
Command child 
)

Função que cria um comando e o devolve.

Parâmetros
commandInteiro que identifica o comando
ptPontos (1,2 3,4 5,6)
dimDimensoes (20x10)
colCor (r:g:b)
valUm valor (Usado para variaveis ou valores inteiros)
val2Um outro Valor (Usado para variaveis ou valores inteiros)
strUm valor string (Usado para comandos que necessitem de strings tipo LOAD e SAVE)
str2
childCommandos encadeados neste
Retorna

Definido na linha 95 do ficheiro commands.c.

Referências _Command::child, _Command::color, _Command::command, _Command::dimension, _Command::next, _Command::point, _Command::str, _Command::str2, _Command::val e _Command::val2.

◆ newImage()

Image* newImage ( )

Cria uma nova estrutura que irá servir para correr os comandos.

Retorna
Estrutura com uma imagem
Veja também
Image

Definido na linha 190 do ficheiro commands.c.

Referências _Image::b, _Image::g, _Image::r, _Image::vars, _Image::x_size e _Image::y_size.

Referenciado por Run().

◆ parseColour()

Colour* parseColour ( Value r,
Value g,
Value b 
)

Recebe 3 valores e cria uma estrutura de cor.

Parâmetros
rvalor da cor red
gvalor da cor gree
bvalor da cor blue
Retorna

Definido na linha 29 do ficheiro commands.c.

Referências _Colour::b, _Colour::g e _Colour::r.

◆ parseDimension()

Dimension* parseDimension ( Value x,
Value y 
)

Recebe 2 valores e devolve uma estrutura do tipo dimension (x x y)

Parâmetros
xvalor de x
yvalor de y
Retorna

Definido na linha 44 do ficheiro commands.c.

Referências _Dimension::x e _Dimension::y.

◆ parsePoint()

Point* parsePoint ( Point lst,
Value x,
Value y 
)

Recebe 2 valores de x e y e uma lista de pontos.

Parâmetros
lstlista de pontos
xvalor do ponto em x a adicionar à lista
yvalor do ponto em y a adicionar à lista
Retorna

Definido na linha 59 do ficheiro commands.c.

Referências _Point::next, _Point::x e _Point::y.

◆ parseValue()

Value* parseValue ( int  val,
char *  str 
)

Cria uma estutura do tipo value dependendo se enviamos uma string ou um valor.

Parâmetros
valvalor inteiro
strvalor string
Retorna

Definido na linha 74 do ficheiro commands.c.

Referências _Value::val e _Value::var.

◆ Run()

void Run ( Command lst)

Função chamada no final de fazer parsing à gramatica program : instructionList { Run($1); } A mesma cria uma imagem e corre os comandos contidos na lst.

Parâmetros
lstLista de Comandos a Correr

Definido na linha 208 do ficheiro commands.c.

Referências newImage() e runCommands().

◆ runCommands()

void runCommands ( Command lst,
Image image 
)

Função recursiva principal que corre os comandos pertencentes à lista de comandos que foi feito o parsing.

Parâmetros
lstLista de comandos
imageEstrutura com informação da imagem

Definido na linha 219 do ficheiro commands.c.

Referências _Command::command, _Command::next e runCommands().

Referenciado por Run() e runCommands().

◆ updateVar()

VarList* updateVar ( VarList lst,
char *  varName,
int  varValue 
)

Altera o valor de uma variavel.

Parâmetros
lstlista de variaveis
varNamenome da variavel
varValuenovo valor inteiro
Retorna

Definido na linha 131 do ficheiro commands.c.

Referências _varList::next, updateVar(), _varList::val e _varList::var.

Referenciado por updateVar().