![]() |
Trabalho Prático 2
Processamento de Linguagens
|
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 | |
| Colour * | parseColour (Value *r, Value *g, Value *b) |
| Recebe 3 valores e cria uma estrutura de cor. Mais... | |
| Dimension * | parseDimension (Value *x, Value *y) |
| Recebe 2 valores e devolve uma estrutura do tipo dimension (x x y) Mais... | |
| Point * | parsePoint (Point *lst, Value *x, Value *y) |
| Recebe 2 valores de x e y e uma lista de pontos. Mais... | |
| Value * | parseValue (int val, char *str) |
| Cria uma estutura do tipo value dependendo se enviamos uma string ou um valor. Mais... | |
| 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. Mais... | |
| Command * | insertCommand (Command *lst, Command *cmd) |
| Recebe uma lista de comandos e um comando e insere o mesmo na lista. Mais... | |
| VarList * | updateVar (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) |
| Image * | newImage () |
| 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... | |
Este ficheiro contem as instruções necessárias para executar os comandos vindos do grammar.y.
Definido no ficheiro commands.c.
Devolve o valor de uma variavel através da estrutura de uma variavel
| lst | Lista de Variaveis |
| val | Valor Struct |
Definido na linha 174 do ficheiro commands.c.
Referências evalVar(), _Value::val e _Value::var.
| int evalVar | ( | VarList * | lst, |
| char * | varName | ||
| ) |
Devolve o valor de uma variavel através do nome da mesma.
| lst | Lista de Variaveis |
| varName | Nome 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().
| int gera_random | ( | int | min, |
| int | max | ||
| ) |
Gera um numero random entre min e max.
| min | |
| max |
Definido na linha 505 do ficheiro commands.c.
Recebe uma lista de comandos e um comando e insere o mesmo na lista.
| lst | Lista de Comandos |
| cmd | Nodo |
Definido na linha 118 do ficheiro commands.c.
Referências _Command::next.
| 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.
| command | Inteiro que identifica o comando |
| pt | Pontos (1,2 3,4 5,6) |
| dim | Dimensoes (20x10) |
| col | Cor (r:g:b) |
| val | Um valor (Usado para variaveis ou valores inteiros) |
| val2 | Um outro Valor (Usado para variaveis ou valores inteiros) |
| str | Um valor string (Usado para comandos que necessitem de strings tipo LOAD e SAVE) |
| str2 | |
| child | Commandos encadeados neste |
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.
| Image* newImage | ( | ) |
Cria uma nova estrutura que irá servir para correr os comandos.
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().
Recebe 3 valores e cria uma estrutura de cor.
| r | valor da cor red |
| g | valor da cor gree |
| b | valor da cor blue |
Definido na linha 29 do ficheiro commands.c.
Referências _Colour::b, _Colour::g e _Colour::r.
Recebe 2 valores e devolve uma estrutura do tipo dimension (x x y)
| x | valor de x |
| y | valor de y |
Definido na linha 44 do ficheiro commands.c.
Referências _Dimension::x e _Dimension::y.
Recebe 2 valores de x e y e uma lista de pontos.
| lst | lista de pontos |
| x | valor do ponto em x a adicionar à lista |
| y | valor do ponto em y a adicionar à lista |
Definido na linha 59 do ficheiro commands.c.
Referências _Point::next, _Point::x e _Point::y.
| Value* parseValue | ( | int | val, |
| char * | str | ||
| ) |
Cria uma estutura do tipo value dependendo se enviamos uma string ou um valor.
| val | valor inteiro |
| str | valor string |
Definido na linha 74 do ficheiro commands.c.
Referências _Value::val e _Value::var.
| 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.
| lst | Lista de Comandos a Correr |
Definido na linha 208 do ficheiro commands.c.
Referências newImage() e runCommands().
Função recursiva principal que corre os comandos pertencentes à lista de comandos que foi feito o parsing.
| lst | Lista de comandos |
| image | Estrutura 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().
Altera o valor de uma variavel.
| lst | lista de variaveis |
| varName | nome da variavel |
| varValue | novo valor inteiro |
Definido na linha 131 do ficheiro commands.c.
Referências _varList::next, updateVar(), _varList::val e _varList::var.
Referenciado por updateVar().