|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file:
-- http://anggtwu.net/LUA/Caepro5.lua.html
-- http://anggtwu.net/LUA/Caepro5.lua
-- (find-angg "LUA/Caepro5.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun e () (interactive) (find-angg "LUA/Caepro5.lua"))
--
-- (find-Deps1-links "Caepro5")
-- (find-Deps1-cps "Caepro5")
-- (find-Deps1-anggs "Caepro5")
-- «.anyofs» (to "anyofs")
-- «.anyofs-tests» (to "anyofs-tests")
-- «.TocLinesToAnyOf» (to "TocLinesToAnyOf")
-- «.TocLinesToAnyOf-tests» (to "TocLinesToAnyOf-tests")
-- «.gram» (to "gram")
-- «.gram-tests» (to "gram-tests")
-- «.Enrichen» (to "Enrichen")
-- «.Enrichen-tostring» (to "Enrichen-tostring")
-- «.Enrichen-subst» (to "Enrichen-subst")
-- «.Enrichen-pdfs» (to "Enrichen-pdfs")
-- «.Enrichen-htmls» (to "Enrichen-htmls")
-- «.Enrichen-jpgs» (to "Enrichen-jpgs")
-- «.Enrichen-tex» (to "Enrichen-tex")
-- «.Enrichen-sexps» (to "Enrichen-sexps")
-- «.Enrichen-urls» (to "Enrichen-urls")
-- «.Enrichen-tests» (to "Enrichen-tests")
-- «.lsquadros_cache» (to "lsquadros_cache")
-- «.lsquadros_cache-tests» (to "lsquadros_cache-tests")
-- «.LaTeX» (to "LaTeX")
-- «.LaTeX-tests» (to "LaTeX-tests")
-- «.preprocess» (to "preprocess")
-- «.run_options» (to "run_options")
-- «.run_options-tests» (to "run_options-tests")
require "ELpeg1" -- (find-angg "LUA/ELpeg1.lua")
require "LsQuadros1" -- (find-angg "LUA/LsQuadros1.lua")
require "LsQuadros1-cache" -- (find-angg "LUA/LsQuadros1-cache.lua")
require "TocLines1" -- (find-angg "LUA/TocLines1.lua")
require "AnyOf1" -- (find-angg "LUA/AnyOf1.lua")
-- For debugging:
Gram.__index.cm2 = function (gr, ...)
print(gr:cm(...)) -- See: (find-angg "LUA/Gram2.lua" "Gram" "cm =")
gr:cmp(...) -- See: (find-angg "LUA/Gram2.lua" "Gram" "cmp =")
end
-- __
-- __ _ _ __ _ _ ___ / _|___
-- / _` | '_ \| | | |/ _ \| |_/ __|
-- | (_| | | | | |_| | (_) | _\__ \
-- \__,_|_| |_|\__, |\___/|_| |___/
-- |___/
--
-- «anyofs» (to ".anyofs")
sems = AnyOf.from([[
x -> 2019.1 y -> 2019.2
a -> 2020.1 b -> 2020.2
c -> 2021.1 d -> 2021.2
e -> 2022.1 f -> 2022.2
g -> 2023.1 h -> 2023.2
i -> 2024.1 j -> 2024.2
k -> 2025.1 l -> 2025.2
]], "sem", "yyyy.s")
Ms = AnyOf.from([[
2 -> C2 3 -> C3 4 -> C4
5 -> ES 6 -> GA 7 -> LA
]], "M", "MM")
quadros = mktable [[
2x -> 2019.1-C2/2019.1-C2.pdf 3x -> 2019.1-C3/2019.1-C3.pdf
2y -> 2019.2-C2/2019.2-C2.pdf 3y -> 2019.2-C3/2019.2-C3.pdf
2e -> 2022.1-C2/C2-quadros.pdf 3e -> 2022.1-C3/C3-quadros.pdf
2f -> 2022.2-C2/C2-quadros.pdf 3f -> 2022.2-C3/C3-quadros.pdf
2g -> 2023.1-C2/C2-quadros.pdf
4g -> 2023.1-C4/C4-quadros.pdf
5g -> 2023.1-ES/ES-quadros.pdf
6g -> 2023.1-GA/GA-quadros.pdf
7g -> 2023.1-LA/LA-quadros.pdf
2h -> 2023.2-C2/C2-quadros.pdf 3h -> 2023.2-C3/C3-quadros.pdf
2i -> 2024.1-C2/C2-quadros.pdf 3i -> 2024.1-C3/C3-quadros.pdf
2j -> 2024.2-C2/C2-quadros.pdf 3j -> 2024.2-C3/C3-quadros.pdf
2k -> 2025.1-C2/C2-quadros.pdf 3k -> 2025.1-C3/C3-quadros.pdf
3l -> 2025.2-C3/C3-quadros.pdf
7l -> 2025.2-LA/LA-quadros.pdf
]]
otherHtmls = AnyOf.from([[
(find-TH "2023-caepro")
Issomuda -> 2023-caepro0
SobreaVR -> 2023-caepro-VR
Oquesobra -> 2023-caepro-o-que-sobra
Visaud -> 2023-visual-vs-auditivo
Slogans -> 2023-precisamos-de-mais-slogans
RcnJan2025 -> 2025-01-30-reuniao-rcn
RcnMar2025 -> 2025-03-27-reuniao-rcn
RcnJul2023 -> 2023-07-27-reuniao-rcn
Sapt -> 2021aulas-por-telegram
Somas -> 2021-1-C2-somas-1-dicas
Cabos -> 2021-2-c3-cabos-na-diagonal
AprC2 -> 2022-apresentacao-sobre-C2
CalcEasy -> mathologer-calculus-easy
Butler -> 2024-philosophy-tube-butler
Omnisys -> omnisys
Zamm13 -> zamm-13
]], "short", "htmlstem")
anggPdfs = AnyOf.from([[
Mpg -> LATEX/material-para-GA
ZHAs -> LATEX/2017planar-has-1
La2018 -> LATEX/2018-1-LA-material
La2018Q -> 2018.1-LA/2018.1-LA
Rosiak -> tmp/rosiak__sheaf_theory_through_examples
Missing -> LATEX/2022on-the-missing
Dednat6 -> dednat6/tug-slides
IDARCT -> LATEX/idarct-preprint
SaptSlides -> LATEX/2021sobre-aulas-por-telegram
Quadradinho -> quadradinho/quadradinho-2020
DPCC -> fsoliveira/dpcc
PanicT -> LATEX/2024panic-teresopolis
Bort3 -> 2019.2-C3/Bortolossi/bortolossi-cap-3
Bort4 -> 2019.2-C3/Bortolossi/bortolossi-cap-4
Bort5 -> 2019.2-C3/Bortolossi/bortolossi-cap-5
Bort6 -> 2019.2-C3/Bortolossi/bortolossi-cap-6
Bort7 -> 2019.2-C3/Bortolossi/bortolossi-cap-7
Bort8 -> 2019.2-C3/Bortolossi/bortolossi-cap-8
Bort10 -> 2019.2-C3/Bortolossi/bortolossi-cap-10
Bort11 -> 2019.2-C3/Bortolossi/bortolossi-cap-11
Bort12 -> 2019.2-C3/Bortolossi/bortolossi-cap-12
Es1 -> BE/2012.1-BE
Es2 -> 2012.2-ES/2012.2-ES
Es3 -> 2013.1-ES/2013.1-ES
Es4 -> 2013.2-ES/2013.2-ES
Leit1 -> tmp/leithold-pt-cap1
Leit2 -> tmp/leithold-pt-cap2
Leit3 -> tmp/leithold-pt-cap3
Leit4 -> tmp/leithold-pt-cap4
Leit5 -> tmp/leithold-pt-cap5
Leit6 -> tmp/leithold-pt-cap6
Leit7 -> tmp/leithold-pt-cap7
Leit8 -> tmp/leithold-pt-cap8
Leit9 -> tmp/leithold-pt-cap9
Leit10 -> tmp/leithold-pt-cap10
Leit11 -> tmp/leithold-pt-cap11
LeitA -> tmp/leithold-pt-apA
LeitF -> tmp/leithold-pt-apF
Stew17 -> tmp/stewart7-cap17
Stew16 -> tmp/stewart7-cap16
Stew15 -> tmp/stewart7-cap15
Stew14 -> tmp/stewart7-cap14
Stew13 -> tmp/stewart7-cap13
Stew12 -> tmp/stewart7-cap12
Stew11 -> tmp/stewart7-cap11
Stew10 -> tmp/stewart7-cap10
Stew9 -> tmp/stewart7-cap9
Stew8 -> tmp/stewart7-cap8
Stew7 -> tmp/stewart7-cap7
Stew6 -> tmp/stewart7-cap6
Stew5 -> tmp/stewart7-cap5
Stew4 -> tmp/stewart7-cap4
Stew3 -> tmp/stewart7-cap3
Stew2 -> tmp/stewart7-cap2
Stew1 -> tmp/stewart7-cap1
Stew0 -> tmp/stewart7-cap0
StewPtCap17 -> tmp/stewart72pt-cap17
StewPtCap16 -> tmp/stewart72pt-cap16
StewPtCap15 -> tmp/stewart72pt-cap15
StewPtCap14 -> tmp/stewart72pt-cap14
StewPtCap13 -> tmp/stewart72pt-cap13
StewPtCap12 -> tmp/stewart72pt-cap12
StewPtCap11 -> tmp/stewart72pt-cap11
StewPtCap10 -> tmp/stewart72pt-cap10
StewPtCap9 -> tmp/stewart72pt-cap9
StewPtCap8 -> tmp/stewart71pt-cap8
StewPtCap7 -> tmp/stewart71pt-cap7
StewPtCap6 -> tmp/stewart71pt-cap6
StewPtCap5 -> tmp/stewart71pt-cap5
StewPtCap4 -> tmp/stewart71pt-cap4
StewPtCap3 -> tmp/stewart71pt-cap3
StewPtCap2 -> tmp/stewart71pt-cap2
StewPtCap1 -> tmp/stewart71pt-cap1
StewPtApsAH -> tmp/stewart71pt-apsAH
StewPtApendiceH -> tmp/stewart72pt-apH
Thomas55 -> 2020.2-C2/thomas_secoes_5.5_e_5.6
Thomas56 -> 2020.2-C2/thomas_secoes_5.5_e_5.6
Thomas11cap9 -> tmp/thomas11-cap9
Apexcap4 -> 2022.2-C3/APEX_Calculus_Version_4_cap_4
Apexcap7 -> 2022.2-C3/APEX_Calculus_Version_4_cap_7
Apexcap12 -> 2022.2-C3/APEX_Calculus_Version_4_cap_12
RossA -> 2022.1-C2/ross__elementary_analysis_secs_10_32_33_34
Ross -> tmp/ross__elementary_analysis_the_theory_of_calculus
DFcap7 -> 2023.1-GA/Apostila_GACV_caps_07-09
DFES1 -> 2023.1-GA/delgado_frensel_nedir__GA_I
DFES2 -> 2023.1-GA/delgado_frensel_nedir__GA_II
VenturiGA -> 2023.1-GA/venturi__algebra_vetorial_e_geometria_analitica
AckerGA1 -> acker/acker__ga_livro1_2019
AckerGA2 -> acker/acker__ga_livro2_2020
AckerGA3 -> acker/acker__ga_livro3_2021
AckerGA4 -> acker/acker__ga_livro4_2019
Hernandez -> 2015.1-C2/CALCULOIIA_EAD_Versao_Final_correcao_aulas_25_a_30
Flemming -> tmp/flemming_goncalves__calculo_a_6a_ed
CederjC1V0 -> tmp/cederj__calculo_1_vol_0
CederjC1V1 -> tmp/cederj__calculo_1_vol_1_reduzido
CederjC1V2 -> tmp/cederj__calculo_1_vol_2
CederjC2V1 -> tmp/cederj__calculo_2_vol_1
CederjC2V2 -> tmp/cederj__calculo_2_vol_2
BerryDMM -> tmp/berry__developing_mathematical_modelling_skills_the_role_of_cas
Boaler -> tmp/boaler__experiencing_school_mathematics
DrijversLM -> tmp/drijvers__learning_mathematics_in_a_computer_algebra_environment_obstacles_are_opportunities
FerreiroAP -> tmp/ferreiro__alfabetizacao_em_processo
FerreiroCTL -> tmp/ferreiro__com_todas_as_letras
Hewitt1 -> tmp/hewitt__arbitrary_and_necessary_part_1_a_way_of_viewing_the_mathematics_curriculum
Hewitt2 -> tmp/hewitt__arbitrary_and_necessary_part_2_assisting_memory
Hewitt3 -> tmp/hewitt__arbitrary_and_necessary_part_3_educating_awareness
HowToTeachMaths -> tmp/krantz__how_to_teach_mathematics
KuboBotome -> tmp/kubo_botome__ensino-aprendizagem_uma_interacao_entre_dois_processos_comportamentais
LehtinenCMS -> tmp/lehtinen__cultivating_mathematical_skills_from_drill-and-practice_to_deliberate_practice
LemleGTA -> tmp/lemle__guia_teorico_do_alfabetizador
LipingMa -> tmp/ma__knowing_and_teaching_elementary_mathematics_teachers_understanding_of_fundamental_mathematics_in_china_and_the_united_states
MrsOublier -> tmp/cohen__a_revolution_in_one_classroom_the_case_of_mrs_oublier
Nachtigall -> tmp/nachtigall__sala_de_aula_invertida_autoeficacia_e_motivacao_reflexoes_a_partir_de_uma_experiencia_na_formacao_de_professores_de_matematica
SchoenfeldMST -> tmp/schoenfeld__making_sense_of_teaching
SchoenfeldWGT -> tmp/schoenfeld__when_good_teaching_leads_to_bad_results_the_disasters_of_well-taught_mathematics_courses
SecondaryAE -> tmp/drijvers__secondary_algebra_education_revisiting_topics_and_themes_and_exploring_the_unknown
Sfard -> tmp/sfard__thinking_as_communicating_human_development_the_growth_of_discourses_and_mathematizing
TLATOC -> tmp/monaghan_ely_pinto_thomas__the_learning_and_teaching_of_calculus_ideas_insights_and_activities
TallAMT -> tmp/tall__advanced_mathematical_thinking
ThomasMOJ -> tmp/thomas_moj__a_conceptual_approach_to_the_early_learning_of_algebra_using_a_computer__pdh_thesis_1988
Freudenthal -> tmp/freudenthal__didactical_phenomenology_of_mathematical_structures
FutureOfTLA -> tmp/stacey_chick__the_future_of_the_teaching_and_learning_of_algebra
RestIsAlgebra -> tmp/stewart__and_the_rest_is_just_algebra
Yalep -> tmp/yalep__a_lean-based_language_for_teaching_proof_in_high-school
YalepSurvey -> tmp/minh_gonnord_narboux__proof_assistants_for_teaching_a_survey
Resolucao0022019 -> tmp/cne_ces__resolucao_002_2019
Resolucao0012021 -> tmp/cne_ces__resolucao_001_2021
Steinmetz2025 -> tmp/steinmetz__raciocinio_logico_na_aprendizagem_da_matematica
MortariCap9 -> tmp/mortari-cap9
RRPs -> 2024.2-C2/RRPs
ComeHellPt -> tmp/vannucci_singer__chova_ou_faca_sol
ComeHell -> tmp/vannucci_singer__come_hell_or_high_water
GoffmanFacePt -> tmp/GoffmanFacePt
Strang4cap1 -> tmp/Strang4cap1
Strang4cap3 -> tmp/Strang4cap3
Strang4cap4 -> tmp/Strang4cap4
Strang4cap5 -> tmp/Strang4cap5
Strang4cap6 -> tmp/Strang4cap6
MB6 -> tmp/morettin_bussab__estatistica_basica_6a_ed
Rrj -> LATEX/2021rrj
Lambda2018 -> LATEX/2018-1-LA-material
Chellas -> tmp/chellas__modal_logic_an_introduction
FPLean4 -> 2023.1-LA/fplean4-inicio
Hesseling -> tmp/hesseling__gnomes_in_the_fog_the_reception_of_brouwer_s_intuitionism_in_the_1920s
MMM -> tmp/carnielli_pizzi__modalities_and_multimodalities
NG -> tmp/nederpelt_geuvers__type_theory_and_formal_proof_an_introduction
HindleySeldin -> tmp/hindley_seldin__lambda-calculus_and_combinators_an_introduction
ZillCullenInicio -> tmp/zill_cullen__equacoes_diferenciais__inicio
ZillCullenCap2 -> tmp/ZillCullenCap2
ZillCullenCap4 -> tmp/ZillCullenCap4
ZillCullenEngCap2 -> tmp/ZillCullenEngCap2
ZillCullenEngCap3 -> tmp/ZillCullenEngCap3
ZillCullenEngCap4 -> tmp/ZillCullenEngCap4
BoyceDip2 -> tmp/boyce-diprima_pt__cap2
BoyceDip3 -> tmp/boyce-diprima_pt__cap3
BoyceDip4 -> tmp/boyce-diprima_pt__cap4
BoyceDip5 -> tmp/boyce-diprima_pt__cap5
BoyceDipEng2 -> tmp/boyce-diprima__cap2
BoyceDipEng3 -> tmp/boyce-diprima__cap3
BoyceDipEng4 -> tmp/boyce-diprima__cap4
BoyceDipEng5 -> tmp/boyce-diprima__cap5
Iezzi1 -> tmp/iezzi__FME__01_conjuntos_e_funcoes_9a_ed_2013
Iezzi2 -> tmp/iezzi__FME__02_logaritmos_3a_ed_1977
MariaLauraAF -> tmp/maria_laura_magalhaes_gomes__algebra_e_funcoes_na_educacao_basica
HarperCap1 -> 2022.1-C2/harper_cap.1
CaepDiff -> LATEX/2023-caepro-hist
CaepIssoMuda -> LATEX/2023-caepro
CaepPlano -> LATEX/2023-caepro-plano
CaepVR -> LATEX/2023-caepro-VR
CaepColor -> LATEX/2023-caepro-reclamacoes
]], "short", "pdfstem")
externalPdfs = AnyOf.from([[
Miranda -> http://hostel.ufabc.edu.br/~daniel.miranda/calculo/calculo.pdf
Selinger -> https://www.mathstat.dal.ca/~selinger/papers/lambdanotes.pdf
DiffyQs -> https://www.jirka.org/diffyqs/diffyqs.pdf
ProofsAndTypes -> http://www.paultaylor.eu/stable/prot.pdf
TPinLean -> https://leanprover.github.io/theorem_proving_in_lean/theorem_proving_in_lean.pdf
Pelletier -> https://www.sfu.ca/~jeffpell/papers/pelletierNDtexts.pdf
MaximaWorkbook -> http://roland-salz.de/Maxima_Workbook.pdf
BauerDawn -> http://math.andrej.com/asset/data/the-dawn-of-formalized-mathematics.pdf
Thompson -> https://www.gutenberg.org/files/33283/33283-pdf.pdf
EllermeijerHeck -> https://staff.fnwi.uva.nl/a.j.p.heck/research/art/girep2001.pdf
BortCalc1pt01 -> http://professores.im-uff.mat.br/hjbortol/disciplinas/2014.2/gma00108/aulas/gma00108-parte-01.pdf
BortCalc1pt13 -> http://professores.im-uff.mat.br/hjbortol/disciplinas/2014.2/gma00108/aulas/gma00108-parte-13.pdf
MBE01 -> https://home.csulb.edu/~woollett/mbe1intro.pdf
MBE02 -> https://home.csulb.edu/~woollett/mbe2plotfit.pdf
MBE03 -> https://home.csulb.edu/~woollett/mbe3ode1.pdf
MBE04 -> https://home.csulb.edu/~woollett/mbe4solve.pdf
MBE05 -> https://home.csulb.edu/~woollett/mbe5matrix.pdf
MBE06 -> https://home.csulb.edu/~woollett/mbe6calc1.pdf
MBE07 -> https://home.csulb.edu/~woollett/mbe7sint.pdf
MBE08 -> https://home.csulb.edu/~woollett/mbe8nint.pdf
MBE09 -> https://home.csulb.edu/~woollett/mbe9bfloat.pdf
MBE10 -> https://home.csulb.edu/~woollett/mbe10fltrans.pdf
MBE11 -> https://home.csulb.edu/~woollett/mbe11fft.pdf
MBE12 -> https://home.csulb.edu/~woollett/mbe12dirac3.pdf
MBE13 -> https://home.csulb.edu/~woollett/mbe13qdraw.pdf
MBE14 -> https://home.csulb.edu/~woollett/mbe14fit.pdf
ManualPDs -> https://www.uff.br/sites/default/files/comissoes/anexos/manual_pratico_dos_procedimentos_disciplinares_-_gpd_progepe.pdf
ManualPAD -> https://www.uff.br/sites/default/files/comissoes/anexos/manual_pad_2021_1.pdf
]], "short", "pdfurl")
-- «anyofs-tests» (to ".anyofs-tests")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Caepro5.lua"
sems :pat():ptmatch("x")
Ms :pat():ptmatch("5")
otherHtmls :pat():ptmatch("Slogans01:23")
otherHtmls :pat():ptmatch("Slogans#01:23")
anggPdfs :pat():ptmatch("Leit2")
anggPdfs :pat():ptmatch("Bort7")
externalPdfs:pat():ptmatch("Miranda")
externalPdfs:pat():ptmatch("ProofsAndTypes")
--]]
-- _____ _ _ _____ _ ___ __
-- |_ _|__ ___| | (_)_ __ ___ __|_ _|__ / \ _ __ _ _ / _ \ / _|
-- | |/ _ \ / __| | | | '_ \ / _ \/ __|| |/ _ \ / _ \ | '_ \| | | | | | | |_
-- | | (_) | (__| |___| | | | | __/\__ \| | (_) / ___ \| | | | |_| | |_| | _|
-- |_|\___/ \___|_____|_|_| |_|\___||___/|_|\___/_/ \_\_| |_|\__, |\___/|_|
-- |___/
-- «TocLinesToAnyOf» (to ".TocLinesToAnyOf")
TocLinesToAnyOf = Class {
type = "TocLinesToAnyOf",
fromstem = function (stem)
local fname = "~/LATEX/"..stem..".mytoc"
local tl = TocLines.readmytoc(fname)
local bigstr = tl:revnamesandpages()
return TocLinesToAnyOf {stem=stem, fname=fname, tl=tl, bigstr=bigstr}
end,
fromstemandtags = function (stem, ...)
return TocLinesToAnyOf.fromstem(stem):addanyof(...)
end,
from = function (stem)
return TocLinesToAnyOf.fromstemandtags(stem, "partname", "initpage")
end,
__tostring = function (tltao) return tltao.bigstr end,
__index = {
addanyof = function (tltao, ...)
tltao.anyo = AnyOf.from(tltao.bigstr, ...)
return tltao
end,
pat1 = function (tltao)
return tltao.anyo:pat() * Cc(tltao.stem):Cg"stem"
end,
pat2 = function (tltao)
return tltao:pat1() * (P"_" * (R"09"^1):Copyto"subpage")^-1
end,
},
}
-- «TocLinesToAnyOf-tests» (to ".TocLinesToAnyOf-tests")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Caepro5.lua"
-- (find-LATEX "2022-2-C2-tudo.mytoc")
stem = "2022-2-C2-tudo"
tltao = TocLinesToAnyOf.from(stem)
= tltao
= tltao.stem
= tltao.fname
= tltao.bigstr
= tltao.anyo
p = tltao:pat1()
p = tltao:pat2()
p:ptmatch "2022-2-C2-P1"
p:ptmatch "2022-2-C2-P1_4"
ao = TocLinesToAnyOf.from("2022-2-C2-C3-ajuda"):addanyof().anyo
= ao
= ao:ksetr()
p = TocLinesToAnyOf.from("2022-2-C2-C3-ajuda"):pat2()
p:ptmatch "2022-500-linhas-etel_4"
p:ptmatch "2023-rel-antonio_9"
p:ptmatch "2023-rel-antonio-anexo_9"
--]]
--
-- __ _ _ __ __ _ _ __ ___
-- / _` | '__/ _` | '_ ` _ \
-- | (_| | | | (_| | | | | | |
-- \__, |_| \__,_|_| |_| |_|
-- |___/
--
-- «gram» (to ".gram")
-- (find-angg "LUA/Gram2.lua" "Gram-tests")
gr,V,VA,VE,PE = Gram.new()
dottodash = function (s) return (s:gsub("%.", "-")) end
-- getquadro = function (M, sem) return quadros[M..sem] end
-- getquadro_pat = (Cb"M" * Cb"sem" / getquadro):Copyto"quadro"
V.N = Cs(R"09"^1)
V.optN = Cs(R"09"^1) + Cc("1")
V.optpN = S"pP"^-1 * V.optN
V.M = Ms:pat()
V.sem = sems:pat() * (Cb"yyyy.s" / dottodash):Cg"yyyy-s"
V.turma = Cs(S"cem"):Copyto"turma" -- para logs pdfizados
V.numpdf = V.optN :Copyto"numpdf" -- para logs pdfizados
V.numjpg = V.optN :Copyto"numjpg"
V.optpage = V.optN :Copyto"page"
V.optppage = V.optpN:Copyto"page"
V.optsubpage = (P"_" * V.N:Copyto"subpage")^-1
V.anchorchar = R("AZ", "az", "09", "::")
V.anchor = (P"#"^-1 * Cs(P(1) ^1)) / function (str) return "#"..str end
V.anchor = (P"#"^-1 * Cs(V.anchorchar^1)) / function (str) return "#"..str end
V.optanchor = (V.anchor + Cc""):Copyto"hanchor"
VA.T = V.M * V.sem * Cs("T") * V.optpage -- pdfzão com tudo
VA.P = V.M * V.sem * Cs("P") * V.optanchor -- página do curso (html)
VA.Q = V.M * V.sem * Cs("Q") * V.optpage -- quadros (em PDF)
VA.J = V.M * V.sem * Cs("J") * V.numjpg -- um quadro em JPG
VA.L = V.M * V.sem * Cs("L") * V.numpdf * V.turma * V.optpage -- um log pdfizado
VA.otherHtml = otherHtmls:pat() * V.optanchor
VA.anggPdf = anggPdfs:pat() * V.optppage
VA.externalPdf = externalPdfs:pat() * V.optppage
VA.AP = anggPdfs:pat() * V.optppage -- anggpdf (like tmp/stewartcap1)
VA.EP = externalPdfs:pat() * V.optppage -- external PDF (like miranda)
VA.OH = otherHtmls:pat() * V.optanchor -- otherhtml (like slogans)
VA.TL = TocLinesToAnyOf.from("2022-2-C2-C3-ajuda"):pat2() -- a tocline'd PDF
V.any = V.T + V.P + V.Q + V.J + V.L
+ V.AP + V.EP + V.OH + V.TL
caepropat = gr:compile("any")
-- «gram-tests» (to ".gram-tests")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Caepro5.lua"
gr:cm2("T", "2cT")
gr:cm2("T", "2cT42")
gr:cm2("P", "2cP")
gr:cm2("P", "2cP#foo")
gr:cm2("Q", "2cQ")
gr:cm2("Q", "2cQ20")
gr:cm2("J", "2cJ")
gr:cm2("J", "2cJ20")
gr:cm2("TL", "2022-500-linhas-etel")
gr:cm2("TL", "2022-500-linhas-etel_4")
gr:cm2("any", "2eT4")
gr:cm2("any", "2xQ4")
gr:cm2("any", "Bort7")
gr:cm2("any", "Slogans")
gr:cm2("any", "Slogans#01:23")
gr:cm2("any", "Sapt")
gr:cm2("any", "SaptSlides")
= caepropat:match("2xQ4")
= caepropat:match("Slogans#01:23")
--]]
-- _____ _ _
-- | ____|_ __ _ __(_) ___| |__ ___ _ __
-- | _| | '_ \| '__| |/ __| '_ \ / _ \ '_ \
-- | |___| | | | | | | (__| | | | __/ | | |
-- |_____|_| |_|_| |_|\___|_| |_|\___|_| |_|
--
-- «Enrichen» (to ".Enrichen")
Enrichen = Class {
type = "Enrichen",
from0 = function (o) return Enrichen {o=o} end,
fromstr0 = function (str) return Enrichen.from0(caepropat:match(str)) end,
fromstr = function (str) return Enrichen.fromstr0(str):adds0() end,
--
getsexp = function (str) return Enrichen.getfield ("sexp", str) end,
pgetsexp = function (str) return Enrichen.pgetfield("sexp", str) end,
geturl = function (str) return Enrichen.getfield ("urlp", str) end,
pgeturl = function (str) return Enrichen.pgetfield("urlp", str) end,
getfield = function (field, str) return Enrichen.fromstr(str).o[field] end,
pgetfield = function (field, str)
local result
pcall(function () result = Enrichen.getfield(field, str) end)
return result
end,
--
test = function (str) print(Enrichen.fromstr(str):tostring1()) end,
__tostring = function (e) return e:tostring() end,
__index = {
--
-- «Enrichen-tostring» (to ".Enrichen-tostring")
tostring = function (e) return e:tostring1() end,
tostring0 = function (e) return mytostringv(e:v()) end,
tostring1 = function (e) return mapconcat(tostring, {e.o,"",e:vs()}, "\n") end,
v = function (e) return VTable(copy(e.o)) end,
kvs = function (e) return Tos{}:getsortedkvs(e.o) end,
vs = function (e)
local f = function (kv) return format(" %-8s %s", kv.key, tostring(kv.val)) end
return mapconcat(f, e:kvs(), "\n")
end,
--
-- «Enrichen-subst» (to ".Enrichen-subst")
bads = function (e, s) PP("Bad s:", s); error() end,
subst = function (e, fmt)
local f = function (s) return e.o[s] or e:bads(s) end
return (fmt:gsub("<(.-)>", f))
end,
--
-- «Enrichen-pdfs» (to ".Enrichen-pdfs")
-- T_pdf = function (e) return e:subst"LATEX/<yyyy-s>-<MM>-tudo.pdf" end,
T_pdf = function (e) return e:subst"LATEX/<yyyy-s>-<MM>-Tudo.pdf" end,
Q_pdf = function (e) return quadros[e.o.M .. e.o.sem] end,
L_pdf = function (e) return e:subst"logs-pdfizados/<M><sem>L<numpdf><turma>.pdf" end,
TL_pdf = function (e) return e:subst"LATEX/<stem>.pdf" end,
AP_pdf = function (e) return e:subst"<pdfstem>.pdf" end,
EP_pdf = function (e) return (e.o.pdfurl:gsub("(https?)://", "snarf/%1/")) end,
pdf = function (e) return e.o.T_pdf or e.o.L_pdf or e.o.Q_pdf or
e.o.TL_pdf or e.o.AP_pdf or e.o.EP_pdf end,
tlp0 = function (e) return e.o.initpage+(e.o.subpage or 1)-1 end,
tlp = function (e) return e.o.initpage and e:tlp0() end,
p = function (e) return e:tlp() or e.o.page end,
hp = function (e) return e:subst"#page=<p>" end,
pdfp = function (e) return e:subst"<pdf><hp>" end,
pdfsexp = function (e) return e:subst'(find-pdf-page "~/<pdf>" <p>)' end,
pdftsexp = function (e) return e:subst'(find-pdf-text8 "~/<pdf>" <p>)' end,
--
-- «Enrichen-htmls» (to ".Enrichen-htmls")
P_html = function (e) return e:subst"<yyyy.s>-<MM>.html" end,
OH_html = function (e) return e:subst"<htmlstem>.html" end,
html = function (e) return e.o.P_html or e.o.OH_html end,
htmla = function (e) return e:subst"<html><hanchor>" end,
htmlsexp = function (e) return e:subst'(brg "file:///home/edrx/TH/L/<htmla>")' end,
--
-- «Enrichen-jpgs» (to ".Enrichen-jpgs")
dir = function (e) return e.o["yyyy.s"].."-"..e.o.MM end,
dirstems = function (e) return lsquadros_cache[e:dir()] end,
numjpg = function (e) return e.o.numjpg + 0 end,
jpgstem = function (e) return e:dirstems().stems[e:numjpg()] end,
J_jpg = function (e) return e:dir().."/"..e:jpgstem()..".jpg" end,
jpg = function (e) return e.o.J_jpg end,
jpgsexp = function (e) return e:subst'(xz "~/<jpg>")' end,
--
-- «Enrichen-tex» (to ".Enrichen-tex")
TL_tex = function (e) return e:subst"LATEX/<stem>.tex" end,
asexp = function (e) return e:subst'(find-anchor "~/<TL_tex>" "<partname>")' end,
--
-- «Enrichen-sexps» (to ".Enrichen-sexps")
sexp = function (e) return e.o.pdfsexp or e.o.jpgsexp or e.o.htmlsexp end,
hsexp = function (e,head) return (e:sexp():gsub("find%-pdf%-page",head)) end,
rsexp = function (e) return e:hsexp("find-pdftoolsr-page") end,
gsexp = function (e) return e:hsexp("find-googlechrome-page") end,
tsexp = function (e) return e.o.pdftsexp end,
--
-- «Enrichen-urls» (to ".Enrichen-urls")
url = function (e)
local angg = function (s)
if not s then return end
if s:match"://" then return s end
return "https://anggtwu.net/"..s
end
return angg(e.o.pdfurl or e.o.pdf or e.o.html or e.o.jpg)
end,
urlp = function (e) return e.o.url..(e.o.hp or e.o.hanchor or "") end,
--
call1 = function (e, name) return e[name](e) end,
add1 = function (e, name) e.o[name] = e:call1(name) end,
adds = function (e, names) for _,name in ipairs(split(names)) do e:add1(name) end end,
adds0 = function (e) e:adds(e.adds_[e.o[0]]); return e end,
adds_ = {
T = " T_pdf basicpdf ", -- 2eT100
L = " L_pdf basicpdf ", -- 2aL1c4
Q = " Q_pdf basicpdf ", -- 2eQ2
AP = " AP_pdf basicpdf ", -- Bort7
EP = " EP_pdf basicpdf ", -- MirandaP20
TL = " TL_pdf basicpdf TL_tex asexp ", -- 2021-sapt-slides_2
P = " P_html html htmla htmlsexp sexp url urlp ", -- 2aP
OH = " OH_html html htmla htmlsexp sexp url urlp ", -- Slogans#01:23
J = " dir jpgstem J_jpg jpg jpgsexp sexp url urlp ", -- 2eJ1
},
--
basicpdf = function (e)
e:adds" p hp pdf pdfp pdfsexp sexp url urlp pdftsexp tsexp rsexp gsexp "
end,
},
}
-- «Enrichen-tests» (to ".Enrichen-tests")
--[==[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Caepro5.lua"
= caepropat:match "2aT1"
= Enrichen.from0(caepropat:match "2aT1")
= Enrichen.from0(caepropat:match "2aT1"):v()
= Enrichen.from0(caepropat:match "2aT1"):vs()
= Enrichen.from0(caepropat:match "2aT1") :tostring1()
= Enrichen.from0(caepropat:match "2aT1"):adds0():tostring1()
= Enrichen.from0(caepropat:match "2aT1"):adds0()
= Enrichen.from0(caepropat:match "2aT1"):adds0():gsexp()
= Enrichen.test "2aT1"
= Enrichen. getsexp "2aT1"
= Enrichen.pgetsexp "2aT1"
= Enrichen. getsexp "BLA"
= Enrichen.pgetsexp "BLA" -- err
Enrichen.test "2aT1"
Enrichen.test "BLA" -- err
test = Enrichen.test
test "2xT4"
test "2xT4"
test "2xQ4"
test "2aL1c4"
test "2022-500-linhas-etel"
test "2022-500-linhas-etel_1"
test "2022-500-linhas-etel_2"
test "2aP"
test "2aP#foo"
test "Slogans"
test "Slogans#01:23"
test "2xJ4"
test "2xQ4"
= Enrichen.fromstr "2xT4"
= Enrichen.fromstr "2xQ4"
= Enrichen.fromstr "2aL1m4"
= Enrichen.fromstr "2022-500-linhas-etel"
= Enrichen.fromstr "2022-500-linhas-etel_1"
= Enrichen.fromstr "2022-500-linhas-etel_2"
= Enrichen.fromstr "2aP"
= Enrichen.fromstr "2aP#foo"
= Enrichen.fromstr "Slogans"
= Enrichen.fromstr "Slogans#01:23"
= Enrichen.fromstr "2xJ4"
gr:cm2("TL", "2022-500-linhas-etel")
gr:cm2("TL", "2022-500-linhas-etel_4")
e = Enrichen.fromstr0 "2xP"
e = Enrichen.fromstr0 "2xQ"
e = Enrichen.fromstr0 "2xJ"
e = Enrichen.fromstr0 "2aL"
e = Enrichen.fromstr0 "2xT4"
e = Enrichen.fromstr0 "2xJ"
e = Enrichen.fromstr "2xJ"
= e
= e.o[0]
= e.adds_[e.o[0]]
= e:adds0()
= lsquadros_cache["2019.2-C2"]
= e:Jfile()
= e
= e:subst("_<page>_")
= e:subst("_<foo>_")
--]==]
-- _ _ _
-- | |___ __ _ _ _ __ _ __| |_ __ ___ ___ ___ __ _ ___| |__ ___
-- | / __|/ _` | | | |/ _` |/ _` | '__/ _ \/ __| / __/ _` |/ __| '_ \ / _ \
-- | \__ \ (_| | |_| | (_| | (_| | | | (_) \__ \ | (_| (_| | (__| | | | __/
-- |_|___/\__, |\__,_|\__,_|\__,_|_| \___/|___/___\___\__,_|\___|_| |_|\___|
-- |_| |_____|
--
-- «lsquadros_cache» (to ".lsquadros_cache")
lsquadros_cache = copy(require "LsQuadros1-cache")
lsquadros_cache_prepare = function ()
for i=1,#lsquadros_cache do
local dir = lsquadros_cache[i].dir
lsquadros_cache[dir] = lsquadros_cache[i]
end
end
lsquadros_cache_prepare()
-- «lsquadros_cache-tests» (to ".lsquadros_cache-tests")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Caepro5.lua"
lsquadros_cache = copy(require "LsQuadros1-cache")
for i=1,#lsquadros_cache do print(lsquadros_cache[i].dir) end
= lsquadros_cache["2022.2-C2"]
lsquadros_cache_prepare()
= lsquadros_cache["2022.2-C2"]
= lsquadros_cache
= lsquadros_cache[1]
= lsquadros_cache[1].dir
= lsquadros_cache[1].stems
= lsquadros_cache[1].stems[1]
lsquadros_cache = copy(require "LsQuadros1-cache")
= lsquadros_cache["2022.2-C2"]
= lsquadros_cache
--]]
-- (find-angg "LUA/Subst1.lua" "Subst")
-- (find-angg "LUA/Caepro4.lua" "Abbrev" "fmts =")
--
-- _ __ _ __ ___ _ __ _ __ ___ ___ ___ ___ ___
-- | '_ \| '__/ _ \ '_ \| '__/ _ \ / __/ _ \/ __/ __|
-- | |_) | | | __/ |_) | | | (_) | (_| __/\__ \__ \
-- | .__/|_| \___| .__/|_| \___/ \___\___||___/___/
-- |_| |_|
--
-- «preprocess» (to ".preprocess")
-- pad9_1 -> 2023-pad-09-74_1 <- pp1
-- pad9_66 -> 2023-pad-09-74_66 <- pp66
-- pad5_63 -> 2023-pad-05-08_1 <- pp63
-- pad5_66 -> 2023-pad-05-08_4 <- pp66
preprocess = function (str)
local p = str:lower():match"^pp(%d+)"
if p and (p+0 <= 66)
then str = "2023-pad-09-74_"..p
end
local a,p = str:lower():match"^pad(%d)_(%d+)"
if a == "5" then return "2023-pad-05-08_"..(p-62) end
if a == "9" then return "2023-pad-09-74_"..p end
return str
end
-- _ _____ __ __
-- | | __ |_ _|__\ \/ /
-- | | / _` || |/ _ \\ /
-- | |__| (_| || | __// \
-- |_____\__,_||_|\___/_/\_\
--
-- «LaTeX» (to ".LaTeX")
-- (find-LATEX "2023-1-C2-carro.tex" "defs-caepro")
--
Caurl = function (str)
local url = Enrichen.pgetfield("urlp", preprocess(str))
return url and (url:gsub("#", "\\#"))
end
-- «LaTeX-tests» (to ".LaTeX-tests")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Caepro5.lua"
= Caurl "2eT3"
= Caurl "BLA"
--]]
-- «run_options» (to ".run_options")
-- (find-es "lua5" "run_options")
--
run_options = function (a, b)
local pr = preprocess
if a == nil then return
elseif a == "Caepro5" then return
elseif a == "-sexp" then print(Enrichen.pgetsexp(pr(b)))
elseif a == "-tsexp" then print(Enrichen.pgetfield("tsexp", pr(b)))
elseif a == "-rsexp" then print(Enrichen.pgetfield("rsexp", pr(b)))
elseif a == "-gsexp" then print(Enrichen.pgetfield("gsexp", pr(b)))
elseif a == "-asexp" then print(Enrichen.pgetfield("asexp", pr(b)))
elseif a == "-test" then Enrichen.test(pr(b))
elseif a == "-anggurl" then print(Enrichen.pgetfield("urlp", pr(b)))
elseif a == "-p" then print(Enrichen.pgetfield("p", pr(b)))
else PP("Bad options:", a, b)
end
end
run_options(...)
-- «run_options-tests» (to ".run_options-tests")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Caepro5.lua"
run_options("-sexp", "2aT1")
run_options("-tsexp", "2aT1")
run_options("-sexp", "BLA")
run_options("-test", "2aT42")
run_options("-test", "BLA")
run_options("-anggurl", "2aT1")
run_options("-p", "2023-prevencao_2")
= Caurl "2aT1"
= Caurl "BLA"
--]]
-- Local Variables:
-- coding: utf-8-unix
-- End: