·
Engenharia de Computação ·
Compiladores
Send your question to AI and receive an answer instantly
Recommended for you
24
Lex e Yacc Ferramentas para Construcao de Compiladores
Compiladores
UNIUBE
1
Lista de Numeros de Serie Confidenciais
Compiladores
UNIUBE
1
Anotacoes Compiladores 2021 - Universidade de Uberaba
Compiladores
UNIUBE
14
Lex e Yacc - Ferramentas para Analise Lexica e Sintatica - Guia Introdutorio
Compiladores
UNIUBE
1
Configuração do Analisador Lexico Flex e GCC no Windows 11 - Guia Passo a Passo
Compiladores
UNIUBE
1
Video do YouTube - Link para vídeo externo
Compiladores
UNIUBE
1
Expressões Regulares para Lex e Flex - Guia Prático com Exercícios
Compiladores
UNIUBE
1
Configuração do Flex e GCC no Windows 11 - Guia Passo a Passo
Compiladores
UNIUBE
1
Grupo TOP Radio - 1023FM 890 AM 952FM - Informacoes e Contato
Compiladores
UNIUBE
4
YACC-Yet-Another-Compiler-Compiler-Analise-Sintatica-Bottom-Up
Compiladores
UNIUBE
Preview text
Introdução ao Flex 11 Analisadores léxicos Um analisador léxico scanner é um programa que permite ler os caracteres de um ficheiro de texto eg programafonte e produzir uma sequência de compo nentes léxicos tokens que serão utilizados pelo analisador sintáctico parser eou identificar erros léxicos na entrada Além de sua função básica o analisador léxico em geral está encarregue de fazer algumas tarefas secundárias designadamente a eliminação de comentários espaços em branco e tabulações Um token representa um conjunto de cadeias de entrada possível e por sua vez um lexema é uma determinada cadeia de entrada associada a um token Considere os exemplos apresentados na tabela 11 O FLEX é uma ferramenta que permite gerar analisadores léxicos Estes ana lisadores são capazes de reconhecer padrões léxicos em texto eg números iden tificadores e palavraschave de uma determinada linguagem de programação O analisador é construído com base num conjunto de regras Uma regra é constituída por um par padrãoação o padrão expressão regular descreve o elemento a re conhecer e acção ou conjunto de ações define o procedimento que será realizado no caso de identificação positiva do padrão Introdução ao Flex Introdução ao Flex Prof Me Stéfano Schwenck COMPILADORES 12 MODO DE UTILIZAÇÃO DO FLEX 1 Introdução ao Flex Tabela 11 Tokens e lexemas Tokens Lexemas FOR for IF if WHILE while NÚMERO 1089 142857 02 314159 IDENTIFICADOR i j contador nomeAluno OPSOMA OPMAIORIGUAL ABREPAR 12 Modo de utilização do FLEX O ciclo de vida de um programa FLEX obedece à estrutura apresentada na figura 11 FLEX ficheiro fonte C c Compilador gcc ficheiro fonte flex flex Erros de compilação Erros de FLEX Resultado n Resultado 2 Resultado 1 Ficheiro texto n Ficheiro texto 2 Ficheiro texto 1 programa executável Figura 11 Ciclo de vida de um programa FLEX Com base num ficheiro fonte escrito de acordo com a sintaxe do FLEX o pro grama FLEX gerará um analisador léxico descrito na linguagem C Em caso de existirem erros de codificação o FLEX gerará uma listagem de erros O ficheiro fonte em C terá de ser compilado para a plataforma em utilização utilizando um compilador da linguagem C adequado neste caso o GCC O resultado final da compilação será um programa executável capaz de identificar os padrões definidos pelo programado e levar o conjunto de acções previsto Como entrada para o ana lisador gerado podem ser fornecidos ficheiros de texto ou alternativamente fornecer os dados directamente pelo standard de entrada No exemplo seguinte são apresentados os passos necessários à compilação e utili zação de um programa FLEX Considerese a existência de um ficheiro ficheiroflex com o programa FLEX já escrito 2 1 Introdução ao Flex 13 FORMATO DE UM FICHEIRO FLEX O comando flex gera por omissão um ficheiro com o nome lexyyc que deverá ser compilado por exemplo com o gcc Na utilização do gcc é necessário indicar a utilização da biblioteca FLEX adicionando o parâmetro lfl Por sua vez o compilador de C gera por omissão um ficheiro com o nome aout Por último para a execução deste programa basta a evocação do seu nome na linha de comandos Neste caso a introdução dos dados terá de ser realizada via consola terminando obrigatoriamente com CtrlD Neste exemplo o comando flex gera a partir do ficheiro ficheirol o ficheiro com o nome lexyyc que deverá ser compilado Nesta utilização apre sentada do gcc é indicado o nome do executável a ser gerado neste caso Programa Na execução do Programa a introdução dos dados é realizada a partir do ficheiro Dadostxt 13 Formato de um ficheiro FLEX Um programa em FLEX é constituído por três secções a saber declarações regras e rotinas auxiliares A separação entre as secções é feita inserindo uma linha com o símbolo Considerese o seguinte exemplo que será discutido nas secções seguintes 1 2 int numChars0 3 4 5 6 7 8 numChars 9 p r i n t f s yytext 10 11 12 13 numChars 14 p r i n t f 15 3 flex ficheirol gcc lexyyc lfl gcc lexyyc o Programa lfl Programa Dadostxt 13 FORMATO DE UM FICHEIRO FLEX 1 Introdução ao Flex 16 17 18 19 main 20 21 yylex 22 p r i n t f Númerode ca ra c te re s d numChars 23 24 131 Declarações Esta secção compreende duas partes Instruções C nesta parte delimitada pelos símbolos e são colocadas as instruções da linguagem C que posteriormente serão incluídas no início do ficheiro C a gerar pelo FLEX Os exemplos mais comuns são a inclusão de ficheiros de cabeçalhos headers h declarações de variáveis e constantes 1 Definição da v a r i á v e l numChars 2 3 int numChars0 4 Expressões regulares nesta parte podem ser declaradas macros para as expressões regulares mais comuns como por exemplo algarismo ou letra do alfabeto 1 Definição de macros 2 ALGARISMO 0 9 Algarismo 3 ALFA azAZ Letra do a l f a b e t o A utilização de macros para expressões regulares será explicada com detalhe mais adiante 132 Regras definição de padrões e acções Nesta secção são definidas as expressões regulares padrões e as respectivas acções que se pretendem realizar no caso da identificação positiva pattern matching do referido padrão No caso de um qualquer carácter excepto mudança de linha representado por é incrementada a variável numchars e impresso o referido carácter no standard de saída A mudança de linha representado por é também contabilizada como um carácter e escrita no standard de saída 4 1 Introdução ao Flex 13 FORMATO DE UM FICHEIRO FLEX As expressões regulares têm de ser obrigatoriamente escritas na primeira coluna do ficheiro 1 2 numChars 3 p r i n t f s yytext 4 5 6 7 numChars 8 p r i n t f 9 Na secção 18 são apresentados alguns dos padrões mais relevantes utilizados pelo FLEX o analisador léxico gerado funciona de acordo com as seguintes regras Apenas uma regra é aplicada à entrada de dados A acção executada corresponde à expressão que consome o maior número de caracteres Caso existam duas ou mais expressões que consumam igual número de ca racteres tem precedência a regra que aparece em primeiro no ficheiro Quando um padrão é reconhecido a sequência de caracteres consumida token na identificação do padrão é guardada na variável yytext do tipo char Para além disso o comprimento da referida sequência é guardado na variável yyleng1 do tipo int 133 Rotinas em C de suporte Nesta secção pode ser escrito o código C que se pretende que seja adicionado ao programa a gerar pelo FLEX Tipicamente este código inclui o corpo do programa designadamente a função main da linguagem C 1 main 2 3 yylex 4 p r i n t f Númerode ca ra c te re s d numChars 5 A função yylex evoca o analisador léxico gerado pelo flex que processará as expressões regulares anteriormente descritas ver secção 132 1O valor desta variável poderia ser obtido através da instrução da linguagem C strlenyytext 5 14 EXEMPLO MAIS ELABORADO 1 Introdução ao Flex 14 Exemplo mais elaborado Considere o seguinte exemplo no qual é contabilizado a quantidade de números e de linhas existentes no ficheiro Neste exemplo recorrese à utilização de uma macro para a definição de algarismo 1 2 int qtdNumeros0 nLinhas 0 3 4 5 ALGARISMO 0 9 6 7 8 9 Se a acção for d e s c r i t a numa só linha 10 as chavetas podem ser omitidas 11 12 nLinhas 13 ALGARISMO p r i n t f ds yytext qtdNumeros 14 15 16 17 main 18 19 yylex 20 p r i n t f linhasd nLinhas 21 p r i n t f numerosd qtdNumeros 22 Todos os caracteres não processados pelas duas primeiras expressões regulares são consumidos pela última à qual não corresponde nenhuma acção particular 15 Propostas de exercícios a Escrever um programa que permite contar o número de ocorrências de uma cadeia de caracteres b Escrever um programa que permite substituir uma cadeia de caracteres por outra c Escrever um programa que dado um ficheiro de texto mostra número de algarismos número de letras do alfabeto 6 1 Introdução ao Flex 16 AMBIENTE DE TRABALHO número de linha de texto número de espaços ou tabulações número de caracteres não identificados nos pontos anteriores d Escrever um programa que permite identificar números naturais Entrada Saída 123 abc 1245 s 245 xyz 123 12 45 245 xyz 2 abc 45 cc 2 45 e Escrever um programa que permite identificar números inteiros com ou sem sinal f Escrever um programa que permite identificar números com parte decimal com ou sem sinal 16 Ambiente de trabalho O acesso a uma máquina LINUX pode ser realizado utilizando o programa putty que está instalado em cputty em modo SSH ver figura 12 As máquinas a utilizar deverão ser ssh ssh1 e ssh2 Figura 12 Acesso SSH via putty 7 17 RESUMO DE COMANDOS UNIX ÚTEIS 1 Introdução ao Flex A edição dos ficheiros fonte pode ser realizada a partir de qualquer editor de texto básico eg no ambiente Windows existe o Programmers Notepad desde que os ficheiros sejam gravados em formato Unix 17 Resumo de comandos UNIX úteis Na tabela 12 são apresentados os comandos que permitem fazer mudança de di rectório e mostrar qual o directório actual Tabela 12 Mudar e mostrar directório Comando Descrição cd Mudar para o directório home cd Mudar para o directório pai cd DIR Mudar para o directório DIR pwd Mostra o path do directório actual Na tabela 13 são apresentados os comandos que permitem listar o conteúdo de um determinado directório Tabela 13 Listagem do conteúdo de um directório Comando Descrição ls Mostra conteúdo do directório actual ls a idem incluindo ficheiros escondidos ls la idem incluindo ficheiros escondidos sob a forma de lista ls DIR l Mostra conteúdo do directório DIR sob a forma de lista Na tabela 14 são apresentados os comandos que permitem alterar as permissões de acesso a ficheiros eou directórios As permissões podem ser de três tipos Leitura r permite visualizar o conteúdo quando de se trate de ficheiros no caso de directórios permite fazer um ls Escrita w permite alterar o conteúdo quando de se trate de ficheiros e no caso de directórios permite criar ficheirosdirectórios no referido directório Execução x permite executar um programa quando de se trate de fi cheiros no caso de directórios permite aceder aos seus conteúdos As permissões de acesso a um ficheiro ou directório estão subdivididas por três grupos de utilizadores 8 1 Introdução ao Flex 18 PADRÕES UTILIZADOS NO FLEX Tabela 14 Alteração de permissões de acesso de ficheirosdirectórios Comando Descrição chmod urwxgorw FICH Concede as permissões rwx para o utilizador retira as permissões rw para utilizadores do mesmo grupo e outros as outras permissões não são alteradas chmod urwxgorx DIR Concede as permissões rwx para o utilizador concede as permissões rx para utilizadores do mesmo grupo e outros as outras permis sões não são alteradas chmod 751 DIR Concede somente as permissões rwx 7 4 2 1 para o utilizador rx 5 4 1 para utilizadores do mesmo grupo e x 1 para outros utilizadores o próprio owner o grupo group restantes other Considere o seguinte extracto resultado da execução do comando ls la no qual o primeiro campo faz a codificação das permissões leitura escrita e execução rwx para cada grupo Estas permissões podem ser convertidas para um valor numérico somando 4 para r 2 para w e 1 para x rwxr 1 user profs 25 Jan 27 2002 fich drwxx 4 user profs 4096 Jan 17 1631 dir Neste exemplo o ficheiro fich tem permissões de leitura escrita e execução para o próprio leitura para o grupo e nenhuma para os restantes utilizadores Por sua vez o directório dir o primeiro carácter é um d no caso de directórios tem permissões de leitura escrita e execução para o próprio execução para o grupo e nenhuma para os restantes utilizadores 18 Padrões utilizados no FLEX Na tabela 15 são apresentados alguns dos padrões mais relevantes utilizados pelo FLEX 9 18 PADRÕES UTILIZADOS NO FLEX 1 Introdução ao Flex Tabela 15 Padrões utilizados no FLEX Padrão Descrição x O carácter x Qualquer carácter excepto mudança de linha Mudança de linha xyz Um dos caracteres x y ou z xyz A cadeia de caracteres xyz azAZ Um dos caracteres no intervalo de a a z ou de A a Z Qualquer um dos operadores ou send que o símbolo tem de aparecer em primeiro lugar dada a possibi lidade de ambiguidade com a definição de intervalo abjoZ Um dos caracteres a b ou de j a o ou Z ˆAZ Qualquer carácter excepto no intervalo de A a Z ou mu dança de linha r O carácter r zero ou mais vezes r O carácter r uma ou mais vezes r O carácter r zero ou uma vez r25 O carácter r repetido de duas a cinco vezes r2 O carácter r repetido pelo menos duas vezes r4 O carácter r repetido exactamente quatro vezes macro SubstituiçãoExpansão da macro definida anteriormente r O carácter r sendo que os parêntesis permitem estipular pre cedências xyz A sequência xy seguida de zero ou mais zs xyz A sequência xyz repetida zero ou mais vezes rs O carácter r ou s alternativa ˆr O carácter r apenas se no início da linha r O carácter r apenas se no final da linha não consome o ˆxyz Uma linha que contém apenas a cadeia de caracteres xyz EOF Fim de ficheiro 10
Send your question to AI and receive an answer instantly
Recommended for you
24
Lex e Yacc Ferramentas para Construcao de Compiladores
Compiladores
UNIUBE
1
Lista de Numeros de Serie Confidenciais
Compiladores
UNIUBE
1
Anotacoes Compiladores 2021 - Universidade de Uberaba
Compiladores
UNIUBE
14
Lex e Yacc - Ferramentas para Analise Lexica e Sintatica - Guia Introdutorio
Compiladores
UNIUBE
1
Configuração do Analisador Lexico Flex e GCC no Windows 11 - Guia Passo a Passo
Compiladores
UNIUBE
1
Video do YouTube - Link para vídeo externo
Compiladores
UNIUBE
1
Expressões Regulares para Lex e Flex - Guia Prático com Exercícios
Compiladores
UNIUBE
1
Configuração do Flex e GCC no Windows 11 - Guia Passo a Passo
Compiladores
UNIUBE
1
Grupo TOP Radio - 1023FM 890 AM 952FM - Informacoes e Contato
Compiladores
UNIUBE
4
YACC-Yet-Another-Compiler-Compiler-Analise-Sintatica-Bottom-Up
Compiladores
UNIUBE
Preview text
Introdução ao Flex 11 Analisadores léxicos Um analisador léxico scanner é um programa que permite ler os caracteres de um ficheiro de texto eg programafonte e produzir uma sequência de compo nentes léxicos tokens que serão utilizados pelo analisador sintáctico parser eou identificar erros léxicos na entrada Além de sua função básica o analisador léxico em geral está encarregue de fazer algumas tarefas secundárias designadamente a eliminação de comentários espaços em branco e tabulações Um token representa um conjunto de cadeias de entrada possível e por sua vez um lexema é uma determinada cadeia de entrada associada a um token Considere os exemplos apresentados na tabela 11 O FLEX é uma ferramenta que permite gerar analisadores léxicos Estes ana lisadores são capazes de reconhecer padrões léxicos em texto eg números iden tificadores e palavraschave de uma determinada linguagem de programação O analisador é construído com base num conjunto de regras Uma regra é constituída por um par padrãoação o padrão expressão regular descreve o elemento a re conhecer e acção ou conjunto de ações define o procedimento que será realizado no caso de identificação positiva do padrão Introdução ao Flex Introdução ao Flex Prof Me Stéfano Schwenck COMPILADORES 12 MODO DE UTILIZAÇÃO DO FLEX 1 Introdução ao Flex Tabela 11 Tokens e lexemas Tokens Lexemas FOR for IF if WHILE while NÚMERO 1089 142857 02 314159 IDENTIFICADOR i j contador nomeAluno OPSOMA OPMAIORIGUAL ABREPAR 12 Modo de utilização do FLEX O ciclo de vida de um programa FLEX obedece à estrutura apresentada na figura 11 FLEX ficheiro fonte C c Compilador gcc ficheiro fonte flex flex Erros de compilação Erros de FLEX Resultado n Resultado 2 Resultado 1 Ficheiro texto n Ficheiro texto 2 Ficheiro texto 1 programa executável Figura 11 Ciclo de vida de um programa FLEX Com base num ficheiro fonte escrito de acordo com a sintaxe do FLEX o pro grama FLEX gerará um analisador léxico descrito na linguagem C Em caso de existirem erros de codificação o FLEX gerará uma listagem de erros O ficheiro fonte em C terá de ser compilado para a plataforma em utilização utilizando um compilador da linguagem C adequado neste caso o GCC O resultado final da compilação será um programa executável capaz de identificar os padrões definidos pelo programado e levar o conjunto de acções previsto Como entrada para o ana lisador gerado podem ser fornecidos ficheiros de texto ou alternativamente fornecer os dados directamente pelo standard de entrada No exemplo seguinte são apresentados os passos necessários à compilação e utili zação de um programa FLEX Considerese a existência de um ficheiro ficheiroflex com o programa FLEX já escrito 2 1 Introdução ao Flex 13 FORMATO DE UM FICHEIRO FLEX O comando flex gera por omissão um ficheiro com o nome lexyyc que deverá ser compilado por exemplo com o gcc Na utilização do gcc é necessário indicar a utilização da biblioteca FLEX adicionando o parâmetro lfl Por sua vez o compilador de C gera por omissão um ficheiro com o nome aout Por último para a execução deste programa basta a evocação do seu nome na linha de comandos Neste caso a introdução dos dados terá de ser realizada via consola terminando obrigatoriamente com CtrlD Neste exemplo o comando flex gera a partir do ficheiro ficheirol o ficheiro com o nome lexyyc que deverá ser compilado Nesta utilização apre sentada do gcc é indicado o nome do executável a ser gerado neste caso Programa Na execução do Programa a introdução dos dados é realizada a partir do ficheiro Dadostxt 13 Formato de um ficheiro FLEX Um programa em FLEX é constituído por três secções a saber declarações regras e rotinas auxiliares A separação entre as secções é feita inserindo uma linha com o símbolo Considerese o seguinte exemplo que será discutido nas secções seguintes 1 2 int numChars0 3 4 5 6 7 8 numChars 9 p r i n t f s yytext 10 11 12 13 numChars 14 p r i n t f 15 3 flex ficheirol gcc lexyyc lfl gcc lexyyc o Programa lfl Programa Dadostxt 13 FORMATO DE UM FICHEIRO FLEX 1 Introdução ao Flex 16 17 18 19 main 20 21 yylex 22 p r i n t f Númerode ca ra c te re s d numChars 23 24 131 Declarações Esta secção compreende duas partes Instruções C nesta parte delimitada pelos símbolos e são colocadas as instruções da linguagem C que posteriormente serão incluídas no início do ficheiro C a gerar pelo FLEX Os exemplos mais comuns são a inclusão de ficheiros de cabeçalhos headers h declarações de variáveis e constantes 1 Definição da v a r i á v e l numChars 2 3 int numChars0 4 Expressões regulares nesta parte podem ser declaradas macros para as expressões regulares mais comuns como por exemplo algarismo ou letra do alfabeto 1 Definição de macros 2 ALGARISMO 0 9 Algarismo 3 ALFA azAZ Letra do a l f a b e t o A utilização de macros para expressões regulares será explicada com detalhe mais adiante 132 Regras definição de padrões e acções Nesta secção são definidas as expressões regulares padrões e as respectivas acções que se pretendem realizar no caso da identificação positiva pattern matching do referido padrão No caso de um qualquer carácter excepto mudança de linha representado por é incrementada a variável numchars e impresso o referido carácter no standard de saída A mudança de linha representado por é também contabilizada como um carácter e escrita no standard de saída 4 1 Introdução ao Flex 13 FORMATO DE UM FICHEIRO FLEX As expressões regulares têm de ser obrigatoriamente escritas na primeira coluna do ficheiro 1 2 numChars 3 p r i n t f s yytext 4 5 6 7 numChars 8 p r i n t f 9 Na secção 18 são apresentados alguns dos padrões mais relevantes utilizados pelo FLEX o analisador léxico gerado funciona de acordo com as seguintes regras Apenas uma regra é aplicada à entrada de dados A acção executada corresponde à expressão que consome o maior número de caracteres Caso existam duas ou mais expressões que consumam igual número de ca racteres tem precedência a regra que aparece em primeiro no ficheiro Quando um padrão é reconhecido a sequência de caracteres consumida token na identificação do padrão é guardada na variável yytext do tipo char Para além disso o comprimento da referida sequência é guardado na variável yyleng1 do tipo int 133 Rotinas em C de suporte Nesta secção pode ser escrito o código C que se pretende que seja adicionado ao programa a gerar pelo FLEX Tipicamente este código inclui o corpo do programa designadamente a função main da linguagem C 1 main 2 3 yylex 4 p r i n t f Númerode ca ra c te re s d numChars 5 A função yylex evoca o analisador léxico gerado pelo flex que processará as expressões regulares anteriormente descritas ver secção 132 1O valor desta variável poderia ser obtido através da instrução da linguagem C strlenyytext 5 14 EXEMPLO MAIS ELABORADO 1 Introdução ao Flex 14 Exemplo mais elaborado Considere o seguinte exemplo no qual é contabilizado a quantidade de números e de linhas existentes no ficheiro Neste exemplo recorrese à utilização de uma macro para a definição de algarismo 1 2 int qtdNumeros0 nLinhas 0 3 4 5 ALGARISMO 0 9 6 7 8 9 Se a acção for d e s c r i t a numa só linha 10 as chavetas podem ser omitidas 11 12 nLinhas 13 ALGARISMO p r i n t f ds yytext qtdNumeros 14 15 16 17 main 18 19 yylex 20 p r i n t f linhasd nLinhas 21 p r i n t f numerosd qtdNumeros 22 Todos os caracteres não processados pelas duas primeiras expressões regulares são consumidos pela última à qual não corresponde nenhuma acção particular 15 Propostas de exercícios a Escrever um programa que permite contar o número de ocorrências de uma cadeia de caracteres b Escrever um programa que permite substituir uma cadeia de caracteres por outra c Escrever um programa que dado um ficheiro de texto mostra número de algarismos número de letras do alfabeto 6 1 Introdução ao Flex 16 AMBIENTE DE TRABALHO número de linha de texto número de espaços ou tabulações número de caracteres não identificados nos pontos anteriores d Escrever um programa que permite identificar números naturais Entrada Saída 123 abc 1245 s 245 xyz 123 12 45 245 xyz 2 abc 45 cc 2 45 e Escrever um programa que permite identificar números inteiros com ou sem sinal f Escrever um programa que permite identificar números com parte decimal com ou sem sinal 16 Ambiente de trabalho O acesso a uma máquina LINUX pode ser realizado utilizando o programa putty que está instalado em cputty em modo SSH ver figura 12 As máquinas a utilizar deverão ser ssh ssh1 e ssh2 Figura 12 Acesso SSH via putty 7 17 RESUMO DE COMANDOS UNIX ÚTEIS 1 Introdução ao Flex A edição dos ficheiros fonte pode ser realizada a partir de qualquer editor de texto básico eg no ambiente Windows existe o Programmers Notepad desde que os ficheiros sejam gravados em formato Unix 17 Resumo de comandos UNIX úteis Na tabela 12 são apresentados os comandos que permitem fazer mudança de di rectório e mostrar qual o directório actual Tabela 12 Mudar e mostrar directório Comando Descrição cd Mudar para o directório home cd Mudar para o directório pai cd DIR Mudar para o directório DIR pwd Mostra o path do directório actual Na tabela 13 são apresentados os comandos que permitem listar o conteúdo de um determinado directório Tabela 13 Listagem do conteúdo de um directório Comando Descrição ls Mostra conteúdo do directório actual ls a idem incluindo ficheiros escondidos ls la idem incluindo ficheiros escondidos sob a forma de lista ls DIR l Mostra conteúdo do directório DIR sob a forma de lista Na tabela 14 são apresentados os comandos que permitem alterar as permissões de acesso a ficheiros eou directórios As permissões podem ser de três tipos Leitura r permite visualizar o conteúdo quando de se trate de ficheiros no caso de directórios permite fazer um ls Escrita w permite alterar o conteúdo quando de se trate de ficheiros e no caso de directórios permite criar ficheirosdirectórios no referido directório Execução x permite executar um programa quando de se trate de fi cheiros no caso de directórios permite aceder aos seus conteúdos As permissões de acesso a um ficheiro ou directório estão subdivididas por três grupos de utilizadores 8 1 Introdução ao Flex 18 PADRÕES UTILIZADOS NO FLEX Tabela 14 Alteração de permissões de acesso de ficheirosdirectórios Comando Descrição chmod urwxgorw FICH Concede as permissões rwx para o utilizador retira as permissões rw para utilizadores do mesmo grupo e outros as outras permissões não são alteradas chmod urwxgorx DIR Concede as permissões rwx para o utilizador concede as permissões rx para utilizadores do mesmo grupo e outros as outras permis sões não são alteradas chmod 751 DIR Concede somente as permissões rwx 7 4 2 1 para o utilizador rx 5 4 1 para utilizadores do mesmo grupo e x 1 para outros utilizadores o próprio owner o grupo group restantes other Considere o seguinte extracto resultado da execução do comando ls la no qual o primeiro campo faz a codificação das permissões leitura escrita e execução rwx para cada grupo Estas permissões podem ser convertidas para um valor numérico somando 4 para r 2 para w e 1 para x rwxr 1 user profs 25 Jan 27 2002 fich drwxx 4 user profs 4096 Jan 17 1631 dir Neste exemplo o ficheiro fich tem permissões de leitura escrita e execução para o próprio leitura para o grupo e nenhuma para os restantes utilizadores Por sua vez o directório dir o primeiro carácter é um d no caso de directórios tem permissões de leitura escrita e execução para o próprio execução para o grupo e nenhuma para os restantes utilizadores 18 Padrões utilizados no FLEX Na tabela 15 são apresentados alguns dos padrões mais relevantes utilizados pelo FLEX 9 18 PADRÕES UTILIZADOS NO FLEX 1 Introdução ao Flex Tabela 15 Padrões utilizados no FLEX Padrão Descrição x O carácter x Qualquer carácter excepto mudança de linha Mudança de linha xyz Um dos caracteres x y ou z xyz A cadeia de caracteres xyz azAZ Um dos caracteres no intervalo de a a z ou de A a Z Qualquer um dos operadores ou send que o símbolo tem de aparecer em primeiro lugar dada a possibi lidade de ambiguidade com a definição de intervalo abjoZ Um dos caracteres a b ou de j a o ou Z ˆAZ Qualquer carácter excepto no intervalo de A a Z ou mu dança de linha r O carácter r zero ou mais vezes r O carácter r uma ou mais vezes r O carácter r zero ou uma vez r25 O carácter r repetido de duas a cinco vezes r2 O carácter r repetido pelo menos duas vezes r4 O carácter r repetido exactamente quatro vezes macro SubstituiçãoExpansão da macro definida anteriormente r O carácter r sendo que os parêntesis permitem estipular pre cedências xyz A sequência xy seguida de zero ou mais zs xyz A sequência xyz repetida zero ou mais vezes rs O carácter r ou s alternativa ˆr O carácter r apenas se no início da linha r O carácter r apenas se no final da linha não consome o ˆxyz Uma linha que contém apenas a cadeia de caracteres xyz EOF Fim de ficheiro 10