Syntactic and Semantic Control of Large Language Models via Sequential Monte Carlo