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

Ficheiro Header. Mais...

Ir para o código fonte deste ficheiro.

Estruturas de Dados

struct  _varList
 Estrutura que contem as variaveis e respectivos valores durante o runtime. Mais...
 
struct  _Value
 Estrutura que contem um valor, que poderá ser uma variavel ou um valor inteiro. Mais...
 
struct  _Dimension
 Estrutura que contem uma dimensão ex. 10x20. Mais...
 
struct  _Point
 Estrutura/Lista que contem um ou vários Pontos ex. (1,2 3,4 6,5) Mais...
 
struct  _Colour
 Estrutura que contem uma cor ex (255:255:255) Mais...
 
struct  _Command
 Estrutura/lista que contem um ou vários comando e seus argumentos. Mais...
 
struct  _Image
 Estrutura que contem a informação de uma imagem em runtime. Mais...
 

Macros

#define DEBUG   1
 

Definições de tipos

typedef struct _varList VarList
 Estrutura que contem as variaveis e respectivos valores durante o runtime. Mais...
 
typedef struct _Value Value
 Estrutura que contem um valor, que poderá ser uma variavel ou um valor inteiro. Mais...
 
typedef struct _Dimension Dimension
 Estrutura que contem uma dimensão ex. 10x20. Mais...
 
typedef struct _Point Point
 Estrutura/Lista que contem um ou vários Pontos ex. (1,2 3,4 6,5) Mais...
 
typedef struct _Colour Colour
 Estrutura que contem uma cor ex (255:255:255) Mais...
 
typedef struct _Command Command
 Estrutura/lista que contem um ou vários comando e seus argumentos. Mais...
 
typedef struct _Image Image
 Estrutura que contem a informação de uma imagem em runtime. Mais...
 

Funções

ImagenewImage ()
 Cria uma nova estrutura que irá servir para correr os comandos. Mais...
 
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...
 
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...
 
ValueparseValue (int val, char *str)
 Cria uma estutura do tipo value dependendo se enviamos uma string ou um valor. 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...
 
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...
 
CommandnewVariable (char *variable, Value *value)
 
CommandinsertCommand (Command *lst, Command *cmd)
 Recebe uma lista de comandos e um comando e insere o mesmo na lista. Mais...
 
int gera_random (int min, int max)
 Gera um numero random entre min e max. Mais...
 

Descrição detalhada

Ficheiro Header.

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.h.

Documentação das macros

◆ DEBUG

#define DEBUG   1

Definido na linha 15 do ficheiro commands.h.

Documentação dos tipos

◆ Colour

typedef struct _Colour Colour

Estrutura que contem uma cor ex (255:255:255)

◆ Command

typedef struct _Command Command

Estrutura/lista que contem um ou vários comando e seus argumentos.

◆ Dimension

typedef struct _Dimension Dimension

Estrutura que contem uma dimensão ex. 10x20.

◆ Image

typedef struct _Image Image

Estrutura que contem a informação de uma imagem em runtime.

◆ Point

typedef struct _Point Point

Estrutura/Lista que contem um ou vários Pontos ex. (1,2 3,4 6,5)

◆ Value

typedef struct _Value Value

Estrutura que contem um valor, que poderá ser uma variavel ou um valor inteiro.

◆ VarList

typedef struct _varList VarList

Estrutura que contem as variaveis e respectivos valores durante o runtime.

Documentação das funções

◆ 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().

◆ newVariable()

Command* newVariable ( char *  variable,
Value value 
)

◆ 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().