Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Necesito ayuda para revisar este c digo y asegurarme de que se lea desde un lenguaje de programaci n de archivos C y lo procese
Necesito ayuda para revisar este cdigo y asegurarme de que se lea desde un lenguaje de programacin de archivos C y lo procese a travs de un analizador lxico de sintaxis y semntico y luego genere un archivo objeto o con el cdigo transformado a cdigo ensamblador. importar pandas como pd LEXERTABLE pdDataFramecolumns TOKEN'IDENTITY' index range def lexercode: SYMBOLS ;: SYMBOLS;: SYMBOLSDUP Abrir corchetes', cerrar corchetes', punto y coma', ;comados puntos' :comilla simple', msigualmayor que', palabras clave enteros 'principal', 'mientras', 'comienzo', 'fin', 'expr', 'procedimiento', Si 'elseif', 'else', 'entonces', 'printf', and', o PALABRAS CLAVE SMBOLOS palabras clave espacioblanco lexema tokens cdigo code.replacet para i char en enumerarcdigo: si char espacioblanco: lexema char if i lencdigo: si cdigoi espacioblanco o cdigoi en PALABRAS CLAVE o lexema en PALABRAS CLAVE: si lexema : tokens.appendlexemereplace lexema j para i en tokens: para k en SYMBOLSDUP: si i k: LEXERTABLE.atj 'TOKEN' i LEXERTABLE.atj 'IDENTITY' k j descanso si i en palabras clave: LEXERTABLE.atj 'TOKEN' i LEXERTABLE.atj 'IDENTITY' 'palabra clave' j continuar si iisdigit: LEXERTABLE.atj 'TOKEN' i LEXERTABLE.atj 'IDENTITY'Dgito j continuar elif no en PALABRAS CLAVE: LEXERTABLE.atj 'TOKEN' i LEXERTABLE.atj 'IDENTITY' 'Identificador' j continuar printfLexer Tokens: tokens devolver tokens si namemain: cdigo tokens lexercdigo printtokens: tokens clase Nodo: def initself tipo, valor Ninguno: self type tipo self.value valor self.children def addchildselfnodo: self.children.appendnodo clase Analizador: def initself tokens: self.tokens tokens self.currenttokenindex def parseself: regresa self.expr def exprself: nodo self.term mientras self.currenttoken en : token self.currenttoken self.eattoken nodo Nodotipo token, valor token node.addchildselfterm devuelve nodo def termself: nodo self.factor mientras self.currenttoken en : token self.current.token self.eattoken nodo Nodotipo token, valor token node.addchildselffactor nodo de retorno def factorself: token self.currenttoken if token.isdigit: self.eattoken return Nodotipo NMERO valor inttoken elif token : self.eat nodo self.expr self.eat devolver nodo def currenttokenself: devolver self.tokensselfcurrenttokenindex def comerselftokentype: si self currenttoken tokentype: self.currenttokenindex else: rise ExceptionfToken inesperado: selfcurrenttoken if namemain: cdigo tokens lexercode parser Parsertokens try: ast parser.parse printAST analizado exitosamente" excepto excepcin como e: printferror de anlisis: e clase CodeGenerator: def initself ast: self.ast ast self.code self.tempcount def generatecodeself: self.visitselfast return self.code def visitself nodo: if node.type NMERO: self.code.appendfLOAD nodevalue elif node.type in : izquierda nodo.nios self.visitizquierda derecha nodo.nios self.visitaderecha self.code.appendfnodetype TEMPselftempcount self.tempcount if namemain: cdigo tokens lexercdigo parser Parsertokens prueba: ast parser.parse codegen CodeGeneratorast objectcode codegen.generatecode printCdigo de objeto generado: para la lnea en objectcode: printline excepto Excepcin como e: printferror de anlisis: e
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started